[llvm] [AArch64] recognise zip1/zip2 with flipped operands (PR #167235)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 9 13:11:26 PST 2025
================
@@ -355,48 +355,38 @@ define <8 x i16> @combine_v8i16_undef(<4 x i16> %0, <4 x i16> %1) {
ret <8 x i16> %3
}
-; FIXME: This could be zip1 too, 8,0,9,1... pattern is handled
define <16 x i8> @combine_v8i16_8first(<8 x i8> %0, <8 x i8> %1) {
; CHECK-SD-LABEL: combine_v8i16_8first:
; CHECK-SD: // %bb.0:
-; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1_q2
-; CHECK-SD-NEXT: adrp x8, .LCPI25_0
-; CHECK-SD-NEXT: fmov d2, d0
-; CHECK-SD-NEXT: ldr q3, [x8, :lo12:.LCPI25_0]
-; CHECK-SD-NEXT: tbl.16b v0, { v1, v2 }, v3
+; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0
+; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1
+; CHECK-SD-NEXT: zip1.16b v0, v0, v1
; CHECK-SD-NEXT: ret
;
; CHECK-GI-LABEL: combine_v8i16_8first:
; CHECK-GI: // %bb.0:
-; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q31_q0
-; CHECK-GI-NEXT: adrp x8, .LCPI25_0
-; CHECK-GI-NEXT: fmov d31, d1
-; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI25_0]
-; CHECK-GI-NEXT: tbl.16b v0, { v31, v0 }, v2
+; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
+; CHECK-GI-NEXT: // kill: def $d1 killed $d1 def $q1
+; CHECK-GI-NEXT: zip1.16b v0, v1, v0
----------------
davemgreen wrote:
???
https://github.com/llvm/llvm-project/pull/167235
More information about the llvm-commits
mailing list