llvm-project/llvm/lib/Transforms/InstCombine
Roman Lebedev c3b394ffba [InstCombine] dropRedundantMaskingOfLeftShiftInput(): propagate undef shift amounts
Summary:
When we do `ConstantExpr::getZExt()`, that "extends" `undef` to `0`,
which means that for patterns a/b we'd assume that we must not produce
any bits for that channel, while in reality we simply didn't care
about that channel - i.e. we don't need to mask it.

Reviewers: spatel

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68239

llvm-svn: 373960
2019-10-07 20:52:52 +00:00
..
CMakeLists.txt [InstCombine] Optimize `atomicrmw <op>, 0` into `load atomic` when possible 2019-02-07 21:27:23 +00:00
InstCombineAddSub.cpp [InstCombine] Deal with -(trunc(X >>u 63)) -> trunc(X >>s 63) 2019-10-01 17:50:20 +00:00
InstCombineAndOrXor.cpp [InstCombine] foldUnsignedUnderflowCheck(): one last pattern with 'sub' (PR43251) 2019-09-25 22:59:59 +00:00
InstCombineAtomicRMW.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
InstCombineCalls.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
InstCombineCasts.cpp [InstCombine] don't assume 'inbounds' for bitcast pointer to GEP transform (PR43501) 2019-10-06 13:08:08 +00:00
InstCombineCompares.cpp [InstCombine] Fold 'icmp eq/ne (?trunc (lshr/ashr %x, bitwidth(x)-1)), 0' -> 'icmp sge/slt %x, 0' 2019-10-04 22:16:22 +00:00
InstCombineInternal.h [InstCombine] Bypass high bit extract before variable sign-extension (PR43523) 2019-10-02 23:02:12 +00:00
InstCombineLoadStoreAlloca.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
InstCombineMulDivRem.cpp [InstCombine] fold fneg disguised as select+fmul (PR43497) 2019-10-06 14:15:48 +00:00
InstCombinePHI.cpp [InstCombine] SliceUpIllegalIntegerPHI - bail on out of range shifts 2019-06-24 13:13:36 +00:00
InstCombineSelect.cpp [InstCombine] allow icmp+binop folds before min/max bailout (PR43310) 2019-09-22 14:31:53 +00:00
InstCombineShifts.cpp [InstCombine] dropRedundantMaskingOfLeftShiftInput(): propagate undef shift amounts 2019-10-07 20:52:52 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine][AMDGPU] Simplify tbuffer loads 2019-08-30 14:20:04 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] fold extract+insert into identity shuffle 2019-09-08 19:03:01 +00:00
InstructionCombining.cpp [InstCombine] Use m_Zero instead of isNullValue() when checking if a GEP index is all zeroes to prevent an infinite loop. 2019-09-26 17:20:50 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00