[llvm] [InstCombine] recognize missed i128 split optimization (PR #129363)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 1 01:54:55 PST 2025


================
@@ -3119,6 +3119,13 @@ static Value *matchOrConcat(Instruction &Or, InstCombiner::BuilderTy &Builder) {
       match(UpperSrc, m_BitReverse(m_Value(UpperBRev))))
     return ConcatIntrinsicCalls(Intrinsic::bitreverse, UpperBRev, LowerBRev);
 
+  Value *X;
+  if (match(LowerSrc, m_SExt(m_Value(X))) &&
+      match(UpperSrc,
+            m_SExt(m_AShr(m_Specific(X), m_SpecificInt(HalfWidth / 2 - 1))))) {
----------------
RKSimon wrote:

This might not be HalfWidth - it will be the the scalar size of X (-1)

https://github.com/llvm/llvm-project/pull/129363


More information about the llvm-commits mailing list