[llvm] [AArch64] Tablegen patterns for `shuffle(zext(...))` to `uaddlp` (PR #195120)

David Green via llvm-commits llvm-commits at lists.llvm.org
Fri May 1 10:00:11 PDT 2026


================
@@ -8660,6 +8661,25 @@ def : Pat<(add (v2i64 (zext (v2i32 (AArch64zip1 (v2i32 (extract_subvector v4i32:
                                          (v2i32 (extract_subvector v4i32:$src, (i64 2)))))))),
           (UADDLPv4i32_v2i64 V128:$src)>;
 
+// zext + shuffle
+def : Pat<(add (AArch64uzp1 (v8i16 (zext (v8i8 (extract_subvector v16i8:$src, (i64 0))))),
----------------
davemgreen wrote:

Use add_like here? I think the pattern should apply to `disjoint or` at the moment, even if they could be optimized differently.

Are you interested in adding equivalent sext patterns too? They could be left till later but should be pretty similar I believe.

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


More information about the llvm-commits mailing list