Skip to content

Commit 3f2ad99

Browse files
committed
Change instcombine icmp folding tests
1 parent 1adba3e commit 3f2ad99

File tree

2 files changed

+121
-175
lines changed

2 files changed

+121
-175
lines changed

llvm/test/Transforms/InstCombine/icmp-ext-ext.ll

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,17 @@ define i1 @zext_sext_sgt(i8 %x, i8 %y) {
130130
ret i1 %c
131131
}
132132

133+
define i1 @zext_nneg_sext_sgt(i8 %x, i8 %y) {
134+
; CHECK-LABEL: @zext_nneg_sext_sgt(
135+
; CHECK-NEXT: [[C:%.*]] = icmp sgt i8 [[X:%.*]], [[Y:%.*]]
136+
; CHECK-NEXT: ret i1 [[C]]
137+
;
138+
%a = zext nneg i8 %x to i32
139+
%b = sext i8 %y to i32
140+
%c = icmp sgt i32 %a, %b
141+
ret i1 %c
142+
}
143+
133144
define i1 @zext_sext_ugt(i8 %x, i8 %y) {
134145
; CHECK-LABEL: @zext_sext_ugt(
135146
; CHECK-NEXT: [[A:%.*]] = zext i8 [[X:%.*]] to i32
@@ -143,6 +154,18 @@ define i1 @zext_sext_ugt(i8 %x, i8 %y) {
143154
ret i1 %c
144155
}
145156

157+
158+
define i1 @zext_nneg_sext_ugt(i8 %x, i8 %y) {
159+
; CHECK-LABEL: @zext_nneg_sext_ugt(
160+
; CHECK-NEXT: [[C:%.*]] = icmp ugt i8 [[X:%.*]], [[Y:%.*]]
161+
; CHECK-NEXT: ret i1 [[C]]
162+
;
163+
%a = zext nneg i8 %x to i32
164+
%b = sext i8 %y to i32
165+
%c = icmp ugt i32 %a, %b
166+
ret i1 %c
167+
}
168+
146169
define i1 @zext_sext_eq(i8 %x, i8 %y) {
147170
; CHECK-LABEL: @zext_sext_eq(
148171
; CHECK-NEXT: [[A:%.*]] = zext i8 [[X:%.*]] to i32
@@ -156,6 +179,18 @@ define i1 @zext_sext_eq(i8 %x, i8 %y) {
156179
ret i1 %c
157180
}
158181

182+
define i1 @zext_nneg_sext_eq(i8 %x, i8 %y) {
183+
; CHECK-LABEL: @zext_nneg_sext_eq(
184+
; CHECK-NEXT: [[C:%.*]] = icmp eq i8 [[X:%.*]], [[Y:%.*]]
185+
; CHECK-NEXT: ret i1 [[C]]
186+
;
187+
%a = zext nneg i8 %x to i32
188+
%b = sext i8 %y to i32
189+
%c = icmp eq i32 %a, %b
190+
ret i1 %c
191+
}
192+
193+
159194
define i1 @zext_sext_sle_op0_narrow(i8 %x, i16 %y) {
160195
; CHECK-LABEL: @zext_sext_sle_op0_narrow(
161196
; CHECK-NEXT: [[A:%.*]] = zext i8 [[X:%.*]] to i32
@@ -169,6 +204,19 @@ define i1 @zext_sext_sle_op0_narrow(i8 %x, i16 %y) {
169204
ret i1 %c
170205
}
171206

207+
208+
define i1 @zext_nneg_sext_sle_op0_narrow(i8 %x, i16 %y) {
209+
; CHECK-LABEL: @zext_nneg_sext_sle_op0_narrow(
210+
; CHECK-NEXT: [[TMP1:%.*]] = sext i8 [[X:%.*]] to i16
211+
; CHECK-NEXT: [[C:%.*]] = icmp sle i16 [[TMP1]], [[Y:%.*]]
212+
; CHECK-NEXT: ret i1 [[C]]
213+
;
214+
%a = zext nneg i8 %x to i32
215+
%b = sext i16 %y to i32
216+
%c = icmp sle i32 %a, %b
217+
ret i1 %c
218+
}
219+
172220
define i1 @zext_sext_ule_op0_wide(i9 %x, i8 %y) {
173221
; CHECK-LABEL: @zext_sext_ule_op0_wide(
174222
; CHECK-NEXT: [[A:%.*]] = zext i9 [[X:%.*]] to i32
@@ -182,6 +230,18 @@ define i1 @zext_sext_ule_op0_wide(i9 %x, i8 %y) {
182230
ret i1 %c
183231
}
184232

233+
define i1 @zext_nneg_sext_ule_op0_wide(i9 %x, i8 %y) {
234+
; CHECK-LABEL: @zext_nneg_sext_ule_op0_wide(
235+
; CHECK-NEXT: [[TMP1:%.*]] = sext i8 [[Y:%.*]] to i9
236+
; CHECK-NEXT: [[C:%.*]] = icmp uge i9 [[TMP1]], [[X:%.*]]
237+
; CHECK-NEXT: ret i1 [[C]]
238+
;
239+
%a = zext nneg i9 %x to i32
240+
%b = sext i8 %y to i32
241+
%c = icmp ule i32 %a, %b
242+
ret i1 %c
243+
}
244+
185245
define i1 @sext_zext_slt(i8 %x, i8 %y) {
186246
; CHECK-LABEL: @sext_zext_slt(
187247
; CHECK-NEXT: [[A:%.*]] = sext i8 [[X:%.*]] to i32
@@ -195,6 +255,18 @@ define i1 @sext_zext_slt(i8 %x, i8 %y) {
195255
ret i1 %c
196256
}
197257

258+
259+
define i1 @sext_zext_nneg_slt(i8 %x, i8 %y) {
260+
; CHECK-LABEL: @sext_zext_nneg_slt(
261+
; CHECK-NEXT: [[C:%.*]] = icmp slt i8 [[X:%.*]], [[Y:%.*]]
262+
; CHECK-NEXT: ret i1 [[C]]
263+
;
264+
%a = sext i8 %x to i32
265+
%b = zext nneg i8 %y to i32
266+
%c = icmp slt i32 %a, %b
267+
ret i1 %c
268+
}
269+
198270
define i1 @sext_zext_ult(i8 %x, i8 %y) {
199271
; CHECK-LABEL: @sext_zext_ult(
200272
; CHECK-NEXT: [[A:%.*]] = sext i8 [[X:%.*]] to i32
@@ -208,6 +280,17 @@ define i1 @sext_zext_ult(i8 %x, i8 %y) {
208280
ret i1 %c
209281
}
210282

283+
define i1 @sext_zext_nneg_ult(i8 %x, i8 %y) {
284+
; CHECK-LABEL: @sext_zext_nneg_ult(
285+
; CHECK-NEXT: [[C:%.*]] = icmp ult i8 [[X:%.*]], [[Y:%.*]]
286+
; CHECK-NEXT: ret i1 [[C]]
287+
;
288+
%a = sext i8 %x to i32
289+
%b = zext nneg i8 %y to i32
290+
%c = icmp ult i32 %a, %b
291+
ret i1 %c
292+
}
293+
211294
define <2 x i1> @sext_zext_ne(<2 x i8> %x, <2 x i8> %y) {
212295
; CHECK-LABEL: @sext_zext_ne(
213296
; CHECK-NEXT: [[A:%.*]] = sext <2 x i8> [[X:%.*]] to <2 x i32>
@@ -221,6 +304,18 @@ define <2 x i1> @sext_zext_ne(<2 x i8> %x, <2 x i8> %y) {
221304
ret <2 x i1> %c
222305
}
223306

307+
308+
define <2 x i1> @sext_zext_nneg_ne(<2 x i8> %x, <2 x i8> %y) {
309+
; CHECK-LABEL: @sext_zext_nneg_ne(
310+
; CHECK-NEXT: [[C:%.*]] = icmp ne <2 x i8> [[X:%.*]], [[Y:%.*]]
311+
; CHECK-NEXT: ret <2 x i1> [[C]]
312+
;
313+
%a = sext <2 x i8> %x to <2 x i32>
314+
%b = zext nneg <2 x i8> %y to <2 x i32>
315+
%c = icmp ne <2 x i32> %a, %b
316+
ret <2 x i1> %c
317+
}
318+
224319
define i1 @sext_zext_sge_op0_narrow(i5 %x, i8 %y) {
225320
; CHECK-LABEL: @sext_zext_sge_op0_narrow(
226321
; CHECK-NEXT: [[A:%.*]] = sext i5 [[X:%.*]] to i32
@@ -234,6 +329,19 @@ define i1 @sext_zext_sge_op0_narrow(i5 %x, i8 %y) {
234329
ret i1 %c
235330
}
236331

332+
333+
define i1 @sext_zext_nneg_sge_op0_narrow(i5 %x, i8 %y) {
334+
; CHECK-LABEL: @sext_zext_nneg_sge_op0_narrow(
335+
; CHECK-NEXT: [[TMP1:%.*]] = sext i5 [[X:%.*]] to i8
336+
; CHECK-NEXT: [[C:%.*]] = icmp sge i8 [[TMP1]], [[Y:%.*]]
337+
; CHECK-NEXT: ret i1 [[C]]
338+
;
339+
%a = sext i5 %x to i32
340+
%b = zext nneg i8 %y to i32
341+
%c = icmp sge i32 %a, %b
342+
ret i1 %c
343+
}
344+
237345
define i1 @sext_zext_uge_op0_wide(i16 %x, i8 %y) {
238346
; CHECK-LABEL: @sext_zext_uge_op0_wide(
239347
; CHECK-NEXT: [[A:%.*]] = sext i16 [[X:%.*]] to i32
@@ -247,6 +355,19 @@ define i1 @sext_zext_uge_op0_wide(i16 %x, i8 %y) {
247355
ret i1 %c
248356
}
249357

358+
359+
define i1 @sext_zext_nneg_uge_op0_wide(i16 %x, i8 %y) {
360+
; CHECK-LABEL: @sext_zext_nneg_uge_op0_wide(
361+
; CHECK-NEXT: [[TMP1:%.*]] = sext i8 [[Y:%.*]] to i16
362+
; CHECK-NEXT: [[C:%.*]] = icmp ule i16 [[TMP1]], [[X:%.*]]
363+
; CHECK-NEXT: ret i1 [[C]]
364+
;
365+
%a = sext i16 %x to i32
366+
%b = zext nneg i8 %y to i32
367+
%c = icmp uge i32 %a, %b
368+
ret i1 %c
369+
}
370+
250371
define i1 @zext_sext_sgt_known_nonneg(i8 %x, i8 %y) {
251372
; CHECK-LABEL: @zext_sext_sgt_known_nonneg(
252373
; CHECK-NEXT: [[N:%.*]] = udiv i8 127, [[X:%.*]]

llvm/test/Transforms/InstCombine/icmp-fold-with-cast.ll

Lines changed: 0 additions & 175 deletions
This file was deleted.

0 commit comments

Comments
 (0)