summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
Commit message (Expand)AuthorAgeFilesLines
* [InstCombine] Preserve nuw on sub of geps (PR44419)Nikita Popov2020-01-111-3/+14
* [NFCI][InstCombine] Refactor 'sink negation into select if that folds one han...Roman Lebedev2020-01-041-40/+35
* [InstCombine] Sink sub into hands of select if one hand becomes zero. Part 2 ...Roman Lebedev2020-01-041-0/+27
* [InstCombine] Sink sub into hands of select if one hand becomes zero (PR44426)Roman Lebedev2020-01-041-0/+27
* [NFC][InstCombine] '(Op1 & ะก) - Op1' -> '-(Op1 & ~C)' fold (PR44427)Roman Lebedev2020-01-031-0/+9
* [NFC][InstCombine] '(X & (- Y)) - X' -> '- (X & (Y - 1))' fold (PR44448)Roman Lebedev2020-01-031-0/+10
* [InstCombine] Invert `add A, sext(B) --> sub A, zext(B)` canonicalization (to...Roman Lebedev2019-12-051-6/+12
* [InstCombine] Extend `0 - (X sdiv C) -> (X sdiv -C)` fold to non-splat vectorsRoman Lebedev2019-12-051-8/+10
* [NFC][InstCombine] Fixup commentsRoman Lebedev2019-10-211-2/+2
* [InstCombine] conditional sign-extend of high-bit-extract: 'or' pattern.Roman Lebedev2019-10-201-18/+17
* [InstCombine] Fold conditional sign-extend of high-bit-extract into high-bit-...Roman Lebedev2019-10-071-0/+110
* [InstCombine] Deal with -(trunc(X >>u 63)) -> trunc(X >>s 63)Roman Lebedev2019-10-011-12/+25
* [InstCombine] Preserve 'exact' in -(X >>u 31) -> (X >>s 31) foldRoman Lebedev2019-10-011-2/+6
* [InstCombine] sub(xor(x, y), or(x, y)) -> neg(and(x, y))David Bolvansky2019-09-041-0/+9
* [InstCombine] Fold sub (and A, B) (or A, B)) to neg (xor A, B)David Bolvansky2019-09-041-0/+9
* [InstCombine] Fold sub (or A, B) (and A, B) to (xor A, B)David Bolvansky2019-09-041-0/+8
* [InstCombine][NFC] Rename IsFreeToInvert() -> isFreeToInvert() for consistencyRoman Lebedev2019-08-131-1/+1
* [IR] SelectInst: add swapValues() utilityRoman Lebedev2019-08-011-6/+2
* [InstCombine] canonicalize fneg before fmul/fdivSanjay Patel2019-07-311-0/+22
* [InstCombine] fold fadd+fneg with fdiv/fmul betweenaSanjay Patel2019-07-291-0/+18
* [InstCombine] reduce code for fadd with fneg operand; NFCSanjay Patel2019-07-291-7/+4
* [InstCombine] fold fsub+fneg with fdiv/fmul betweenSanjay Patel2019-07-281-0/+15
* [InstCombine] remove flop from lerp patternsSanjay Patel2019-07-261-0/+20
* [InstCombine] Y - ~X --> X + Y + 1 fold (PR42457)Roman Lebedev2019-07-031-0/+6
* [InstCombine] (Y + ~X) + 1 --> Y - X fold (PR42459)Roman Lebedev2019-07-011-1/+4
* [InstCombine] Handle -(X-Y) --> (Y-X) for unary fneg when NSZCameron McInally2019-06-111-1/+10
* [InstCombine] 'C-(C2-X) --> X+(C-C2)' constant-foldRoman Lebedev2019-05-311-1/+6
* [InstCombine] 'add (sub C1, X), C2 --> sub (add C1, C2), X' constant-foldRoman Lebedev2019-05-311-1/+8
* [NFC][InstCombine] Add FIXME for one-use check on constant negation transforms.Cameron McInally2019-05-201-0/+2
* [InstCombine] Add visitFNeg(...) visitor for unary FnegCameron McInally2019-05-201-13/+27
* Add InstCombine::visitFNeg(...)Cameron McInally2019-05-101-0/+9
* [InstCombine] Add new combine to add foldingRobert Lougher2019-05-071-1/+5
* [InstCombine] prevent possible miscompile with negate+sdiv of vector opSanjay Patel2019-04-091-3/+6
* [InstCombine] sdiv exact flag fixup.Chen Zheng2019-04-081-2/+5
* [InstCombine] form uaddsat from add+umin (PR14613)Sanjay Patel2019-03-261-0/+25
* [InstCombine] fold adds of constants separated by sext/zextSanjay Patel2019-02-281-8/+44
* [InstCombine] canonicalize add/sub with boolSanjay Patel2019-02-241-0/+6
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
* [InstCombine] Don't undo 0 - (X * Y) canonicalization when combining subs.Florian Hahn2019-01-151-4/+3
* [InstCombine] name change: foldShuffledBinop -> foldVectorBinop; NFCSanjay Patel2018-10-031-4/+4
* [InstCombine] Fold ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - ADavid Green2018-10-021-0/+33
* [InstCombine] Support (sub (sext x), (sext y)) --> (sext (sub x, y)) and (sub...Craig Topper2018-09-151-0/+3
* [InstCombine] refactor mul narrowing folds; NFCISanjay Patel2018-09-141-40/+1
* [InstCombine] add/use overflowing math helper functions; NFCSanjay Patel2018-09-141-3/+1
* [InstCombine] refactor add narrowing folds; NFCISanjay Patel2018-09-141-71/+43
* [InstCombine] Use dyn_cast instead of match(m_Constant). NFCCraig Topper2018-09-111-4/+2
* [InstCombine] Extend (add (sext x), cst) --> (sext (add x, cst')) and (add (z...Craig Topper2018-08-281-2/+4
* [InstCombine] Remove unused method FAddCombine::createFDiv(). NFCAndrea Di Biagio2018-08-171-8/+0
* [InstCombine] fix/enhance fadd/fsub factorizationSanjay Patel2018-08-121-87/+45
* [InstCombine] allow fsub+fmul FMF folds for vectorsSanjay Patel2018-08-091-0/+11
OpenPOWER on IntegriCloud