summaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
AgeCommit message (Expand)Author
2025-10-10[NFC][InstCombine] Make use of `unknown` profile info clear in the API name (...Mircea Trofin
2025-09-29[InstCombine] Set !prof metadata on Selects identified by add.ll test (#158743)Alan Zhao
2025-06-03[ValueTracking] Make Depth last default arg (NFC) (#142384)Ramkumar Ramachandra
2025-04-29[InstCombine] Infer exact for lshr by cttz (#136696)黃國庭
2025-02-18[InstCombine] Fold shift+cttz with power of 2 operands (#127055)Matthew Devereau
2025-01-24[NFC][DebugInfo] Use iterator moveBefore at many call-sites (#123583)Jeremy Morse
2024-12-05[InstCombine] Prevent infinite loop with two shifts (#118806)Maurice Heumann
2024-09-06 [InstCombine] Fold `[l|a]shr iN (X-1)&~X, N-1 -> [z|s]ext(X==0)` (#107259)Yingwei Zheng
2024-08-15[InstCombine] Fold `ucmp/scmp(x, y) >> N` to `zext/sext(x < y)` when N is one...Volodymyr Vasylkun
2024-06-27[PatternMatch] Use m_Not instead of m_c_Xor with m_AllOnes() (#96837)AtariDreams
2024-06-18[InstCombine] Avoid use of ConstantExpr::getShl()Nikita Popov
2024-06-17[InstCombine] simplify average of lsb (#95684)c8ef
2024-06-08[InstCombine] Propagate flags when folding consecutative shiftsNoah Goldstein
2024-06-03Reland "[InstCombine] Fold (sub nuw X, (Y << nuw Z)) >>u exact Z --> (X >>u e...AtariDreams
2024-05-30[InstCombine] lshr (mul (X, 2^N + 1)), N -> X when X is half-width (#93677)AtariDreams
2024-05-29Reapply [InstCombine] lshr (mul (X, 2^N + 1)), N -> add (X, lshr(X, N)) (#92907)AtariDreams
2024-05-27Revert "[InstCombine] lshr (mul (X, 2^N + 1)), N -> add (X, lshr(X, N)) (#929...Nikita Popov
2024-05-27Revert "[InstCombine] Add reverse of ((X << nuw Z) sub nuw Y) >>u exact Z -->...Nikita Popov
2024-05-26[InstCombine] Add reverse of ((X << nuw Z) sub nuw Y) >>u exact Z --> X sub n...AtariDreams
2024-05-26[InstCombine] Propagate disjoint flags during shl-binop transform (#91333)AtariDreams
2024-05-26[InstCombine] lshr (mul (X, 2^N + 1)), N -> add (X, lshr(X, N)) (#92907)AtariDreams
2024-05-09[InstCombine] Fix comment from #88193 (NFC) (#91427)AtariDreams
2024-05-07[InstCombine] Fold ((X << nuw Z) binop nuw Y) >>u Z --> X binop nuw (Y >>u Z)...AtariDreams
2024-04-25[InstCombine] Remove redundant shift folds (NFCI) (#90016)Nikita Popov
2024-04-18[IR][PatternMatch] Only accept poison in getSplatValue() (#89159)Nikita Popov
2024-03-21[InstCombine] integrate `N{U,S}WAddLike` into existing foldsNoah Goldstein
2024-02-13[InstCombine] Extend `(lshr/shl (shl/lshr -1, x), x)` -> `(lshr/shl -1, x)` f...Noah Goldstein
2024-01-26[InstCombine] Preserve nuw/nsw/exact flags when transforming (C shift (A add ...Craig Topper
2024-01-23[InstCombine] Remove one-use check if other logic operand is constant (#77973)AtariDreams
2023-12-04[InstCombine][InstSimplify] Pass `SimplifyQuery` to `computeKnownBits` direct...Yingwei Zheng
2023-11-20[InstCombine] Propagate NUW flags for `shl (lshr X, C1), C2 -> shl X, C2-C1` ...Yingwei Zheng
2023-11-18[InstCombine] Infer shift flags with unknown shamt (#72535)Yingwei Zheng
2023-11-17[InstCombine] Preserve NSW flags for `lshr (mul nuw X, C1), C2 -> mul nuw nsw...Yingwei Zheng
2023-11-16[InstCombine] Add exact flags for ext idiom `shr (shl X, Y), Y` (#72483)Yingwei Zheng
2023-11-16[InstCombine] Infer nsw flag for `(X <<nuw C1) >>u C --> X << (C1 - C)` (#72407)Yingwei Zheng
2023-11-13[InstCombine] Require ImmConstant in shift of shift foldNikita Popov
2023-11-10[InstCombine] Require immediate constant in canEvaluateShifted()Nikita Popov
2023-11-10[InstCombine] Avoid uses of ConstantExpr::getLShr()Nikita Popov
2023-10-12[InstCombine] Improve logic for adding flags to shift instructions.Noah Goldstein
2023-09-29[InstCombine] Avoid use of ConstantExpr::getZExtOrBitcast() (NFC)Nikita Popov
2023-09-28[InstCombine] Avoid use of ConstantExpr::getZExt() (NFC)Nikita Popov
2023-09-11[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombineJeremy Morse
2023-06-01[InstCombine] Remove old add in foldLShrOverflowBit()Nikita Popov
2023-03-06[InstCombine] Transform `(shift X,Or(Y,BitWidth-1))` -> `(shift X,BitWidth-1)`Noah Goldstein
2023-02-19Use APInt::count{l,r}_{zero,one} (NFC)Kazu Hirata
2023-02-19[InstCombine] canonicalize "extract lowest set bit" away from cttz intrinsicSanjay Patel
2023-01-27Recommit "Reorder (shl (add/sub (shl x, C0), y), C1) -> (add/sub (shl x, C0 +...Noah Goldstein
2023-01-27Revert "Reorder (shl (add/sub (shl x, C0), y), C1) -> (add/sub (shl x, C0 + C...Noah Goldstein
2023-01-27Reorder (shl (add/sub (shl x, C0), y), C1) -> (add/sub (shl x, C0 + C1), (shl...Noah Goldstein
2023-01-18[InstCombine] simplify code for matching shift-logic-shift pattern; NFCSanjay Patel