llvm-project/llvm/lib/Transforms/InstCombine
Sanjay Patel 09e02fbf51 [InstCombine][x86] try even harder to convert blendv intrinsic to generic IR (PR38814)
Follow-up to rL342324 (D52059):

Missing optimizations with blendv are shown in:
https://bugs.llvm.org/show_bug.cgi?id=38814

This is an easier and more powerful solution than adding pattern matching for a few 
special cases in the backend. The potential danger with this transform in IR is that 
the condition value can get separated from the select, and the backend might not be 
able to make a blendv out of it again.

llvm-svn: 342806
2018-09-22 14:43:55 +00:00
..
CMakeLists.txt InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineAddSub.cpp [InstCombine] Support (sub (sext x), (sext y)) --> (sext (sub x, y)) and (sub (zext x), (zext y)) --> (zext (sub x, y)) 2018-09-15 18:54:10 +00:00
InstCombineAndOrXor.cpp [InstCombine] Fold (xor (min/max X, Y), -1) -> (max/min ~X, ~Y) when X and Y are freely invertible. 2018-09-13 18:52:58 +00:00
InstCombineCalls.cpp [InstCombine][x86] try even harder to convert blendv intrinsic to generic IR (PR38814) 2018-09-22 14:43:55 +00:00
InstCombineCasts.cpp Fix InstCombine address space assert 2018-07-31 15:53:03 +00:00
InstCombineCompares.cpp [InstCombine] Handle vector compares in foldGEPIcmp() 2018-09-20 13:37:28 +00:00
InstCombineInternal.h [InstCombine] refactor mul narrowing folds; NFCI 2018-09-14 22:23:35 +00:00
InstCombineLoadStoreAlloca.cpp [Local] Make DoesKMove required for combineMetadata. 2018-08-24 11:40:04 +00:00
InstCombineMulDivRem.cpp [InstCombine] refactor mul narrowing folds; NFCI 2018-09-14 22:23:35 +00:00
InstCombinePHI.cpp [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
InstCombineSelect.cpp [InstCombine] Fold (min/max ~X, Y) -> ~(max/min X, ~Y) when Y is freely invertible 2018-09-22 05:53:27 +00:00
InstCombineShifts.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] enhance vector demanded elements to look at a vector select condition operand 2018-09-11 18:49:00 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] narrow vector select with padded condition and extracted result (PR38691) 2018-09-07 21:03:34 +00:00
InstructionCombining.cpp [InstCombine] Support (sub (sext x), (sext y)) --> (sext (sub x, y)) and (sub (zext x), (zext y)) --> (zext (sub x, y)) 2018-09-15 18:54:10 +00:00
LLVMBuild.txt