Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / fixed-vectors-setcc-int-vp-mask.ll
blob456170b086463ddfa6e0c3eded6120d195704171
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \
3 ; RUN:   | FileCheck %s --check-prefixes=CHECK
4 ; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \
5 ; RUN:   | FileCheck %s --check-prefixes=CHECK
8 declare <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1>, <2 x i1>, metadata, <2 x i1>, i32)
10 define <2 x i1> @icmp_eq_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
11 ; CHECK-LABEL: icmp_eq_vv_v2i1:
12 ; CHECK:       # %bb.0:
13 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
14 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
15 ; CHECK-NEXT:    ret
16   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"eq", <2 x i1> %m, i32 %evl)
17   ret <2 x i1> %v
20 declare <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1>, <4 x i1>, metadata, <4 x i1>, i32)
22 define <4 x i1> @icmp_eq_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
23 ; CHECK-LABEL: icmp_eq_vv_v4i1:
24 ; CHECK:       # %bb.0:
25 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
26 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
27 ; CHECK-NEXT:    ret
28   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"eq", <4 x i1> %m, i32 %evl)
29   ret <4 x i1> %v
32 declare <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1>, <8 x i1>, metadata, <8 x i1>, i32)
34 define <8 x i1> @icmp_eq_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
35 ; CHECK-LABEL: icmp_eq_vv_v8i1:
36 ; CHECK:       # %bb.0:
37 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
38 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
39 ; CHECK-NEXT:    ret
40   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)
41   ret <8 x i1> %v
44 declare <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1>, <16 x i1>, metadata, <16 x i1>, i32)
46 define <16 x i1> @icmp_eq_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
47 ; CHECK-LABEL: icmp_eq_vv_v16i1:
48 ; CHECK:       # %bb.0:
49 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
50 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
51 ; CHECK-NEXT:    ret
52   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"eq", <16 x i1> %m, i32 %evl)
53   ret <16 x i1> %v
56 define <2 x i1> @icmp_ne_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
57 ; CHECK-LABEL: icmp_ne_vv_v2i1:
58 ; CHECK:       # %bb.0:
59 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
60 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
61 ; CHECK-NEXT:    ret
62   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ne", <2 x i1> %m, i32 %evl)
63   ret <2 x i1> %v
66 define <4 x i1> @icmp_ne_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
67 ; CHECK-LABEL: icmp_ne_vv_v4i1:
68 ; CHECK:       # %bb.0:
69 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
70 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
71 ; CHECK-NEXT:    ret
72   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ne", <4 x i1> %m, i32 %evl)
73   ret <4 x i1> %v
76 define <8 x i1> @icmp_ne_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
77 ; CHECK-LABEL: icmp_ne_vv_v8i1:
78 ; CHECK:       # %bb.0:
79 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
80 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
81 ; CHECK-NEXT:    ret
82   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)
83   ret <8 x i1> %v
86 define <16 x i1> @icmp_ne_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
87 ; CHECK-LABEL: icmp_ne_vv_v16i1:
88 ; CHECK:       # %bb.0:
89 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
90 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
91 ; CHECK-NEXT:    ret
92   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ne", <16 x i1> %m, i32 %evl)
93   ret <16 x i1> %v
96 define <2 x i1> @icmp_slt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
97 ; CHECK-LABEL: icmp_slt_vv_v2i1:
98 ; CHECK:       # %bb.0:
99 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
100 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
101 ; CHECK-NEXT:    ret
102   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"slt", <2 x i1> %m, i32 %evl)
103   ret <2 x i1> %v
106 define <4 x i1> @icmp_slt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
107 ; CHECK-LABEL: icmp_slt_vv_v4i1:
108 ; CHECK:       # %bb.0:
109 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
110 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
111 ; CHECK-NEXT:    ret
112   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"slt", <4 x i1> %m, i32 %evl)
113   ret <4 x i1> %v
116 define <8 x i1> @icmp_slt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
117 ; CHECK-LABEL: icmp_slt_vv_v8i1:
118 ; CHECK:       # %bb.0:
119 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
120 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
121 ; CHECK-NEXT:    ret
122   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)
123   ret <8 x i1> %v
126 define <16 x i1> @icmp_slt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
127 ; CHECK-LABEL: icmp_slt_vv_v16i1:
128 ; CHECK:       # %bb.0:
129 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
130 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
131 ; CHECK-NEXT:    ret
132   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"slt", <16 x i1> %m, i32 %evl)
133   ret <16 x i1> %v
136 define <2 x i1> @icmp_ult_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
137 ; CHECK-LABEL: icmp_ult_vv_v2i1:
138 ; CHECK:       # %bb.0:
139 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
140 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
141 ; CHECK-NEXT:    ret
142   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ult", <2 x i1> %m, i32 %evl)
143   ret <2 x i1> %v
146 define <4 x i1> @icmp_ult_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
147 ; CHECK-LABEL: icmp_ult_vv_v4i1:
148 ; CHECK:       # %bb.0:
149 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
150 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
151 ; CHECK-NEXT:    ret
152   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ult", <4 x i1> %m, i32 %evl)
153   ret <4 x i1> %v
156 define <8 x i1> @icmp_ult_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
157 ; CHECK-LABEL: icmp_ult_vv_v8i1:
158 ; CHECK:       # %bb.0:
159 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
160 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
161 ; CHECK-NEXT:    ret
162   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)
163   ret <8 x i1> %v
166 define <16 x i1> @icmp_ult_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
167 ; CHECK-LABEL: icmp_ult_vv_v16i1:
168 ; CHECK:       # %bb.0:
169 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
170 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
171 ; CHECK-NEXT:    ret
172   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ult", <16 x i1> %m, i32 %evl)
173   ret <16 x i1> %v
176 define <2 x i1> @icmp_sgt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
177 ; CHECK-LABEL: icmp_sgt_vv_v2i1:
178 ; CHECK:       # %bb.0:
179 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
180 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
181 ; CHECK-NEXT:    ret
182   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sgt", <2 x i1> %m, i32 %evl)
183   ret <2 x i1> %v
186 define <4 x i1> @icmp_sgt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
187 ; CHECK-LABEL: icmp_sgt_vv_v4i1:
188 ; CHECK:       # %bb.0:
189 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
190 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
191 ; CHECK-NEXT:    ret
192   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sgt", <4 x i1> %m, i32 %evl)
193   ret <4 x i1> %v
196 define <8 x i1> @icmp_sgt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
197 ; CHECK-LABEL: icmp_sgt_vv_v8i1:
198 ; CHECK:       # %bb.0:
199 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
200 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
201 ; CHECK-NEXT:    ret
202   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)
203   ret <8 x i1> %v
206 define <16 x i1> @icmp_sgt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
207 ; CHECK-LABEL: icmp_sgt_vv_v16i1:
208 ; CHECK:       # %bb.0:
209 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
210 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
211 ; CHECK-NEXT:    ret
212   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sgt", <16 x i1> %m, i32 %evl)
213   ret <16 x i1> %v
216 define <2 x i1> @icmp_ugt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
217 ; CHECK-LABEL: icmp_ugt_vv_v2i1:
218 ; CHECK:       # %bb.0:
219 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
220 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
221 ; CHECK-NEXT:    ret
222   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ugt", <2 x i1> %m, i32 %evl)
223   ret <2 x i1> %v
226 define <4 x i1> @icmp_ugt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
227 ; CHECK-LABEL: icmp_ugt_vv_v4i1:
228 ; CHECK:       # %bb.0:
229 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
230 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
231 ; CHECK-NEXT:    ret
232   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ugt", <4 x i1> %m, i32 %evl)
233   ret <4 x i1> %v
236 define <8 x i1> @icmp_ugt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
237 ; CHECK-LABEL: icmp_ugt_vv_v8i1:
238 ; CHECK:       # %bb.0:
239 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
240 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
241 ; CHECK-NEXT:    ret
242   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)
243   ret <8 x i1> %v
246 define <16 x i1> @icmp_ugt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
247 ; CHECK-LABEL: icmp_ugt_vv_v16i1:
248 ; CHECK:       # %bb.0:
249 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
250 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
251 ; CHECK-NEXT:    ret
252   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ugt", <16 x i1> %m, i32 %evl)
253   ret <16 x i1> %v
256 define <2 x i1> @icmp_sle_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
257 ; CHECK-LABEL: icmp_sle_vv_v2i1:
258 ; CHECK:       # %bb.0:
259 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
260 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
261 ; CHECK-NEXT:    ret
262   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sle", <2 x i1> %m, i32 %evl)
263   ret <2 x i1> %v
266 define <4 x i1> @icmp_sle_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
267 ; CHECK-LABEL: icmp_sle_vv_v4i1:
268 ; CHECK:       # %bb.0:
269 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
270 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
271 ; CHECK-NEXT:    ret
272   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sle", <4 x i1> %m, i32 %evl)
273   ret <4 x i1> %v
276 define <8 x i1> @icmp_sle_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
277 ; CHECK-LABEL: icmp_sle_vv_v8i1:
278 ; CHECK:       # %bb.0:
279 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
280 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
281 ; CHECK-NEXT:    ret
282   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)
283   ret <8 x i1> %v
286 define <16 x i1> @icmp_sle_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
287 ; CHECK-LABEL: icmp_sle_vv_v16i1:
288 ; CHECK:       # %bb.0:
289 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
290 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
291 ; CHECK-NEXT:    ret
292   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sle", <16 x i1> %m, i32 %evl)
293   ret <16 x i1> %v
296 define <2 x i1> @icmp_ule_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
297 ; CHECK-LABEL: icmp_ule_vv_v2i1:
298 ; CHECK:       # %bb.0:
299 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
300 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
301 ; CHECK-NEXT:    ret
302   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ule", <2 x i1> %m, i32 %evl)
303   ret <2 x i1> %v
306 define <4 x i1> @icmp_ule_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
307 ; CHECK-LABEL: icmp_ule_vv_v4i1:
308 ; CHECK:       # %bb.0:
309 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
310 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
311 ; CHECK-NEXT:    ret
312   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ule", <4 x i1> %m, i32 %evl)
313   ret <4 x i1> %v
316 define <8 x i1> @icmp_ule_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
317 ; CHECK-LABEL: icmp_ule_vv_v8i1:
318 ; CHECK:       # %bb.0:
319 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
320 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
321 ; CHECK-NEXT:    ret
322   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ule", <8 x i1> %m, i32 %evl)
323   ret <8 x i1> %v
326 define <16 x i1> @icmp_ule_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
327 ; CHECK-LABEL: icmp_ule_vv_v16i1:
328 ; CHECK:       # %bb.0:
329 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
330 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
331 ; CHECK-NEXT:    ret
332   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ule", <16 x i1> %m, i32 %evl)
333   ret <16 x i1> %v
336 define <2 x i1> @icmp_sge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
337 ; CHECK-LABEL: icmp_sge_vv_v2i1:
338 ; CHECK:       # %bb.0:
339 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
340 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
341 ; CHECK-NEXT:    ret
342   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sge", <2 x i1> %m, i32 %evl)
343   ret <2 x i1> %v
346 define <4 x i1> @icmp_sge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
347 ; CHECK-LABEL: icmp_sge_vv_v4i1:
348 ; CHECK:       # %bb.0:
349 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
350 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
351 ; CHECK-NEXT:    ret
352   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sge", <4 x i1> %m, i32 %evl)
353   ret <4 x i1> %v
356 define <8 x i1> @icmp_sge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
357 ; CHECK-LABEL: icmp_sge_vv_v8i1:
358 ; CHECK:       # %bb.0:
359 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
360 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
361 ; CHECK-NEXT:    ret
362   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)
363   ret <8 x i1> %v
366 define <16 x i1> @icmp_sge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
367 ; CHECK-LABEL: icmp_sge_vv_v16i1:
368 ; CHECK:       # %bb.0:
369 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
370 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
371 ; CHECK-NEXT:    ret
372   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sge", <16 x i1> %m, i32 %evl)
373   ret <16 x i1> %v
376 define <2 x i1> @icmp_uge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
377 ; CHECK-LABEL: icmp_uge_vv_v2i1:
378 ; CHECK:       # %bb.0:
379 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
380 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
381 ; CHECK-NEXT:    ret
382   %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"uge", <2 x i1> %m, i32 %evl)
383   ret <2 x i1> %v
386 define <4 x i1> @icmp_uge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
387 ; CHECK-LABEL: icmp_uge_vv_v4i1:
388 ; CHECK:       # %bb.0:
389 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
390 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
391 ; CHECK-NEXT:    ret
392   %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"uge", <4 x i1> %m, i32 %evl)
393   ret <4 x i1> %v
396 define <8 x i1> @icmp_uge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
397 ; CHECK-LABEL: icmp_uge_vv_v8i1:
398 ; CHECK:       # %bb.0:
399 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
400 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
401 ; CHECK-NEXT:    ret
402   %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)
403   ret <8 x i1> %v
406 define <16 x i1> @icmp_uge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
407 ; CHECK-LABEL: icmp_uge_vv_v16i1:
408 ; CHECK:       # %bb.0:
409 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
410 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
411 ; CHECK-NEXT:    ret
412   %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"uge", <16 x i1> %m, i32 %evl)
413   ret <16 x i1> %v