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
7 declare <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1>, <vscale x 1 x i1>, metadata, <vscale x 1 x i1>, i32)
9 define <vscale x 1 x i1> @icmp_eq_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
10 ; CHECK-LABEL: icmp_eq_vv_nxv1i1:
12 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
13 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
15 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"eq", <vscale x 1 x i1> %m, i32 %evl)
16 ret <vscale x 1 x i1> %v
19 declare <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1>, <vscale x 2 x i1>, metadata, <vscale x 2 x i1>, i32)
21 define <vscale x 2 x i1> @icmp_eq_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
22 ; CHECK-LABEL: icmp_eq_vv_nxv2i1:
24 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
25 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
27 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"eq", <vscale x 2 x i1> %m, i32 %evl)
28 ret <vscale x 2 x i1> %v
31 declare <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1>, <vscale x 4 x i1>, metadata, <vscale x 4 x i1>, i32)
33 define <vscale x 4 x i1> @icmp_eq_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
34 ; CHECK-LABEL: icmp_eq_vv_nxv4i1:
36 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
37 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
39 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"eq", <vscale x 4 x i1> %m, i32 %evl)
40 ret <vscale x 4 x i1> %v
43 declare <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1>, <vscale x 8 x i1>, metadata, <vscale x 8 x i1>, i32)
45 define <vscale x 8 x i1> @icmp_eq_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
46 ; CHECK-LABEL: icmp_eq_vv_nxv8i1:
48 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
49 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
51 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"eq", <vscale x 8 x i1> %m, i32 %evl)
52 ret <vscale x 8 x i1> %v
55 declare <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1>, <vscale x 16 x i1>, metadata, <vscale x 16 x i1>, i32)
57 define <vscale x 16 x i1> @icmp_eq_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
58 ; CHECK-LABEL: icmp_eq_vv_nxv16i1:
60 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
61 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
63 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"eq", <vscale x 16 x i1> %m, i32 %evl)
64 ret <vscale x 16 x i1> %v
67 declare <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1>, <vscale x 32 x i1>, metadata, <vscale x 32 x i1>, i32)
69 define <vscale x 32 x i1> @icmp_eq_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
70 ; CHECK-LABEL: icmp_eq_vv_nxv32i1:
72 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
73 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
75 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"eq", <vscale x 32 x i1> %m, i32 %evl)
76 ret <vscale x 32 x i1> %v
79 declare <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1>, <vscale x 64 x i1>, metadata, <vscale x 64 x i1>, i32)
81 define <vscale x 64 x i1> @icmp_eq_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
82 ; CHECK-LABEL: icmp_eq_vv_nxv64i1:
84 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
85 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
87 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"eq", <vscale x 64 x i1> %m, i32 %evl)
88 ret <vscale x 64 x i1> %v
91 define <vscale x 1 x i1> @icmp_ne_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
92 ; CHECK-LABEL: icmp_ne_vv_nxv1i1:
94 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
95 ; CHECK-NEXT: vmxor.mm v0, v0, v8
97 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"ne", <vscale x 1 x i1> %m, i32 %evl)
98 ret <vscale x 1 x i1> %v
101 define <vscale x 2 x i1> @icmp_ne_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
102 ; CHECK-LABEL: icmp_ne_vv_nxv2i1:
104 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
105 ; CHECK-NEXT: vmxor.mm v0, v0, v8
107 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"ne", <vscale x 2 x i1> %m, i32 %evl)
108 ret <vscale x 2 x i1> %v
111 define <vscale x 4 x i1> @icmp_ne_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
112 ; CHECK-LABEL: icmp_ne_vv_nxv4i1:
114 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
115 ; CHECK-NEXT: vmxor.mm v0, v0, v8
117 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"ne", <vscale x 4 x i1> %m, i32 %evl)
118 ret <vscale x 4 x i1> %v
121 define <vscale x 8 x i1> @icmp_ne_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
122 ; CHECK-LABEL: icmp_ne_vv_nxv8i1:
124 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
125 ; CHECK-NEXT: vmxor.mm v0, v0, v8
127 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"ne", <vscale x 8 x i1> %m, i32 %evl)
128 ret <vscale x 8 x i1> %v
131 define <vscale x 16 x i1> @icmp_ne_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
132 ; CHECK-LABEL: icmp_ne_vv_nxv16i1:
134 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
135 ; CHECK-NEXT: vmxor.mm v0, v0, v8
137 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"ne", <vscale x 16 x i1> %m, i32 %evl)
138 ret <vscale x 16 x i1> %v
141 define <vscale x 32 x i1> @icmp_ne_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
142 ; CHECK-LABEL: icmp_ne_vv_nxv32i1:
144 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
145 ; CHECK-NEXT: vmxor.mm v0, v0, v8
147 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"ne", <vscale x 32 x i1> %m, i32 %evl)
148 ret <vscale x 32 x i1> %v
151 define <vscale x 64 x i1> @icmp_ne_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
152 ; CHECK-LABEL: icmp_ne_vv_nxv64i1:
154 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
155 ; CHECK-NEXT: vmxor.mm v0, v0, v8
157 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"ne", <vscale x 64 x i1> %m, i32 %evl)
158 ret <vscale x 64 x i1> %v
161 define <vscale x 1 x i1> @icmp_slt_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
162 ; CHECK-LABEL: icmp_slt_vv_nxv1i1:
164 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
165 ; CHECK-NEXT: vmandn.mm v0, v0, v8
167 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"slt", <vscale x 1 x i1> %m, i32 %evl)
168 ret <vscale x 1 x i1> %v
171 define <vscale x 2 x i1> @icmp_slt_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
172 ; CHECK-LABEL: icmp_slt_vv_nxv2i1:
174 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
175 ; CHECK-NEXT: vmandn.mm v0, v0, v8
177 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"slt", <vscale x 2 x i1> %m, i32 %evl)
178 ret <vscale x 2 x i1> %v
181 define <vscale x 4 x i1> @icmp_slt_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
182 ; CHECK-LABEL: icmp_slt_vv_nxv4i1:
184 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
185 ; CHECK-NEXT: vmandn.mm v0, v0, v8
187 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"slt", <vscale x 4 x i1> %m, i32 %evl)
188 ret <vscale x 4 x i1> %v
191 define <vscale x 8 x i1> @icmp_slt_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
192 ; CHECK-LABEL: icmp_slt_vv_nxv8i1:
194 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
195 ; CHECK-NEXT: vmandn.mm v0, v0, v8
197 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"slt", <vscale x 8 x i1> %m, i32 %evl)
198 ret <vscale x 8 x i1> %v
201 define <vscale x 16 x i1> @icmp_slt_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
202 ; CHECK-LABEL: icmp_slt_vv_nxv16i1:
204 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
205 ; CHECK-NEXT: vmandn.mm v0, v0, v8
207 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"slt", <vscale x 16 x i1> %m, i32 %evl)
208 ret <vscale x 16 x i1> %v
211 define <vscale x 32 x i1> @icmp_slt_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
212 ; CHECK-LABEL: icmp_slt_vv_nxv32i1:
214 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
215 ; CHECK-NEXT: vmandn.mm v0, v0, v8
217 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"slt", <vscale x 32 x i1> %m, i32 %evl)
218 ret <vscale x 32 x i1> %v
221 define <vscale x 64 x i1> @icmp_slt_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
222 ; CHECK-LABEL: icmp_slt_vv_nxv64i1:
224 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
225 ; CHECK-NEXT: vmandn.mm v0, v0, v8
227 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"slt", <vscale x 64 x i1> %m, i32 %evl)
228 ret <vscale x 64 x i1> %v
231 define <vscale x 1 x i1> @icmp_ult_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
232 ; CHECK-LABEL: icmp_ult_vv_nxv1i1:
234 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
235 ; CHECK-NEXT: vmandn.mm v0, v8, v0
237 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)
238 ret <vscale x 1 x i1> %v
241 define <vscale x 2 x i1> @icmp_ult_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
242 ; CHECK-LABEL: icmp_ult_vv_nxv2i1:
244 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
245 ; CHECK-NEXT: vmandn.mm v0, v8, v0
247 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"ult", <vscale x 2 x i1> %m, i32 %evl)
248 ret <vscale x 2 x i1> %v
251 define <vscale x 4 x i1> @icmp_ult_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
252 ; CHECK-LABEL: icmp_ult_vv_nxv4i1:
254 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
255 ; CHECK-NEXT: vmandn.mm v0, v8, v0
257 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"ult", <vscale x 4 x i1> %m, i32 %evl)
258 ret <vscale x 4 x i1> %v
261 define <vscale x 8 x i1> @icmp_ult_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
262 ; CHECK-LABEL: icmp_ult_vv_nxv8i1:
264 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
265 ; CHECK-NEXT: vmandn.mm v0, v8, v0
267 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)
268 ret <vscale x 8 x i1> %v
271 define <vscale x 16 x i1> @icmp_ult_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
272 ; CHECK-LABEL: icmp_ult_vv_nxv16i1:
274 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
275 ; CHECK-NEXT: vmandn.mm v0, v8, v0
277 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"ult", <vscale x 16 x i1> %m, i32 %evl)
278 ret <vscale x 16 x i1> %v
281 define <vscale x 32 x i1> @icmp_ult_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
282 ; CHECK-LABEL: icmp_ult_vv_nxv32i1:
284 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
285 ; CHECK-NEXT: vmandn.mm v0, v8, v0
287 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"ult", <vscale x 32 x i1> %m, i32 %evl)
288 ret <vscale x 32 x i1> %v
291 define <vscale x 64 x i1> @icmp_ult_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
292 ; CHECK-LABEL: icmp_ult_vv_nxv64i1:
294 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
295 ; CHECK-NEXT: vmandn.mm v0, v8, v0
297 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"ult", <vscale x 64 x i1> %m, i32 %evl)
298 ret <vscale x 64 x i1> %v
301 define <vscale x 1 x i1> @icmp_sgt_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
302 ; CHECK-LABEL: icmp_sgt_vv_nxv1i1:
304 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
305 ; CHECK-NEXT: vmandn.mm v0, v8, v0
307 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"sgt", <vscale x 1 x i1> %m, i32 %evl)
308 ret <vscale x 1 x i1> %v
311 define <vscale x 2 x i1> @icmp_sgt_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
312 ; CHECK-LABEL: icmp_sgt_vv_nxv2i1:
314 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
315 ; CHECK-NEXT: vmandn.mm v0, v8, v0
317 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"sgt", <vscale x 2 x i1> %m, i32 %evl)
318 ret <vscale x 2 x i1> %v
321 define <vscale x 4 x i1> @icmp_sgt_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
322 ; CHECK-LABEL: icmp_sgt_vv_nxv4i1:
324 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
325 ; CHECK-NEXT: vmandn.mm v0, v8, v0
327 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"sgt", <vscale x 4 x i1> %m, i32 %evl)
328 ret <vscale x 4 x i1> %v
331 define <vscale x 8 x i1> @icmp_sgt_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
332 ; CHECK-LABEL: icmp_sgt_vv_nxv8i1:
334 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
335 ; CHECK-NEXT: vmandn.mm v0, v8, v0
337 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"sgt", <vscale x 8 x i1> %m, i32 %evl)
338 ret <vscale x 8 x i1> %v
341 define <vscale x 16 x i1> @icmp_sgt_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
342 ; CHECK-LABEL: icmp_sgt_vv_nxv16i1:
344 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
345 ; CHECK-NEXT: vmandn.mm v0, v8, v0
347 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"sgt", <vscale x 16 x i1> %m, i32 %evl)
348 ret <vscale x 16 x i1> %v
351 define <vscale x 32 x i1> @icmp_sgt_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
352 ; CHECK-LABEL: icmp_sgt_vv_nxv32i1:
354 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
355 ; CHECK-NEXT: vmandn.mm v0, v8, v0
357 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"sgt", <vscale x 32 x i1> %m, i32 %evl)
358 ret <vscale x 32 x i1> %v
361 define <vscale x 64 x i1> @icmp_sgt_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
362 ; CHECK-LABEL: icmp_sgt_vv_nxv64i1:
364 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
365 ; CHECK-NEXT: vmandn.mm v0, v8, v0
367 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"sgt", <vscale x 64 x i1> %m, i32 %evl)
368 ret <vscale x 64 x i1> %v
371 define <vscale x 1 x i1> @icmp_ugt_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
372 ; CHECK-LABEL: icmp_ugt_vv_nxv1i1:
374 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
375 ; CHECK-NEXT: vmandn.mm v0, v0, v8
377 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)
378 ret <vscale x 1 x i1> %v
381 define <vscale x 2 x i1> @icmp_ugt_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
382 ; CHECK-LABEL: icmp_ugt_vv_nxv2i1:
384 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
385 ; CHECK-NEXT: vmandn.mm v0, v0, v8
387 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"ugt", <vscale x 2 x i1> %m, i32 %evl)
388 ret <vscale x 2 x i1> %v
391 define <vscale x 4 x i1> @icmp_ugt_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
392 ; CHECK-LABEL: icmp_ugt_vv_nxv4i1:
394 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
395 ; CHECK-NEXT: vmandn.mm v0, v0, v8
397 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"ugt", <vscale x 4 x i1> %m, i32 %evl)
398 ret <vscale x 4 x i1> %v
401 define <vscale x 8 x i1> @icmp_ugt_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
402 ; CHECK-LABEL: icmp_ugt_vv_nxv8i1:
404 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
405 ; CHECK-NEXT: vmandn.mm v0, v0, v8
407 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)
408 ret <vscale x 8 x i1> %v
411 define <vscale x 16 x i1> @icmp_ugt_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
412 ; CHECK-LABEL: icmp_ugt_vv_nxv16i1:
414 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
415 ; CHECK-NEXT: vmandn.mm v0, v0, v8
417 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"ugt", <vscale x 16 x i1> %m, i32 %evl)
418 ret <vscale x 16 x i1> %v
421 define <vscale x 32 x i1> @icmp_ugt_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
422 ; CHECK-LABEL: icmp_ugt_vv_nxv32i1:
424 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
425 ; CHECK-NEXT: vmandn.mm v0, v0, v8
427 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"ugt", <vscale x 32 x i1> %m, i32 %evl)
428 ret <vscale x 32 x i1> %v
431 define <vscale x 64 x i1> @icmp_ugt_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
432 ; CHECK-LABEL: icmp_ugt_vv_nxv64i1:
434 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
435 ; CHECK-NEXT: vmandn.mm v0, v0, v8
437 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"ugt", <vscale x 64 x i1> %m, i32 %evl)
438 ret <vscale x 64 x i1> %v
441 define <vscale x 1 x i1> @icmp_sle_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
442 ; CHECK-LABEL: icmp_sle_vv_nxv1i1:
444 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
445 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
447 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"sle", <vscale x 1 x i1> %m, i32 %evl)
448 ret <vscale x 1 x i1> %v
451 define <vscale x 2 x i1> @icmp_sle_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
452 ; CHECK-LABEL: icmp_sle_vv_nxv2i1:
454 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
455 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
457 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"sle", <vscale x 2 x i1> %m, i32 %evl)
458 ret <vscale x 2 x i1> %v
461 define <vscale x 4 x i1> @icmp_sle_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
462 ; CHECK-LABEL: icmp_sle_vv_nxv4i1:
464 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
465 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
467 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"sle", <vscale x 4 x i1> %m, i32 %evl)
468 ret <vscale x 4 x i1> %v
471 define <vscale x 8 x i1> @icmp_sle_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
472 ; CHECK-LABEL: icmp_sle_vv_nxv8i1:
474 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
475 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
477 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"sle", <vscale x 8 x i1> %m, i32 %evl)
478 ret <vscale x 8 x i1> %v
481 define <vscale x 16 x i1> @icmp_sle_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
482 ; CHECK-LABEL: icmp_sle_vv_nxv16i1:
484 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
485 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
487 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"sle", <vscale x 16 x i1> %m, i32 %evl)
488 ret <vscale x 16 x i1> %v
491 define <vscale x 32 x i1> @icmp_sle_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
492 ; CHECK-LABEL: icmp_sle_vv_nxv32i1:
494 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
495 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
497 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"sle", <vscale x 32 x i1> %m, i32 %evl)
498 ret <vscale x 32 x i1> %v
501 define <vscale x 64 x i1> @icmp_sle_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
502 ; CHECK-LABEL: icmp_sle_vv_nxv64i1:
504 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
505 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
507 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"sle", <vscale x 64 x i1> %m, i32 %evl)
508 ret <vscale x 64 x i1> %v
511 define <vscale x 1 x i1> @icmp_ule_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
512 ; CHECK-LABEL: icmp_ule_vv_nxv1i1:
514 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
515 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
517 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)
518 ret <vscale x 1 x i1> %v
521 define <vscale x 2 x i1> @icmp_ule_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
522 ; CHECK-LABEL: icmp_ule_vv_nxv2i1:
524 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
525 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
527 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"ule", <vscale x 2 x i1> %m, i32 %evl)
528 ret <vscale x 2 x i1> %v
531 define <vscale x 4 x i1> @icmp_ule_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
532 ; CHECK-LABEL: icmp_ule_vv_nxv4i1:
534 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
535 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
537 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"ule", <vscale x 4 x i1> %m, i32 %evl)
538 ret <vscale x 4 x i1> %v
541 define <vscale x 8 x i1> @icmp_ule_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
542 ; CHECK-LABEL: icmp_ule_vv_nxv8i1:
544 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
545 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
547 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)
548 ret <vscale x 8 x i1> %v
551 define <vscale x 16 x i1> @icmp_ule_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
552 ; CHECK-LABEL: icmp_ule_vv_nxv16i1:
554 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
555 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
557 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"ule", <vscale x 16 x i1> %m, i32 %evl)
558 ret <vscale x 16 x i1> %v
561 define <vscale x 32 x i1> @icmp_ule_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
562 ; CHECK-LABEL: icmp_ule_vv_nxv32i1:
564 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
565 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
567 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"ule", <vscale x 32 x i1> %m, i32 %evl)
568 ret <vscale x 32 x i1> %v
571 define <vscale x 64 x i1> @icmp_ule_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
572 ; CHECK-LABEL: icmp_ule_vv_nxv64i1:
574 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
575 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
577 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"ule", <vscale x 64 x i1> %m, i32 %evl)
578 ret <vscale x 64 x i1> %v
581 define <vscale x 1 x i1> @icmp_sge_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
582 ; CHECK-LABEL: icmp_sge_vv_nxv1i1:
584 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
585 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
587 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"sge", <vscale x 1 x i1> %m, i32 %evl)
588 ret <vscale x 1 x i1> %v
591 define <vscale x 2 x i1> @icmp_sge_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
592 ; CHECK-LABEL: icmp_sge_vv_nxv2i1:
594 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
595 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
597 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"sge", <vscale x 2 x i1> %m, i32 %evl)
598 ret <vscale x 2 x i1> %v
601 define <vscale x 4 x i1> @icmp_sge_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
602 ; CHECK-LABEL: icmp_sge_vv_nxv4i1:
604 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
605 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
607 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"sge", <vscale x 4 x i1> %m, i32 %evl)
608 ret <vscale x 4 x i1> %v
611 define <vscale x 8 x i1> @icmp_sge_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
612 ; CHECK-LABEL: icmp_sge_vv_nxv8i1:
614 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
615 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
617 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"sge", <vscale x 8 x i1> %m, i32 %evl)
618 ret <vscale x 8 x i1> %v
621 define <vscale x 16 x i1> @icmp_sge_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
622 ; CHECK-LABEL: icmp_sge_vv_nxv16i1:
624 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
625 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
627 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"sge", <vscale x 16 x i1> %m, i32 %evl)
628 ret <vscale x 16 x i1> %v
631 define <vscale x 32 x i1> @icmp_sge_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
632 ; CHECK-LABEL: icmp_sge_vv_nxv32i1:
634 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
635 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
637 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"sge", <vscale x 32 x i1> %m, i32 %evl)
638 ret <vscale x 32 x i1> %v
641 define <vscale x 64 x i1> @icmp_sge_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
642 ; CHECK-LABEL: icmp_sge_vv_nxv64i1:
644 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
645 ; CHECK-NEXT: vmxnor.mm v0, v0, v8
647 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"sge", <vscale x 64 x i1> %m, i32 %evl)
648 ret <vscale x 64 x i1> %v
651 define <vscale x 1 x i1> @icmp_uge_vv_nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {
652 ; CHECK-LABEL: icmp_uge_vv_nxv1i1:
654 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
655 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
657 %v = call <vscale x 1 x i1> @llvm.vp.icmp.nxv1i1(<vscale x 1 x i1> %va, <vscale x 1 x i1> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)
658 ret <vscale x 1 x i1> %v
661 define <vscale x 2 x i1> @icmp_uge_vv_nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, <vscale x 2 x i1> %m, i32 zeroext %evl) {
662 ; CHECK-LABEL: icmp_uge_vv_nxv2i1:
664 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
665 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
667 %v = call <vscale x 2 x i1> @llvm.vp.icmp.nxv2i1(<vscale x 2 x i1> %va, <vscale x 2 x i1> %vb, metadata !"uge", <vscale x 2 x i1> %m, i32 %evl)
668 ret <vscale x 2 x i1> %v
671 define <vscale x 4 x i1> @icmp_uge_vv_nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, <vscale x 4 x i1> %m, i32 zeroext %evl) {
672 ; CHECK-LABEL: icmp_uge_vv_nxv4i1:
674 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
675 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
677 %v = call <vscale x 4 x i1> @llvm.vp.icmp.nxv4i1(<vscale x 4 x i1> %va, <vscale x 4 x i1> %vb, metadata !"uge", <vscale x 4 x i1> %m, i32 %evl)
678 ret <vscale x 4 x i1> %v
681 define <vscale x 8 x i1> @icmp_uge_vv_nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {
682 ; CHECK-LABEL: icmp_uge_vv_nxv8i1:
684 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
685 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
687 %v = call <vscale x 8 x i1> @llvm.vp.icmp.nxv8i1(<vscale x 8 x i1> %va, <vscale x 8 x i1> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)
688 ret <vscale x 8 x i1> %v
691 define <vscale x 16 x i1> @icmp_uge_vv_nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, <vscale x 16 x i1> %m, i32 zeroext %evl) {
692 ; CHECK-LABEL: icmp_uge_vv_nxv16i1:
694 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
695 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
697 %v = call <vscale x 16 x i1> @llvm.vp.icmp.nxv16i1(<vscale x 16 x i1> %va, <vscale x 16 x i1> %vb, metadata !"uge", <vscale x 16 x i1> %m, i32 %evl)
698 ret <vscale x 16 x i1> %v
701 define <vscale x 32 x i1> @icmp_uge_vv_nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {
702 ; CHECK-LABEL: icmp_uge_vv_nxv32i1:
704 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
705 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
707 %v = call <vscale x 32 x i1> @llvm.vp.icmp.nxv32i1(<vscale x 32 x i1> %va, <vscale x 32 x i1> %vb, metadata !"uge", <vscale x 32 x i1> %m, i32 %evl)
708 ret <vscale x 32 x i1> %v
711 define <vscale x 64 x i1> @icmp_uge_vv_nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {
712 ; CHECK-LABEL: icmp_uge_vv_nxv64i1:
714 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
715 ; CHECK-NEXT: vmxnor.mm v0, v8, v0
717 %v = call <vscale x 64 x i1> @llvm.vp.icmp.nxv64i1(<vscale x 64 x i1> %va, <vscale x 64 x i1> %vb, metadata !"uge", <vscale x 64 x i1> %m, i32 %evl)
718 ret <vscale x 64 x i1> %v