[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