Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / setcc-int-vp-mask.ll
blob5fde258fb442b0a74d0d9c6e279134c89647936c
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:
11 ; CHECK:       # %bb.0:
12 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
13 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
14 ; CHECK-NEXT:    ret
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:
23 ; CHECK:       # %bb.0:
24 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
25 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
26 ; CHECK-NEXT:    ret
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:
35 ; CHECK:       # %bb.0:
36 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
37 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
38 ; CHECK-NEXT:    ret
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:
47 ; CHECK:       # %bb.0:
48 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
49 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
50 ; CHECK-NEXT:    ret
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:
59 ; CHECK:       # %bb.0:
60 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
61 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
62 ; CHECK-NEXT:    ret
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:
71 ; CHECK:       # %bb.0:
72 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
73 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
74 ; CHECK-NEXT:    ret
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:
83 ; CHECK:       # %bb.0:
84 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
85 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
86 ; CHECK-NEXT:    ret
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:
93 ; CHECK:       # %bb.0:
94 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
95 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
96 ; CHECK-NEXT:    ret
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:
103 ; CHECK:       # %bb.0:
104 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
105 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
106 ; CHECK-NEXT:    ret
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:
113 ; CHECK:       # %bb.0:
114 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
115 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
116 ; CHECK-NEXT:    ret
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:
123 ; CHECK:       # %bb.0:
124 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
125 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
126 ; CHECK-NEXT:    ret
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:
133 ; CHECK:       # %bb.0:
134 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
135 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
136 ; CHECK-NEXT:    ret
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:
143 ; CHECK:       # %bb.0:
144 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
145 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
146 ; CHECK-NEXT:    ret
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:
153 ; CHECK:       # %bb.0:
154 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
155 ; CHECK-NEXT:    vmxor.mm v0, v0, v8
156 ; CHECK-NEXT:    ret
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:
163 ; CHECK:       # %bb.0:
164 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
165 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
166 ; CHECK-NEXT:    ret
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:
173 ; CHECK:       # %bb.0:
174 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
175 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
176 ; CHECK-NEXT:    ret
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:
183 ; CHECK:       # %bb.0:
184 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
185 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
186 ; CHECK-NEXT:    ret
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:
193 ; CHECK:       # %bb.0:
194 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
195 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
196 ; CHECK-NEXT:    ret
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:
203 ; CHECK:       # %bb.0:
204 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
205 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
206 ; CHECK-NEXT:    ret
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:
213 ; CHECK:       # %bb.0:
214 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
215 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
216 ; CHECK-NEXT:    ret
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:
223 ; CHECK:       # %bb.0:
224 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
225 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
226 ; CHECK-NEXT:    ret
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:
233 ; CHECK:       # %bb.0:
234 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
235 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
236 ; CHECK-NEXT:    ret
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:
243 ; CHECK:       # %bb.0:
244 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
245 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
246 ; CHECK-NEXT:    ret
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:
253 ; CHECK:       # %bb.0:
254 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
255 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
256 ; CHECK-NEXT:    ret
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:
263 ; CHECK:       # %bb.0:
264 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
265 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
266 ; CHECK-NEXT:    ret
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:
273 ; CHECK:       # %bb.0:
274 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
275 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
276 ; CHECK-NEXT:    ret
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:
283 ; CHECK:       # %bb.0:
284 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
285 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
286 ; CHECK-NEXT:    ret
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:
293 ; CHECK:       # %bb.0:
294 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
295 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
296 ; CHECK-NEXT:    ret
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:
303 ; CHECK:       # %bb.0:
304 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
305 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
306 ; CHECK-NEXT:    ret
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:
313 ; CHECK:       # %bb.0:
314 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
315 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
316 ; CHECK-NEXT:    ret
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:
323 ; CHECK:       # %bb.0:
324 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
325 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
326 ; CHECK-NEXT:    ret
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:
333 ; CHECK:       # %bb.0:
334 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
335 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
336 ; CHECK-NEXT:    ret
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:
343 ; CHECK:       # %bb.0:
344 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
345 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
346 ; CHECK-NEXT:    ret
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:
353 ; CHECK:       # %bb.0:
354 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
355 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
356 ; CHECK-NEXT:    ret
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:
363 ; CHECK:       # %bb.0:
364 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
365 ; CHECK-NEXT:    vmandn.mm v0, v8, v0
366 ; CHECK-NEXT:    ret
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:
373 ; CHECK:       # %bb.0:
374 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
375 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
376 ; CHECK-NEXT:    ret
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:
383 ; CHECK:       # %bb.0:
384 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
385 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
386 ; CHECK-NEXT:    ret
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:
393 ; CHECK:       # %bb.0:
394 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
395 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
396 ; CHECK-NEXT:    ret
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:
403 ; CHECK:       # %bb.0:
404 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
405 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
406 ; CHECK-NEXT:    ret
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:
413 ; CHECK:       # %bb.0:
414 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
415 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
416 ; CHECK-NEXT:    ret
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:
423 ; CHECK:       # %bb.0:
424 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
425 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
426 ; CHECK-NEXT:    ret
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:
433 ; CHECK:       # %bb.0:
434 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
435 ; CHECK-NEXT:    vmandn.mm v0, v0, v8
436 ; CHECK-NEXT:    ret
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:
443 ; CHECK:       # %bb.0:
444 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
445 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
446 ; CHECK-NEXT:    ret
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:
453 ; CHECK:       # %bb.0:
454 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
455 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
456 ; CHECK-NEXT:    ret
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:
463 ; CHECK:       # %bb.0:
464 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
465 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
466 ; CHECK-NEXT:    ret
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:
473 ; CHECK:       # %bb.0:
474 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
475 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
476 ; CHECK-NEXT:    ret
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:
483 ; CHECK:       # %bb.0:
484 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
485 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
486 ; CHECK-NEXT:    ret
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:
493 ; CHECK:       # %bb.0:
494 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
495 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
496 ; CHECK-NEXT:    ret
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:
503 ; CHECK:       # %bb.0:
504 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
505 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
506 ; CHECK-NEXT:    ret
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:
513 ; CHECK:       # %bb.0:
514 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
515 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
516 ; CHECK-NEXT:    ret
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:
523 ; CHECK:       # %bb.0:
524 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
525 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
526 ; CHECK-NEXT:    ret
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:
533 ; CHECK:       # %bb.0:
534 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
535 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
536 ; CHECK-NEXT:    ret
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:
543 ; CHECK:       # %bb.0:
544 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
545 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
546 ; CHECK-NEXT:    ret
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:
553 ; CHECK:       # %bb.0:
554 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
555 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
556 ; CHECK-NEXT:    ret
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:
563 ; CHECK:       # %bb.0:
564 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
565 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
566 ; CHECK-NEXT:    ret
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:
573 ; CHECK:       # %bb.0:
574 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
575 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
576 ; CHECK-NEXT:    ret
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:
583 ; CHECK:       # %bb.0:
584 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
585 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
586 ; CHECK-NEXT:    ret
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:
593 ; CHECK:       # %bb.0:
594 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
595 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
596 ; CHECK-NEXT:    ret
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:
603 ; CHECK:       # %bb.0:
604 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
605 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
606 ; CHECK-NEXT:    ret
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:
613 ; CHECK:       # %bb.0:
614 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
615 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
616 ; CHECK-NEXT:    ret
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:
623 ; CHECK:       # %bb.0:
624 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
625 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
626 ; CHECK-NEXT:    ret
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:
633 ; CHECK:       # %bb.0:
634 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
635 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
636 ; CHECK-NEXT:    ret
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:
643 ; CHECK:       # %bb.0:
644 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
645 ; CHECK-NEXT:    vmxnor.mm v0, v0, v8
646 ; CHECK-NEXT:    ret
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:
653 ; CHECK:       # %bb.0:
654 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
655 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
656 ; CHECK-NEXT:    ret
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:
663 ; CHECK:       # %bb.0:
664 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
665 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
666 ; CHECK-NEXT:    ret
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:
673 ; CHECK:       # %bb.0:
674 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
675 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
676 ; CHECK-NEXT:    ret
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:
683 ; CHECK:       # %bb.0:
684 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
685 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
686 ; CHECK-NEXT:    ret
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:
693 ; CHECK:       # %bb.0:
694 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
695 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
696 ; CHECK-NEXT:    ret
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:
703 ; CHECK:       # %bb.0:
704 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
705 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
706 ; CHECK-NEXT:    ret
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:
713 ; CHECK:       # %bb.0:
714 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
715 ; CHECK-NEXT:    vmxnor.mm v0, v8, v0
716 ; CHECK-NEXT:    ret
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