summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit message (Expand)AuthorAgeFilesLines
* [InstCombine]: foldSelectICmpAndAnd(): and is commutativeRoman Lebedev2018-04-131-24/+20
* [InstCombine] Get rid of select of bittest (PR36950 / PR17564)Roman Lebedev2018-04-071-0/+49
* [PatternMatch] allow undef elements when matching vector FP +0.0Sanjay Patel2018-03-251-4/+4
* [InstCombine] canonicalize fcmp+select to fabsSanjay Patel2018-03-191-1/+31
* [InstCombine] Replace calls to getNumUses with hasNUses or hasNUsesOrMoreCraig Topper2018-03-121-2/+2
* [InstCombine] simplify min/max canonicalization; NFCISanjay Patel2018-03-061-10/+5
* [ValueTracking] move helpers for SelectPatterns from InstCombine to ValueTrac...Sanjay Patel2018-03-061-51/+11
* [InstCombine] Don't fold select(C, Z, binop(select(C, X, Y), W)) -> select(C,...Craig Topper2018-02-141-2/+17
* [InstCombine] add unsigned saturation subtraction canonicalizationsSanjay Patel2018-02-051-1/+56
* [InstCombine] Make foldSelectOpOp able to handle two-operand getelementptrJohn Brawn2018-01-191-7/+19
* [InstCombine] fold min/max tree with common operand (PR35717)Sanjay Patel2018-01-081-0/+60
* [InstCombine] relax use constraint for min/max (~a, ~b) --> ~min/max(a, b)Sanjay Patel2018-01-061-2/+2
* [InstCombine] add folds for min(~a, b) --> ~max(a, b)Sanjay Patel2018-01-051-22/+12
* [InstCombine] Simplify binops that are only used by a select and are fed by a...Craig Topper2017-11-151-0/+40
* [InstCombine] Simplify selects that test cmpxchg instructionsMatthew Simpson2017-10-311-0/+76
* [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings;...Eugene Zelenko2017-10-241-6/+26
* [InstCombine] Move foldSelectICmpAnd helper function earlier in the file to e...Craig Topper2017-09-051-105/+105
* [InstCombine] In foldSelectIntoOp, avoid creating a Constant before we know f...Craig Topper2017-09-051-17/+18
* [InstCombine][InstSimplify] Teach decomposeBitTestICmp to look through trunca...Craig Topper2017-09-011-1/+1
* [InstCombine] remove unnecessary vector select fold; NFCISanjay Patel2017-08-301-4/+0
* [InstCombine] Teach foldSelectICmpAndOr to handle vector splatsCraig Topper2017-08-291-6/+8
* [InstCombine] Teach select01 helper of foldSelectIntoOp to handle vector splatsCraig Topper2017-08-281-7/+6
* [InstCombine] Teach foldSelectICmpAnd to recognize a (icmp slt X, 0) and (icm...Craig Topper2017-08-211-19/+49
* [InstCombine] Make folding (X >s -1) ? C1 : C2 --> ((X >>s 31) & (C2 - C1)) +...Craig Topper2017-08-161-17/+22
* [InstCombine] Cast to BinaryOperator earlier in foldSelectIntoOp to simplify ...Craig Topper2017-08-081-14/+10
* [InstCombine] Support vector splats in foldSelectICmpAnd.Craig Topper2017-08-051-15/+23
* [InstCombine] In foldSelectICmpAnd, if we need to to truncate from the 'and' ...Craig Topper2017-08-051-8/+8
* [InstCombine] Use ConstantInt::getFalse to reduce some code. NFCCraig Topper2017-08-041-2/+1
* [InstCombine] Canonicalize clamp of float types to minmax in fast mode.Nikolai Bozhenov2017-08-041-7/+17
* [InstCombine] Move the call to foldSelectICmpAnd into foldSelectInstWithICmp....Craig Topper2017-08-041-80/+80
* [Value Tracking] Default argument to true and rename accordingly. NFC.Chad Rosier2017-08-011-2/+2
* Disable loop unswitching for some patterns containing equality comparison wit...Wei Mi2017-07-251-0/+16
* [IR] Add Type::isIntOrIntVectorTy(unsigned) similar to the existing isInteger...Craig Topper2017-07-091-2/+2
* [InstCombine] Speculatively implement a fix for what might be the root cause ...Craig Topper2017-07-091-1/+2
* [InstCombine] Make InstCombine's IRBuilder be passed by reference everywhereCraig Topper2017-07-071-70/+69
* [Constants] If we already have a ConstantInt*, prefer to use isZero/isOne/isM...Craig Topper2017-07-061-5/+5
* [InstCombine] Don't create extra ConstantInt objects in foldSelectICmpAnd. NFCICraig Topper2017-07-061-19/+17
* Revert of r306525: "Canonicalize clamp of float types to minmax"Nikolai Bozhenov2017-06-301-10/+3
* [InstCombine] Canonicalize clamp of float types to minmax in fast mode.Nikolai Bozhenov2017-06-281-3/+10
* [InstCombine] canonicalize icmp predicate feeding selectSanjay Patel2017-06-271-0/+17
* [InstCombine] Teach foldSelectICmpAndOr to recognize (select (icmp slt (trunc...Craig Topper2017-06-221-11/+38
* [InstCombine] Don't let folding (select (icmp eq (and X, C1), 0), Y, (or Y, C...Craig Topper2017-06-211-4/+16
* [InstCombine] Pass a proper context instruction to all of the calls into Inst...Craig Topper2017-06-091-1/+2
* [InstCombine][InstSimplify] Use APInt::isNullValue/isOneValue to reduce compi...Craig Topper2017-06-071-2/+2
* InstCombine: Use the new SimplifyQuery versions of Simplify*. Use AssumptionC...Daniel Berlin2017-04-261-2/+1
* [ValueTracking] Introduce a KnownBits struct to wrap the two APInts for compu...Craig Topper2017-04-261-4/+5
* [APInt] Rename getSignBit to getSignMaskCraig Topper2017-04-201-1/+1
* [InstCombine] Support folding a subtract with a constant LHS into a phi nodeCraig Topper2017-04-141-2/+2
* [InstCombine] fix wrong undef handling when converting select to shuffleSanjay Patel2017-04-121-2/+4
* [InstCombine] avoid breaking up bitcasted vector min/max patterns (PR32306)Sanjay Patel2017-03-161-0/+10
OpenPOWER on IntegriCloud