aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
AgeCommit message (Expand)Author
2020-11-20[InstCombine] Fold `and(shl(zext(x), width(SIGNMASK) - width(%x)), SIGNMASK)`...Roman Lebedev
2020-11-17[InstCombine] allow vectors for masked-add -> xor foldSanjay Patel
2020-11-17[InstCombine] visitAnd - remove unnecessary Value *X, *Y shadow variables. NFCI.Simon Pilgrim
2020-11-17[InstCombine] visitAnd - use m_SpecificInt instead of m_APInt + comparison. N...Simon Pilgrim
2020-11-17[InstCombine] remove scalar constraint for mask-of-add foldSanjay Patel
2020-11-17[InstCombine] relax constraints on mask-of-addSanjay Patel
2020-11-15[InstCombine] reduce code for flip of masked bit; NFCSanjay Patel
2020-10-26[InstCombine] Add support for zext(and(neg(amt),width-1)) rotate shift amount...Simon Pilgrim
2020-10-25[InstCombine] matchBSwapOrBitReversem - recognise or(fshl(),fshl()) bswap pat...Simon Pilgrim
2020-10-23[InstCombine] matchBSwapOrBitReverse - expose bswap/bitreverse matching flags.Simon Pilgrim
2020-10-23[InstCombine] Rename InstCombinerImpl::matchBSwap to matchBSwapOrBitReverse. ...Simon Pilgrim
2020-10-21[InstCombine] foldOrOfICmps - use m_Specific instead of explicit comparisons....Simon Pilgrim
2020-10-21Revert "[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + ...Martin Storsjö
2020-10-20[InstCombine] foldOrOfICmps - use m_Specific instead of explicit comparisons....Simon Pilgrim
2020-10-20[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)...Simon Pilgrim
2020-10-19[InstCombine] foldOrOfICmps - only fold (icmp_eq B, 0) | (icmp_ult/gt A, B) f...Simon Pilgrim
2020-10-19Revert rGa704d8238c86bac: "[InstCombine] Add or((icmp ult/ule (A + C1), C3), ...Simon Pilgrim
2020-10-19[InstCombine] Add (icmp ne A, 0) | (icmp ne B, 0) --> (icmp ne (A|B), 0) vect...Simon Pilgrim
2020-10-19[InstCombine] Add (icmp eq B, 0) | (icmp ult/gt A, B) -> (icmp ule A, B-1) ve...Simon Pilgrim
2020-10-19[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)...Simon Pilgrim
2020-10-19[InstCombine] foldOrOfICmps - pull out repeated getOperand() calls. NFCI.Simon Pilgrim
2020-10-19[InstCombine] Support vectors-with-undef in and(logicalshift(1,X),1) --> zext...Simon Pilgrim
2020-10-17[InstCombine] (~A & B) ^ A -> A | BSanjay Patel
2020-10-16[InstCombine] visitAnd - pull out repeated I.getType() calls. NFCI.Simon Pilgrim
2020-10-16[InstCombine] Remove custom and(trunc(and(x,c1)),c2) foldSimon Pilgrim
2020-10-16[InstCombine] foldAndOrOfICmpsOfAndWithPow2 - add vector supportSimon Pilgrim
2020-10-15[InstCombine] Use m_SpecificInt instead of m_APInt + comparison. NFCI.Simon Pilgrim
2020-10-15[InstCombine] InstCombineAndOrXor - refactor cast<ConstantInt> usages to Patt...Simon Pilgrim
2020-10-15[InstCombine] visitXor - refactor ((X^C1)>>C2)^C3 -> (X>>C2)^((C1>>C2)^C3) fo...Simon Pilgrim
2020-10-14[InstCombine] Add m_SpecificIntAllowUndef pattern matcherSimon Pilgrim
2020-10-14[InstCombine] matchFunnelShift - add support for non-uniform vectors containi...Simon Pilgrim
2020-10-12[InstCombine] matchFunnelShift - fold or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(...Simon Pilgrim
2020-10-12[InstCombine] matchFunnelShift - remove shift value commutation. NFCI.Simon Pilgrim
2020-10-12[InstCombine] matchFunnelShift - canonicalize to OR(SHL,LSHR). NFCI.Simon Pilgrim
2020-10-12Revert rGb97093e520036f8 - "[InstCombine] matchFunnelShift - fold or(shl(a,x)...Simon Pilgrim
2020-10-11[InstCombine] matchFunnelShift - fold or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(...Simon Pilgrim
2020-10-08[InstCombine] matchFunnelShift - support non-uniform constant vector shift am...Simon Pilgrim
2020-10-08[InstCombine] matchRotate - add support for matching general funnel shifts wi...Simon Pilgrim
2020-10-08[InstCombine] canNarrowShiftAmt - replace custom Constant matching with m_Spe...Simon Pilgrim
2020-10-03[InstCombine] recognizeBSwapOrBitReverseIdiom - support for 'partial' bswap p...Simon Pilgrim
2020-10-02Revert rG3d14a1e982ad27 - "[InstCombine] recognizeBSwapOrBitReverseIdiom - su...Simon Pilgrim
2020-10-02[InstCombine] recognizeBSwapOrBitReverseIdiom - support for 'partial' bswap p...Simon Pilgrim
2020-09-28[InstCombine] matchRotate - force splat of uniform constant rotation amounts ...Simon Pilgrim
2020-09-28[InstCombine] matchRotate - allow undef in uniform constant rotation amounts ...Simon Pilgrim
2020-09-25[InstCombine] matchRotate - support (uniform) constant rotation amounts (PR46...Simon Pilgrim
2020-08-31[SVE] Remove calls to VectorType::getNumElements from InstCombineChristopher Tetreault
2020-08-22[InstCombine] canonicalize 'not' ops before logical shiftsSanjay Patel
2020-08-19[InstCombine] reduce code duplication; NFCSanjay Patel
2020-08-11[InstCombine] ~(~X + Y) -> X - YDávid Bolvanský
2020-08-03[InstCombine] reduce xor-of-or's bitwise logic (PR46955); 2nd trySanjay Patel