[llvm] [ConstantFolding] Add folding for [de]interleave2, insert and extract (PR #141301)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 10 15:08:29 PDT 2025


================
@@ -3998,20 +3998,28 @@ ConstantFoldStructCall(StringRef Name, Intrinsic::ID IntrinsicID,
     if (!Vec)
       return nullptr;
 
-    unsigned NumElements =
-        cast<VectorType>(Vec->getType())->getElementCount().getKnownMinValue() /
-        2;
+    auto VecTy = cast<VectorType>(Vec->getType());
+    unsigned NumElements = VecTy->getElementCount().getKnownMinValue() / 2;
+
     SmallVector<Constant *, 4> Res0(NumElements), Res1(NumElements);
----------------
topperc wrote:

Sink this SmallVector below the ConstantAggregateZero case so we don't unnecessarily create it.

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


More information about the llvm-commits mailing list