[llvm] [AArch64] Combine concat(binop, binop) into binop(concat, concat) (PR #89911)
Sjoerd Meijer via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 24 05:21:52 PDT 2024
================
@@ -5,9 +5,13 @@
define <8 x i16> @concat_add(<4 x i16> %a, <4 x i16> %b, <4 x i16> %c, <4 x i16> %d) {
; CHECK-LABEL: concat_add:
; CHECK: // %bb.0:
-; CHECK-NEXT: add v2.4h, v2.4h, v3.4h
-; CHECK-NEXT: add v0.4h, v0.4h, v1.4h
+; CHECK-NEXT: // kill: def $d1 killed $d1 def $q1
+; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
+; CHECK-NEXT: // kill: def $d3 killed $d3 def $q3
+; CHECK-NEXT: // kill: def $d2 killed $d2 def $q2
+; CHECK-NEXT: mov v1.d[1], v3.d[0]
; CHECK-NEXT: mov v0.d[1], v2.d[0]
+; CHECK-NEXT: add v0.8h, v0.8h, v1.8h
----------------
sjoerdmeijer wrote:
My guess is that this isn't faster than the old sequence because of the dependency. The other case below is clearly an improvement, so I guess overall this change is beneficial?
https://github.com/llvm/llvm-project/pull/89911
More information about the llvm-commits
mailing list