summaryrefslogtreecommitdiff
path: root/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
AgeCommit message (Expand)AuthorFilesLines
2014-11-22InstCombine: Propagate exact for (sdiv X, Pow2) -> (udiv X, Pow2)David Majnemer1-2/+4
2014-11-22InstCombine: Propagate exact for (sdiv X, Y) -> (udiv X, Y)David Majnemer1-1/+3
2014-11-22InstCombine: Propagate exact for (sdiv -X, C) -> (sdiv X, -C)David Majnemer1-4/+6
2014-11-22InstCombine: Propagate exact in (udiv (lshr X,C1),C2) -> (udiv x,C1<<C2)David Majnemer1-2/+7
2014-11-22InstCombine: Propagate NSW/NUW for X*(1<<Y) -> X<<YDavid Majnemer1-4/+17
2014-11-22InstCombine: Propagate NSW for -X * -Y -> X * YDavid Majnemer1-3/+10
2014-11-22InstCombine: Preserve nsw when folding X*(2^C) -> X << CDavid Majnemer1-0/+2
2014-11-22InstCombine: Preserve nsw/nuw for ((X << C2)*C1) -> (X * (C1 << C2))David Majnemer1-3/+12
2014-11-22InstCombine: Preserve nsw for (mul %V, -1) -> (sub 0, %V)David Majnemer1-2/+7
2014-10-14InstCombine: Don't miscompile X % ((Pow2 << A) >>u B)David Majnemer1-7/+4
2014-10-14fix formatting; NFCSanjay Patel1-33/+25
2014-10-13InstCombine: Fix miscompile in X % -Y -> X % Y transformDavid Majnemer1-6/+6
2014-10-13InstCombine: Don't miscompile (x lshr C1) udiv C2David Majnemer1-4/+10
2014-10-12InstCombine: Simplify commonIDivTransformsDavid Majnemer1-86/+76
2014-10-11InstCombine: Don't fold (X <<s log(INT_MIN)) /s INT_MIN to XDavid Majnemer1-1/+2
2014-10-11InstCombine, InstSimplify: (%X /s C1) /s C2 isn't always 0 when C1 * C2 overflowDavid Majnemer1-5/+4
2014-10-11InstCombine: mul to shl shouldn't preserve nswDavid Majnemer1-2/+0
2014-10-07Reformat if statement to comply with LLVM standards. NFC.Suyog Sarda1-2/+4
2014-10-07Reformat to comply with LLVM coding standards using clang-format.Suyog Sarda1-5/+4
2014-10-07[InstCombine] Reformat if statements to comply with LLVM Coding Standards.Tilmann Scheller1-2/+6
2014-10-02Optimize square root squared (PR21126).Sanjay Patel1-0/+5
2014-10-02Use the local variable that other clauses around here are already using.Sanjay Patel1-1/+1
2014-09-07Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.)Hal Finkel1-20/+27
2014-08-30InstCombine: Respect recursion depth in visitUDivOperandDavid Majnemer1-4/+4
2014-08-17Remove an InstCombine that transformed patterns like (x * uitofp i1 y) to (se...Owen Anderson1-30/+0
2014-08-16InstCombine: Combine mul with div.David Majnemer1-2/+75
2014-07-02InstCombine: Optimize x/INT_MIN to x==INT_MINDavid Majnemer1-0/+4
2014-06-19InstCombine: Stop two transforms duelingDavid Majnemer1-2/+5
2014-05-14Optimize integral reciprocal (udiv 1, x and sdiv 1, x) to not use division. T...Nick Lewycky1-1/+20
2014-05-11Reorder shuffle and binary operation.Serge Pavlov1-0/+24
2014-04-25[C++] Use 'nullptr'. Transforms edition.Craig Topper1-40/+41
2014-04-22[Modules] Fix potential ODR violations by sinking the DEBUG_TYPEChandler Carruth1-1/+2
2014-04-21[Modules] Sink all the DEBUG_TYPE defines for InstCombine out of theChandler Carruth1-0/+1
2014-03-04[Modules] Move the LLVM IR pattern match header into the IR library, itChandler Carruth1-1/+1
2014-02-21Rename many DataLayout variables from TD to DL.Rafael Espindola1-8/+8
2014-01-20Fix all the remaining lost-fast-math-flags bugs I've been able to find. The ...Owen Anderson1-0/+10
2014-01-19InstCombine: Teach most integer add/sub/mul/div combines how to deal with vec...Benjamin Kramer1-21/+22
2014-01-19InstCombine: Refactor fmul/fdiv combines to handle vectors.Benjamin Kramer1-64/+77
2014-01-18InstCombine: Make the (fmul X, -1.0) -> (fsub -0.0, X) transform handle vecto...Benjamin Kramer1-6/+4
2014-01-16Fix an instance where we would drop fast math flags when performing an fdiv t...Owen Anderson1-1/+3
2014-01-16Fix a bug in InstCombine where we failed to preserve fast math flags when opt...Owen Anderson1-2/+5
2014-01-16Teach InstCombine that (fmul X, -1.0) can be simplified to (fneg X), which LL...Owen Anderson1-0/+10
2013-09-30InstCombine: Replace manual fast math flag copying with the new IRBuilder RAI...Benjamin Kramer1-22/+20
2013-09-30Fix a bug in InstCombine where it attempted to cast a Value* to an Instruction*Joey Gouly1-2/+2
2013-09-19[Fast-math] Disable "(C1/X)*C2 => (C1*C2)/X" if C1/X has multiple uses.Shuxin Yang1-3/+6
2013-07-26Correct case of m_UIToFp to m_UIToFP to match instruction name, add m_SIToFP ...Stephen Lin1-4/+4
2013-07-20InstCombine: call FoldOpIntoSelect for all floating binops, not just fmulStephen Lin1-0/+9
2013-07-17Restore r181216, which was partially reverted in r182499.Stephen Lin1-0/+29
2013-07-13Add a microoptimization for urem.Nick Lewycky1-0/+7
2013-07-04InstCombine: Reimplementation of visitUDivOperandDavid Majnemer1-56/+139