[llvm] [InstSimplify] fold the identity interleave (PR #206646)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 5 11:16:39 PDT 2026
================
@@ -7279,6 +7279,34 @@ static Value *simplifyBinaryIntrinsic(Intrinsic::ID IID, Type *ReturnType,
return nullptr;
}
+/// interleaveN(extractvalue(deinterleaveN(x), 0), ...,
+/// extractvalue(deinterleaveN(x), N-1)) --> x
+static Value *simplifyIdentityInterleave(Intrinsic::ID IID,
+ ArrayRef<Value *> Args) {
+ unsigned Factor = getInterleaveIntrinsicFactor(IID);
+ if (!Factor || Factor != Args.size())
+ return nullptr;
----------------
dtcxzyw wrote:
```suggestion
if (!Factor)
return nullptr;
assert(Factor == Args.size());
```
https://github.com/llvm/llvm-project/pull/206646
More information about the llvm-commits
mailing list