[llvm] [AArch64][SVE] Lower scalar FP converts to SVE when Neon is unavailable (PR #112564)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 24 01:55:14 PDT 2024
================
@@ -472,20 +473,17 @@ define void @fcvtzu_v4f16_v4i64(ptr %a, ptr %b) {
; CHECK-LABEL: fcvtzu_v4f16_v4i64:
; CHECK: // %bb.0:
; CHECK-NEXT: ldr d0, [x0]
+; CHECK-NEXT: ptrue p0.d
; CHECK-NEXT: mov z1.h, z0.h[3]
; CHECK-NEXT: mov z2.h, z0.h[2]
; CHECK-NEXT: mov z3.h, z0.h[1]
-; CHECK-NEXT: fcvtzu x10, h0
-; CHECK-NEXT: fcvtzu x8, h1
-; CHECK-NEXT: fcvtzu x9, h2
-; CHECK-NEXT: fcvtzu x11, h3
-; CHECK-NEXT: fmov d2, x10
-; CHECK-NEXT: fmov d0, x8
-; CHECK-NEXT: fmov d1, x9
-; CHECK-NEXT: zip1 z0.d, z1.d, z0.d
-; CHECK-NEXT: fmov d1, x11
+; CHECK-NEXT: fcvtzu z0.d, p0/m, z0.h
+; CHECK-NEXT: fcvtzu z1.d, p0/m, z1.h
+; CHECK-NEXT: fcvtzu z2.d, p0/m, z2.h
+; CHECK-NEXT: fcvtzu z3.d, p0/m, z3.h
; CHECK-NEXT: zip1 z1.d, z2.d, z1.d
-; CHECK-NEXT: stp q1, q0, [x1]
+; CHECK-NEXT: zip1 z0.d, z0.d, z3.d
+; CHECK-NEXT: stp q0, q1, [x1]
; CHECK-NEXT: ret
----------------
sdesmalen-arm wrote:
Very nice!
https://github.com/llvm/llvm-project/pull/112564
More information about the llvm-commits
mailing list