xref: /llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp-mask.ll (revision 74f985b793bf4005e49736f8c2cef8b5cbf7c1ab)
1dc0ae8ceSLian Wang; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*74f985b7SLuke Lau; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \
3dc0ae8ceSLian Wang; RUN:   | FileCheck %s --check-prefixes=CHECK
4*74f985b7SLuke Lau; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \
5dc0ae8ceSLian Wang; RUN:   | FileCheck %s --check-prefixes=CHECK
6dc0ae8ceSLian Wang
7dc0ae8ceSLian Wang
8dc0ae8ceSLian Wangdeclare <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1>, <2 x i1>, metadata, <2 x i1>, i32)
9dc0ae8ceSLian Wang
10dc0ae8ceSLian Wangdefine <2 x i1> @icmp_eq_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
11dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v2i1:
12dc0ae8ceSLian Wang; CHECK:       # %bb.0:
13d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
14dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
15dc0ae8ceSLian Wang; CHECK-NEXT:    ret
16dc0ae8ceSLian Wang  %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)
17dc0ae8ceSLian Wang  ret <2 x i1> %v
18dc0ae8ceSLian Wang}
19dc0ae8ceSLian Wang
20dc0ae8ceSLian Wangdeclare <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1>, <4 x i1>, metadata, <4 x i1>, i32)
21dc0ae8ceSLian Wang
22dc0ae8ceSLian Wangdefine <4 x i1> @icmp_eq_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
23dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v4i1:
24dc0ae8ceSLian Wang; CHECK:       # %bb.0:
25d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
26dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
27dc0ae8ceSLian Wang; CHECK-NEXT:    ret
28dc0ae8ceSLian Wang  %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)
29dc0ae8ceSLian Wang  ret <4 x i1> %v
30dc0ae8ceSLian Wang}
31dc0ae8ceSLian Wang
32dc0ae8ceSLian Wangdeclare <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1>, <8 x i1>, metadata, <8 x i1>, i32)
33dc0ae8ceSLian Wang
34dc0ae8ceSLian Wangdefine <8 x i1> @icmp_eq_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
35dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v8i1:
36dc0ae8ceSLian Wang; CHECK:       # %bb.0:
37d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
38dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
39dc0ae8ceSLian Wang; CHECK-NEXT:    ret
40dc0ae8ceSLian Wang  %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)
41dc0ae8ceSLian Wang  ret <8 x i1> %v
42dc0ae8ceSLian Wang}
43dc0ae8ceSLian Wang
44dc0ae8ceSLian Wangdeclare <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1>, <16 x i1>, metadata, <16 x i1>, i32)
45dc0ae8ceSLian Wang
46dc0ae8ceSLian Wangdefine <16 x i1> @icmp_eq_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
47dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v16i1:
48dc0ae8ceSLian Wang; CHECK:       # %bb.0:
49d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
50dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
51dc0ae8ceSLian Wang; CHECK-NEXT:    ret
52dc0ae8ceSLian Wang  %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)
53dc0ae8ceSLian Wang  ret <16 x i1> %v
54dc0ae8ceSLian Wang}
55dc0ae8ceSLian Wang
56dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ne_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
57dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v2i1:
58dc0ae8ceSLian Wang; CHECK:       # %bb.0:
59d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
60dc0ae8ceSLian Wang; CHECK-NEXT:    vmxor.mm v0, v0, v8
61dc0ae8ceSLian Wang; CHECK-NEXT:    ret
62dc0ae8ceSLian Wang  %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)
63dc0ae8ceSLian Wang  ret <2 x i1> %v
64dc0ae8ceSLian Wang}
65dc0ae8ceSLian Wang
66dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ne_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
67dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v4i1:
68dc0ae8ceSLian Wang; CHECK:       # %bb.0:
69d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
70dc0ae8ceSLian Wang; CHECK-NEXT:    vmxor.mm v0, v0, v8
71dc0ae8ceSLian Wang; CHECK-NEXT:    ret
72dc0ae8ceSLian Wang  %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)
73dc0ae8ceSLian Wang  ret <4 x i1> %v
74dc0ae8ceSLian Wang}
75dc0ae8ceSLian Wang
76dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ne_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
77dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v8i1:
78dc0ae8ceSLian Wang; CHECK:       # %bb.0:
79d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
80dc0ae8ceSLian Wang; CHECK-NEXT:    vmxor.mm v0, v0, v8
81dc0ae8ceSLian Wang; CHECK-NEXT:    ret
82dc0ae8ceSLian Wang  %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)
83dc0ae8ceSLian Wang  ret <8 x i1> %v
84dc0ae8ceSLian Wang}
85dc0ae8ceSLian Wang
86dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ne_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
87dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v16i1:
88dc0ae8ceSLian Wang; CHECK:       # %bb.0:
89d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
90dc0ae8ceSLian Wang; CHECK-NEXT:    vmxor.mm v0, v0, v8
91dc0ae8ceSLian Wang; CHECK-NEXT:    ret
92dc0ae8ceSLian Wang  %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)
93dc0ae8ceSLian Wang  ret <16 x i1> %v
94dc0ae8ceSLian Wang}
95dc0ae8ceSLian Wang
96dc0ae8ceSLian Wangdefine <2 x i1> @icmp_slt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
97dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v2i1:
98dc0ae8ceSLian Wang; CHECK:       # %bb.0:
99d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
100dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
101dc0ae8ceSLian Wang; CHECK-NEXT:    ret
102dc0ae8ceSLian Wang  %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)
103dc0ae8ceSLian Wang  ret <2 x i1> %v
104dc0ae8ceSLian Wang}
105dc0ae8ceSLian Wang
106dc0ae8ceSLian Wangdefine <4 x i1> @icmp_slt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
107dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v4i1:
108dc0ae8ceSLian Wang; CHECK:       # %bb.0:
109d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
110dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
111dc0ae8ceSLian Wang; CHECK-NEXT:    ret
112dc0ae8ceSLian Wang  %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)
113dc0ae8ceSLian Wang  ret <4 x i1> %v
114dc0ae8ceSLian Wang}
115dc0ae8ceSLian Wang
116dc0ae8ceSLian Wangdefine <8 x i1> @icmp_slt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
117dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v8i1:
118dc0ae8ceSLian Wang; CHECK:       # %bb.0:
119d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
120dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
121dc0ae8ceSLian Wang; CHECK-NEXT:    ret
122dc0ae8ceSLian Wang  %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)
123dc0ae8ceSLian Wang  ret <8 x i1> %v
124dc0ae8ceSLian Wang}
125dc0ae8ceSLian Wang
126dc0ae8ceSLian Wangdefine <16 x i1> @icmp_slt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
127dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v16i1:
128dc0ae8ceSLian Wang; CHECK:       # %bb.0:
129d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
130dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
131dc0ae8ceSLian Wang; CHECK-NEXT:    ret
132dc0ae8ceSLian Wang  %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)
133dc0ae8ceSLian Wang  ret <16 x i1> %v
134dc0ae8ceSLian Wang}
135dc0ae8ceSLian Wang
136dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ult_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
137dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v2i1:
138dc0ae8ceSLian Wang; CHECK:       # %bb.0:
139d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
140dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
141dc0ae8ceSLian Wang; CHECK-NEXT:    ret
142dc0ae8ceSLian Wang  %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)
143dc0ae8ceSLian Wang  ret <2 x i1> %v
144dc0ae8ceSLian Wang}
145dc0ae8ceSLian Wang
146dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ult_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
147dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v4i1:
148dc0ae8ceSLian Wang; CHECK:       # %bb.0:
149d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
150dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
151dc0ae8ceSLian Wang; CHECK-NEXT:    ret
152dc0ae8ceSLian Wang  %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)
153dc0ae8ceSLian Wang  ret <4 x i1> %v
154dc0ae8ceSLian Wang}
155dc0ae8ceSLian Wang
156dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ult_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
157dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v8i1:
158dc0ae8ceSLian Wang; CHECK:       # %bb.0:
159d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
160dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
161dc0ae8ceSLian Wang; CHECK-NEXT:    ret
162dc0ae8ceSLian Wang  %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)
163dc0ae8ceSLian Wang  ret <8 x i1> %v
164dc0ae8ceSLian Wang}
165dc0ae8ceSLian Wang
166dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ult_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
167dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v16i1:
168dc0ae8ceSLian Wang; CHECK:       # %bb.0:
169d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
170dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
171dc0ae8ceSLian Wang; CHECK-NEXT:    ret
172dc0ae8ceSLian Wang  %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)
173dc0ae8ceSLian Wang  ret <16 x i1> %v
174dc0ae8ceSLian Wang}
175dc0ae8ceSLian Wang
176dc0ae8ceSLian Wangdefine <2 x i1> @icmp_sgt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
177dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v2i1:
178dc0ae8ceSLian Wang; CHECK:       # %bb.0:
179d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
180dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
181dc0ae8ceSLian Wang; CHECK-NEXT:    ret
182dc0ae8ceSLian Wang  %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)
183dc0ae8ceSLian Wang  ret <2 x i1> %v
184dc0ae8ceSLian Wang}
185dc0ae8ceSLian Wang
186dc0ae8ceSLian Wangdefine <4 x i1> @icmp_sgt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
187dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v4i1:
188dc0ae8ceSLian Wang; CHECK:       # %bb.0:
189d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
190dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
191dc0ae8ceSLian Wang; CHECK-NEXT:    ret
192dc0ae8ceSLian Wang  %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)
193dc0ae8ceSLian Wang  ret <4 x i1> %v
194dc0ae8ceSLian Wang}
195dc0ae8ceSLian Wang
196dc0ae8ceSLian Wangdefine <8 x i1> @icmp_sgt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
197dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v8i1:
198dc0ae8ceSLian Wang; CHECK:       # %bb.0:
199d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
200dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
201dc0ae8ceSLian Wang; CHECK-NEXT:    ret
202dc0ae8ceSLian Wang  %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)
203dc0ae8ceSLian Wang  ret <8 x i1> %v
204dc0ae8ceSLian Wang}
205dc0ae8ceSLian Wang
206dc0ae8ceSLian Wangdefine <16 x i1> @icmp_sgt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
207dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v16i1:
208dc0ae8ceSLian Wang; CHECK:       # %bb.0:
209d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
210dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v8, v0
211dc0ae8ceSLian Wang; CHECK-NEXT:    ret
212dc0ae8ceSLian Wang  %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)
213dc0ae8ceSLian Wang  ret <16 x i1> %v
214dc0ae8ceSLian Wang}
215dc0ae8ceSLian Wang
216dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ugt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
217dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v2i1:
218dc0ae8ceSLian Wang; CHECK:       # %bb.0:
219d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
220dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
221dc0ae8ceSLian Wang; CHECK-NEXT:    ret
222dc0ae8ceSLian Wang  %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)
223dc0ae8ceSLian Wang  ret <2 x i1> %v
224dc0ae8ceSLian Wang}
225dc0ae8ceSLian Wang
226dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ugt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
227dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v4i1:
228dc0ae8ceSLian Wang; CHECK:       # %bb.0:
229d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
230dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
231dc0ae8ceSLian Wang; CHECK-NEXT:    ret
232dc0ae8ceSLian Wang  %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)
233dc0ae8ceSLian Wang  ret <4 x i1> %v
234dc0ae8ceSLian Wang}
235dc0ae8ceSLian Wang
236dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ugt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
237dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v8i1:
238dc0ae8ceSLian Wang; CHECK:       # %bb.0:
239d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
240dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
241dc0ae8ceSLian Wang; CHECK-NEXT:    ret
242dc0ae8ceSLian Wang  %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)
243dc0ae8ceSLian Wang  ret <8 x i1> %v
244dc0ae8ceSLian Wang}
245dc0ae8ceSLian Wang
246dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ugt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
247dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v16i1:
248dc0ae8ceSLian Wang; CHECK:       # %bb.0:
249d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
250dc0ae8ceSLian Wang; CHECK-NEXT:    vmandn.mm v0, v0, v8
251dc0ae8ceSLian Wang; CHECK-NEXT:    ret
252dc0ae8ceSLian Wang  %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)
253dc0ae8ceSLian Wang  ret <16 x i1> %v
254dc0ae8ceSLian Wang}
255dc0ae8ceSLian Wang
256dc0ae8ceSLian Wangdefine <2 x i1> @icmp_sle_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
257dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v2i1:
258dc0ae8ceSLian Wang; CHECK:       # %bb.0:
259d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
260dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
261dc0ae8ceSLian Wang; CHECK-NEXT:    ret
262dc0ae8ceSLian Wang  %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)
263dc0ae8ceSLian Wang  ret <2 x i1> %v
264dc0ae8ceSLian Wang}
265dc0ae8ceSLian Wang
266dc0ae8ceSLian Wangdefine <4 x i1> @icmp_sle_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
267dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v4i1:
268dc0ae8ceSLian Wang; CHECK:       # %bb.0:
269d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
270dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
271dc0ae8ceSLian Wang; CHECK-NEXT:    ret
272dc0ae8ceSLian Wang  %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)
273dc0ae8ceSLian Wang  ret <4 x i1> %v
274dc0ae8ceSLian Wang}
275dc0ae8ceSLian Wang
276dc0ae8ceSLian Wangdefine <8 x i1> @icmp_sle_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
277dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v8i1:
278dc0ae8ceSLian Wang; CHECK:       # %bb.0:
279d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
280dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
281dc0ae8ceSLian Wang; CHECK-NEXT:    ret
282dc0ae8ceSLian Wang  %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)
283dc0ae8ceSLian Wang  ret <8 x i1> %v
284dc0ae8ceSLian Wang}
285dc0ae8ceSLian Wang
286dc0ae8ceSLian Wangdefine <16 x i1> @icmp_sle_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
287dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v16i1:
288dc0ae8ceSLian Wang; CHECK:       # %bb.0:
289d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
290dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
291dc0ae8ceSLian Wang; CHECK-NEXT:    ret
292dc0ae8ceSLian Wang  %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)
293dc0ae8ceSLian Wang  ret <16 x i1> %v
294dc0ae8ceSLian Wang}
295dc0ae8ceSLian Wang
296dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ule_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
297dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v2i1:
298dc0ae8ceSLian Wang; CHECK:       # %bb.0:
299d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
300dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
301dc0ae8ceSLian Wang; CHECK-NEXT:    ret
302dc0ae8ceSLian Wang  %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)
303dc0ae8ceSLian Wang  ret <2 x i1> %v
304dc0ae8ceSLian Wang}
305dc0ae8ceSLian Wang
306dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ule_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
307dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v4i1:
308dc0ae8ceSLian Wang; CHECK:       # %bb.0:
309d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
310dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
311dc0ae8ceSLian Wang; CHECK-NEXT:    ret
312dc0ae8ceSLian Wang  %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)
313dc0ae8ceSLian Wang  ret <4 x i1> %v
314dc0ae8ceSLian Wang}
315dc0ae8ceSLian Wang
316dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ule_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
317dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v8i1:
318dc0ae8ceSLian Wang; CHECK:       # %bb.0:
319d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
320dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
321dc0ae8ceSLian Wang; CHECK-NEXT:    ret
322dc0ae8ceSLian Wang  %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)
323dc0ae8ceSLian Wang  ret <8 x i1> %v
324dc0ae8ceSLian Wang}
325dc0ae8ceSLian Wang
326dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ule_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
327dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v16i1:
328dc0ae8ceSLian Wang; CHECK:       # %bb.0:
329d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
330dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
331dc0ae8ceSLian Wang; CHECK-NEXT:    ret
332dc0ae8ceSLian Wang  %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)
333dc0ae8ceSLian Wang  ret <16 x i1> %v
334dc0ae8ceSLian Wang}
335dc0ae8ceSLian Wang
336dc0ae8ceSLian Wangdefine <2 x i1> @icmp_sge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
337dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v2i1:
338dc0ae8ceSLian Wang; CHECK:       # %bb.0:
339d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
340dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
341dc0ae8ceSLian Wang; CHECK-NEXT:    ret
342dc0ae8ceSLian Wang  %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)
343dc0ae8ceSLian Wang  ret <2 x i1> %v
344dc0ae8ceSLian Wang}
345dc0ae8ceSLian Wang
346dc0ae8ceSLian Wangdefine <4 x i1> @icmp_sge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
347dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v4i1:
348dc0ae8ceSLian Wang; CHECK:       # %bb.0:
349d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
350dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
351dc0ae8ceSLian Wang; CHECK-NEXT:    ret
352dc0ae8ceSLian Wang  %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)
353dc0ae8ceSLian Wang  ret <4 x i1> %v
354dc0ae8ceSLian Wang}
355dc0ae8ceSLian Wang
356dc0ae8ceSLian Wangdefine <8 x i1> @icmp_sge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
357dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v8i1:
358dc0ae8ceSLian Wang; CHECK:       # %bb.0:
359d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
360dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
361dc0ae8ceSLian Wang; CHECK-NEXT:    ret
362dc0ae8ceSLian Wang  %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)
363dc0ae8ceSLian Wang  ret <8 x i1> %v
364dc0ae8ceSLian Wang}
365dc0ae8ceSLian Wang
366dc0ae8ceSLian Wangdefine <16 x i1> @icmp_sge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
367dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v16i1:
368dc0ae8ceSLian Wang; CHECK:       # %bb.0:
369d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
370dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v0, v8
371dc0ae8ceSLian Wang; CHECK-NEXT:    ret
372dc0ae8ceSLian Wang  %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)
373dc0ae8ceSLian Wang  ret <16 x i1> %v
374dc0ae8ceSLian Wang}
375dc0ae8ceSLian Wang
376dc0ae8ceSLian Wangdefine <2 x i1> @icmp_uge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {
377dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v2i1:
378dc0ae8ceSLian Wang; CHECK:       # %bb.0:
379d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
380dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
381dc0ae8ceSLian Wang; CHECK-NEXT:    ret
382dc0ae8ceSLian Wang  %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)
383dc0ae8ceSLian Wang  ret <2 x i1> %v
384dc0ae8ceSLian Wang}
385dc0ae8ceSLian Wang
386dc0ae8ceSLian Wangdefine <4 x i1> @icmp_uge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {
387dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v4i1:
388dc0ae8ceSLian Wang; CHECK:       # %bb.0:
389d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
390dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
391dc0ae8ceSLian Wang; CHECK-NEXT:    ret
392dc0ae8ceSLian Wang  %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)
393dc0ae8ceSLian Wang  ret <4 x i1> %v
394dc0ae8ceSLian Wang}
395dc0ae8ceSLian Wang
396dc0ae8ceSLian Wangdefine <8 x i1> @icmp_uge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {
397dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v8i1:
398dc0ae8ceSLian Wang; CHECK:       # %bb.0:
399d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
400dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
401dc0ae8ceSLian Wang; CHECK-NEXT:    ret
402dc0ae8ceSLian Wang  %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)
403dc0ae8ceSLian Wang  ret <8 x i1> %v
404dc0ae8ceSLian Wang}
405dc0ae8ceSLian Wang
406dc0ae8ceSLian Wangdefine <16 x i1> @icmp_uge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {
407dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v16i1:
408dc0ae8ceSLian Wang; CHECK:       # %bb.0:
409d89d45caSPhilip Reames; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
410dc0ae8ceSLian Wang; CHECK-NEXT:    vmxnor.mm v0, v8, v0
411dc0ae8ceSLian Wang; CHECK-NEXT:    ret
412dc0ae8ceSLian Wang  %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)
413dc0ae8ceSLian Wang  ret <16 x i1> %v
414dc0ae8ceSLian Wang}
415