[llvm] [LLVM][CodeGen][AArch64] Don't scalarise v8{f16,bf16} vsetcc operations. (PR #135398)
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 16 13:34:48 PDT 2025
================
@@ -514,61 +514,17 @@ define <8 x i16> @fptoui_i16(<8 x half> %a) #0 {
define <8 x i1> @test_fcmp_une(<8 x half> %a, <8 x half> %b) #0 {
; CHECK-CVT-LABEL: test_fcmp_une:
; CHECK-CVT: // %bb.0:
-; CHECK-CVT-NEXT: mov h2, v1.h[1]
-; CHECK-CVT-NEXT: mov h3, v0.h[1]
-; CHECK-CVT-NEXT: fcvt s4, h1
-; CHECK-CVT-NEXT: fcvt s5, h0
-; CHECK-CVT-NEXT: mov h6, v1.h[2]
-; CHECK-CVT-NEXT: fcvt s2, h2
-; CHECK-CVT-NEXT: fcvt s3, h3
-; CHECK-CVT-NEXT: fcmp s3, s2
-; CHECK-CVT-NEXT: mov h2, v0.h[2]
-; CHECK-CVT-NEXT: mov h3, v1.h[3]
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: fcmp s5, s4
-; CHECK-CVT-NEXT: fcvt s5, h6
-; CHECK-CVT-NEXT: fcvt s2, h2
-; CHECK-CVT-NEXT: mov h4, v0.h[3]
-; CHECK-CVT-NEXT: fcvt s3, h3
-; CHECK-CVT-NEXT: mov h6, v0.h[4]
-; CHECK-CVT-NEXT: csetm w9, ne
-; CHECK-CVT-NEXT: fcmp s2, s5
-; CHECK-CVT-NEXT: fmov s2, w9
-; CHECK-CVT-NEXT: fcvt s4, h4
-; CHECK-CVT-NEXT: mov h5, v1.h[4]
-; CHECK-CVT-NEXT: fcvt s6, h6
-; CHECK-CVT-NEXT: mov v2.h[1], w8
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: fcmp s4, s3
-; CHECK-CVT-NEXT: mov h3, v1.h[5]
-; CHECK-CVT-NEXT: mov h4, v0.h[5]
-; CHECK-CVT-NEXT: fcvt s5, h5
-; CHECK-CVT-NEXT: mov v2.h[2], w8
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: fcvt s3, h3
-; CHECK-CVT-NEXT: fcvt s4, h4
-; CHECK-CVT-NEXT: fcmp s6, s5
-; CHECK-CVT-NEXT: mov h5, v1.h[6]
-; CHECK-CVT-NEXT: mov h6, v0.h[6]
-; CHECK-CVT-NEXT: mov h1, v1.h[7]
-; CHECK-CVT-NEXT: mov h0, v0.h[7]
-; CHECK-CVT-NEXT: mov v2.h[3], w8
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: fcmp s4, s3
-; CHECK-CVT-NEXT: fcvt s3, h5
-; CHECK-CVT-NEXT: fcvt s4, h6
-; CHECK-CVT-NEXT: fcvt s1, h1
-; CHECK-CVT-NEXT: fcvt s0, h0
-; CHECK-CVT-NEXT: mov v2.h[4], w8
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: fcmp s4, s3
-; CHECK-CVT-NEXT: mov v2.h[5], w8
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: fcmp s0, s1
-; CHECK-CVT-NEXT: mov v2.h[6], w8
-; CHECK-CVT-NEXT: csetm w8, ne
-; CHECK-CVT-NEXT: mov v2.h[7], w8
-; CHECK-CVT-NEXT: xtn v0.8b, v2.8h
+; CHECK-CVT-NEXT: fcvtl2 v2.4s, v1.8h
+; CHECK-CVT-NEXT: fcvtl2 v3.4s, v0.8h
+; CHECK-CVT-NEXT: fcvtl v1.4s, v1.4h
+; CHECK-CVT-NEXT: fcvtl v0.4s, v0.4h
+; CHECK-CVT-NEXT: fcmeq v2.4s, v3.4s, v2.4s
+; CHECK-CVT-NEXT: fcmeq v0.4s, v0.4s, v1.4s
+; CHECK-CVT-NEXT: uzp1 v0.8h, v0.8h, v2.8h
+; CHECK-CVT-NEXT: mvn v0.16b, v0.16b
+; CHECK-CVT-NEXT: shl v0.8h, v0.8h, #15
+; CHECK-CVT-NEXT: cmlt v0.8h, v0.8h, #0
----------------
efriedma-quic wrote:
That's fine.
https://github.com/llvm/llvm-project/pull/135398
More information about the llvm-commits
mailing list