llvm-project/llvm/lib/Transforms/InstCombine
Sanjay Patel 1d49fc9b27 [InstCombine] canonicalize (bitcast (extractelement X)) --> (extractelement(bitcast X))
This change was discussed in D15392. It allows us to remove the fold that was added
in:
http://reviews.llvm.org/r255261

...and it will allow us to generalize this fold:
http://reviews.llvm.org/rL112232

while preserving the order of bitcast + extract that it produces and testing shows
is better handled by the backend.

Note that the existing check for "isVectorTy()" wasn't strong enough in general
and specifically because: x86_mmx. It's not a vector, but it's not vectorizable
either. So here we check VectorType::isValidElementType() directly before 
proceeding with the transform.

llvm-svn: 255433
2015-12-12 16:44:48 +00:00
..
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
InstCombineAddSub.cpp Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
InstCombineAndOrXor.cpp [InstCombine] Make MatchBSwap also match bit reversals 2015-12-11 10:04:51 +00:00
InstCombineCalls.cpp [AttributeSet] Overload AttributeSet::addAttribute to reduce compile 2015-12-02 06:58:49 +00:00
InstCombineCasts.cpp [InstCombine] canonicalize (bitcast (extractelement X)) --> (extractelement(bitcast X)) 2015-12-12 16:44:48 +00:00
InstCombineCompares.cpp [InstCombine] Optimize icmp of inc/dec at RHS 2015-10-19 22:08:14 +00:00
InstCombineInternal.h [InstCombine] Make MatchBSwap also match bit reversals 2015-12-11 10:04:51 +00:00
InstCombineLoadStoreAlloca.cpp Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
InstCombineMulDivRem.cpp InstCombine: Remove ilist iterator implicit conversions, NFC 2015-10-13 16:59:33 +00:00
InstCombinePHI.cpp [InstCombine] Teach FoldPHIArgZextsIntoPHI about EHPads 2015-11-07 00:52:53 +00:00
InstCombineSelect.cpp [InstCombine] Call getCmpPredicateForMinMax only with a valid SPF 2015-12-05 23:44:22 +00:00
InstCombineShifts.cpp don't repeat function names in comments; NFC 2015-11-02 22:34:55 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Teach SimplifyDemandedVectorElts how to handle ConstantVector select masks with ConstantExpr elements (PR24922) 2015-10-06 10:34:53 +00:00
InstCombineVectorOps.cpp fix typos in comments; NFC 2015-11-29 22:09:34 +00:00
InstructionCombining.cpp Move EH-specific helper functions to a more appropriate place 2015-12-02 23:06:39 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
Makefile