13
13
; Basic tests
14
14
; ==============================================================================
15
15
define i1 @eq_basic (i8 %x , i8 %y ) {
16
- ; CHECK-LABEL: define i1 @eq_basic
17
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
16
+ ; CHECK-LABEL: define i1 @eq_basic(
17
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
18
18
; CHECK-NEXT: [[TMP1:%.*]] = add i8 [[X]], -1
19
19
; CHECK-NEXT: [[OR:%.*]] = icmp uge i8 [[TMP1]], [[Y]]
20
20
; CHECK-NEXT: ret i1 [[OR]]
@@ -26,8 +26,8 @@ define i1 @eq_basic(i8 %x, i8 %y) {
26
26
}
27
27
28
28
define i1 @ne_basic_equal_5 (i8 %x , i8 %y ) {
29
- ; CHECK-LABEL: define i1 @ne_basic_equal_5
30
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
29
+ ; CHECK-LABEL: define i1 @ne_basic_equal_5(
30
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
31
31
; CHECK-NEXT: [[TMP1:%.*]] = add i8 [[X]], -6
32
32
; CHECK-NEXT: [[AND:%.*]] = icmp ult i8 [[TMP1]], [[Y]]
33
33
; CHECK-NEXT: ret i1 [[AND]]
@@ -40,8 +40,8 @@ define i1 @ne_basic_equal_5(i8 %x, i8 %y) {
40
40
}
41
41
42
42
define i1 @eq_basic_equal_minus_1 (i8 %x , i8 %y ) {
43
- ; CHECK-LABEL: define i1 @eq_basic_equal_minus_1
44
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
43
+ ; CHECK-LABEL: define i1 @eq_basic_equal_minus_1(
44
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
45
45
; CHECK-NEXT: [[OR:%.*]] = icmp uge i8 [[X]], [[Y]]
46
46
; CHECK-NEXT: ret i1 [[OR]]
47
47
;
@@ -53,8 +53,8 @@ define i1 @eq_basic_equal_minus_1(i8 %x, i8 %y) {
53
53
}
54
54
55
55
define i1 @ne_basic_equal_minus_7 (i8 %x , i8 %y ) {
56
- ; CHECK-LABEL: define i1 @ne_basic_equal_minus_7
57
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
56
+ ; CHECK-LABEL: define i1 @ne_basic_equal_minus_7(
57
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
58
58
; CHECK-NEXT: [[TMP1:%.*]] = add i8 [[X]], 6
59
59
; CHECK-NEXT: [[AND:%.*]] = icmp ult i8 [[TMP1]], [[Y]]
60
60
; CHECK-NEXT: ret i1 [[AND]]
@@ -67,8 +67,8 @@ define i1 @ne_basic_equal_minus_7(i8 %x, i8 %y) {
67
67
}
68
68
69
69
define i1 @eq_basic_unequal (i8 %x , i8 %y ) {
70
- ; CHECK-LABEL: define i1 @eq_basic_unequal
71
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
70
+ ; CHECK-LABEL: define i1 @eq_basic_unequal(
71
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
72
72
; CHECK-NEXT: [[SUB:%.*]] = add i8 [[X]], -5
73
73
; CHECK-NEXT: [[C1:%.*]] = icmp eq i8 [[X]], 6
74
74
; CHECK-NEXT: [[C2:%.*]] = icmp ugt i8 [[SUB]], [[Y]]
@@ -83,8 +83,8 @@ define i1 @eq_basic_unequal(i8 %x, i8 %y) {
83
83
}
84
84
85
85
define i1 @ne_basic_unequal (i8 %x , i8 %y ) {
86
- ; CHECK-LABEL: define i1 @ne_basic_unequal
87
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
86
+ ; CHECK-LABEL: define i1 @ne_basic_unequal(
87
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
88
88
; CHECK-NEXT: [[ADD:%.*]] = add i8 [[X]], 7
89
89
; CHECK-NEXT: [[C1:%.*]] = icmp ne i8 [[X]], -4
90
90
; CHECK-NEXT: [[C2:%.*]] = icmp ule i8 [[ADD]], [[Y]]
@@ -102,8 +102,8 @@ define i1 @ne_basic_unequal(i8 %x, i8 %y) {
102
102
; Tests with multiple uses
103
103
; ==============================================================================
104
104
define i1 @eq_multi_c1 (i8 %x , i8 %y ) {
105
- ; CHECK-LABEL: define i1 @eq_multi_c1
106
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
105
+ ; CHECK-LABEL: define i1 @eq_multi_c1(
106
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
107
107
; CHECK-NEXT: [[C1:%.*]] = icmp eq i8 [[X]], 0
108
108
; CHECK-NEXT: [[TMP1:%.*]] = add i8 [[X]], -1
109
109
; CHECK-NEXT: [[OR:%.*]] = icmp uge i8 [[TMP1]], [[Y]]
@@ -118,8 +118,8 @@ define i1 @eq_multi_c1(i8 %x, i8 %y) {
118
118
}
119
119
120
120
define i1 @ne_multi_c2 (i8 %x , i8 %y ) {
121
- ; CHECK-LABEL: define i1 @ne_multi_c2
122
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[Y:%.*]]) {
121
+ ; CHECK-LABEL: define i1 @ne_multi_c2(
122
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[Y:%.*]]) {
123
123
; CHECK-NEXT: [[C2:%.*]] = icmp ule i8 [[X]], [[Y]]
124
124
; CHECK-NEXT: [[TMP1:%.*]] = add i8 [[X]], -1
125
125
; CHECK-NEXT: [[AND:%.*]] = icmp ult i8 [[TMP1]], [[Y]]
@@ -137,8 +137,8 @@ define i1 @ne_multi_c2(i8 %x, i8 %y) {
137
137
; Tests with vector types
138
138
; ==============================================================================
139
139
define <2 x i1 > @eq_vector (<2 x i8 > %x , <2 x i8 > %y ) {
140
- ; CHECK-LABEL: define <2 x i1> @eq_vector
141
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
140
+ ; CHECK-LABEL: define <2 x i1> @eq_vector(
141
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
142
142
; CHECK-NEXT: [[TMP1:%.*]] = add <2 x i8> [[X]], <i8 -1, i8 -1>
143
143
; CHECK-NEXT: [[OR:%.*]] = icmp uge <2 x i8> [[TMP1]], [[Y]]
144
144
; CHECK-NEXT: ret <2 x i1> [[OR]]
@@ -150,8 +150,8 @@ define <2 x i1> @eq_vector(<2 x i8> %x, <2 x i8> %y) {
150
150
}
151
151
152
152
define <2 x i1 > @ne_vector_equal_5 (<2 x i8 > %x , <2 x i8 > %y ) {
153
- ; CHECK-LABEL: define <2 x i1> @ne_vector_equal_5
154
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
153
+ ; CHECK-LABEL: define <2 x i1> @ne_vector_equal_5(
154
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
155
155
; CHECK-NEXT: [[TMP1:%.*]] = add <2 x i8> [[X]], <i8 -6, i8 -6>
156
156
; CHECK-NEXT: [[AND:%.*]] = icmp ult <2 x i8> [[TMP1]], [[Y]]
157
157
; CHECK-NEXT: ret <2 x i1> [[AND]]
@@ -164,8 +164,8 @@ define <2 x i1> @ne_vector_equal_5(<2 x i8> %x, <2 x i8> %y) {
164
164
}
165
165
166
166
define <2 x i1 > @eq_vector_equal_minus_1 (<2 x i8 > %x , <2 x i8 > %y ) {
167
- ; CHECK-LABEL: define <2 x i1> @eq_vector_equal_minus_1
168
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
167
+ ; CHECK-LABEL: define <2 x i1> @eq_vector_equal_minus_1(
168
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
169
169
; CHECK-NEXT: [[OR:%.*]] = icmp uge <2 x i8> [[X]], [[Y]]
170
170
; CHECK-NEXT: ret <2 x i1> [[OR]]
171
171
;
@@ -177,8 +177,8 @@ define <2 x i1> @eq_vector_equal_minus_1(<2 x i8> %x, <2 x i8> %y) {
177
177
}
178
178
179
179
define <2 x i1 > @ne_vector_equal_minus_7 (<2 x i8 > %x , <2 x i8 > %y ) {
180
- ; CHECK-LABEL: define <2 x i1> @ne_vector_equal_minus_7
181
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
180
+ ; CHECK-LABEL: define <2 x i1> @ne_vector_equal_minus_7(
181
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
182
182
; CHECK-NEXT: [[TMP1:%.*]] = add <2 x i8> [[X]], <i8 6, i8 6>
183
183
; CHECK-NEXT: [[AND:%.*]] = icmp ult <2 x i8> [[TMP1]], [[Y]]
184
184
; CHECK-NEXT: ret <2 x i1> [[AND]]
@@ -191,8 +191,8 @@ define <2 x i1> @ne_vector_equal_minus_7(<2 x i8> %x, <2 x i8> %y) {
191
191
}
192
192
193
193
define <2 x i1 > @eq_vector_unequal1 (<2 x i8 > %x , <2 x i8 > %y ) {
194
- ; CHECK-LABEL: define <2 x i1> @eq_vector_unequal1
195
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
194
+ ; CHECK-LABEL: define <2 x i1> @eq_vector_unequal1(
195
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
196
196
; CHECK-NEXT: [[SUB:%.*]] = add <2 x i8> [[X]], <i8 -5, i8 -5>
197
197
; CHECK-NEXT: [[C1:%.*]] = icmp eq <2 x i8> [[X]], <i8 2, i8 2>
198
198
; CHECK-NEXT: [[C2:%.*]] = icmp ugt <2 x i8> [[SUB]], [[Y]]
@@ -207,8 +207,8 @@ define <2 x i1> @eq_vector_unequal1(<2 x i8> %x, <2 x i8> %y) {
207
207
}
208
208
209
209
define <2 x i1 > @ne_vector_unequal2 (<2 x i8 > %x , <2 x i8 > %y ) {
210
- ; CHECK-LABEL: define <2 x i1> @ne_vector_unequal2
211
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
210
+ ; CHECK-LABEL: define <2 x i1> @ne_vector_unequal2(
211
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
212
212
; CHECK-NEXT: [[ADD:%.*]] = add <2 x i8> [[X]], <i8 7, i8 7>
213
213
; CHECK-NEXT: [[C1:%.*]] = icmp ne <2 x i8> [[X]], <i8 -3, i8 -3>
214
214
; CHECK-NEXT: [[C2:%.*]] = icmp ule <2 x i8> [[ADD]], [[Y]]
@@ -226,8 +226,8 @@ define <2 x i1> @ne_vector_unequal2(<2 x i8> %x, <2 x i8> %y) {
226
226
; Tests with poison
227
227
; ==============================================================================
228
228
define <2 x i1 > @eq_vector_poison_icmp (<2 x i8 > %x , <2 x i8 > %y ) {
229
- ; CHECK-LABEL: define <2 x i1> @eq_vector_poison_icmp
230
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
229
+ ; CHECK-LABEL: define <2 x i1> @eq_vector_poison_icmp(
230
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
231
231
; CHECK-NEXT: [[TMP1:%.*]] = add <2 x i8> [[X]], <i8 -6, i8 -6>
232
232
; CHECK-NEXT: [[OR:%.*]] = icmp uge <2 x i8> [[TMP1]], [[Y]]
233
233
; CHECK-NEXT: ret <2 x i1> [[OR]]
@@ -240,8 +240,8 @@ define <2 x i1> @eq_vector_poison_icmp(<2 x i8> %x, <2 x i8> %y) {
240
240
}
241
241
242
242
define <2 x i1 > @eq_vector_poison_add (<2 x i8 > %x , <2 x i8 > %y ) {
243
- ; CHECK-LABEL: define <2 x i1> @eq_vector_poison_add
244
- ; CHECK-SAME: ( <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
243
+ ; CHECK-LABEL: define <2 x i1> @eq_vector_poison_add(
244
+ ; CHECK-SAME: <2 x i8> [[X:%.*]], <2 x i8> [[Y:%.*]]) {
245
245
; CHECK-NEXT: [[TMP1:%.*]] = add <2 x i8> [[X]], <i8 -6, i8 -6>
246
246
; CHECK-NEXT: [[OR:%.*]] = icmp uge <2 x i8> [[TMP1]], [[Y]]
247
247
; CHECK-NEXT: ret <2 x i1> [[OR]]
@@ -257,8 +257,8 @@ define <2 x i1> @eq_vector_poison_add(<2 x i8> %x, <2 x i8> %y) {
257
257
; Tests with values commuted
258
258
; ==============================================================================
259
259
define i1 @eq_commuted (i8 %x , i8 %py ) {
260
- ; CHECK-LABEL: define i1 @eq_commuted
261
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[PY:%.*]]) {
260
+ ; CHECK-LABEL: define i1 @eq_commuted(
261
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[PY:%.*]]) {
262
262
; CHECK-NEXT: [[Y:%.*]] = sdiv i8 43, [[PY]]
263
263
; CHECK-NEXT: [[TMP1:%.*]] = add i8 [[X]], -1
264
264
; CHECK-NEXT: [[OR:%.*]] = icmp uge i8 [[TMP1]], [[Y]]
@@ -272,8 +272,8 @@ define i1 @eq_commuted(i8 %x, i8 %py) {
272
272
}
273
273
274
274
define i1 @ne_commuted_equal_minus_1 (i8 %x , i8 %py ) {
275
- ; CHECK-LABEL: define i1 @ne_commuted_equal_minus_1
276
- ; CHECK-SAME: ( i8 [[X:%.*]], i8 [[PY:%.*]]) {
275
+ ; CHECK-LABEL: define i1 @ne_commuted_equal_minus_1(
276
+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[PY:%.*]]) {
277
277
; CHECK-NEXT: [[Y:%.*]] = sdiv i8 42, [[PY]]
278
278
; CHECK-NEXT: [[AND:%.*]] = icmp ugt i8 [[Y]], [[X]]
279
279
; CHECK-NEXT: ret i1 [[AND]]
0 commit comments