Skip to content

Commit 83a7e42

Browse files
committed
address comments
1 parent 13a383f commit 83a7e42

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

llvm/test/CodeGen/NVPTX/i1-icmp.ll

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,127 @@ bb2:
191191
ret i32 127
192192
}
193193

194+
define i32 @icmp_i1_uge(i32 %a, i32 %b) {
195+
; CHECK-LABEL: icmp_i1_uge(
196+
; CHECK: {
197+
; CHECK-NEXT: .reg .pred %p<4>;
198+
; CHECK-NEXT: .reg .b32 %r<5>;
199+
; CHECK-EMPTY:
200+
; CHECK-NEXT: // %bb.0:
201+
; CHECK-NEXT: ld.param.u32 %r1, [icmp_i1_uge_param_0];
202+
; CHECK-NEXT: setp.lt.s32 %p1, %r1, 2;
203+
; CHECK-NEXT: ld.param.u32 %r2, [icmp_i1_uge_param_1];
204+
; CHECK-NEXT: setp.gt.s32 %p2, %r2, 1;
205+
; CHECK-NEXT: and.pred %p3, %p2, %p1;
206+
; CHECK-NEXT: @%p3 bra $L__BB6_2;
207+
; CHECK-NEXT: // %bb.1: // %bb1
208+
; CHECK-NEXT: mov.b32 %r4, 1;
209+
; CHECK-NEXT: st.param.b32 [func_retval0], %r4;
210+
; CHECK-NEXT: ret;
211+
; CHECK-NEXT: $L__BB6_2: // %bb2
212+
; CHECK-NEXT: mov.b32 %r3, 127;
213+
; CHECK-NEXT: st.param.b32 [func_retval0], %r3;
214+
; CHECK-NEXT: ret;
215+
%p1 = icmp sgt i32 %a, 1
216+
%p2 = icmp sgt i32 %b, 1
217+
%c = icmp uge i1 %p1, %p2
218+
br i1 %c, label %bb1, label %bb2
219+
bb1:
220+
ret i32 1
221+
bb2:
222+
ret i32 127
223+
}
224+
225+
define i32 @icmp_i1_ugt(i32 %a, i32 %b) {
226+
; CHECK-LABEL: icmp_i1_ugt(
227+
; CHECK: {
228+
; CHECK-NEXT: .reg .pred %p<4>;
229+
; CHECK-NEXT: .reg .b32 %r<5>;
230+
; CHECK-EMPTY:
231+
; CHECK-NEXT: // %bb.0:
232+
; CHECK-NEXT: ld.param.u32 %r1, [icmp_i1_ugt_param_0];
233+
; CHECK-NEXT: setp.lt.s32 %p1, %r1, 2;
234+
; CHECK-NEXT: ld.param.u32 %r2, [icmp_i1_ugt_param_1];
235+
; CHECK-NEXT: setp.gt.s32 %p2, %r2, 1;
236+
; CHECK-NEXT: or.pred %p3, %p2, %p1;
237+
; CHECK-NEXT: @%p3 bra $L__BB7_2;
238+
; CHECK-NEXT: // %bb.1: // %bb1
239+
; CHECK-NEXT: mov.b32 %r4, 1;
240+
; CHECK-NEXT: st.param.b32 [func_retval0], %r4;
241+
; CHECK-NEXT: ret;
242+
; CHECK-NEXT: $L__BB7_2: // %bb2
243+
; CHECK-NEXT: mov.b32 %r3, 127;
244+
; CHECK-NEXT: st.param.b32 [func_retval0], %r3;
245+
; CHECK-NEXT: ret;
246+
%p1 = icmp sgt i32 %a, 1
247+
%p2 = icmp sgt i32 %b, 1
248+
%c = icmp ugt i1 %p1, %p2
249+
br i1 %c, label %bb1, label %bb2
250+
bb1:
251+
ret i32 1
252+
bb2:
253+
ret i32 127
254+
}
255+
256+
define i32 @icmp_i1_ule(i32 %a, i32 %b) {
257+
; CHECK-LABEL: icmp_i1_ule(
258+
; CHECK: {
259+
; CHECK-NEXT: .reg .pred %p<4>;
260+
; CHECK-NEXT: .reg .b32 %r<5>;
261+
; CHECK-EMPTY:
262+
; CHECK-NEXT: // %bb.0:
263+
; CHECK-NEXT: ld.param.u32 %r1, [icmp_i1_ule_param_0];
264+
; CHECK-NEXT: setp.gt.s32 %p1, %r1, 1;
265+
; CHECK-NEXT: ld.param.u32 %r2, [icmp_i1_ule_param_1];
266+
; CHECK-NEXT: setp.lt.s32 %p2, %r2, 2;
267+
; CHECK-NEXT: and.pred %p3, %p1, %p2;
268+
; CHECK-NEXT: @%p3 bra $L__BB8_2;
269+
; CHECK-NEXT: // %bb.1: // %bb1
270+
; CHECK-NEXT: mov.b32 %r4, 1;
271+
; CHECK-NEXT: st.param.b32 [func_retval0], %r4;
272+
; CHECK-NEXT: ret;
273+
; CHECK-NEXT: $L__BB8_2: // %bb2
274+
; CHECK-NEXT: mov.b32 %r3, 127;
275+
; CHECK-NEXT: st.param.b32 [func_retval0], %r3;
276+
; CHECK-NEXT: ret;
277+
%p1 = icmp sgt i32 %a, 1
278+
%p2 = icmp sgt i32 %b, 1
279+
%c = icmp ule i1 %p1, %p2
280+
br i1 %c, label %bb1, label %bb2
281+
bb1:
282+
ret i32 1
283+
bb2:
284+
ret i32 127
285+
}
286+
287+
define i32 @icmp_i1_ult(i32 %a, i32 %b) {
288+
; CHECK-LABEL: icmp_i1_ult(
289+
; CHECK: {
290+
; CHECK-NEXT: .reg .pred %p<4>;
291+
; CHECK-NEXT: .reg .b32 %r<5>;
292+
; CHECK-EMPTY:
293+
; CHECK-NEXT: // %bb.0:
294+
; CHECK-NEXT: ld.param.u32 %r1, [icmp_i1_ult_param_0];
295+
; CHECK-NEXT: setp.gt.s32 %p1, %r1, 1;
296+
; CHECK-NEXT: ld.param.u32 %r2, [icmp_i1_ult_param_1];
297+
; CHECK-NEXT: setp.lt.s32 %p2, %r2, 2;
298+
; CHECK-NEXT: or.pred %p3, %p1, %p2;
299+
; CHECK-NEXT: @%p3 bra $L__BB9_2;
300+
; CHECK-NEXT: // %bb.1: // %bb1
301+
; CHECK-NEXT: mov.b32 %r4, 1;
302+
; CHECK-NEXT: st.param.b32 [func_retval0], %r4;
303+
; CHECK-NEXT: ret;
304+
; CHECK-NEXT: $L__BB9_2: // %bb2
305+
; CHECK-NEXT: mov.b32 %r3, 127;
306+
; CHECK-NEXT: st.param.b32 [func_retval0], %r3;
307+
; CHECK-NEXT: ret;
308+
%p1 = icmp sgt i32 %a, 1
309+
%p2 = icmp sgt i32 %b, 1
310+
%c = icmp ult i1 %p1, %p2
311+
br i1 %c, label %bb1, label %bb2
312+
bb1:
313+
ret i32 1
314+
bb2:
315+
ret i32 127
316+
}
317+

0 commit comments

Comments
 (0)