[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / VE / Scalar / setcci32i.ll
blob2e1253770112dcb19752f992ad557ad285df24e5
1 ; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s
3 define zeroext i1 @setcceq(i32, i32) {
4 ; CHECK-LABEL: setcceq:
5 ; CHECK:       # %bb.0:
6 ; CHECK-NEXT:    or %s1, 12, (0)1
7 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
8 ; CHECK-NEXT:    or %s1, 0, (0)1
9 ; CHECK-NEXT:    cmov.w.eq %s1, (63)0, %s0
10 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
11 ; CHECK-NEXT:    b.l.t (, %s10)
12   %3 = icmp eq i32 %0, 12
13   ret i1 %3
16 define zeroext i1 @setccne(i32, i32) {
17 ; CHECK-LABEL: setccne:
18 ; CHECK:       # %bb.0:
19 ; CHECK-NEXT:    or %s1, 12, (0)1
20 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
21 ; CHECK-NEXT:    or %s1, 0, (0)1
22 ; CHECK-NEXT:    cmov.w.ne %s1, (63)0, %s0
23 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
24 ; CHECK-NEXT:    b.l.t (, %s10)
25   %3 = icmp ne i32 %0, 12
26   ret i1 %3
29 define zeroext i1 @setccugt(i32, i32) {
30 ; CHECK-LABEL: setccugt:
31 ; CHECK:       # %bb.0:
32 ; CHECK-NEXT:    or %s1, 12, (0)1
33 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
34 ; CHECK-NEXT:    or %s1, 0, (0)1
35 ; CHECK-NEXT:    cmov.w.gt %s1, (63)0, %s0
36 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
37 ; CHECK-NEXT:    b.l.t (, %s10)
38   %3 = icmp ugt i32 %0, 12
39   ret i1 %3
42 define zeroext i1 @setccuge(i32, i32) {
43 ; CHECK-LABEL: setccuge:
44 ; CHECK:       # %bb.0:
45 ; CHECK-NEXT:    or %s1, 11, (0)1
46 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
47 ; CHECK-NEXT:    or %s1, 0, (0)1
48 ; CHECK-NEXT:    cmov.w.gt %s1, (63)0, %s0
49 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
50 ; CHECK-NEXT:    b.l.t (, %s10)
51   %3 = icmp uge i32 %0, 12
52   ret i1 %3
55 define zeroext i1 @setccult(i32, i32) {
56 ; CHECK-LABEL: setccult:
57 ; CHECK:       # %bb.0:
58 ; CHECK-NEXT:    or %s1, 12, (0)1
59 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
60 ; CHECK-NEXT:    or %s1, 0, (0)1
61 ; CHECK-NEXT:    cmov.w.lt %s1, (63)0, %s0
62 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
63 ; CHECK-NEXT:    b.l.t (, %s10)
64   %3 = icmp ult i32 %0, 12
65   ret i1 %3
68 define zeroext i1 @setccule(i32, i32) {
69 ; CHECK-LABEL: setccule:
70 ; CHECK:       # %bb.0:
71 ; CHECK-NEXT:    or %s1, 13, (0)1
72 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
73 ; CHECK-NEXT:    or %s1, 0, (0)1
74 ; CHECK-NEXT:    cmov.w.lt %s1, (63)0, %s0
75 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
76 ; CHECK-NEXT:    b.l.t (, %s10)
77   %3 = icmp ule i32 %0, 12
78   ret i1 %3
81 define zeroext i1 @setccsgt(i32, i32) {
82 ; CHECK-LABEL: setccsgt:
83 ; CHECK:       # %bb.0:
84 ; CHECK-NEXT:    or %s1, 12, (0)1
85 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
86 ; CHECK-NEXT:    or %s1, 0, (0)1
87 ; CHECK-NEXT:    cmov.w.gt %s1, (63)0, %s0
88 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
89 ; CHECK-NEXT:    b.l.t (, %s10)
90   %3 = icmp sgt i32 %0, 12
91   ret i1 %3
94 define zeroext i1 @setccsge(i32, i32) {
95 ; CHECK-LABEL: setccsge:
96 ; CHECK:       # %bb.0:
97 ; CHECK-NEXT:    or %s1, 11, (0)1
98 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
99 ; CHECK-NEXT:    or %s1, 0, (0)1
100 ; CHECK-NEXT:    cmov.w.gt %s1, (63)0, %s0
101 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
102 ; CHECK-NEXT:    b.l.t (, %s10)
103   %3 = icmp sge i32 %0, 12
104   ret i1 %3
107 define zeroext i1 @setccslt(i32, i32) {
108 ; CHECK-LABEL: setccslt:
109 ; CHECK:       # %bb.0:
110 ; CHECK-NEXT:    or %s1, 12, (0)1
111 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
112 ; CHECK-NEXT:    or %s1, 0, (0)1
113 ; CHECK-NEXT:    cmov.w.lt %s1, (63)0, %s0
114 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
115 ; CHECK-NEXT:    b.l.t (, %s10)
116   %3 = icmp slt i32 %0, 12
117   ret i1 %3
120 define zeroext i1 @setccsle(i32, i32) {
121 ; CHECK-LABEL: setccsle:
122 ; CHECK:       # %bb.0:
123 ; CHECK-NEXT:    or %s1, 13, (0)1
124 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
125 ; CHECK-NEXT:    or %s1, 0, (0)1
126 ; CHECK-NEXT:    cmov.w.lt %s1, (63)0, %s0
127 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
128 ; CHECK-NEXT:    b.l.t (, %s10)
129   %3 = icmp sle i32 %0, 12
130   ret i1 %3