@@ -17,26 +17,25 @@ pub enum SmallEnum {
1717// CHECK-LABEL: @check_to_enum(
1818#[ no_mangle]
1919pub unsafe fn check_to_enum ( x : i8 ) -> SmallEnum {
20+ // CHECK-NOT: icmp
21+ // CHECK-NOT: assume
2022 // OPT: %0 = icmp uge i8 %x, 10
2123 // OPT: call void @llvm.assume(i1 %0)
2224 // OPT: %1 = icmp ule i8 %x, 12
2325 // OPT: call void @llvm.assume(i1 %1)
24- // DBG -NOT: icmp
25- // DBG -NOT: assume
26+ // CHECK -NOT: icmp
27+ // CHECK -NOT: assume
2628 // CHECK: ret i8 %x
2729
2830 transmute ( x)
2931}
3032
3133// CHECK-LABEL: @check_from_enum(
34+ // OPT-SAME: range(i8 10, 13){{.+}}%x
3235#[ no_mangle]
3336pub unsafe fn check_from_enum ( x : SmallEnum ) -> i8 {
34- // OPT: %0 = icmp uge i8 %x, 10
35- // OPT: call void @llvm.assume(i1 %0)
36- // OPT: %1 = icmp ule i8 %x, 12
37- // OPT: call void @llvm.assume(i1 %1)
38- // DBG-NOT: icmp
39- // DBG-NOT: assume
37+ // CHECK-NOT: icmp
38+ // CHECK-NOT: assume
4039 // CHECK: ret i8 %x
4140
4241 transmute ( x)
@@ -45,26 +44,25 @@ pub unsafe fn check_from_enum(x: SmallEnum) -> i8 {
4544// CHECK-LABEL: @check_to_ordering(
4645#[ no_mangle]
4746pub unsafe fn check_to_ordering ( x : u8 ) -> std:: cmp:: Ordering {
47+ // CHECK-NOT: icmp
48+ // CHECK-NOT: assume
4849 // OPT: %0 = icmp uge i8 %x, -1
4950 // OPT: %1 = icmp ule i8 %x, 1
5051 // OPT: %2 = or i1 %0, %1
5152 // OPT: call void @llvm.assume(i1 %2)
52- // DBG -NOT: icmp
53- // DBG -NOT: assume
53+ // CHECK -NOT: icmp
54+ // CHECK -NOT: assume
5455 // CHECK: ret i8 %x
5556
5657 transmute ( x)
5758}
5859
5960// CHECK-LABEL: @check_from_ordering(
61+ // OPT-SAME: range(i8 -1, 2){{.+}}%x
6062#[ no_mangle]
6163pub unsafe fn check_from_ordering ( x : std:: cmp:: Ordering ) -> u8 {
62- // OPT: %0 = icmp uge i8 %x, -1
63- // OPT: %1 = icmp ule i8 %x, 1
64- // OPT: %2 = or i1 %0, %1
65- // OPT: call void @llvm.assume(i1 %2)
66- // DBG-NOT: icmp
67- // DBG-NOT: assume
64+ // CHECK-NOT: icmp
65+ // CHECK-NOT: assume
6866 // CHECK: ret i8 %x
6967
7068 transmute ( x)
@@ -96,50 +94,50 @@ pub enum Minus100ToPlus100 {
9694}
9795
9896// CHECK-LABEL: @check_enum_from_char(
97+ // OPT-SAME: range(i32 0, 1114112){{.+}}%x
9998#[ no_mangle]
10099pub unsafe fn check_enum_from_char ( x : char ) -> Minus100ToPlus100 {
101- // OPT: %0 = icmp ule i32 %x, 1114111
102- // OPT: call void @llvm. assume(i1 %0)
103- // OPT: %1 = icmp uge i32 %x, -100
104- // OPT: %2 = icmp ule i32 %x, 100
105- // OPT: %3 = or i1 %1 , %2
106- // OPT: call void @llvm.assume(i1 %3 )
107- // DBG -NOT: icmp
108- // DBG -NOT: assume
100+ // CHECK-NOT: icmp
101+ // CHECK-NOT: assume
102+ // OPT: %0 = icmp uge i32 %x, -100
103+ // OPT: %1 = icmp ule i32 %x, 100
104+ // OPT: %2 = or i1 %0 , %1
105+ // OPT: call void @llvm.assume(i1 %2 )
106+ // CHECK -NOT: icmp
107+ // CHECK -NOT: assume
109108 // CHECK: ret i32 %x
110109
111110 transmute ( x)
112111}
113112
114113// CHECK-LABEL: @check_enum_to_char(
114+ // OPT-SAME: range(i32 -100, 101){{.+}}%x
115115#[ no_mangle]
116116pub unsafe fn check_enum_to_char ( x : Minus100ToPlus100 ) -> char {
117- // OPT: %0 = icmp uge i32 %x, -100
118- // OPT: %1 = icmp ule i32 %x, 100
119- // OPT: %2 = or i1 %0, %1
120- // OPT: call void @llvm.assume(i1 %2)
121- // OPT: %3 = icmp ule i32 %x, 1114111
122- // OPT: call void @llvm.assume(i1 %3)
123- // DBG-NOT: icmp
124- // DBG-NOT: assume
117+ // CHECK-NOT: icmp
118+ // CHECK-NOT: assume
119+ // OPT: %0 = icmp ule i32 %x, 1114111
120+ // OPT: call void @llvm.assume(i1 %0)
121+ // CHECK-NOT: icmp
122+ // CHECK-NOT: assume
125123 // CHECK: ret i32 %x
126124
127125 transmute ( x)
128126}
129127
130128// CHECK-LABEL: @check_swap_pair(
129+ // OPT-SAME: range(i32 0, 1114112){{.+}}%x.0
130+ // OPT-SAME: range(i32 1, 0){{.+}}%x.1
131131#[ no_mangle]
132132pub unsafe fn check_swap_pair ( x : ( char , NonZero < u32 > ) ) -> ( NonZero < u32 > , char ) {
133- // OPT: %0 = icmp ule i32 %x.0, 1114111
133+ // CHECK-NOT: icmp
134+ // CHECK-NOT: assume
135+ // OPT: %0 = icmp uge i32 %x.0, 1
134136 // OPT: call void @llvm.assume(i1 %0)
135- // OPT: %1 = icmp uge i32 %x.0, 1
137+ // OPT: %1 = icmp ule i32 %x.1, 1114111
136138 // OPT: call void @llvm.assume(i1 %1)
137- // OPT: %2 = icmp uge i32 %x.1, 1
138- // OPT: call void @llvm.assume(i1 %2)
139- // OPT: %3 = icmp ule i32 %x.1, 1114111
140- // OPT: call void @llvm.assume(i1 %3)
141- // DBG-NOT: icmp
142- // DBG-NOT: assume
139+ // CHECK-NOT: icmp
140+ // CHECK-NOT: assume
143141 // CHECK: %[[P1:.+]] = insertvalue { i32, i32 } poison, i32 %x.0, 0
144142 // CHECK: %[[P2:.+]] = insertvalue { i32, i32 } %[[P1]], i32 %x.1, 1
145143 // CHECK: ret { i32, i32 } %[[P2]]
@@ -148,34 +146,34 @@ pub unsafe fn check_swap_pair(x: (char, NonZero<u32>)) -> (NonZero<u32>, char) {
148146}
149147
150148// CHECK-LABEL: @check_bool_from_ordering(
149+ // OPT-SAME: range(i8 -1, 2){{.+}}%x
151150#[ no_mangle]
152151pub unsafe fn check_bool_from_ordering ( x : std:: cmp:: Ordering ) -> bool {
153- // OPT: %0 = icmp uge i8 %x, -1
154- // OPT: %1 = icmp ule i8 %x, 1
155- // OPT: %2 = or i1 %0, %1
156- // OPT: call void @llvm.assume(i1 %2)
157- // OPT: %3 = icmp ule i8 %x, 1
158- // OPT: call void @llvm.assume(i1 %3)
159- // DBG-NOT: icmp
160- // DBG-NOT: assume
152+ // CHECK-NOT: icmp
153+ // CHECK-NOT: assume
154+ // OPT: %0 = icmp ule i8 %x, 1
155+ // OPT: call void @llvm.assume(i1 %0)
156+ // CHECK-NOT: icmp
157+ // CHECK-NOT: assume
161158 // CHECK: %[[R:.+]] = trunc i8 %x to i1
162159 // CHECK: ret i1 %[[R]]
163160
164161 transmute ( x)
165162}
166163
167164// CHECK-LABEL: @check_bool_to_ordering(
165+ // OPT-SAME: i1 {{.+}} %x
168166#[ no_mangle]
169167pub unsafe fn check_bool_to_ordering ( x : bool ) -> std:: cmp:: Ordering {
170168 // CHECK: %_0 = zext i1 %x to i8
171- // OPT: %0 = icmp ule i8 %_0, 1
172- // OPT: call void @llvm. assume(i1 %0)
173- // OPT: %1 = icmp uge i8 %_0, -1
174- // OPT: %2 = icmp ule i8 %_0, 1
175- // OPT: %3 = or i1 %1 , %2
176- // OPT: call void @llvm.assume(i1 %3 )
177- // DBG -NOT: icmp
178- // DBG -NOT: assume
169+ // CHECK-NOT: icmp
170+ // CHECK-NOT: assume
171+ // OPT: %0 = icmp uge i8 %_0, -1
172+ // OPT: %1 = icmp ule i8 %_0, 1
173+ // OPT: %2 = or i1 %0 , %1
174+ // OPT: call void @llvm.assume(i1 %2 )
175+ // CHECK -NOT: icmp
176+ // CHECK -NOT: assume
179177 // CHECK: ret i8 %_0
180178
181179 transmute ( x)
0 commit comments