Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / VE / Scalar / setcci32.ll
blob861db1dccfd8d18ab1ed95edd3789954ca3c64b2
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:    cmps.w.sx %s0, %s0, %s1
7 ; CHECK-NEXT:    or %s1, 0, (0)1
8 ; CHECK-NEXT:    cmov.w.eq %s1, (63)0, %s0
9 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
10 ; CHECK-NEXT:    b.l.t (, %s10)
11   %3 = icmp eq i32 %0, %1
12   ret i1 %3
15 define zeroext i1 @setccne(i32, i32) {
16 ; CHECK-LABEL: setccne:
17 ; CHECK:       # %bb.0:
18 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
19 ; CHECK-NEXT:    or %s1, 0, (0)1
20 ; CHECK-NEXT:    cmov.w.ne %s1, (63)0, %s0
21 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
22 ; CHECK-NEXT:    b.l.t (, %s10)
23   %3 = icmp ne i32 %0, %1
24   ret i1 %3
27 define zeroext i1 @setccugt(i32, i32) {
28 ; CHECK-LABEL: setccugt:
29 ; CHECK:       # %bb.0:
30 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
31 ; CHECK-NEXT:    or %s1, 0, (0)1
32 ; CHECK-NEXT:    cmov.w.gt %s1, (63)0, %s0
33 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
34 ; CHECK-NEXT:    b.l.t (, %s10)
35   %3 = icmp ugt i32 %0, %1
36   ret i1 %3
39 define zeroext i1 @setccuge(i32, i32) {
40 ; CHECK-LABEL: setccuge:
41 ; CHECK:       # %bb.0:
42 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
43 ; CHECK-NEXT:    or %s1, 0, (0)1
44 ; CHECK-NEXT:    cmov.w.ge %s1, (63)0, %s0
45 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
46 ; CHECK-NEXT:    b.l.t (, %s10)
47   %3 = icmp uge i32 %0, %1
48   ret i1 %3
51 define zeroext i1 @setccult(i32, i32) {
52 ; CHECK-LABEL: setccult:
53 ; CHECK:       # %bb.0:
54 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
55 ; CHECK-NEXT:    or %s1, 0, (0)1
56 ; CHECK-NEXT:    cmov.w.lt %s1, (63)0, %s0
57 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
58 ; CHECK-NEXT:    b.l.t (, %s10)
59   %3 = icmp ult i32 %0, %1
60   ret i1 %3
63 define zeroext i1 @setccule(i32, i32) {
64 ; CHECK-LABEL: setccule:
65 ; CHECK:       # %bb.0:
66 ; CHECK-NEXT:    cmpu.w %s0, %s0, %s1
67 ; CHECK-NEXT:    or %s1, 0, (0)1
68 ; CHECK-NEXT:    cmov.w.le %s1, (63)0, %s0
69 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
70 ; CHECK-NEXT:    b.l.t (, %s10)
71   %3 = icmp ule i32 %0, %1
72   ret i1 %3
75 define zeroext i1 @setccsgt(i32, i32) {
76 ; CHECK-LABEL: setccsgt:
77 ; CHECK:       # %bb.0:
78 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
79 ; CHECK-NEXT:    or %s1, 0, (0)1
80 ; CHECK-NEXT:    cmov.w.gt %s1, (63)0, %s0
81 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
82 ; CHECK-NEXT:    b.l.t (, %s10)
83   %3 = icmp sgt i32 %0, %1
84   ret i1 %3
87 define zeroext i1 @setccsge(i32, i32) {
88 ; CHECK-LABEL: setccsge:
89 ; CHECK:       # %bb.0:
90 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
91 ; CHECK-NEXT:    or %s1, 0, (0)1
92 ; CHECK-NEXT:    cmov.w.ge %s1, (63)0, %s0
93 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
94 ; CHECK-NEXT:    b.l.t (, %s10)
95   %3 = icmp sge i32 %0, %1
96   ret i1 %3
99 define zeroext i1 @setccslt(i32, i32) {
100 ; CHECK-LABEL: setccslt:
101 ; CHECK:       # %bb.0:
102 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
103 ; CHECK-NEXT:    or %s1, 0, (0)1
104 ; CHECK-NEXT:    cmov.w.lt %s1, (63)0, %s0
105 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
106 ; CHECK-NEXT:    b.l.t (, %s10)
107   %3 = icmp slt i32 %0, %1
108   ret i1 %3
111 define zeroext i1 @setccsle(i32, i32) {
112 ; CHECK-LABEL: setccsle:
113 ; CHECK:       # %bb.0:
114 ; CHECK-NEXT:    cmps.w.sx %s0, %s0, %s1
115 ; CHECK-NEXT:    or %s1, 0, (0)1
116 ; CHECK-NEXT:    cmov.w.le %s1, (63)0, %s0
117 ; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1
118 ; CHECK-NEXT:    b.l.t (, %s10)
119   %3 = icmp sle i32 %0, %1
120   ret i1 %3