4
4
define i1 @icmp_ugt_sremsmin_smin (i32 %x ) {
5
5
; CHECK-LABEL: define i1 @icmp_ugt_sremsmin_smin(
6
6
; CHECK-SAME: i32 [[X:%.*]]) {
7
- ; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], -2147483648
8
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], -2147483648
7
+ ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[X]], -2147483648
9
8
; CHECK-NEXT: ret i1 [[C]]
10
9
;
11
10
%r = srem i32 %x , -2147483648
@@ -64,7 +63,7 @@ define i1 @icmp_ult_sremsmin_sminp1(i32 %x) {
64
63
; CHECK-LABEL: define i1 @icmp_ult_sremsmin_sminp1(
65
64
; CHECK-SAME: i32 [[X:%.*]]) {
66
65
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], -2147483648
67
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], -2147483647
66
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
68
67
; CHECK-NEXT: ret i1 [[C]]
69
68
;
70
69
%r = srem i32 %x , -2147483648
@@ -100,7 +99,7 @@ define i1 @icmp_ugt_srem5_smin(i32 %x) {
100
99
; CHECK-LABEL: define i1 @icmp_ugt_srem5_smin(
101
100
; CHECK-SAME: i32 [[X:%.*]]) {
102
101
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
103
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], -2147483648
102
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
104
103
; CHECK-NEXT: ret i1 [[C]]
105
104
;
106
105
%r = srem i32 %x , 5
@@ -112,7 +111,7 @@ define i1 @icmp_ugt_srem5_m5(i32 %x) {
112
111
; CHECK-LABEL: define i1 @icmp_ugt_srem5_m5(
113
112
; CHECK-SAME: i32 [[X:%.*]]) {
114
113
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
115
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], -5
114
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
116
115
; CHECK-NEXT: ret i1 [[C]]
117
116
;
118
117
%r = srem i32 %x , 5
@@ -148,7 +147,7 @@ define i1 @icmp_ugt_srem5_4(i32 %x) {
148
147
; CHECK-LABEL: define i1 @icmp_ugt_srem5_4(
149
148
; CHECK-SAME: i32 [[X:%.*]]) {
150
149
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
151
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], 4
150
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
152
151
; CHECK-NEXT: ret i1 [[C]]
153
152
;
154
153
%r = srem i32 %x , 5
@@ -160,7 +159,7 @@ define i1 @icmp_ugt_srem5_smaxm1(i32 %x) {
160
159
; CHECK-LABEL: define i1 @icmp_ugt_srem5_smaxm1(
161
160
; CHECK-SAME: i32 [[X:%.*]]) {
162
161
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
163
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], 2147483646
162
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
164
163
; CHECK-NEXT: ret i1 [[C]]
165
164
;
166
165
%r = srem i32 %x , 5
@@ -172,7 +171,7 @@ define i1 @icmp_ult_srem5_sminp1(i32 %x) {
172
171
; CHECK-LABEL: define i1 @icmp_ult_srem5_sminp1(
173
172
; CHECK-SAME: i32 [[X:%.*]]) {
174
173
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
175
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], -2147483647
174
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
176
175
; CHECK-NEXT: ret i1 [[C]]
177
176
;
178
177
%r = srem i32 %x , 5
@@ -184,7 +183,7 @@ define i1 @icmp_ult_srem5_m4(i32 %x) {
184
183
; CHECK-LABEL: define i1 @icmp_ult_srem5_m4(
185
184
; CHECK-SAME: i32 [[X:%.*]]) {
186
185
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
187
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], -4
186
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
188
187
; CHECK-NEXT: ret i1 [[C]]
189
188
;
190
189
%r = srem i32 %x , 5
@@ -220,7 +219,7 @@ define i1 @icmp_ult_srem5_5(i32 %x) {
220
219
; CHECK-LABEL: define i1 @icmp_ult_srem5_5(
221
220
; CHECK-SAME: i32 [[X:%.*]]) {
222
221
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
223
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], 5
222
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
224
223
; CHECK-NEXT: ret i1 [[C]]
225
224
;
226
225
%r = srem i32 %x , 5
@@ -232,7 +231,7 @@ define i1 @icmp_ult_srem5_smax(i32 %x) {
232
231
; CHECK-LABEL: define i1 @icmp_ult_srem5_smax(
233
232
; CHECK-SAME: i32 [[X:%.*]]) {
234
233
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 5
235
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], 2147483647
234
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
236
235
; CHECK-NEXT: ret i1 [[C]]
237
236
;
238
237
%r = srem i32 %x , 5
@@ -244,7 +243,7 @@ define i1 @icmp_ugt_sremsmax_smin(i32 %x) {
244
243
; CHECK-LABEL: define i1 @icmp_ugt_sremsmax_smin(
245
244
; CHECK-SAME: i32 [[X:%.*]]) {
246
245
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 2147483647
247
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], -2147483648
246
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
248
247
; CHECK-NEXT: ret i1 [[C]]
249
248
;
250
249
%r = srem i32 %x , 2147483647
@@ -256,7 +255,7 @@ define i1 @icmp_ugt_sremsmax_sminp1(i32 %x) {
256
255
; CHECK-LABEL: define i1 @icmp_ugt_sremsmax_sminp1(
257
256
; CHECK-SAME: i32 [[X:%.*]]) {
258
257
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 2147483647
259
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], -2147483647
258
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
260
259
; CHECK-NEXT: ret i1 [[C]]
261
260
;
262
261
%r = srem i32 %x , 2147483647
@@ -292,7 +291,7 @@ define i1 @icmp_ugt_sremsmax_smaxm1(i32 %x) {
292
291
; CHECK-LABEL: define i1 @icmp_ugt_sremsmax_smaxm1(
293
292
; CHECK-SAME: i32 [[X:%.*]]) {
294
293
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 2147483647
295
- ; CHECK-NEXT: [[C:%.*]] = icmp ugt i32 [[R]], 2147483646
294
+ ; CHECK-NEXT: [[C:%.*]] = icmp slt i32 [[R]], 0
296
295
; CHECK-NEXT: ret i1 [[C]]
297
296
;
298
297
%r = srem i32 %x , 2147483647
@@ -328,7 +327,7 @@ define i1 @icmp_ult_sremsmax_sminp1(i32 %x) {
328
327
; CHECK-LABEL: define i1 @icmp_ult_sremsmax_sminp1(
329
328
; CHECK-SAME: i32 [[X:%.*]]) {
330
329
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 2147483647
331
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], -2147483647
330
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
332
331
; CHECK-NEXT: ret i1 [[C]]
333
332
;
334
333
%r = srem i32 %x , 2147483647
@@ -340,7 +339,7 @@ define i1 @icmp_ult_sremsmax_sminp2(i32 %x) {
340
339
; CHECK-LABEL: define i1 @icmp_ult_sremsmax_sminp2(
341
340
; CHECK-SAME: i32 [[X:%.*]]) {
342
341
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 2147483647
343
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], -2147483646
342
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
344
343
; CHECK-NEXT: ret i1 [[C]]
345
344
;
346
345
%r = srem i32 %x , 2147483647
@@ -376,7 +375,7 @@ define i1 @icmp_ult_sremsmax_smax(i32 %x) {
376
375
; CHECK-LABEL: define i1 @icmp_ult_sremsmax_smax(
377
376
; CHECK-SAME: i32 [[X:%.*]]) {
378
377
; CHECK-NEXT: [[R:%.*]] = srem i32 [[X]], 2147483647
379
- ; CHECK-NEXT: [[C:%.*]] = icmp ult i32 [[R]], 2147483647
378
+ ; CHECK-NEXT: [[C:%.*]] = icmp sgt i32 [[R]], -1
380
379
; CHECK-NEXT: ret i1 [[C]]
381
380
;
382
381
%r = srem i32 %x , 2147483647
0 commit comments