You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
; Ensure we use the CC result of SVE compare instructions when branching.
4
5
definevoid@sve_cmplt_setcc(<vscale x 8 x i16>* %out, <vscale x 8 x i16> %in, <vscale x 8 x i1> %pg) {
5
-
; CHECK-LABEL: @sve_cmplt_setcc
6
-
; CHECK: cmplt p1.h, p0/z, z0.h, #0
7
-
; CHECK-NEXT: b.eq
6
+
; CHECK-LABEL: sve_cmplt_setcc:
7
+
; CHECK: // %bb.0: // %entry
8
+
; CHECK-NEXT: cmplt p1.h, p0/z, z0.h, #0
9
+
; CHECK-NEXT: b.eq .LBB0_2
10
+
; CHECK-NEXT: // %bb.1: // %if.then
11
+
; CHECK-NEXT: st1h { z0.h }, p0, [x0]
12
+
; CHECK-NEXT: .LBB0_2: // %if.end
13
+
; CHECK-NEXT: ret
8
14
entry:
9
15
%0 = tailcall <vscale x 8 x i1> @llvm.aarch64.sve.cmplt.wide.nxv8i16(<vscale x 8 x i1> %pg, <vscale x 8 x i16> %in, <vscale x 2 x i64> zeroinitializer)
10
16
%1 = tailcalli1@llvm.aarch64.sve.ptest.any.nxv8i1(<vscale x 8 x i1> %pg, <vscale x 8 x i1> %0)
@@ -20,9 +26,14 @@ if.end:
20
26
21
27
; Ensure we use the inverted CC result of SVE compare instructions when branching.
22
28
definevoid@sve_cmplt_setcc_inverted(<vscale x 8 x i16>* %out, <vscale x 8 x i16> %in, <vscale x 8 x i1> %pg) {
23
-
; CHECK-LABEL: @sve_cmplt_setcc_inverted
24
-
; CHECK: cmplt p1.h, p0/z, z0.h, #0
25
-
; CHECK-NEXT: b.ne
29
+
; CHECK-LABEL: sve_cmplt_setcc_inverted:
30
+
; CHECK: // %bb.0: // %entry
31
+
; CHECK-NEXT: cmplt p1.h, p0/z, z0.h, #0
32
+
; CHECK-NEXT: b.ne .LBB1_2
33
+
; CHECK-NEXT: // %bb.1: // %if.then
34
+
; CHECK-NEXT: st1h { z0.h }, p0, [x0]
35
+
; CHECK-NEXT: .LBB1_2: // %if.end
36
+
; CHECK-NEXT: ret
26
37
entry:
27
38
%0 = tailcall <vscale x 8 x i1> @llvm.aarch64.sve.cmplt.wide.nxv8i16(<vscale x 8 x i1> %pg, <vscale x 8 x i16> %in, <vscale x 2 x i64> zeroinitializer)
28
39
%1 = tailcalli1@llvm.aarch64.sve.ptest.any.nxv8i1(<vscale x 8 x i1> %pg, <vscale x 8 x i1> %0)
@@ -38,9 +49,14 @@ if.end:
38
49
39
50
; Ensure we combine setcc and csel so as to not end up with an extra compare
40
51
definevoid@sve_cmplt_setcc_hslo(<vscale x 8 x i16>* %out, <vscale x 8 x i16> %in, <vscale x 8 x i1> %pg) {
41
-
; CHECK-LABEL: @sve_cmplt_setcc_hslo
42
-
; CHECK: cmplt p1.h, p0/z, z0.h, #0
43
-
; CHECK-NEXT: b.hs
52
+
; CHECK-LABEL: sve_cmplt_setcc_hslo:
53
+
; CHECK: // %bb.0: // %entry
54
+
; CHECK-NEXT: cmplt p1.h, p0/z, z0.h, #0
55
+
; CHECK-NEXT: b.hs .LBB2_2
56
+
; CHECK-NEXT: // %bb.1: // %if.then
57
+
; CHECK-NEXT: st1h { z0.h }, p0, [x0]
58
+
; CHECK-NEXT: .LBB2_2: // %if.end
59
+
; CHECK-NEXT: ret
44
60
entry:
45
61
%0 = tailcall <vscale x 8 x i1> @llvm.aarch64.sve.cmplt.wide.nxv8i16(<vscale x 8 x i1> %pg, <vscale x 8 x i16> %in, <vscale x 2 x i64> zeroinitializer)
46
62
%1 = tailcalli1@llvm.aarch64.sve.ptest.last.nxv8i1(<vscale x 8 x i1> %pg, <vscale x 8 x i1> %0)
0 commit comments