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