summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit message (Expand)AuthorAgeFilesLines
...
* Removing an unused variable that was missed with the refactoring in r310272; ...Aaron Ballman2017-08-071-3/+0
* [InstCombine] Support (X | C1) & C2 --> (X & C2^(C1&C2)) | (C1&C2) for vector...Craig Topper2017-08-071-15/+16
* [InstCombine] Remove shift handling from OptAndOp.Craig Topper2017-08-061-58/+0
* [InstCombine] Support (X ^ C1) & C2 --> (X & C2) ^ (C1&C2) for vector splats.Craig Topper2017-08-061-8/+10
* [InstCombine] Support '(C - X) ^ signmask -> (C + signmask - X)' and '(X + C)...Craig Topper2017-08-061-16/+11
* [InstCombine] Support ~(c-X) --> X+(-c-1) and ~(X-c) --> (-c-1)-X for splat v...Craig Topper2017-08-061-14/+25
* [InstCombine] Fold (C - X) ^ signmask -> (C + signmask - X).Craig Topper2017-08-051-6/+11
* [InstCombine] Remove the (not (sext)) case from foldBoolSextMaskToSelect and ...Craig Topper2017-08-041-27/+8
* [InstCombine] Remove explicit code for folding (xor(zext(cmp)), 1) and (xor(s...Craig Topper2017-08-021-15/+0
* [InstCombine] Support sext in foldLogicCastConstantCraig Topper2017-08-021-4/+14
* [InstCombine] allow mask hoisting transform for vector typesSanjay Patel2017-07-311-33/+27
* [InstCombine] Move (0 - x) & 1 --> x & 1 to SimplifyDemandedUseBits.Craig Topper2017-07-161-5/+1
* [InstCombine] Improve the expansion in SimplifyUsingDistributiveLaws to handl...Craig Topper2017-07-151-18/+0
* [InstCombine] improve (1 << x) & 1 --> zext(x == 0) foldingSanjay Patel2017-07-151-15/+13
* [InstCombine] allow (0 - x) & 1 --> x & 1 for vectorsSanjay Patel2017-07-151-6/+5
* [InstCombine] remove dead code/tests; NFCISanjay Patel2017-07-151-11/+0
* [IR] Add Type::isIntOrIntVectorTy(unsigned) similar to the existing isInteger...Craig Topper2017-07-091-8/+7
* [InstCombine] Make InstCombine's IRBuilder be passed by reference everywhereCraig Topper2017-07-071-132/+132
* [Constants] If we already have a ConstantInt*, prefer to use isZero/isOne/isM...Craig Topper2017-07-061-3/+3
* [InstCombine] Change helper method to a file local static method. NFCCraig Topper2017-07-061-4/+5
* [InstCombine] Clarify comment to mention other transform that it does. NFCCraig Topper2017-07-061-1/+2
* [InstCombine] Add single use checks to SimplifyBSwap to ensure we are really ...Craig Topper2017-07-061-4/+9
* [InstCombine] Use CmpInst::Predicate with m_Cmp instead of ICmpInst::Predicat...Craig Topper2017-07-051-1/+1
* [InstCombine] Add a TODO for a probable missing single use check. NFCCraig Topper2017-07-031-0/+2
* [InstCombine] Support BITWISE_OP( BSWAP(x), CONSTANT ) -> BSWAP( BITWISE_OP(x...Craig Topper2017-07-031-18/+12
* [InstCombine] Remove support for BITWISE_OP(CONSTANT, BSWAP(x)) -> BSWAP(OP(B...Craig Topper2017-07-031-7/+2
* [InstCombine] Support BITWISE_OP(BSWAP(A),BSWAP(B))->BSWAP(BITWISE_OP(A, B)) ...Craig Topper2017-07-031-7/+3
* [InstCombine] Remove an if that should have been guaranteed by the caller. Re...Craig Topper2017-07-031-4/+2
* [InstCombine] Fold (a | b) ^ (~a | ~b) --> ~(a ^ b) and (a & b) ^ (~a & ~b) -...Craig Topper2017-07-021-2/+18
* [InstCombine] In foldXorToXor, move the commutable matcher from the LHS match...Craig Topper2017-06-301-8/+8
* [InstCombine] In visitXor, use m_Not on the instruction itself instead of loo...Craig Topper2017-06-291-3/+2
* [InstCombine] Add one use checks to or/and->xnor foldingCraig Topper2017-06-221-6/+8
* [InstCombine] reverse bitcast + bitwise-logic canonicalization (PR33138)Sanjay Patel2017-06-221-16/+10
* [InstCombine] add peekThroughBitcast() helper; NFCSanjay Patel2017-06-221-6/+2
* [InstCombine] Cleanup using commutable matchers. Make a couple helper methods...Craig Topper2017-06-211-21/+19
* [InstCombine] fix code/test comments for r305792; NFCSanjay Patel2017-06-201-1/+1
* [InstCombine] try to canonicalize xor-of-icmps to and-of-icmpsSanjay Patel2017-06-201-0/+24
* [InstCombine] Cleanup some duplicated one use checksCraig Topper2017-06-191-10/+4
* [InstCombine] Fold (!iszero(A & K1) & !iszero(A & K2)) -> (A & (K1 | K2)) ==...Craig Topper2017-06-161-31/+58
* [InstCombine] Add two FIXMEs for bad single use checks. NFCCraig Topper2017-06-151-0/+4
* [InstCombine] Make the context instruction parameter of foldOrOfICmps a refer...Craig Topper2017-06-151-9/+9
* [InstCombine] Handle (iszero(A & K1) | iszero(A & K2)) -> (A & (K1 | K2)) != ...Craig Topper2017-06-151-20/+14
* [InstCombine] Pass a proper context instruction to all of the calls into Inst...Craig Topper2017-06-091-3/+3
* [InstCombine][InstSimplify] Use APInt::isNullValue/isOneValue to reduce compi...Craig Topper2017-06-071-10/+11
* [InstCombine] Add an InstCombine specific wrapper around isKnownToBeAPowerOfT...Craig Topper2017-05-251-8/+4
* [InstCombine] add helper to foldXorOfICmps(); NFCISanjay Patel2017-05-181-37/+42
* [ValueTracking] Replace all uses of ComputeSignBit with computeKnownBits.Craig Topper2017-05-151-3/+2
* [InstCombine] remove fold that swaps xor/or with constants; NFCISanjay Patel2017-05-101-12/+0
* [InstCombine] clean up matchDeMorgansLaws(); NFCISanjay Patel2017-05-091-32/+13
* [InstCombine] add folds for not-of-shift-rightSanjay Patel2017-05-081-15/+32
OpenPOWER on IntegriCloud