aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
AgeCommit message (Expand)AuthorFilesLines
9 hours[InstCombine] Set !prof metadata on Selects identified by add.ll test (#158743)Alan Zhao1-2/+2
12 days[PatternMatch] Introduce match functor (NFC) (#159386)Ramkumar Ramachandra1-6/+2
2025-09-12[InstCombine] Revert FSub optimization from #157757 (#158315)Vedant Paranjape1-10/+0
2025-09-12[InstCombine] Enable FAdd simplifications when user can ignore sign bit (#157...Vedant Paranjape1-0/+20
2025-09-12[InstCombine] Fold `min(X+1, Y) - min(X, Y) --> zext X < Y` (#157782)benwu251-0/+18
2025-09-10[InstCombine] Use intersectForOffsetAdd() in CommonPointerBase (#157851)Nikita Popov1-2/+14
2025-07-23[PatternMatch] Add support for capture-and-match (NFC) (#149825)Nikita Popov1-8/+7
2025-07-23[InstCombine] Add limit for expansion of gep chains (#147065)Nikita Popov1-1/+21
2025-07-08[InstCombine] Avoid unprofitable add with remainder transform (#147319)Nikita Popov1-1/+3
2025-07-04[InstCombine] Refine nuw propagation in `OptimizePointerDifference` (#147059)Yingwei Zheng1-3/+7
2025-06-30[InstCombine] Pull vector reverse through fneg (#146349)Luke Lau1-0/+6
2025-06-30[InstCombine] Pull unary shuffles through fneg/fabs (#144933)Luke Lau1-0/+5
2025-06-19[InstCombine] Optimize sub(sext(add(x,y)),sext(add(x,z))). (#144174)Slava Zakharin1-3/+48
2025-06-17InstCombine: improve optimizations for ceiling division with no overflow (#14...gaynor-anthropic1-0/+28
2025-06-13[InstCombine] Extract EmitGEPOffsets() helper (NFC)Nikita Popov1-21/+2
2025-06-13[InstCombine] Restore splat gep support in OptimizePointerDifference() (#143906)Nikita Popov1-3/+4
2025-06-12[InstCombine] Export logic for common base pointer (NFC)Nikita Popov1-16/+3
2025-06-12[InstCombine] Ensure Safe Handling of Flags in foldFNegIntoConstant (#94148)SahilPatidar1-2/+8
2025-06-10[InstCombine] Preserve flags for difference of gep chains (#143488)Nikita Popov1-4/+6
2025-06-10[InstCombine] Support nested GEPs in OptimizePointerDifference (#142958)Nikita Popov1-45/+92
2025-06-03[ValueTracking] Make Depth last default arg (NFC) (#142384)Ramkumar Ramachandra1-5/+5
2025-01-12[InstCombine] Fold (add (add A, 1), (sext (icmp ne A, 0))) to call umax(A, 1)...Ruhung1-0/+9
2025-01-06[InstCombine] Handle commuted pattern for `((X s/ C1) << C2) + X` (#121737)Yingwei Zheng1-11/+13
2025-01-06[IRBuilder] Refactor FMF interface (#121657)Yingwei Zheng1-12/+7
2024-12-13PatternMatch: migrate to CmpPredicate (#118534)Ramkumar Ramachandra1-4/+4
2024-12-10[InstCombine] Fold `(X & C1) - (X & C2) --> X & (C1 ^ C2)` if `(C1 & C2) == C...fengfeng1-0/+10
2024-12-04[InstCombine] Fix use after freeNikita Popov1-6/+7
2024-12-04[InstCombine] Preserve nuw in OptimizePointerDifferenceNikita Popov1-3/+5
2024-12-01[InstCombine] Fold `umax(X, C) + -C` into `usub.sat(X, C)` (#118195)Yingwei Zheng1-0/+6
2024-11-25[PatternMatch] Introduce m_c_Select (#114328)David Green1-3/+1
2024-11-19[InstCombine] Fix APInt ctor assertionNikita Popov1-7/+3
2024-11-18[InstCombine] Re-queue users of phi when nsw/nuw flags of add are inferred (#...Yingwei Zheng1-0/+9
2024-11-15[InstCombine] fold `sub(zext(ptrtoint),zext(ptrtoint))` (#115369)Nikolay Panchenko1-0/+17
2024-10-11[NFC] Rename `Intrinsic::getDeclaration` to `getOrInsertDeclaration` (#111752)Rahul Joshi1-3/+4
2024-08-27[InstCombine] Simplify `(add/sub (sub/add) (sub/add))` irrelivant of use-countNoah Goldstein1-0/+51
2024-08-21[InstCombine] Fold `sext(A < B) + zext(A > B)` into `ucmp/scmp(A, B)` (#103833)Volodymyr Vasylkun1-0/+20
2024-08-21[InstCombine] Remove some of the complexity-based canonicalization (#91185)Nikita Popov1-1/+3
2024-08-16[InstCombine] Preserve nsw in A + -B foldNikita Popov1-2/+6
2024-07-29[PatternMatch] Use `m_SpecificCmp` matchers. NFC. (#100878)Yingwei Zheng1-6/+6
2024-07-12[InstCombine] Fold (zext (X +nuw C)) + -C --> zext(X) when zext has additiona...Craig Topper1-4/+9
2024-06-08[InstCombine] Preserve the nsw/nuw flags for (X | Op01C) + Op1C --> X + (Op01...csstormq1-2/+8
2024-06-01[InstCombine] Fold `(add X, (sext/zext (icmp eq X, C)))`Noah Goldstein1-0/+18
2024-05-09[InstCombine] Handle more commuted cases in matchesSquareSum()Nikita Popov1-10/+10
2024-04-26[InstCombine] Fix use-after-free in OptimizePointerDifference()Nikita Popov1-3/+6
2024-04-26[InstCombine] Allow multi-use OptimizePointerDifference() with two GEPs (#90017)Nikita Popov1-22/+6
2024-04-25[InstCombine] Fold fneg over select (#89947)Yingwei Zheng1-0/+10
2024-04-24[InstCombine] Simplify `(X / C0) * C1 + (X % C0) * C2` to `(X / C0) * (C1 - C...Yingwei Zheng1-0/+29
2024-04-19[InstCombine] Regard zext nneg as sext when folding add(zext neg(add)) (#88887)ZelinMa5571-3/+3
2024-04-18[IR][PatternMatch] Only accept poison in getSplatValue() (#89159)Nikita Popov1-2/+2
2024-04-17[InstCombine] Don't use dominating conditions to transform sub into xor. (#88...Craig Topper1-2/+4