llvm-project/llvm/lib/Transforms/InstCombine
Sanjay Patel 678b9c5dde [InstCombine] try difference-of-shifts factorization before negator
We need to preserve wrapping flags to allow better folds.
The cases with geps may be non-intuitive, but that appears to agree with Alive2:
https://alive2.llvm.org/ce/z/JQcqw7
We create 'nsw' ops independent from the original wrapping on the sub.
2020-11-24 13:56:30 -05:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
InstCombineAddSub.cpp [InstCombine] try difference-of-shifts factorization before negator 2020-11-24 13:56:30 -05:00
InstCombineAndOrXor.cpp [InstCombine] Fold `and(shl(zext(x), width(SIGNMASK) - width(%x)), SIGNMASK)` to `and(sext(%x), SIGNMASK)` 2020-11-20 00:31:27 +03:00
InstCombineAtomicRMW.cpp
InstCombineCalls.cpp [InstCombine] Do not introduce bitcasts for swifterror arguments. 2020-10-28 21:52:12 +00:00
InstCombineCasts.cpp [InstCombine] narrowFunnelShift - fold trunc/zext or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(a,b,x) (PR35155) 2020-10-24 12:42:43 +01:00
InstCombineCompares.cpp [InstCombine] Fix constant-folding of overflowing arithmetic ops on vectors 2020-11-09 14:41:07 +03:00
InstCombineInternal.h [InstCombine] allow vectors for masked-add -> xor fold 2020-11-17 13:36:08 -05:00
InstCombineLoadStoreAlloca.cpp [SVE][InstCombine] Fix TypeSize warning in canReplaceGEPIdxWithZero 2020-10-26 17:40:26 +00:00
InstCombineMulDivRem.cpp [InstCombine] Replace getLogBase2 internal helper with ConstantExpr::getExactLogBase2. NFCI. 2020-10-11 10:31:17 +01:00
InstCombineNegator.cpp [InstCombine] Negator: - (C - %x) --> %x - C (PR47997) 2020-11-03 16:06:51 +03:00
InstCombinePHI.cpp
InstCombineSelect.cpp [InstCombine] foldSelectFunnelShift - block poison in funnel shift value 2020-11-08 12:58:30 +00:00
InstCombineShifts.cpp [InstCombine] visitShl - ensure inner shifts have inrange amounts 2020-10-29 15:28:15 +00:00
InstCombineSimplifyDemanded.cpp Revert "[InstCombine] add multi-use demanded bits fold for add with low-bit mask" 2020-11-16 14:48:09 -05:00
InstCombineVectorOps.cpp [InstCombine] Use is_contained (NFC) 2020-11-21 15:47:11 -08:00
InstructionCombining.cpp Rename EHPersonality::MSVC_Win64SEH to EHPersonality::MSVC_TableSEH. NFC. 2020-10-27 23:22:13 -07:00