llvm-project/llvm/lib/Transforms
Sanjay Patel e78fb556c5 [InstCombine] reassociate splatted vector ops
bo (splat X), (bo Y, OtherOp) --> bo (splat (bo X, Y)), OtherOp

This patch depends on the splat analysis enhancement in D73549.
See the test with comment:
; Negative test - mismatched splat elements
...as the motivation for that first patch.

The motivating case for reassociating splatted ops is shown in PR42174:
https://bugs.llvm.org/show_bug.cgi?id=42174

In that example, a slight change in order-of-associative math results
in a big difference in IR and codegen. This patch gets all of the
unnecessary shuffles out of the way, but doesn't address the potential
scalarization (see D50992 or D73480 for that).

Differential Revision: https://reviews.llvm.org/D73703
2020-02-03 09:08:36 -05:00
..
AggressiveInstCombine [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
CFGuard Add support for __declspec(guard(nocf)) 2020-01-10 16:04:12 +00:00
Coroutines [Coroutines] Remove corresponding phi values when apply simplifyTerminatorLeadingToRet 2020-01-05 18:26:30 -05:00
Hello Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IPO [Attributor] AANoRecurse check all call sites for `norecurse` 2020-02-02 23:57:17 -06:00
InstCombine [InstCombine] reassociate splatted vector ops 2020-02-03 09:08:36 -05:00
Instrumentation Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ObjCARC [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Scalar [JumpThreading] Half the duplicate threshold at Oz 2020-02-03 08:40:20 +00:00
Utils [Inliner][NoAlias] Use call site attributes too 2020-02-02 23:21:29 -06:00
Vectorize [LV] Hoist code to mark conditional assumes as dead to caller (NFC). 2020-01-28 08:50:44 -08:00
CMakeLists.txt Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00
LLVMBuild.txt Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00