[llvm] [AARch64] Funnel Shift now uses rev32/rev64 instructions (PR #136707)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 22 09:05:25 PDT 2025
================
@@ -5679,6 +5679,14 @@ def : Pat<(v4i32 (bswap (v4i32 V128:$Rn))),
def : Pat<(v2i64 (bswap (v2i64 V128:$Rn))),
(v2i64 (REV64v16i8 (v2i64 V128:$Rn)))>;
+// Patterns for funnel shifts to be matched to equivalent REV instructions
+def : Pat<(v2i64 (or (v2i64 (AArch64vshl (v2i64 V128:$Rn), (i32 32))), (v2i64 (AArch64vlshr (v2i64 V128:$Rn), (i32 32))))),
----------------
davemgreen wrote:
Can you split this line to be a little shorter? It doesn't need to be too short, but maybe making the two `(v2i64 (AArch64vshl/AArch64vlshr ..` will help make it readable.
https://github.com/llvm/llvm-project/pull/136707
More information about the llvm-commits
mailing list