[llvm] [VectorCombine][AArch64] Fold interleave of reversed deinterleave (PR #216308)
Gaƫtan Bossu via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 20 01:02:58 PDT 2026
================
@@ -5905,6 +5906,65 @@ bool VectorCombine::foldInsExtVectorToShuffle(Instruction &I) {
return true;
}
+/// Fold a reversed deinterleave with reversed field order to a vector reverse.
+/// i.e.
+/// interleaveN(reverse(deinterleaveN(X)[N-1]), ...,
+/// reverse(deinterleaveN(X)[0])) --> reverse(X).
+bool VectorCombine::foldInterleaveOfReversedDeinterleave(Instruction &I) {
----------------
gbossu wrote:
Would there be any way to integrate that within the new `foldDeinterleaveInterleavePair` introduced in https://github.com/llvm/llvm-project/pull/211022 or does that need to be a separate combine? Basically I'm wondering if vector.reverse can be considered safe by `IsSupportedElementwise`.
https://github.com/llvm/llvm-project/pull/216308
More information about the llvm-commits
mailing list