Skip to content

Commit 8702dd1

Browse files
Update boolean-patterns.ll
1 parent 0a7dea9 commit 8702dd1

File tree

1 file changed

+63
-9
lines changed

1 file changed

+63
-9
lines changed
Lines changed: 63 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,85 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
12
; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 | FileCheck %s
23
; RUN: %if ptxas %{ llc < %s -march=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
34

4-
; CHECK-LABEL: m2and_rr
5+
target triple = "nvptx64-nvidia-cuda"
6+
57
define i1 @m2and_rr(i1 %a, i1 %b) {
6-
; CHECK: and.pred %p{{[0-9]+}}, %p{{[0-9]+}}, %p{{[0-9]+}}
7-
; CHECK-NOT: mul
8+
; CHECK-LABEL: m2and_rr(
9+
; CHECK: {
10+
; CHECK-NEXT: .reg .pred %p<4>;
11+
; CHECK-NEXT: .reg .b16 %rs<5>;
12+
; CHECK-NEXT: .reg .b32 %r<2>;
13+
; CHECK-EMPTY:
14+
; CHECK-NEXT: // %bb.0:
15+
; CHECK-NEXT: ld.param.u8 %rs1, [m2and_rr_param_1];
16+
; CHECK-NEXT: and.b16 %rs2, %rs1, 1;
17+
; CHECK-NEXT: setp.eq.b16 %p1, %rs2, 1;
18+
; CHECK-NEXT: ld.param.u8 %rs3, [m2and_rr_param_0];
19+
; CHECK-NEXT: and.b16 %rs4, %rs3, 1;
20+
; CHECK-NEXT: setp.eq.b16 %p2, %rs4, 1;
21+
; CHECK-NEXT: and.pred %p3, %p2, %p1;
22+
; CHECK-NEXT: selp.u32 %r1, 1, 0, %p3;
23+
; CHECK-NEXT: st.param.b32 [func_retval0+0], %r1;
24+
; CHECK-NEXT: ret;
825
%r = mul i1 %a, %b
926
ret i1 %r
1027
}
1128

12-
; CHECK-LABEL: m2and_ri
1329
define i1 @m2and_ri(i1 %a) {
14-
; CHECK-NOT: mul
30+
; CHECK-LABEL: m2and_ri(
31+
; CHECK: {
32+
; CHECK-NEXT: .reg .b32 %r<3>;
33+
; CHECK-EMPTY:
34+
; CHECK-NEXT: // %bb.0:
35+
; CHECK-NEXT: ld.param.u8 %r1, [m2and_ri_param_0];
36+
; CHECK-NEXT: and.b32 %r2, %r1, 1;
37+
; CHECK-NEXT: st.param.b32 [func_retval0+0], %r2;
38+
; CHECK-NEXT: ret;
1539
%r = mul i1 %a, 1
1640
ret i1 %r
1741
}
1842

19-
; CHECK-LABEL: select2or
2043
define i1 @select2or(i1 %a, i1 %b) {
21-
; CHECK: or.pred %p{{[0-9]+}}, %p{{[0-9]+}}, %p{{[0-9]+}}
44+
; CHECK-LABEL: select2or(
45+
; CHECK: {
46+
; CHECK-NEXT: .reg .pred %p<4>;
47+
; CHECK-NEXT: .reg .b16 %rs<5>;
48+
; CHECK-NEXT: .reg .b32 %r<2>;
49+
; CHECK-EMPTY:
50+
; CHECK-NEXT: // %bb.0:
51+
; CHECK-NEXT: ld.param.u8 %rs1, [select2or_param_1];
52+
; CHECK-NEXT: and.b16 %rs2, %rs1, 1;
53+
; CHECK-NEXT: setp.eq.b16 %p1, %rs2, 1;
54+
; CHECK-NEXT: ld.param.u8 %rs3, [select2or_param_0];
55+
; CHECK-NEXT: and.b16 %rs4, %rs3, 1;
56+
; CHECK-NEXT: setp.eq.b16 %p2, %rs4, 1;
57+
; CHECK-NEXT: or.pred %p3, %p2, %p1;
58+
; CHECK-NEXT: selp.u32 %r1, 1, 0, %p3;
59+
; CHECK-NEXT: st.param.b32 [func_retval0+0], %r1;
60+
; CHECK-NEXT: ret;
2261
%r = select i1 %a, i1 1, i1 %b
2362
ret i1 %r
2463
}
2564

26-
; CHECK-LABEL: select2and
2765
define i1 @select2and(i1 %a, i1 %b) {
28-
; CHECK: and.pred %p{{[0-9]+}}, %p{{[0-9]+}}, %p{{[0-9]+}}
66+
; CHECK-LABEL: select2and(
67+
; CHECK: {
68+
; CHECK-NEXT: .reg .pred %p<4>;
69+
; CHECK-NEXT: .reg .b16 %rs<5>;
70+
; CHECK-NEXT: .reg .b32 %r<2>;
71+
; CHECK-EMPTY:
72+
; CHECK-NEXT: // %bb.0:
73+
; CHECK-NEXT: ld.param.u8 %rs1, [select2and_param_1];
74+
; CHECK-NEXT: and.b16 %rs2, %rs1, 1;
75+
; CHECK-NEXT: setp.eq.b16 %p1, %rs2, 1;
76+
; CHECK-NEXT: ld.param.u8 %rs3, [select2and_param_0];
77+
; CHECK-NEXT: and.b16 %rs4, %rs3, 1;
78+
; CHECK-NEXT: setp.eq.b16 %p2, %rs4, 1;
79+
; CHECK-NEXT: and.pred %p3, %p2, %p1;
80+
; CHECK-NEXT: selp.u32 %r1, 1, 0, %p3;
81+
; CHECK-NEXT: st.param.b32 [func_retval0+0], %r1;
82+
; CHECK-NEXT: ret;
2983
%r = select i1 %a, i1 %b, i1 0
3084
ret i1 %r
3185
}

0 commit comments

Comments
 (0)