1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+v,+m,+zfh,+zvfh -target-abi=ilp32d \
3 ; RUN: -verify-machineinstrs < %s | FileCheck %s \
4 ; RUN: --check-prefixes=CHECK,ZVFH,ZVFH32
5 ; RUN: llc -mtriple=riscv64 -mattr=+v,+m,+zfh,+zvfh -target-abi=lp64d \
6 ; RUN: -verify-machineinstrs < %s | FileCheck %s \
7 ; RUN: --check-prefixes=CHECK,ZVFH,ZVFH64
8 ; RUN: llc -mtriple=riscv32 -mattr=+v,+m,+zfh,+zvfhmin -target-abi=ilp32d \
9 ; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,ZVFHMIN,ZVFHMIN32
10 ; RUN: llc -mtriple=riscv64 -mattr=+v,+m,+zfh,+zvfhmin -target-abi=lp64d \
11 ; RUN: -verify-machineinstrs < %s | FileCheck %s \
12 ; RUN: --check-prefixes=CHECK,ZVFHMIN,ZVFHMIN64
14 declare <7 x i1> @llvm.vp.fcmp.v7f16(<7 x half>, <7 x half>, metadata, <7 x i1>, i32)
16 define <7 x i1> @fcmp_oeq_vv_v7f16(<7 x half> %va, <7 x half> %vb, <7 x i1> %m, i32 zeroext %evl) {
17 ; ZVFH-LABEL: fcmp_oeq_vv_v7f16:
19 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
20 ; ZVFH-NEXT: vmfeq.vv v0, v8, v9, v0.t
23 ; ZVFHMIN-LABEL: fcmp_oeq_vv_v7f16:
25 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
26 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
27 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
28 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
29 ; ZVFHMIN-NEXT: vmfeq.vv v8, v12, v10, v0.t
30 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
32 %v = call <7 x i1> @llvm.vp.fcmp.v7f16(<7 x half> %va, <7 x half> %vb, metadata !"oeq", <7 x i1> %m, i32 %evl)
36 declare <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half>, <8 x half>, metadata, <8 x i1>, i32)
38 define <8 x i1> @fcmp_oeq_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
39 ; ZVFH-LABEL: fcmp_oeq_vv_v8f16:
41 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
42 ; ZVFH-NEXT: vmfeq.vv v0, v8, v9, v0.t
45 ; ZVFHMIN-LABEL: fcmp_oeq_vv_v8f16:
47 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
48 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
49 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
50 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
51 ; ZVFHMIN-NEXT: vmfeq.vv v8, v12, v10, v0.t
52 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
54 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"oeq", <8 x i1> %m, i32 %evl)
58 define <8 x i1> @fcmp_oeq_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
59 ; ZVFH-LABEL: fcmp_oeq_vf_v8f16:
61 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
62 ; ZVFH-NEXT: vmfeq.vf v0, v8, fa0, v0.t
65 ; ZVFHMIN-LABEL: fcmp_oeq_vf_v8f16:
67 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
68 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
69 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
70 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
71 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
72 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
73 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
74 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
75 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
76 ; ZVFHMIN-NEXT: vmfeq.vv v8, v10, v12, v0.t
77 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
79 %elt.head = insertelement <8 x half> poison, half %b, i32 0
80 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
81 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"oeq", <8 x i1> %m, i32 %evl)
85 define <8 x i1> @fcmp_oeq_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
86 ; ZVFH-LABEL: fcmp_oeq_vf_swap_v8f16:
88 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
89 ; ZVFH-NEXT: vmfeq.vf v0, v8, fa0, v0.t
92 ; ZVFHMIN-LABEL: fcmp_oeq_vf_swap_v8f16:
94 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
95 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
96 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
97 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
98 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
99 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
100 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
101 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
102 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
103 ; ZVFHMIN-NEXT: vmfeq.vv v8, v12, v10, v0.t
104 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
106 %elt.head = insertelement <8 x half> poison, half %b, i32 0
107 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
108 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"oeq", <8 x i1> %m, i32 %evl)
112 define <8 x i1> @fcmp_ogt_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
113 ; ZVFH-LABEL: fcmp_ogt_vv_v8f16:
115 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
116 ; ZVFH-NEXT: vmflt.vv v0, v9, v8, v0.t
119 ; ZVFHMIN-LABEL: fcmp_ogt_vv_v8f16:
121 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
122 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
123 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
124 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
125 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
126 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
128 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ogt", <8 x i1> %m, i32 %evl)
132 define <8 x i1> @fcmp_ogt_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
133 ; ZVFH-LABEL: fcmp_ogt_vf_v8f16:
135 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
136 ; ZVFH-NEXT: vmfgt.vf v0, v8, fa0, v0.t
139 ; ZVFHMIN-LABEL: fcmp_ogt_vf_v8f16:
141 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
142 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
143 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
144 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
145 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
146 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
147 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
148 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
149 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
150 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
151 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
153 %elt.head = insertelement <8 x half> poison, half %b, i32 0
154 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
155 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ogt", <8 x i1> %m, i32 %evl)
159 define <8 x i1> @fcmp_ogt_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
160 ; ZVFH-LABEL: fcmp_ogt_vf_swap_v8f16:
162 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
163 ; ZVFH-NEXT: vmflt.vf v0, v8, fa0, v0.t
166 ; ZVFHMIN-LABEL: fcmp_ogt_vf_swap_v8f16:
168 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
169 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
170 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
171 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
172 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
173 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
174 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
175 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
176 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
177 ; ZVFHMIN-NEXT: vmflt.vv v8, v10, v12, v0.t
178 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
180 %elt.head = insertelement <8 x half> poison, half %b, i32 0
181 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
182 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ogt", <8 x i1> %m, i32 %evl)
186 define <8 x i1> @fcmp_oge_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
187 ; ZVFH-LABEL: fcmp_oge_vv_v8f16:
189 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
190 ; ZVFH-NEXT: vmfle.vv v0, v9, v8, v0.t
193 ; ZVFHMIN-LABEL: fcmp_oge_vv_v8f16:
195 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
196 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
197 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
198 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
199 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
200 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
202 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"oge", <8 x i1> %m, i32 %evl)
206 define <8 x i1> @fcmp_oge_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
207 ; ZVFH-LABEL: fcmp_oge_vf_v8f16:
209 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
210 ; ZVFH-NEXT: vmfge.vf v0, v8, fa0, v0.t
213 ; ZVFHMIN-LABEL: fcmp_oge_vf_v8f16:
215 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
216 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
217 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
218 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
219 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
220 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
221 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
222 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
223 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
224 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
225 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
227 %elt.head = insertelement <8 x half> poison, half %b, i32 0
228 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
229 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"oge", <8 x i1> %m, i32 %evl)
233 define <8 x i1> @fcmp_oge_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
234 ; ZVFH-LABEL: fcmp_oge_vf_swap_v8f16:
236 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
237 ; ZVFH-NEXT: vmfle.vf v0, v8, fa0, v0.t
240 ; ZVFHMIN-LABEL: fcmp_oge_vf_swap_v8f16:
242 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
243 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
244 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
245 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
246 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
247 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
248 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
249 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
250 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
251 ; ZVFHMIN-NEXT: vmfle.vv v8, v10, v12, v0.t
252 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
254 %elt.head = insertelement <8 x half> poison, half %b, i32 0
255 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
256 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"oge", <8 x i1> %m, i32 %evl)
260 define <8 x i1> @fcmp_olt_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
261 ; ZVFH-LABEL: fcmp_olt_vv_v8f16:
263 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
264 ; ZVFH-NEXT: vmflt.vv v0, v8, v9, v0.t
267 ; ZVFHMIN-LABEL: fcmp_olt_vv_v8f16:
269 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
270 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
271 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
272 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
273 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
274 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
276 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"olt", <8 x i1> %m, i32 %evl)
280 define <8 x i1> @fcmp_olt_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
281 ; ZVFH-LABEL: fcmp_olt_vf_v8f16:
283 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
284 ; ZVFH-NEXT: vmflt.vf v0, v8, fa0, v0.t
287 ; ZVFHMIN-LABEL: fcmp_olt_vf_v8f16:
289 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
290 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
291 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
292 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
293 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
294 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
295 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
296 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
297 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
298 ; ZVFHMIN-NEXT: vmflt.vv v8, v10, v12, v0.t
299 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
301 %elt.head = insertelement <8 x half> poison, half %b, i32 0
302 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
303 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"olt", <8 x i1> %m, i32 %evl)
307 define <8 x i1> @fcmp_olt_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
308 ; ZVFH-LABEL: fcmp_olt_vf_swap_v8f16:
310 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
311 ; ZVFH-NEXT: vmfgt.vf v0, v8, fa0, v0.t
314 ; ZVFHMIN-LABEL: fcmp_olt_vf_swap_v8f16:
316 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
317 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
318 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
319 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
320 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
321 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
322 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
323 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
324 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
325 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
326 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
328 %elt.head = insertelement <8 x half> poison, half %b, i32 0
329 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
330 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"olt", <8 x i1> %m, i32 %evl)
334 define <8 x i1> @fcmp_ole_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
335 ; ZVFH-LABEL: fcmp_ole_vv_v8f16:
337 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
338 ; ZVFH-NEXT: vmfle.vv v0, v8, v9, v0.t
341 ; ZVFHMIN-LABEL: fcmp_ole_vv_v8f16:
343 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
344 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
345 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
346 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
347 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
348 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
350 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ole", <8 x i1> %m, i32 %evl)
354 define <8 x i1> @fcmp_ole_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
355 ; ZVFH-LABEL: fcmp_ole_vf_v8f16:
357 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
358 ; ZVFH-NEXT: vmfle.vf v0, v8, fa0, v0.t
361 ; ZVFHMIN-LABEL: fcmp_ole_vf_v8f16:
363 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
364 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
365 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
366 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
367 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
368 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
369 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
370 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
371 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
372 ; ZVFHMIN-NEXT: vmfle.vv v8, v10, v12, v0.t
373 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
375 %elt.head = insertelement <8 x half> poison, half %b, i32 0
376 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
377 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ole", <8 x i1> %m, i32 %evl)
381 define <8 x i1> @fcmp_ole_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
382 ; ZVFH-LABEL: fcmp_ole_vf_swap_v8f16:
384 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
385 ; ZVFH-NEXT: vmfge.vf v0, v8, fa0, v0.t
388 ; ZVFHMIN-LABEL: fcmp_ole_vf_swap_v8f16:
390 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
391 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
392 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
393 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
394 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
395 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
396 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
397 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
398 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
399 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
400 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
402 %elt.head = insertelement <8 x half> poison, half %b, i32 0
403 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
404 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ole", <8 x i1> %m, i32 %evl)
408 define <8 x i1> @fcmp_one_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
409 ; ZVFH-LABEL: fcmp_one_vv_v8f16:
411 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
412 ; ZVFH-NEXT: vmflt.vv v10, v8, v9, v0.t
413 ; ZVFH-NEXT: vmflt.vv v8, v9, v8, v0.t
414 ; ZVFH-NEXT: vmor.mm v0, v8, v10
417 ; ZVFHMIN-LABEL: fcmp_one_vv_v8f16:
419 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
420 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
421 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
422 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
423 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
424 ; ZVFHMIN-NEXT: vmflt.vv v9, v10, v12, v0.t
425 ; ZVFHMIN-NEXT: vmor.mm v0, v9, v8
427 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"one", <8 x i1> %m, i32 %evl)
431 define <8 x i1> @fcmp_one_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
432 ; ZVFH-LABEL: fcmp_one_vf_v8f16:
434 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
435 ; ZVFH-NEXT: vmflt.vf v9, v8, fa0, v0.t
436 ; ZVFH-NEXT: vmfgt.vf v8, v8, fa0, v0.t
437 ; ZVFH-NEXT: vmor.mm v0, v8, v9
440 ; ZVFHMIN-LABEL: fcmp_one_vf_v8f16:
442 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
443 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
444 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
445 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
446 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
447 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
448 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
449 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
450 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
451 ; ZVFHMIN-NEXT: vmflt.vv v8, v10, v12, v0.t
452 ; ZVFHMIN-NEXT: vmflt.vv v9, v12, v10, v0.t
453 ; ZVFHMIN-NEXT: vmor.mm v0, v9, v8
455 %elt.head = insertelement <8 x half> poison, half %b, i32 0
456 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
457 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"one", <8 x i1> %m, i32 %evl)
461 define <8 x i1> @fcmp_one_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
462 ; ZVFH-LABEL: fcmp_one_vf_swap_v8f16:
464 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
465 ; ZVFH-NEXT: vmfgt.vf v9, v8, fa0, v0.t
466 ; ZVFH-NEXT: vmflt.vf v8, v8, fa0, v0.t
467 ; ZVFH-NEXT: vmor.mm v0, v8, v9
470 ; ZVFHMIN-LABEL: fcmp_one_vf_swap_v8f16:
472 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
473 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
474 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
475 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
476 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
477 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
478 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
479 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
480 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
481 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
482 ; ZVFHMIN-NEXT: vmflt.vv v9, v10, v12, v0.t
483 ; ZVFHMIN-NEXT: vmor.mm v0, v9, v8
485 %elt.head = insertelement <8 x half> poison, half %b, i32 0
486 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
487 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"one", <8 x i1> %m, i32 %evl)
491 define <8 x i1> @fcmp_ord_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
492 ; ZVFH-LABEL: fcmp_ord_vv_v8f16:
494 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
495 ; ZVFH-NEXT: vmfeq.vv v9, v9, v9, v0.t
496 ; ZVFH-NEXT: vmfeq.vv v8, v8, v8, v0.t
497 ; ZVFH-NEXT: vmand.mm v0, v8, v9
500 ; ZVFHMIN-LABEL: fcmp_ord_vv_v8f16:
502 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
503 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
504 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
505 ; ZVFHMIN-NEXT: vmfeq.vv v9, v10, v10, v0.t
506 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
507 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
508 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
509 ; ZVFHMIN-NEXT: vmfeq.vv v8, v10, v10, v0.t
510 ; ZVFHMIN-NEXT: vmand.mm v0, v8, v9
512 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ord", <8 x i1> %m, i32 %evl)
516 define <8 x i1> @fcmp_ord_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
517 ; ZVFH-LABEL: fcmp_ord_vf_v8f16:
519 ; ZVFH-NEXT: vsetivli zero, 8, e16, m1, ta, ma
520 ; ZVFH-NEXT: vfmv.v.f v9, fa0
521 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
522 ; ZVFH-NEXT: vmfeq.vf v9, v9, fa0, v0.t
523 ; ZVFH-NEXT: vmfeq.vv v8, v8, v8, v0.t
524 ; ZVFH-NEXT: vmand.mm v0, v8, v9
527 ; ZVFHMIN-LABEL: fcmp_ord_vf_v8f16:
529 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
530 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
531 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
532 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
533 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
534 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
535 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
536 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
537 ; ZVFHMIN-NEXT: vmfeq.vv v8, v10, v10, v0.t
538 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
539 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
540 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
541 ; ZVFHMIN-NEXT: vmfeq.vv v9, v10, v10, v0.t
542 ; ZVFHMIN-NEXT: vmand.mm v0, v8, v9
544 %elt.head = insertelement <8 x half> poison, half %b, i32 0
545 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
546 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ord", <8 x i1> %m, i32 %evl)
550 define <8 x i1> @fcmp_ord_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
551 ; ZVFH-LABEL: fcmp_ord_vf_swap_v8f16:
553 ; ZVFH-NEXT: vsetivli zero, 8, e16, m1, ta, ma
554 ; ZVFH-NEXT: vfmv.v.f v9, fa0
555 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
556 ; ZVFH-NEXT: vmfeq.vf v9, v9, fa0, v0.t
557 ; ZVFH-NEXT: vmfeq.vv v8, v8, v8, v0.t
558 ; ZVFH-NEXT: vmand.mm v0, v9, v8
561 ; ZVFHMIN-LABEL: fcmp_ord_vf_swap_v8f16:
563 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
564 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
565 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
566 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
567 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
568 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
569 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
570 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
571 ; ZVFHMIN-NEXT: vmfeq.vv v8, v10, v10, v0.t
572 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
573 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
574 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
575 ; ZVFHMIN-NEXT: vmfeq.vv v9, v10, v10, v0.t
576 ; ZVFHMIN-NEXT: vmand.mm v0, v9, v8
578 %elt.head = insertelement <8 x half> poison, half %b, i32 0
579 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
580 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ord", <8 x i1> %m, i32 %evl)
584 define <8 x i1> @fcmp_ueq_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
585 ; ZVFH-LABEL: fcmp_ueq_vv_v8f16:
587 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
588 ; ZVFH-NEXT: vmflt.vv v10, v8, v9, v0.t
589 ; ZVFH-NEXT: vmflt.vv v8, v9, v8, v0.t
590 ; ZVFH-NEXT: vmnor.mm v0, v8, v10
593 ; ZVFHMIN-LABEL: fcmp_ueq_vv_v8f16:
595 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
596 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
597 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
598 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
599 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
600 ; ZVFHMIN-NEXT: vmflt.vv v9, v10, v12, v0.t
601 ; ZVFHMIN-NEXT: vmnor.mm v0, v9, v8
603 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ueq", <8 x i1> %m, i32 %evl)
607 define <8 x i1> @fcmp_ueq_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
608 ; ZVFH-LABEL: fcmp_ueq_vf_v8f16:
610 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
611 ; ZVFH-NEXT: vmflt.vf v9, v8, fa0, v0.t
612 ; ZVFH-NEXT: vmfgt.vf v8, v8, fa0, v0.t
613 ; ZVFH-NEXT: vmnor.mm v0, v8, v9
616 ; ZVFHMIN-LABEL: fcmp_ueq_vf_v8f16:
618 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
619 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
620 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
621 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
622 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
623 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
624 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
625 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
626 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
627 ; ZVFHMIN-NEXT: vmflt.vv v8, v10, v12, v0.t
628 ; ZVFHMIN-NEXT: vmflt.vv v9, v12, v10, v0.t
629 ; ZVFHMIN-NEXT: vmnor.mm v0, v9, v8
631 %elt.head = insertelement <8 x half> poison, half %b, i32 0
632 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
633 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ueq", <8 x i1> %m, i32 %evl)
637 define <8 x i1> @fcmp_ueq_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
638 ; ZVFH-LABEL: fcmp_ueq_vf_swap_v8f16:
640 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
641 ; ZVFH-NEXT: vmfgt.vf v9, v8, fa0, v0.t
642 ; ZVFH-NEXT: vmflt.vf v8, v8, fa0, v0.t
643 ; ZVFH-NEXT: vmnor.mm v0, v8, v9
646 ; ZVFHMIN-LABEL: fcmp_ueq_vf_swap_v8f16:
648 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
649 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
650 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
651 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
652 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
653 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
654 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
655 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
656 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
657 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
658 ; ZVFHMIN-NEXT: vmflt.vv v9, v10, v12, v0.t
659 ; ZVFHMIN-NEXT: vmnor.mm v0, v9, v8
661 %elt.head = insertelement <8 x half> poison, half %b, i32 0
662 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
663 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ueq", <8 x i1> %m, i32 %evl)
667 define <8 x i1> @fcmp_ugt_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
668 ; ZVFH-LABEL: fcmp_ugt_vv_v8f16:
670 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
671 ; ZVFH-NEXT: vmfle.vv v8, v8, v9, v0.t
672 ; ZVFH-NEXT: vmnot.m v0, v8
675 ; ZVFHMIN-LABEL: fcmp_ugt_vv_v8f16:
677 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
678 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
679 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
680 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
681 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
682 ; ZVFHMIN-NEXT: vmnot.m v0, v8
684 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)
688 define <8 x i1> @fcmp_ugt_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
689 ; ZVFH-LABEL: fcmp_ugt_vf_v8f16:
691 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
692 ; ZVFH-NEXT: vmfle.vf v8, v8, fa0, v0.t
693 ; ZVFH-NEXT: vmnot.m v0, v8
696 ; ZVFHMIN-LABEL: fcmp_ugt_vf_v8f16:
698 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
699 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
700 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
701 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
702 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
703 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
704 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
705 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
706 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
707 ; ZVFHMIN-NEXT: vmfle.vv v8, v10, v12, v0.t
708 ; ZVFHMIN-NEXT: vmnot.m v0, v8
710 %elt.head = insertelement <8 x half> poison, half %b, i32 0
711 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
712 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)
716 define <8 x i1> @fcmp_ugt_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
717 ; ZVFH-LABEL: fcmp_ugt_vf_swap_v8f16:
719 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
720 ; ZVFH-NEXT: vmfge.vf v8, v8, fa0, v0.t
721 ; ZVFH-NEXT: vmnot.m v0, v8
724 ; ZVFHMIN-LABEL: fcmp_ugt_vf_swap_v8f16:
726 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
727 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
728 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
729 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
730 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
731 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
732 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
733 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
734 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
735 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
736 ; ZVFHMIN-NEXT: vmnot.m v0, v8
738 %elt.head = insertelement <8 x half> poison, half %b, i32 0
739 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
740 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)
744 define <8 x i1> @fcmp_uge_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
745 ; ZVFH-LABEL: fcmp_uge_vv_v8f16:
747 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
748 ; ZVFH-NEXT: vmflt.vv v8, v8, v9, v0.t
749 ; ZVFH-NEXT: vmnot.m v0, v8
752 ; ZVFHMIN-LABEL: fcmp_uge_vv_v8f16:
754 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
755 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
756 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
757 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
758 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
759 ; ZVFHMIN-NEXT: vmnot.m v0, v8
761 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)
765 define <8 x i1> @fcmp_uge_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
766 ; ZVFH-LABEL: fcmp_uge_vf_v8f16:
768 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
769 ; ZVFH-NEXT: vmflt.vf v8, v8, fa0, v0.t
770 ; ZVFH-NEXT: vmnot.m v0, v8
773 ; ZVFHMIN-LABEL: fcmp_uge_vf_v8f16:
775 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
776 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
777 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
778 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
779 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
780 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
781 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
782 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
783 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
784 ; ZVFHMIN-NEXT: vmflt.vv v8, v10, v12, v0.t
785 ; ZVFHMIN-NEXT: vmnot.m v0, v8
787 %elt.head = insertelement <8 x half> poison, half %b, i32 0
788 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
789 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)
793 define <8 x i1> @fcmp_uge_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
794 ; ZVFH-LABEL: fcmp_uge_vf_swap_v8f16:
796 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
797 ; ZVFH-NEXT: vmfgt.vf v8, v8, fa0, v0.t
798 ; ZVFH-NEXT: vmnot.m v0, v8
801 ; ZVFHMIN-LABEL: fcmp_uge_vf_swap_v8f16:
803 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
804 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
805 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
806 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
807 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
808 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
809 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
810 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
811 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
812 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
813 ; ZVFHMIN-NEXT: vmnot.m v0, v8
815 %elt.head = insertelement <8 x half> poison, half %b, i32 0
816 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
817 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"uge", <8 x i1> %m, i32 %evl)
821 define <8 x i1> @fcmp_ult_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
822 ; ZVFH-LABEL: fcmp_ult_vv_v8f16:
824 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
825 ; ZVFH-NEXT: vmfle.vv v8, v9, v8, v0.t
826 ; ZVFH-NEXT: vmnot.m v0, v8
829 ; ZVFHMIN-LABEL: fcmp_ult_vv_v8f16:
831 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
832 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
833 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
834 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
835 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
836 ; ZVFHMIN-NEXT: vmnot.m v0, v8
838 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)
842 define <8 x i1> @fcmp_ult_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
843 ; ZVFH-LABEL: fcmp_ult_vf_v8f16:
845 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
846 ; ZVFH-NEXT: vmfge.vf v8, v8, fa0, v0.t
847 ; ZVFH-NEXT: vmnot.m v0, v8
850 ; ZVFHMIN-LABEL: fcmp_ult_vf_v8f16:
852 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
853 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
854 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
855 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
856 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
857 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
858 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
859 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
860 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
861 ; ZVFHMIN-NEXT: vmfle.vv v8, v12, v10, v0.t
862 ; ZVFHMIN-NEXT: vmnot.m v0, v8
864 %elt.head = insertelement <8 x half> poison, half %b, i32 0
865 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
866 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)
870 define <8 x i1> @fcmp_ult_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
871 ; ZVFH-LABEL: fcmp_ult_vf_swap_v8f16:
873 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
874 ; ZVFH-NEXT: vmfle.vf v8, v8, fa0, v0.t
875 ; ZVFH-NEXT: vmnot.m v0, v8
878 ; ZVFHMIN-LABEL: fcmp_ult_vf_swap_v8f16:
880 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
881 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
882 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
883 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
884 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
885 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
886 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
887 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
888 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
889 ; ZVFHMIN-NEXT: vmfle.vv v8, v10, v12, v0.t
890 ; ZVFHMIN-NEXT: vmnot.m v0, v8
892 %elt.head = insertelement <8 x half> poison, half %b, i32 0
893 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
894 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ult", <8 x i1> %m, i32 %evl)
898 define <8 x i1> @fcmp_ule_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
899 ; ZVFH-LABEL: fcmp_ule_vv_v8f16:
901 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
902 ; ZVFH-NEXT: vmflt.vv v8, v9, v8, v0.t
903 ; ZVFH-NEXT: vmnot.m v0, v8
906 ; ZVFHMIN-LABEL: fcmp_ule_vv_v8f16:
908 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
909 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
910 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
911 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
912 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
913 ; ZVFHMIN-NEXT: vmnot.m v0, v8
915 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ule", <8 x i1> %m, i32 %evl)
919 define <8 x i1> @fcmp_ule_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
920 ; ZVFH-LABEL: fcmp_ule_vf_v8f16:
922 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
923 ; ZVFH-NEXT: vmfgt.vf v8, v8, fa0, v0.t
924 ; ZVFH-NEXT: vmnot.m v0, v8
927 ; ZVFHMIN-LABEL: fcmp_ule_vf_v8f16:
929 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
930 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
931 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
932 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
933 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
934 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
935 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
936 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
937 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
938 ; ZVFHMIN-NEXT: vmflt.vv v8, v12, v10, v0.t
939 ; ZVFHMIN-NEXT: vmnot.m v0, v8
941 %elt.head = insertelement <8 x half> poison, half %b, i32 0
942 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
943 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ule", <8 x i1> %m, i32 %evl)
947 define <8 x i1> @fcmp_ule_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
948 ; ZVFH-LABEL: fcmp_ule_vf_swap_v8f16:
950 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
951 ; ZVFH-NEXT: vmflt.vf v8, v8, fa0, v0.t
952 ; ZVFH-NEXT: vmnot.m v0, v8
955 ; ZVFHMIN-LABEL: fcmp_ule_vf_swap_v8f16:
957 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
958 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
959 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
960 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
961 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
962 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
963 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
964 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
965 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
966 ; ZVFHMIN-NEXT: vmflt.vv v8, v10, v12, v0.t
967 ; ZVFHMIN-NEXT: vmnot.m v0, v8
969 %elt.head = insertelement <8 x half> poison, half %b, i32 0
970 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
971 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"ule", <8 x i1> %m, i32 %evl)
975 define <8 x i1> @fcmp_une_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
976 ; ZVFH-LABEL: fcmp_une_vv_v8f16:
978 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
979 ; ZVFH-NEXT: vmfne.vv v0, v8, v9, v0.t
982 ; ZVFHMIN-LABEL: fcmp_une_vv_v8f16:
984 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
985 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
986 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
987 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
988 ; ZVFHMIN-NEXT: vmfne.vv v8, v12, v10, v0.t
989 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
991 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"une", <8 x i1> %m, i32 %evl)
995 define <8 x i1> @fcmp_une_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
996 ; ZVFH-LABEL: fcmp_une_vf_v8f16:
998 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
999 ; ZVFH-NEXT: vmfne.vf v0, v8, fa0, v0.t
1002 ; ZVFHMIN-LABEL: fcmp_une_vf_v8f16:
1004 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
1005 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
1006 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
1007 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
1008 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
1009 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1010 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
1011 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
1012 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1013 ; ZVFHMIN-NEXT: vmfne.vv v8, v10, v12, v0.t
1014 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
1016 %elt.head = insertelement <8 x half> poison, half %b, i32 0
1017 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
1018 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"une", <8 x i1> %m, i32 %evl)
1022 define <8 x i1> @fcmp_une_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
1023 ; ZVFH-LABEL: fcmp_une_vf_swap_v8f16:
1025 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
1026 ; ZVFH-NEXT: vmfne.vf v0, v8, fa0, v0.t
1029 ; ZVFHMIN-LABEL: fcmp_une_vf_swap_v8f16:
1031 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
1032 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
1033 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
1034 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
1035 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
1036 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1037 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
1038 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v9
1039 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1040 ; ZVFHMIN-NEXT: vmfne.vv v8, v12, v10, v0.t
1041 ; ZVFHMIN-NEXT: vmv1r.v v0, v8
1043 %elt.head = insertelement <8 x half> poison, half %b, i32 0
1044 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
1045 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"une", <8 x i1> %m, i32 %evl)
1049 define <8 x i1> @fcmp_uno_vv_v8f16(<8 x half> %va, <8 x half> %vb, <8 x i1> %m, i32 zeroext %evl) {
1050 ; ZVFH-LABEL: fcmp_uno_vv_v8f16:
1052 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
1053 ; ZVFH-NEXT: vmfne.vv v9, v9, v9, v0.t
1054 ; ZVFH-NEXT: vmfne.vv v8, v8, v8, v0.t
1055 ; ZVFH-NEXT: vmor.mm v0, v8, v9
1058 ; ZVFHMIN-LABEL: fcmp_uno_vv_v8f16:
1060 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1061 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
1062 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1063 ; ZVFHMIN-NEXT: vmfne.vv v9, v10, v10, v0.t
1064 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1065 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
1066 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1067 ; ZVFHMIN-NEXT: vmfne.vv v8, v10, v10, v0.t
1068 ; ZVFHMIN-NEXT: vmor.mm v0, v8, v9
1070 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"uno", <8 x i1> %m, i32 %evl)
1074 define <8 x i1> @fcmp_uno_vf_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
1075 ; ZVFH-LABEL: fcmp_uno_vf_v8f16:
1077 ; ZVFH-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1078 ; ZVFH-NEXT: vfmv.v.f v9, fa0
1079 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
1080 ; ZVFH-NEXT: vmfne.vf v9, v9, fa0, v0.t
1081 ; ZVFH-NEXT: vmfne.vv v8, v8, v8, v0.t
1082 ; ZVFH-NEXT: vmor.mm v0, v8, v9
1085 ; ZVFHMIN-LABEL: fcmp_uno_vf_v8f16:
1087 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
1088 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
1089 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
1090 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
1091 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
1092 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1093 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
1094 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1095 ; ZVFHMIN-NEXT: vmfne.vv v8, v10, v10, v0.t
1096 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1097 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
1098 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1099 ; ZVFHMIN-NEXT: vmfne.vv v9, v10, v10, v0.t
1100 ; ZVFHMIN-NEXT: vmor.mm v0, v8, v9
1102 %elt.head = insertelement <8 x half> poison, half %b, i32 0
1103 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
1104 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"uno", <8 x i1> %m, i32 %evl)
1108 define <8 x i1> @fcmp_uno_vf_swap_v8f16(<8 x half> %va, half %b, <8 x i1> %m, i32 zeroext %evl) {
1109 ; ZVFH-LABEL: fcmp_uno_vf_swap_v8f16:
1111 ; ZVFH-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1112 ; ZVFH-NEXT: vfmv.v.f v9, fa0
1113 ; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma
1114 ; ZVFH-NEXT: vmfne.vf v9, v9, fa0, v0.t
1115 ; ZVFH-NEXT: vmfne.vv v8, v8, v8, v0.t
1116 ; ZVFH-NEXT: vmor.mm v0, v9, v8
1119 ; ZVFHMIN-LABEL: fcmp_uno_vf_swap_v8f16:
1121 ; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0
1122 ; ZVFHMIN-NEXT: vsetvli a1, zero, e32, m2, ta, ma
1123 ; ZVFHMIN-NEXT: vfmv.v.f v10, fa5
1124 ; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma
1125 ; ZVFHMIN-NEXT: vfncvt.f.f.w v9, v10
1126 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1127 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
1128 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1129 ; ZVFHMIN-NEXT: vmfne.vv v8, v10, v10, v0.t
1130 ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1131 ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v9
1132 ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1133 ; ZVFHMIN-NEXT: vmfne.vv v9, v10, v10, v0.t
1134 ; ZVFHMIN-NEXT: vmor.mm v0, v9, v8
1136 %elt.head = insertelement <8 x half> poison, half %b, i32 0
1137 %vb = shufflevector <8 x half> %elt.head, <8 x half> poison, <8 x i32> zeroinitializer
1138 %v = call <8 x i1> @llvm.vp.fcmp.v8f16(<8 x half> %vb, <8 x half> %va, metadata !"uno", <8 x i1> %m, i32 %evl)
1142 declare <128 x i1> @llvm.vp.fcmp.v128f16(<128 x half>, <128 x half>, metadata, <128 x i1>, i32)
1144 define <128 x i1> @fcmp_oeq_vv_v128f16(<128 x half> %va, <128 x half> %vb, <128 x i1> %m, i32 zeroext %evl) {
1145 ; ZVFH-LABEL: fcmp_oeq_vv_v128f16:
1147 ; ZVFH-NEXT: addi sp, sp, -16
1148 ; ZVFH-NEXT: .cfi_def_cfa_offset 16
1149 ; ZVFH-NEXT: csrr a1, vlenb
1150 ; ZVFH-NEXT: slli a1, a1, 4
1151 ; ZVFH-NEXT: sub sp, sp, a1
1152 ; ZVFH-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x10, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 16 * vlenb
1153 ; ZVFH-NEXT: addi a1, a0, 128
1154 ; ZVFH-NEXT: li a3, 64
1155 ; ZVFH-NEXT: vsetvli zero, a3, e16, m8, ta, ma
1156 ; ZVFH-NEXT: vle16.v v24, (a1)
1157 ; ZVFH-NEXT: csrr a1, vlenb
1158 ; ZVFH-NEXT: slli a1, a1, 3
1159 ; ZVFH-NEXT: add a1, sp, a1
1160 ; ZVFH-NEXT: addi a1, a1, 16
1161 ; ZVFH-NEXT: vs8r.v v24, (a1) # Unknown-size Folded Spill
1162 ; ZVFH-NEXT: vle16.v v24, (a0)
1163 ; ZVFH-NEXT: addi a0, sp, 16
1164 ; ZVFH-NEXT: vs8r.v v24, (a0) # Unknown-size Folded Spill
1165 ; ZVFH-NEXT: vsetivli zero, 8, e8, m1, ta, ma
1166 ; ZVFH-NEXT: vslidedown.vi v6, v0, 8
1167 ; ZVFH-NEXT: mv a0, a2
1168 ; ZVFH-NEXT: bltu a2, a3, .LBB43_2
1169 ; ZVFH-NEXT: # %bb.1:
1170 ; ZVFH-NEXT: li a0, 64
1171 ; ZVFH-NEXT: .LBB43_2:
1172 ; ZVFH-NEXT: addi a1, sp, 16
1173 ; ZVFH-NEXT: vl8r.v v24, (a1) # Unknown-size Folded Reload
1174 ; ZVFH-NEXT: vsetvli zero, a0, e16, m8, ta, ma
1175 ; ZVFH-NEXT: vmfeq.vv v7, v8, v24, v0.t
1176 ; ZVFH-NEXT: addi a0, a2, -64
1177 ; ZVFH-NEXT: sltu a1, a2, a0
1178 ; ZVFH-NEXT: addi a1, a1, -1
1179 ; ZVFH-NEXT: and a0, a1, a0
1180 ; ZVFH-NEXT: vmv1r.v v0, v6
1181 ; ZVFH-NEXT: csrr a1, vlenb
1182 ; ZVFH-NEXT: slli a1, a1, 3
1183 ; ZVFH-NEXT: add a1, sp, a1
1184 ; ZVFH-NEXT: addi a1, a1, 16
1185 ; ZVFH-NEXT: vl8r.v v24, (a1) # Unknown-size Folded Reload
1186 ; ZVFH-NEXT: vsetvli zero, a0, e16, m8, ta, ma
1187 ; ZVFH-NEXT: vmfeq.vv v8, v16, v24, v0.t
1188 ; ZVFH-NEXT: vsetivli zero, 16, e8, m1, ta, ma
1189 ; ZVFH-NEXT: vslideup.vi v7, v8, 8
1190 ; ZVFH-NEXT: vmv.v.v v0, v7
1191 ; ZVFH-NEXT: csrr a0, vlenb
1192 ; ZVFH-NEXT: slli a0, a0, 4
1193 ; ZVFH-NEXT: add sp, sp, a0
1194 ; ZVFH-NEXT: addi sp, sp, 16
1197 ; ZVFHMIN32-LABEL: fcmp_oeq_vv_v128f16:
1198 ; ZVFHMIN32: # %bb.0:
1199 ; ZVFHMIN32-NEXT: addi sp, sp, -768
1200 ; ZVFHMIN32-NEXT: .cfi_def_cfa_offset 768
1201 ; ZVFHMIN32-NEXT: sw ra, 764(sp) # 4-byte Folded Spill
1202 ; ZVFHMIN32-NEXT: sw s0, 760(sp) # 4-byte Folded Spill
1203 ; ZVFHMIN32-NEXT: .cfi_offset ra, -4
1204 ; ZVFHMIN32-NEXT: .cfi_offset s0, -8
1205 ; ZVFHMIN32-NEXT: addi s0, sp, 768
1206 ; ZVFHMIN32-NEXT: .cfi_def_cfa s0, 0
1207 ; ZVFHMIN32-NEXT: andi sp, sp, -128
1208 ; ZVFHMIN32-NEXT: addi a1, a0, 128
1209 ; ZVFHMIN32-NEXT: li a2, 64
1210 ; ZVFHMIN32-NEXT: vsetvli zero, a2, e16, m8, ta, ma
1211 ; ZVFHMIN32-NEXT: vle16.v v24, (a1)
1212 ; ZVFHMIN32-NEXT: vle16.v v0, (a0)
1213 ; ZVFHMIN32-NEXT: addi a0, sp, 128
1214 ; ZVFHMIN32-NEXT: vse16.v v8, (a0)
1215 ; ZVFHMIN32-NEXT: addi a0, sp, 384
1216 ; ZVFHMIN32-NEXT: vse16.v v0, (a0)
1217 ; ZVFHMIN32-NEXT: addi a0, sp, 256
1218 ; ZVFHMIN32-NEXT: vse16.v v16, (a0)
1219 ; ZVFHMIN32-NEXT: addi a0, sp, 512
1220 ; ZVFHMIN32-NEXT: vse16.v v24, (a0)
1221 ; ZVFHMIN32-NEXT: flh fa5, 254(sp)
1222 ; ZVFHMIN32-NEXT: flh fa4, 510(sp)
1223 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1224 ; ZVFHMIN32-NEXT: sb a0, 63(sp)
1225 ; ZVFHMIN32-NEXT: flh fa5, 252(sp)
1226 ; ZVFHMIN32-NEXT: flh fa4, 508(sp)
1227 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1228 ; ZVFHMIN32-NEXT: sb a0, 62(sp)
1229 ; ZVFHMIN32-NEXT: flh fa5, 250(sp)
1230 ; ZVFHMIN32-NEXT: flh fa4, 506(sp)
1231 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1232 ; ZVFHMIN32-NEXT: sb a0, 61(sp)
1233 ; ZVFHMIN32-NEXT: flh fa5, 248(sp)
1234 ; ZVFHMIN32-NEXT: flh fa4, 504(sp)
1235 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1236 ; ZVFHMIN32-NEXT: sb a0, 60(sp)
1237 ; ZVFHMIN32-NEXT: flh fa5, 246(sp)
1238 ; ZVFHMIN32-NEXT: flh fa4, 502(sp)
1239 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1240 ; ZVFHMIN32-NEXT: sb a0, 59(sp)
1241 ; ZVFHMIN32-NEXT: flh fa5, 244(sp)
1242 ; ZVFHMIN32-NEXT: flh fa4, 500(sp)
1243 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1244 ; ZVFHMIN32-NEXT: sb a0, 58(sp)
1245 ; ZVFHMIN32-NEXT: flh fa5, 242(sp)
1246 ; ZVFHMIN32-NEXT: flh fa4, 498(sp)
1247 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1248 ; ZVFHMIN32-NEXT: sb a0, 57(sp)
1249 ; ZVFHMIN32-NEXT: flh fa5, 240(sp)
1250 ; ZVFHMIN32-NEXT: flh fa4, 496(sp)
1251 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1252 ; ZVFHMIN32-NEXT: sb a0, 56(sp)
1253 ; ZVFHMIN32-NEXT: flh fa5, 238(sp)
1254 ; ZVFHMIN32-NEXT: flh fa4, 494(sp)
1255 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1256 ; ZVFHMIN32-NEXT: sb a0, 55(sp)
1257 ; ZVFHMIN32-NEXT: flh fa5, 236(sp)
1258 ; ZVFHMIN32-NEXT: flh fa4, 492(sp)
1259 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1260 ; ZVFHMIN32-NEXT: sb a0, 54(sp)
1261 ; ZVFHMIN32-NEXT: flh fa5, 234(sp)
1262 ; ZVFHMIN32-NEXT: flh fa4, 490(sp)
1263 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1264 ; ZVFHMIN32-NEXT: sb a0, 53(sp)
1265 ; ZVFHMIN32-NEXT: flh fa5, 232(sp)
1266 ; ZVFHMIN32-NEXT: flh fa4, 488(sp)
1267 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1268 ; ZVFHMIN32-NEXT: sb a0, 52(sp)
1269 ; ZVFHMIN32-NEXT: flh fa5, 230(sp)
1270 ; ZVFHMIN32-NEXT: flh fa4, 486(sp)
1271 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1272 ; ZVFHMIN32-NEXT: sb a0, 51(sp)
1273 ; ZVFHMIN32-NEXT: flh fa5, 228(sp)
1274 ; ZVFHMIN32-NEXT: flh fa4, 484(sp)
1275 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1276 ; ZVFHMIN32-NEXT: sb a0, 50(sp)
1277 ; ZVFHMIN32-NEXT: flh fa5, 226(sp)
1278 ; ZVFHMIN32-NEXT: flh fa4, 482(sp)
1279 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1280 ; ZVFHMIN32-NEXT: sb a0, 49(sp)
1281 ; ZVFHMIN32-NEXT: flh fa5, 224(sp)
1282 ; ZVFHMIN32-NEXT: flh fa4, 480(sp)
1283 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1284 ; ZVFHMIN32-NEXT: sb a0, 48(sp)
1285 ; ZVFHMIN32-NEXT: flh fa5, 222(sp)
1286 ; ZVFHMIN32-NEXT: flh fa4, 478(sp)
1287 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1288 ; ZVFHMIN32-NEXT: sb a0, 47(sp)
1289 ; ZVFHMIN32-NEXT: flh fa5, 382(sp)
1290 ; ZVFHMIN32-NEXT: flh fa4, 638(sp)
1291 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1292 ; ZVFHMIN32-NEXT: sb a0, 127(sp)
1293 ; ZVFHMIN32-NEXT: flh fa5, 380(sp)
1294 ; ZVFHMIN32-NEXT: flh fa4, 636(sp)
1295 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1296 ; ZVFHMIN32-NEXT: sb a0, 126(sp)
1297 ; ZVFHMIN32-NEXT: flh fa5, 378(sp)
1298 ; ZVFHMIN32-NEXT: flh fa4, 634(sp)
1299 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1300 ; ZVFHMIN32-NEXT: sb a0, 125(sp)
1301 ; ZVFHMIN32-NEXT: flh fa5, 376(sp)
1302 ; ZVFHMIN32-NEXT: flh fa4, 632(sp)
1303 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1304 ; ZVFHMIN32-NEXT: sb a0, 124(sp)
1305 ; ZVFHMIN32-NEXT: flh fa5, 374(sp)
1306 ; ZVFHMIN32-NEXT: flh fa4, 630(sp)
1307 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1308 ; ZVFHMIN32-NEXT: sb a0, 123(sp)
1309 ; ZVFHMIN32-NEXT: flh fa5, 372(sp)
1310 ; ZVFHMIN32-NEXT: flh fa4, 628(sp)
1311 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1312 ; ZVFHMIN32-NEXT: sb a0, 122(sp)
1313 ; ZVFHMIN32-NEXT: flh fa5, 370(sp)
1314 ; ZVFHMIN32-NEXT: flh fa4, 626(sp)
1315 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1316 ; ZVFHMIN32-NEXT: sb a0, 121(sp)
1317 ; ZVFHMIN32-NEXT: flh fa5, 368(sp)
1318 ; ZVFHMIN32-NEXT: flh fa4, 624(sp)
1319 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1320 ; ZVFHMIN32-NEXT: sb a0, 120(sp)
1321 ; ZVFHMIN32-NEXT: flh fa5, 366(sp)
1322 ; ZVFHMIN32-NEXT: flh fa4, 622(sp)
1323 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1324 ; ZVFHMIN32-NEXT: sb a0, 119(sp)
1325 ; ZVFHMIN32-NEXT: flh fa5, 364(sp)
1326 ; ZVFHMIN32-NEXT: flh fa4, 620(sp)
1327 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1328 ; ZVFHMIN32-NEXT: sb a0, 118(sp)
1329 ; ZVFHMIN32-NEXT: flh fa5, 362(sp)
1330 ; ZVFHMIN32-NEXT: flh fa4, 618(sp)
1331 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1332 ; ZVFHMIN32-NEXT: sb a0, 117(sp)
1333 ; ZVFHMIN32-NEXT: flh fa5, 360(sp)
1334 ; ZVFHMIN32-NEXT: flh fa4, 616(sp)
1335 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1336 ; ZVFHMIN32-NEXT: sb a0, 116(sp)
1337 ; ZVFHMIN32-NEXT: flh fa5, 358(sp)
1338 ; ZVFHMIN32-NEXT: flh fa4, 614(sp)
1339 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1340 ; ZVFHMIN32-NEXT: sb a0, 115(sp)
1341 ; ZVFHMIN32-NEXT: flh fa5, 356(sp)
1342 ; ZVFHMIN32-NEXT: flh fa4, 612(sp)
1343 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1344 ; ZVFHMIN32-NEXT: sb a0, 114(sp)
1345 ; ZVFHMIN32-NEXT: flh fa5, 354(sp)
1346 ; ZVFHMIN32-NEXT: flh fa4, 610(sp)
1347 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1348 ; ZVFHMIN32-NEXT: sb a0, 113(sp)
1349 ; ZVFHMIN32-NEXT: flh fa5, 352(sp)
1350 ; ZVFHMIN32-NEXT: flh fa4, 608(sp)
1351 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1352 ; ZVFHMIN32-NEXT: sb a0, 112(sp)
1353 ; ZVFHMIN32-NEXT: flh fa5, 350(sp)
1354 ; ZVFHMIN32-NEXT: flh fa4, 606(sp)
1355 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1356 ; ZVFHMIN32-NEXT: sb a0, 111(sp)
1357 ; ZVFHMIN32-NEXT: flh fa5, 220(sp)
1358 ; ZVFHMIN32-NEXT: flh fa4, 476(sp)
1359 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1360 ; ZVFHMIN32-NEXT: sb a0, 46(sp)
1361 ; ZVFHMIN32-NEXT: flh fa5, 218(sp)
1362 ; ZVFHMIN32-NEXT: flh fa4, 474(sp)
1363 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1364 ; ZVFHMIN32-NEXT: sb a0, 45(sp)
1365 ; ZVFHMIN32-NEXT: flh fa5, 216(sp)
1366 ; ZVFHMIN32-NEXT: flh fa4, 472(sp)
1367 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1368 ; ZVFHMIN32-NEXT: sb a0, 44(sp)
1369 ; ZVFHMIN32-NEXT: flh fa5, 214(sp)
1370 ; ZVFHMIN32-NEXT: flh fa4, 470(sp)
1371 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1372 ; ZVFHMIN32-NEXT: sb a0, 43(sp)
1373 ; ZVFHMIN32-NEXT: flh fa5, 212(sp)
1374 ; ZVFHMIN32-NEXT: flh fa4, 468(sp)
1375 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1376 ; ZVFHMIN32-NEXT: sb a0, 42(sp)
1377 ; ZVFHMIN32-NEXT: flh fa5, 210(sp)
1378 ; ZVFHMIN32-NEXT: flh fa4, 466(sp)
1379 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1380 ; ZVFHMIN32-NEXT: sb a0, 41(sp)
1381 ; ZVFHMIN32-NEXT: flh fa5, 208(sp)
1382 ; ZVFHMIN32-NEXT: flh fa4, 464(sp)
1383 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1384 ; ZVFHMIN32-NEXT: sb a0, 40(sp)
1385 ; ZVFHMIN32-NEXT: flh fa5, 206(sp)
1386 ; ZVFHMIN32-NEXT: flh fa4, 462(sp)
1387 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1388 ; ZVFHMIN32-NEXT: sb a0, 39(sp)
1389 ; ZVFHMIN32-NEXT: flh fa5, 204(sp)
1390 ; ZVFHMIN32-NEXT: flh fa4, 460(sp)
1391 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1392 ; ZVFHMIN32-NEXT: sb a0, 38(sp)
1393 ; ZVFHMIN32-NEXT: flh fa5, 202(sp)
1394 ; ZVFHMIN32-NEXT: flh fa4, 458(sp)
1395 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1396 ; ZVFHMIN32-NEXT: sb a0, 37(sp)
1397 ; ZVFHMIN32-NEXT: flh fa5, 200(sp)
1398 ; ZVFHMIN32-NEXT: flh fa4, 456(sp)
1399 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1400 ; ZVFHMIN32-NEXT: sb a0, 36(sp)
1401 ; ZVFHMIN32-NEXT: flh fa5, 198(sp)
1402 ; ZVFHMIN32-NEXT: flh fa4, 454(sp)
1403 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1404 ; ZVFHMIN32-NEXT: sb a0, 35(sp)
1405 ; ZVFHMIN32-NEXT: flh fa5, 196(sp)
1406 ; ZVFHMIN32-NEXT: flh fa4, 452(sp)
1407 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1408 ; ZVFHMIN32-NEXT: sb a0, 34(sp)
1409 ; ZVFHMIN32-NEXT: flh fa5, 194(sp)
1410 ; ZVFHMIN32-NEXT: flh fa4, 450(sp)
1411 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1412 ; ZVFHMIN32-NEXT: sb a0, 33(sp)
1413 ; ZVFHMIN32-NEXT: flh fa5, 192(sp)
1414 ; ZVFHMIN32-NEXT: flh fa4, 448(sp)
1415 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1416 ; ZVFHMIN32-NEXT: sb a0, 32(sp)
1417 ; ZVFHMIN32-NEXT: flh fa5, 190(sp)
1418 ; ZVFHMIN32-NEXT: flh fa4, 446(sp)
1419 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1420 ; ZVFHMIN32-NEXT: sb a0, 31(sp)
1421 ; ZVFHMIN32-NEXT: flh fa5, 188(sp)
1422 ; ZVFHMIN32-NEXT: flh fa4, 444(sp)
1423 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1424 ; ZVFHMIN32-NEXT: sb a0, 30(sp)
1425 ; ZVFHMIN32-NEXT: flh fa5, 348(sp)
1426 ; ZVFHMIN32-NEXT: flh fa4, 604(sp)
1427 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1428 ; ZVFHMIN32-NEXT: sb a0, 110(sp)
1429 ; ZVFHMIN32-NEXT: flh fa5, 346(sp)
1430 ; ZVFHMIN32-NEXT: flh fa4, 602(sp)
1431 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1432 ; ZVFHMIN32-NEXT: sb a0, 109(sp)
1433 ; ZVFHMIN32-NEXT: flh fa5, 344(sp)
1434 ; ZVFHMIN32-NEXT: flh fa4, 600(sp)
1435 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1436 ; ZVFHMIN32-NEXT: sb a0, 108(sp)
1437 ; ZVFHMIN32-NEXT: flh fa5, 342(sp)
1438 ; ZVFHMIN32-NEXT: flh fa4, 598(sp)
1439 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1440 ; ZVFHMIN32-NEXT: sb a0, 107(sp)
1441 ; ZVFHMIN32-NEXT: flh fa5, 340(sp)
1442 ; ZVFHMIN32-NEXT: flh fa4, 596(sp)
1443 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1444 ; ZVFHMIN32-NEXT: sb a0, 106(sp)
1445 ; ZVFHMIN32-NEXT: flh fa5, 338(sp)
1446 ; ZVFHMIN32-NEXT: flh fa4, 594(sp)
1447 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1448 ; ZVFHMIN32-NEXT: sb a0, 105(sp)
1449 ; ZVFHMIN32-NEXT: flh fa5, 336(sp)
1450 ; ZVFHMIN32-NEXT: flh fa4, 592(sp)
1451 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1452 ; ZVFHMIN32-NEXT: sb a0, 104(sp)
1453 ; ZVFHMIN32-NEXT: flh fa5, 334(sp)
1454 ; ZVFHMIN32-NEXT: flh fa4, 590(sp)
1455 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1456 ; ZVFHMIN32-NEXT: sb a0, 103(sp)
1457 ; ZVFHMIN32-NEXT: flh fa5, 332(sp)
1458 ; ZVFHMIN32-NEXT: flh fa4, 588(sp)
1459 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1460 ; ZVFHMIN32-NEXT: sb a0, 102(sp)
1461 ; ZVFHMIN32-NEXT: flh fa5, 330(sp)
1462 ; ZVFHMIN32-NEXT: flh fa4, 586(sp)
1463 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1464 ; ZVFHMIN32-NEXT: sb a0, 101(sp)
1465 ; ZVFHMIN32-NEXT: flh fa5, 328(sp)
1466 ; ZVFHMIN32-NEXT: flh fa4, 584(sp)
1467 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1468 ; ZVFHMIN32-NEXT: sb a0, 100(sp)
1469 ; ZVFHMIN32-NEXT: flh fa5, 326(sp)
1470 ; ZVFHMIN32-NEXT: flh fa4, 582(sp)
1471 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1472 ; ZVFHMIN32-NEXT: sb a0, 99(sp)
1473 ; ZVFHMIN32-NEXT: flh fa5, 324(sp)
1474 ; ZVFHMIN32-NEXT: flh fa4, 580(sp)
1475 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1476 ; ZVFHMIN32-NEXT: sb a0, 98(sp)
1477 ; ZVFHMIN32-NEXT: flh fa5, 322(sp)
1478 ; ZVFHMIN32-NEXT: flh fa4, 578(sp)
1479 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1480 ; ZVFHMIN32-NEXT: sb a0, 97(sp)
1481 ; ZVFHMIN32-NEXT: flh fa5, 320(sp)
1482 ; ZVFHMIN32-NEXT: flh fa4, 576(sp)
1483 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1484 ; ZVFHMIN32-NEXT: sb a0, 96(sp)
1485 ; ZVFHMIN32-NEXT: flh fa5, 318(sp)
1486 ; ZVFHMIN32-NEXT: flh fa4, 574(sp)
1487 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1488 ; ZVFHMIN32-NEXT: sb a0, 95(sp)
1489 ; ZVFHMIN32-NEXT: flh fa5, 316(sp)
1490 ; ZVFHMIN32-NEXT: flh fa4, 572(sp)
1491 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1492 ; ZVFHMIN32-NEXT: sb a0, 94(sp)
1493 ; ZVFHMIN32-NEXT: flh fa5, 186(sp)
1494 ; ZVFHMIN32-NEXT: flh fa4, 442(sp)
1495 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1496 ; ZVFHMIN32-NEXT: sb a0, 29(sp)
1497 ; ZVFHMIN32-NEXT: flh fa5, 184(sp)
1498 ; ZVFHMIN32-NEXT: flh fa4, 440(sp)
1499 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1500 ; ZVFHMIN32-NEXT: sb a0, 28(sp)
1501 ; ZVFHMIN32-NEXT: flh fa5, 182(sp)
1502 ; ZVFHMIN32-NEXT: flh fa4, 438(sp)
1503 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1504 ; ZVFHMIN32-NEXT: sb a0, 27(sp)
1505 ; ZVFHMIN32-NEXT: flh fa5, 180(sp)
1506 ; ZVFHMIN32-NEXT: flh fa4, 436(sp)
1507 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1508 ; ZVFHMIN32-NEXT: sb a0, 26(sp)
1509 ; ZVFHMIN32-NEXT: flh fa5, 178(sp)
1510 ; ZVFHMIN32-NEXT: flh fa4, 434(sp)
1511 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1512 ; ZVFHMIN32-NEXT: sb a0, 25(sp)
1513 ; ZVFHMIN32-NEXT: flh fa5, 176(sp)
1514 ; ZVFHMIN32-NEXT: flh fa4, 432(sp)
1515 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1516 ; ZVFHMIN32-NEXT: sb a0, 24(sp)
1517 ; ZVFHMIN32-NEXT: flh fa5, 174(sp)
1518 ; ZVFHMIN32-NEXT: flh fa4, 430(sp)
1519 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1520 ; ZVFHMIN32-NEXT: sb a0, 23(sp)
1521 ; ZVFHMIN32-NEXT: flh fa5, 172(sp)
1522 ; ZVFHMIN32-NEXT: flh fa4, 428(sp)
1523 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1524 ; ZVFHMIN32-NEXT: sb a0, 22(sp)
1525 ; ZVFHMIN32-NEXT: flh fa5, 170(sp)
1526 ; ZVFHMIN32-NEXT: flh fa4, 426(sp)
1527 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1528 ; ZVFHMIN32-NEXT: sb a0, 21(sp)
1529 ; ZVFHMIN32-NEXT: flh fa5, 168(sp)
1530 ; ZVFHMIN32-NEXT: flh fa4, 424(sp)
1531 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1532 ; ZVFHMIN32-NEXT: sb a0, 20(sp)
1533 ; ZVFHMIN32-NEXT: flh fa5, 166(sp)
1534 ; ZVFHMIN32-NEXT: flh fa4, 422(sp)
1535 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1536 ; ZVFHMIN32-NEXT: sb a0, 19(sp)
1537 ; ZVFHMIN32-NEXT: flh fa5, 164(sp)
1538 ; ZVFHMIN32-NEXT: flh fa4, 420(sp)
1539 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1540 ; ZVFHMIN32-NEXT: sb a0, 18(sp)
1541 ; ZVFHMIN32-NEXT: flh fa5, 162(sp)
1542 ; ZVFHMIN32-NEXT: flh fa4, 418(sp)
1543 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1544 ; ZVFHMIN32-NEXT: sb a0, 17(sp)
1545 ; ZVFHMIN32-NEXT: flh fa5, 160(sp)
1546 ; ZVFHMIN32-NEXT: flh fa4, 416(sp)
1547 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1548 ; ZVFHMIN32-NEXT: sb a0, 16(sp)
1549 ; ZVFHMIN32-NEXT: flh fa5, 158(sp)
1550 ; ZVFHMIN32-NEXT: flh fa4, 414(sp)
1551 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1552 ; ZVFHMIN32-NEXT: sb a0, 15(sp)
1553 ; ZVFHMIN32-NEXT: flh fa5, 156(sp)
1554 ; ZVFHMIN32-NEXT: flh fa4, 412(sp)
1555 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1556 ; ZVFHMIN32-NEXT: sb a0, 14(sp)
1557 ; ZVFHMIN32-NEXT: flh fa5, 154(sp)
1558 ; ZVFHMIN32-NEXT: flh fa4, 410(sp)
1559 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1560 ; ZVFHMIN32-NEXT: sb a0, 13(sp)
1561 ; ZVFHMIN32-NEXT: flh fa5, 314(sp)
1562 ; ZVFHMIN32-NEXT: flh fa4, 570(sp)
1563 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1564 ; ZVFHMIN32-NEXT: sb a0, 93(sp)
1565 ; ZVFHMIN32-NEXT: flh fa5, 312(sp)
1566 ; ZVFHMIN32-NEXT: flh fa4, 568(sp)
1567 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1568 ; ZVFHMIN32-NEXT: sb a0, 92(sp)
1569 ; ZVFHMIN32-NEXT: flh fa5, 310(sp)
1570 ; ZVFHMIN32-NEXT: flh fa4, 566(sp)
1571 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1572 ; ZVFHMIN32-NEXT: sb a0, 91(sp)
1573 ; ZVFHMIN32-NEXT: flh fa5, 308(sp)
1574 ; ZVFHMIN32-NEXT: flh fa4, 564(sp)
1575 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1576 ; ZVFHMIN32-NEXT: sb a0, 90(sp)
1577 ; ZVFHMIN32-NEXT: flh fa5, 306(sp)
1578 ; ZVFHMIN32-NEXT: flh fa4, 562(sp)
1579 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1580 ; ZVFHMIN32-NEXT: sb a0, 89(sp)
1581 ; ZVFHMIN32-NEXT: flh fa5, 304(sp)
1582 ; ZVFHMIN32-NEXT: flh fa4, 560(sp)
1583 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1584 ; ZVFHMIN32-NEXT: sb a0, 88(sp)
1585 ; ZVFHMIN32-NEXT: flh fa5, 302(sp)
1586 ; ZVFHMIN32-NEXT: flh fa4, 558(sp)
1587 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1588 ; ZVFHMIN32-NEXT: sb a0, 87(sp)
1589 ; ZVFHMIN32-NEXT: flh fa5, 300(sp)
1590 ; ZVFHMIN32-NEXT: flh fa4, 556(sp)
1591 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1592 ; ZVFHMIN32-NEXT: sb a0, 86(sp)
1593 ; ZVFHMIN32-NEXT: flh fa5, 298(sp)
1594 ; ZVFHMIN32-NEXT: flh fa4, 554(sp)
1595 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1596 ; ZVFHMIN32-NEXT: sb a0, 85(sp)
1597 ; ZVFHMIN32-NEXT: flh fa5, 296(sp)
1598 ; ZVFHMIN32-NEXT: flh fa4, 552(sp)
1599 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1600 ; ZVFHMIN32-NEXT: sb a0, 84(sp)
1601 ; ZVFHMIN32-NEXT: flh fa5, 294(sp)
1602 ; ZVFHMIN32-NEXT: flh fa4, 550(sp)
1603 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1604 ; ZVFHMIN32-NEXT: sb a0, 83(sp)
1605 ; ZVFHMIN32-NEXT: flh fa5, 292(sp)
1606 ; ZVFHMIN32-NEXT: flh fa4, 548(sp)
1607 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1608 ; ZVFHMIN32-NEXT: sb a0, 82(sp)
1609 ; ZVFHMIN32-NEXT: flh fa5, 290(sp)
1610 ; ZVFHMIN32-NEXT: flh fa4, 546(sp)
1611 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1612 ; ZVFHMIN32-NEXT: sb a0, 81(sp)
1613 ; ZVFHMIN32-NEXT: flh fa5, 288(sp)
1614 ; ZVFHMIN32-NEXT: flh fa4, 544(sp)
1615 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1616 ; ZVFHMIN32-NEXT: sb a0, 80(sp)
1617 ; ZVFHMIN32-NEXT: flh fa5, 286(sp)
1618 ; ZVFHMIN32-NEXT: flh fa4, 542(sp)
1619 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1620 ; ZVFHMIN32-NEXT: sb a0, 79(sp)
1621 ; ZVFHMIN32-NEXT: flh fa5, 284(sp)
1622 ; ZVFHMIN32-NEXT: flh fa4, 540(sp)
1623 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1624 ; ZVFHMIN32-NEXT: sb a0, 78(sp)
1625 ; ZVFHMIN32-NEXT: flh fa5, 282(sp)
1626 ; ZVFHMIN32-NEXT: flh fa4, 538(sp)
1627 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1628 ; ZVFHMIN32-NEXT: sb a0, 77(sp)
1629 ; ZVFHMIN32-NEXT: flh fa5, 152(sp)
1630 ; ZVFHMIN32-NEXT: flh fa4, 408(sp)
1631 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1632 ; ZVFHMIN32-NEXT: sb a0, 12(sp)
1633 ; ZVFHMIN32-NEXT: flh fa5, 150(sp)
1634 ; ZVFHMIN32-NEXT: flh fa4, 406(sp)
1635 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1636 ; ZVFHMIN32-NEXT: sb a0, 11(sp)
1637 ; ZVFHMIN32-NEXT: flh fa5, 148(sp)
1638 ; ZVFHMIN32-NEXT: flh fa4, 404(sp)
1639 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1640 ; ZVFHMIN32-NEXT: sb a0, 10(sp)
1641 ; ZVFHMIN32-NEXT: flh fa5, 146(sp)
1642 ; ZVFHMIN32-NEXT: flh fa4, 402(sp)
1643 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1644 ; ZVFHMIN32-NEXT: sb a0, 9(sp)
1645 ; ZVFHMIN32-NEXT: flh fa5, 144(sp)
1646 ; ZVFHMIN32-NEXT: flh fa4, 400(sp)
1647 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1648 ; ZVFHMIN32-NEXT: sb a0, 8(sp)
1649 ; ZVFHMIN32-NEXT: flh fa5, 142(sp)
1650 ; ZVFHMIN32-NEXT: flh fa4, 398(sp)
1651 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1652 ; ZVFHMIN32-NEXT: sb a0, 7(sp)
1653 ; ZVFHMIN32-NEXT: flh fa5, 140(sp)
1654 ; ZVFHMIN32-NEXT: flh fa4, 396(sp)
1655 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1656 ; ZVFHMIN32-NEXT: sb a0, 6(sp)
1657 ; ZVFHMIN32-NEXT: flh fa5, 138(sp)
1658 ; ZVFHMIN32-NEXT: flh fa4, 394(sp)
1659 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1660 ; ZVFHMIN32-NEXT: sb a0, 5(sp)
1661 ; ZVFHMIN32-NEXT: flh fa5, 136(sp)
1662 ; ZVFHMIN32-NEXT: flh fa4, 392(sp)
1663 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1664 ; ZVFHMIN32-NEXT: sb a0, 4(sp)
1665 ; ZVFHMIN32-NEXT: flh fa5, 134(sp)
1666 ; ZVFHMIN32-NEXT: flh fa4, 390(sp)
1667 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1668 ; ZVFHMIN32-NEXT: sb a0, 3(sp)
1669 ; ZVFHMIN32-NEXT: flh fa5, 132(sp)
1670 ; ZVFHMIN32-NEXT: flh fa4, 388(sp)
1671 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1672 ; ZVFHMIN32-NEXT: sb a0, 2(sp)
1673 ; ZVFHMIN32-NEXT: flh fa5, 130(sp)
1674 ; ZVFHMIN32-NEXT: flh fa4, 386(sp)
1675 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1676 ; ZVFHMIN32-NEXT: sb a0, 1(sp)
1677 ; ZVFHMIN32-NEXT: flh fa5, 128(sp)
1678 ; ZVFHMIN32-NEXT: flh fa4, 384(sp)
1679 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1680 ; ZVFHMIN32-NEXT: sb a0, 0(sp)
1681 ; ZVFHMIN32-NEXT: flh fa5, 280(sp)
1682 ; ZVFHMIN32-NEXT: flh fa4, 536(sp)
1683 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1684 ; ZVFHMIN32-NEXT: sb a0, 76(sp)
1685 ; ZVFHMIN32-NEXT: flh fa5, 278(sp)
1686 ; ZVFHMIN32-NEXT: flh fa4, 534(sp)
1687 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1688 ; ZVFHMIN32-NEXT: sb a0, 75(sp)
1689 ; ZVFHMIN32-NEXT: flh fa5, 276(sp)
1690 ; ZVFHMIN32-NEXT: flh fa4, 532(sp)
1691 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1692 ; ZVFHMIN32-NEXT: sb a0, 74(sp)
1693 ; ZVFHMIN32-NEXT: flh fa5, 274(sp)
1694 ; ZVFHMIN32-NEXT: flh fa4, 530(sp)
1695 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1696 ; ZVFHMIN32-NEXT: sb a0, 73(sp)
1697 ; ZVFHMIN32-NEXT: flh fa5, 272(sp)
1698 ; ZVFHMIN32-NEXT: flh fa4, 528(sp)
1699 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1700 ; ZVFHMIN32-NEXT: sb a0, 72(sp)
1701 ; ZVFHMIN32-NEXT: flh fa5, 270(sp)
1702 ; ZVFHMIN32-NEXT: flh fa4, 526(sp)
1703 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1704 ; ZVFHMIN32-NEXT: sb a0, 71(sp)
1705 ; ZVFHMIN32-NEXT: flh fa5, 268(sp)
1706 ; ZVFHMIN32-NEXT: flh fa4, 524(sp)
1707 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1708 ; ZVFHMIN32-NEXT: sb a0, 70(sp)
1709 ; ZVFHMIN32-NEXT: flh fa5, 266(sp)
1710 ; ZVFHMIN32-NEXT: flh fa4, 522(sp)
1711 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1712 ; ZVFHMIN32-NEXT: sb a0, 69(sp)
1713 ; ZVFHMIN32-NEXT: flh fa5, 264(sp)
1714 ; ZVFHMIN32-NEXT: flh fa4, 520(sp)
1715 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1716 ; ZVFHMIN32-NEXT: sb a0, 68(sp)
1717 ; ZVFHMIN32-NEXT: flh fa5, 262(sp)
1718 ; ZVFHMIN32-NEXT: flh fa4, 518(sp)
1719 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1720 ; ZVFHMIN32-NEXT: sb a0, 67(sp)
1721 ; ZVFHMIN32-NEXT: flh fa5, 260(sp)
1722 ; ZVFHMIN32-NEXT: flh fa4, 516(sp)
1723 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1724 ; ZVFHMIN32-NEXT: sb a0, 66(sp)
1725 ; ZVFHMIN32-NEXT: flh fa5, 258(sp)
1726 ; ZVFHMIN32-NEXT: flh fa4, 514(sp)
1727 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1728 ; ZVFHMIN32-NEXT: sb a0, 65(sp)
1729 ; ZVFHMIN32-NEXT: flh fa5, 256(sp)
1730 ; ZVFHMIN32-NEXT: flh fa4, 512(sp)
1731 ; ZVFHMIN32-NEXT: feq.h a0, fa5, fa4
1732 ; ZVFHMIN32-NEXT: sb a0, 64(sp)
1733 ; ZVFHMIN32-NEXT: li a0, 128
1734 ; ZVFHMIN32-NEXT: mv a1, sp
1735 ; ZVFHMIN32-NEXT: vsetvli zero, a0, e8, m8, ta, ma
1736 ; ZVFHMIN32-NEXT: vle8.v v8, (a1)
1737 ; ZVFHMIN32-NEXT: vand.vi v8, v8, 1
1738 ; ZVFHMIN32-NEXT: vmsne.vi v0, v8, 0
1739 ; ZVFHMIN32-NEXT: addi sp, s0, -768
1740 ; ZVFHMIN32-NEXT: lw ra, 764(sp) # 4-byte Folded Reload
1741 ; ZVFHMIN32-NEXT: lw s0, 760(sp) # 4-byte Folded Reload
1742 ; ZVFHMIN32-NEXT: addi sp, sp, 768
1743 ; ZVFHMIN32-NEXT: ret
1745 ; ZVFHMIN64-LABEL: fcmp_oeq_vv_v128f16:
1746 ; ZVFHMIN64: # %bb.0:
1747 ; ZVFHMIN64-NEXT: addi sp, sp, -768
1748 ; ZVFHMIN64-NEXT: .cfi_def_cfa_offset 768
1749 ; ZVFHMIN64-NEXT: sd ra, 760(sp) # 8-byte Folded Spill
1750 ; ZVFHMIN64-NEXT: sd s0, 752(sp) # 8-byte Folded Spill
1751 ; ZVFHMIN64-NEXT: .cfi_offset ra, -8
1752 ; ZVFHMIN64-NEXT: .cfi_offset s0, -16
1753 ; ZVFHMIN64-NEXT: addi s0, sp, 768
1754 ; ZVFHMIN64-NEXT: .cfi_def_cfa s0, 0
1755 ; ZVFHMIN64-NEXT: andi sp, sp, -128
1756 ; ZVFHMIN64-NEXT: addi a1, a0, 128
1757 ; ZVFHMIN64-NEXT: li a2, 64
1758 ; ZVFHMIN64-NEXT: vsetvli zero, a2, e16, m8, ta, ma
1759 ; ZVFHMIN64-NEXT: vle16.v v24, (a1)
1760 ; ZVFHMIN64-NEXT: vle16.v v0, (a0)
1761 ; ZVFHMIN64-NEXT: addi a0, sp, 128
1762 ; ZVFHMIN64-NEXT: vse16.v v8, (a0)
1763 ; ZVFHMIN64-NEXT: addi a0, sp, 384
1764 ; ZVFHMIN64-NEXT: vse16.v v0, (a0)
1765 ; ZVFHMIN64-NEXT: addi a0, sp, 256
1766 ; ZVFHMIN64-NEXT: vse16.v v16, (a0)
1767 ; ZVFHMIN64-NEXT: addi a0, sp, 512
1768 ; ZVFHMIN64-NEXT: vse16.v v24, (a0)
1769 ; ZVFHMIN64-NEXT: flh fa5, 254(sp)
1770 ; ZVFHMIN64-NEXT: flh fa4, 510(sp)
1771 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1772 ; ZVFHMIN64-NEXT: sb a0, 63(sp)
1773 ; ZVFHMIN64-NEXT: flh fa5, 252(sp)
1774 ; ZVFHMIN64-NEXT: flh fa4, 508(sp)
1775 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1776 ; ZVFHMIN64-NEXT: sb a0, 62(sp)
1777 ; ZVFHMIN64-NEXT: flh fa5, 250(sp)
1778 ; ZVFHMIN64-NEXT: flh fa4, 506(sp)
1779 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1780 ; ZVFHMIN64-NEXT: sb a0, 61(sp)
1781 ; ZVFHMIN64-NEXT: flh fa5, 248(sp)
1782 ; ZVFHMIN64-NEXT: flh fa4, 504(sp)
1783 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1784 ; ZVFHMIN64-NEXT: sb a0, 60(sp)
1785 ; ZVFHMIN64-NEXT: flh fa5, 246(sp)
1786 ; ZVFHMIN64-NEXT: flh fa4, 502(sp)
1787 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1788 ; ZVFHMIN64-NEXT: sb a0, 59(sp)
1789 ; ZVFHMIN64-NEXT: flh fa5, 244(sp)
1790 ; ZVFHMIN64-NEXT: flh fa4, 500(sp)
1791 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1792 ; ZVFHMIN64-NEXT: sb a0, 58(sp)
1793 ; ZVFHMIN64-NEXT: flh fa5, 242(sp)
1794 ; ZVFHMIN64-NEXT: flh fa4, 498(sp)
1795 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1796 ; ZVFHMIN64-NEXT: sb a0, 57(sp)
1797 ; ZVFHMIN64-NEXT: flh fa5, 240(sp)
1798 ; ZVFHMIN64-NEXT: flh fa4, 496(sp)
1799 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1800 ; ZVFHMIN64-NEXT: sb a0, 56(sp)
1801 ; ZVFHMIN64-NEXT: flh fa5, 238(sp)
1802 ; ZVFHMIN64-NEXT: flh fa4, 494(sp)
1803 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1804 ; ZVFHMIN64-NEXT: sb a0, 55(sp)
1805 ; ZVFHMIN64-NEXT: flh fa5, 236(sp)
1806 ; ZVFHMIN64-NEXT: flh fa4, 492(sp)
1807 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1808 ; ZVFHMIN64-NEXT: sb a0, 54(sp)
1809 ; ZVFHMIN64-NEXT: flh fa5, 234(sp)
1810 ; ZVFHMIN64-NEXT: flh fa4, 490(sp)
1811 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1812 ; ZVFHMIN64-NEXT: sb a0, 53(sp)
1813 ; ZVFHMIN64-NEXT: flh fa5, 232(sp)
1814 ; ZVFHMIN64-NEXT: flh fa4, 488(sp)
1815 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1816 ; ZVFHMIN64-NEXT: sb a0, 52(sp)
1817 ; ZVFHMIN64-NEXT: flh fa5, 230(sp)
1818 ; ZVFHMIN64-NEXT: flh fa4, 486(sp)
1819 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1820 ; ZVFHMIN64-NEXT: sb a0, 51(sp)
1821 ; ZVFHMIN64-NEXT: flh fa5, 228(sp)
1822 ; ZVFHMIN64-NEXT: flh fa4, 484(sp)
1823 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1824 ; ZVFHMIN64-NEXT: sb a0, 50(sp)
1825 ; ZVFHMIN64-NEXT: flh fa5, 226(sp)
1826 ; ZVFHMIN64-NEXT: flh fa4, 482(sp)
1827 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1828 ; ZVFHMIN64-NEXT: sb a0, 49(sp)
1829 ; ZVFHMIN64-NEXT: flh fa5, 224(sp)
1830 ; ZVFHMIN64-NEXT: flh fa4, 480(sp)
1831 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1832 ; ZVFHMIN64-NEXT: sb a0, 48(sp)
1833 ; ZVFHMIN64-NEXT: flh fa5, 222(sp)
1834 ; ZVFHMIN64-NEXT: flh fa4, 478(sp)
1835 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1836 ; ZVFHMIN64-NEXT: sb a0, 47(sp)
1837 ; ZVFHMIN64-NEXT: flh fa5, 382(sp)
1838 ; ZVFHMIN64-NEXT: flh fa4, 638(sp)
1839 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1840 ; ZVFHMIN64-NEXT: sb a0, 127(sp)
1841 ; ZVFHMIN64-NEXT: flh fa5, 380(sp)
1842 ; ZVFHMIN64-NEXT: flh fa4, 636(sp)
1843 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1844 ; ZVFHMIN64-NEXT: sb a0, 126(sp)
1845 ; ZVFHMIN64-NEXT: flh fa5, 378(sp)
1846 ; ZVFHMIN64-NEXT: flh fa4, 634(sp)
1847 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1848 ; ZVFHMIN64-NEXT: sb a0, 125(sp)
1849 ; ZVFHMIN64-NEXT: flh fa5, 376(sp)
1850 ; ZVFHMIN64-NEXT: flh fa4, 632(sp)
1851 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1852 ; ZVFHMIN64-NEXT: sb a0, 124(sp)
1853 ; ZVFHMIN64-NEXT: flh fa5, 374(sp)
1854 ; ZVFHMIN64-NEXT: flh fa4, 630(sp)
1855 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1856 ; ZVFHMIN64-NEXT: sb a0, 123(sp)
1857 ; ZVFHMIN64-NEXT: flh fa5, 372(sp)
1858 ; ZVFHMIN64-NEXT: flh fa4, 628(sp)
1859 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1860 ; ZVFHMIN64-NEXT: sb a0, 122(sp)
1861 ; ZVFHMIN64-NEXT: flh fa5, 370(sp)
1862 ; ZVFHMIN64-NEXT: flh fa4, 626(sp)
1863 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1864 ; ZVFHMIN64-NEXT: sb a0, 121(sp)
1865 ; ZVFHMIN64-NEXT: flh fa5, 368(sp)
1866 ; ZVFHMIN64-NEXT: flh fa4, 624(sp)
1867 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1868 ; ZVFHMIN64-NEXT: sb a0, 120(sp)
1869 ; ZVFHMIN64-NEXT: flh fa5, 366(sp)
1870 ; ZVFHMIN64-NEXT: flh fa4, 622(sp)
1871 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1872 ; ZVFHMIN64-NEXT: sb a0, 119(sp)
1873 ; ZVFHMIN64-NEXT: flh fa5, 364(sp)
1874 ; ZVFHMIN64-NEXT: flh fa4, 620(sp)
1875 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1876 ; ZVFHMIN64-NEXT: sb a0, 118(sp)
1877 ; ZVFHMIN64-NEXT: flh fa5, 362(sp)
1878 ; ZVFHMIN64-NEXT: flh fa4, 618(sp)
1879 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1880 ; ZVFHMIN64-NEXT: sb a0, 117(sp)
1881 ; ZVFHMIN64-NEXT: flh fa5, 360(sp)
1882 ; ZVFHMIN64-NEXT: flh fa4, 616(sp)
1883 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1884 ; ZVFHMIN64-NEXT: sb a0, 116(sp)
1885 ; ZVFHMIN64-NEXT: flh fa5, 358(sp)
1886 ; ZVFHMIN64-NEXT: flh fa4, 614(sp)
1887 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1888 ; ZVFHMIN64-NEXT: sb a0, 115(sp)
1889 ; ZVFHMIN64-NEXT: flh fa5, 356(sp)
1890 ; ZVFHMIN64-NEXT: flh fa4, 612(sp)
1891 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1892 ; ZVFHMIN64-NEXT: sb a0, 114(sp)
1893 ; ZVFHMIN64-NEXT: flh fa5, 354(sp)
1894 ; ZVFHMIN64-NEXT: flh fa4, 610(sp)
1895 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1896 ; ZVFHMIN64-NEXT: sb a0, 113(sp)
1897 ; ZVFHMIN64-NEXT: flh fa5, 352(sp)
1898 ; ZVFHMIN64-NEXT: flh fa4, 608(sp)
1899 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1900 ; ZVFHMIN64-NEXT: sb a0, 112(sp)
1901 ; ZVFHMIN64-NEXT: flh fa5, 350(sp)
1902 ; ZVFHMIN64-NEXT: flh fa4, 606(sp)
1903 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1904 ; ZVFHMIN64-NEXT: sb a0, 111(sp)
1905 ; ZVFHMIN64-NEXT: flh fa5, 220(sp)
1906 ; ZVFHMIN64-NEXT: flh fa4, 476(sp)
1907 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1908 ; ZVFHMIN64-NEXT: sb a0, 46(sp)
1909 ; ZVFHMIN64-NEXT: flh fa5, 218(sp)
1910 ; ZVFHMIN64-NEXT: flh fa4, 474(sp)
1911 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1912 ; ZVFHMIN64-NEXT: sb a0, 45(sp)
1913 ; ZVFHMIN64-NEXT: flh fa5, 216(sp)
1914 ; ZVFHMIN64-NEXT: flh fa4, 472(sp)
1915 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1916 ; ZVFHMIN64-NEXT: sb a0, 44(sp)
1917 ; ZVFHMIN64-NEXT: flh fa5, 214(sp)
1918 ; ZVFHMIN64-NEXT: flh fa4, 470(sp)
1919 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1920 ; ZVFHMIN64-NEXT: sb a0, 43(sp)
1921 ; ZVFHMIN64-NEXT: flh fa5, 212(sp)
1922 ; ZVFHMIN64-NEXT: flh fa4, 468(sp)
1923 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1924 ; ZVFHMIN64-NEXT: sb a0, 42(sp)
1925 ; ZVFHMIN64-NEXT: flh fa5, 210(sp)
1926 ; ZVFHMIN64-NEXT: flh fa4, 466(sp)
1927 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1928 ; ZVFHMIN64-NEXT: sb a0, 41(sp)
1929 ; ZVFHMIN64-NEXT: flh fa5, 208(sp)
1930 ; ZVFHMIN64-NEXT: flh fa4, 464(sp)
1931 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1932 ; ZVFHMIN64-NEXT: sb a0, 40(sp)
1933 ; ZVFHMIN64-NEXT: flh fa5, 206(sp)
1934 ; ZVFHMIN64-NEXT: flh fa4, 462(sp)
1935 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1936 ; ZVFHMIN64-NEXT: sb a0, 39(sp)
1937 ; ZVFHMIN64-NEXT: flh fa5, 204(sp)
1938 ; ZVFHMIN64-NEXT: flh fa4, 460(sp)
1939 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1940 ; ZVFHMIN64-NEXT: sb a0, 38(sp)
1941 ; ZVFHMIN64-NEXT: flh fa5, 202(sp)
1942 ; ZVFHMIN64-NEXT: flh fa4, 458(sp)
1943 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1944 ; ZVFHMIN64-NEXT: sb a0, 37(sp)
1945 ; ZVFHMIN64-NEXT: flh fa5, 200(sp)
1946 ; ZVFHMIN64-NEXT: flh fa4, 456(sp)
1947 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1948 ; ZVFHMIN64-NEXT: sb a0, 36(sp)
1949 ; ZVFHMIN64-NEXT: flh fa5, 198(sp)
1950 ; ZVFHMIN64-NEXT: flh fa4, 454(sp)
1951 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1952 ; ZVFHMIN64-NEXT: sb a0, 35(sp)
1953 ; ZVFHMIN64-NEXT: flh fa5, 196(sp)
1954 ; ZVFHMIN64-NEXT: flh fa4, 452(sp)
1955 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1956 ; ZVFHMIN64-NEXT: sb a0, 34(sp)
1957 ; ZVFHMIN64-NEXT: flh fa5, 194(sp)
1958 ; ZVFHMIN64-NEXT: flh fa4, 450(sp)
1959 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1960 ; ZVFHMIN64-NEXT: sb a0, 33(sp)
1961 ; ZVFHMIN64-NEXT: flh fa5, 192(sp)
1962 ; ZVFHMIN64-NEXT: flh fa4, 448(sp)
1963 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1964 ; ZVFHMIN64-NEXT: sb a0, 32(sp)
1965 ; ZVFHMIN64-NEXT: flh fa5, 190(sp)
1966 ; ZVFHMIN64-NEXT: flh fa4, 446(sp)
1967 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1968 ; ZVFHMIN64-NEXT: sb a0, 31(sp)
1969 ; ZVFHMIN64-NEXT: flh fa5, 188(sp)
1970 ; ZVFHMIN64-NEXT: flh fa4, 444(sp)
1971 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1972 ; ZVFHMIN64-NEXT: sb a0, 30(sp)
1973 ; ZVFHMIN64-NEXT: flh fa5, 348(sp)
1974 ; ZVFHMIN64-NEXT: flh fa4, 604(sp)
1975 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1976 ; ZVFHMIN64-NEXT: sb a0, 110(sp)
1977 ; ZVFHMIN64-NEXT: flh fa5, 346(sp)
1978 ; ZVFHMIN64-NEXT: flh fa4, 602(sp)
1979 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1980 ; ZVFHMIN64-NEXT: sb a0, 109(sp)
1981 ; ZVFHMIN64-NEXT: flh fa5, 344(sp)
1982 ; ZVFHMIN64-NEXT: flh fa4, 600(sp)
1983 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1984 ; ZVFHMIN64-NEXT: sb a0, 108(sp)
1985 ; ZVFHMIN64-NEXT: flh fa5, 342(sp)
1986 ; ZVFHMIN64-NEXT: flh fa4, 598(sp)
1987 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1988 ; ZVFHMIN64-NEXT: sb a0, 107(sp)
1989 ; ZVFHMIN64-NEXT: flh fa5, 340(sp)
1990 ; ZVFHMIN64-NEXT: flh fa4, 596(sp)
1991 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1992 ; ZVFHMIN64-NEXT: sb a0, 106(sp)
1993 ; ZVFHMIN64-NEXT: flh fa5, 338(sp)
1994 ; ZVFHMIN64-NEXT: flh fa4, 594(sp)
1995 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
1996 ; ZVFHMIN64-NEXT: sb a0, 105(sp)
1997 ; ZVFHMIN64-NEXT: flh fa5, 336(sp)
1998 ; ZVFHMIN64-NEXT: flh fa4, 592(sp)
1999 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2000 ; ZVFHMIN64-NEXT: sb a0, 104(sp)
2001 ; ZVFHMIN64-NEXT: flh fa5, 334(sp)
2002 ; ZVFHMIN64-NEXT: flh fa4, 590(sp)
2003 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2004 ; ZVFHMIN64-NEXT: sb a0, 103(sp)
2005 ; ZVFHMIN64-NEXT: flh fa5, 332(sp)
2006 ; ZVFHMIN64-NEXT: flh fa4, 588(sp)
2007 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2008 ; ZVFHMIN64-NEXT: sb a0, 102(sp)
2009 ; ZVFHMIN64-NEXT: flh fa5, 330(sp)
2010 ; ZVFHMIN64-NEXT: flh fa4, 586(sp)
2011 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2012 ; ZVFHMIN64-NEXT: sb a0, 101(sp)
2013 ; ZVFHMIN64-NEXT: flh fa5, 328(sp)
2014 ; ZVFHMIN64-NEXT: flh fa4, 584(sp)
2015 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2016 ; ZVFHMIN64-NEXT: sb a0, 100(sp)
2017 ; ZVFHMIN64-NEXT: flh fa5, 326(sp)
2018 ; ZVFHMIN64-NEXT: flh fa4, 582(sp)
2019 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2020 ; ZVFHMIN64-NEXT: sb a0, 99(sp)
2021 ; ZVFHMIN64-NEXT: flh fa5, 324(sp)
2022 ; ZVFHMIN64-NEXT: flh fa4, 580(sp)
2023 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2024 ; ZVFHMIN64-NEXT: sb a0, 98(sp)
2025 ; ZVFHMIN64-NEXT: flh fa5, 322(sp)
2026 ; ZVFHMIN64-NEXT: flh fa4, 578(sp)
2027 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2028 ; ZVFHMIN64-NEXT: sb a0, 97(sp)
2029 ; ZVFHMIN64-NEXT: flh fa5, 320(sp)
2030 ; ZVFHMIN64-NEXT: flh fa4, 576(sp)
2031 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2032 ; ZVFHMIN64-NEXT: sb a0, 96(sp)
2033 ; ZVFHMIN64-NEXT: flh fa5, 318(sp)
2034 ; ZVFHMIN64-NEXT: flh fa4, 574(sp)
2035 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2036 ; ZVFHMIN64-NEXT: sb a0, 95(sp)
2037 ; ZVFHMIN64-NEXT: flh fa5, 316(sp)
2038 ; ZVFHMIN64-NEXT: flh fa4, 572(sp)
2039 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2040 ; ZVFHMIN64-NEXT: sb a0, 94(sp)
2041 ; ZVFHMIN64-NEXT: flh fa5, 186(sp)
2042 ; ZVFHMIN64-NEXT: flh fa4, 442(sp)
2043 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2044 ; ZVFHMIN64-NEXT: sb a0, 29(sp)
2045 ; ZVFHMIN64-NEXT: flh fa5, 184(sp)
2046 ; ZVFHMIN64-NEXT: flh fa4, 440(sp)
2047 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2048 ; ZVFHMIN64-NEXT: sb a0, 28(sp)
2049 ; ZVFHMIN64-NEXT: flh fa5, 182(sp)
2050 ; ZVFHMIN64-NEXT: flh fa4, 438(sp)
2051 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2052 ; ZVFHMIN64-NEXT: sb a0, 27(sp)
2053 ; ZVFHMIN64-NEXT: flh fa5, 180(sp)
2054 ; ZVFHMIN64-NEXT: flh fa4, 436(sp)
2055 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2056 ; ZVFHMIN64-NEXT: sb a0, 26(sp)
2057 ; ZVFHMIN64-NEXT: flh fa5, 178(sp)
2058 ; ZVFHMIN64-NEXT: flh fa4, 434(sp)
2059 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2060 ; ZVFHMIN64-NEXT: sb a0, 25(sp)
2061 ; ZVFHMIN64-NEXT: flh fa5, 176(sp)
2062 ; ZVFHMIN64-NEXT: flh fa4, 432(sp)
2063 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2064 ; ZVFHMIN64-NEXT: sb a0, 24(sp)
2065 ; ZVFHMIN64-NEXT: flh fa5, 174(sp)
2066 ; ZVFHMIN64-NEXT: flh fa4, 430(sp)
2067 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2068 ; ZVFHMIN64-NEXT: sb a0, 23(sp)
2069 ; ZVFHMIN64-NEXT: flh fa5, 172(sp)
2070 ; ZVFHMIN64-NEXT: flh fa4, 428(sp)
2071 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2072 ; ZVFHMIN64-NEXT: sb a0, 22(sp)
2073 ; ZVFHMIN64-NEXT: flh fa5, 170(sp)
2074 ; ZVFHMIN64-NEXT: flh fa4, 426(sp)
2075 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2076 ; ZVFHMIN64-NEXT: sb a0, 21(sp)
2077 ; ZVFHMIN64-NEXT: flh fa5, 168(sp)
2078 ; ZVFHMIN64-NEXT: flh fa4, 424(sp)
2079 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2080 ; ZVFHMIN64-NEXT: sb a0, 20(sp)
2081 ; ZVFHMIN64-NEXT: flh fa5, 166(sp)
2082 ; ZVFHMIN64-NEXT: flh fa4, 422(sp)
2083 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2084 ; ZVFHMIN64-NEXT: sb a0, 19(sp)
2085 ; ZVFHMIN64-NEXT: flh fa5, 164(sp)
2086 ; ZVFHMIN64-NEXT: flh fa4, 420(sp)
2087 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2088 ; ZVFHMIN64-NEXT: sb a0, 18(sp)
2089 ; ZVFHMIN64-NEXT: flh fa5, 162(sp)
2090 ; ZVFHMIN64-NEXT: flh fa4, 418(sp)
2091 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2092 ; ZVFHMIN64-NEXT: sb a0, 17(sp)
2093 ; ZVFHMIN64-NEXT: flh fa5, 160(sp)
2094 ; ZVFHMIN64-NEXT: flh fa4, 416(sp)
2095 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2096 ; ZVFHMIN64-NEXT: sb a0, 16(sp)
2097 ; ZVFHMIN64-NEXT: flh fa5, 158(sp)
2098 ; ZVFHMIN64-NEXT: flh fa4, 414(sp)
2099 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2100 ; ZVFHMIN64-NEXT: sb a0, 15(sp)
2101 ; ZVFHMIN64-NEXT: flh fa5, 156(sp)
2102 ; ZVFHMIN64-NEXT: flh fa4, 412(sp)
2103 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2104 ; ZVFHMIN64-NEXT: sb a0, 14(sp)
2105 ; ZVFHMIN64-NEXT: flh fa5, 154(sp)
2106 ; ZVFHMIN64-NEXT: flh fa4, 410(sp)
2107 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2108 ; ZVFHMIN64-NEXT: sb a0, 13(sp)
2109 ; ZVFHMIN64-NEXT: flh fa5, 314(sp)
2110 ; ZVFHMIN64-NEXT: flh fa4, 570(sp)
2111 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2112 ; ZVFHMIN64-NEXT: sb a0, 93(sp)
2113 ; ZVFHMIN64-NEXT: flh fa5, 312(sp)
2114 ; ZVFHMIN64-NEXT: flh fa4, 568(sp)
2115 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2116 ; ZVFHMIN64-NEXT: sb a0, 92(sp)
2117 ; ZVFHMIN64-NEXT: flh fa5, 310(sp)
2118 ; ZVFHMIN64-NEXT: flh fa4, 566(sp)
2119 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2120 ; ZVFHMIN64-NEXT: sb a0, 91(sp)
2121 ; ZVFHMIN64-NEXT: flh fa5, 308(sp)
2122 ; ZVFHMIN64-NEXT: flh fa4, 564(sp)
2123 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2124 ; ZVFHMIN64-NEXT: sb a0, 90(sp)
2125 ; ZVFHMIN64-NEXT: flh fa5, 306(sp)
2126 ; ZVFHMIN64-NEXT: flh fa4, 562(sp)
2127 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2128 ; ZVFHMIN64-NEXT: sb a0, 89(sp)
2129 ; ZVFHMIN64-NEXT: flh fa5, 304(sp)
2130 ; ZVFHMIN64-NEXT: flh fa4, 560(sp)
2131 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2132 ; ZVFHMIN64-NEXT: sb a0, 88(sp)
2133 ; ZVFHMIN64-NEXT: flh fa5, 302(sp)
2134 ; ZVFHMIN64-NEXT: flh fa4, 558(sp)
2135 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2136 ; ZVFHMIN64-NEXT: sb a0, 87(sp)
2137 ; ZVFHMIN64-NEXT: flh fa5, 300(sp)
2138 ; ZVFHMIN64-NEXT: flh fa4, 556(sp)
2139 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2140 ; ZVFHMIN64-NEXT: sb a0, 86(sp)
2141 ; ZVFHMIN64-NEXT: flh fa5, 298(sp)
2142 ; ZVFHMIN64-NEXT: flh fa4, 554(sp)
2143 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2144 ; ZVFHMIN64-NEXT: sb a0, 85(sp)
2145 ; ZVFHMIN64-NEXT: flh fa5, 296(sp)
2146 ; ZVFHMIN64-NEXT: flh fa4, 552(sp)
2147 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2148 ; ZVFHMIN64-NEXT: sb a0, 84(sp)
2149 ; ZVFHMIN64-NEXT: flh fa5, 294(sp)
2150 ; ZVFHMIN64-NEXT: flh fa4, 550(sp)
2151 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2152 ; ZVFHMIN64-NEXT: sb a0, 83(sp)
2153 ; ZVFHMIN64-NEXT: flh fa5, 292(sp)
2154 ; ZVFHMIN64-NEXT: flh fa4, 548(sp)
2155 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2156 ; ZVFHMIN64-NEXT: sb a0, 82(sp)
2157 ; ZVFHMIN64-NEXT: flh fa5, 290(sp)
2158 ; ZVFHMIN64-NEXT: flh fa4, 546(sp)
2159 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2160 ; ZVFHMIN64-NEXT: sb a0, 81(sp)
2161 ; ZVFHMIN64-NEXT: flh fa5, 288(sp)
2162 ; ZVFHMIN64-NEXT: flh fa4, 544(sp)
2163 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2164 ; ZVFHMIN64-NEXT: sb a0, 80(sp)
2165 ; ZVFHMIN64-NEXT: flh fa5, 286(sp)
2166 ; ZVFHMIN64-NEXT: flh fa4, 542(sp)
2167 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2168 ; ZVFHMIN64-NEXT: sb a0, 79(sp)
2169 ; ZVFHMIN64-NEXT: flh fa5, 284(sp)
2170 ; ZVFHMIN64-NEXT: flh fa4, 540(sp)
2171 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2172 ; ZVFHMIN64-NEXT: sb a0, 78(sp)
2173 ; ZVFHMIN64-NEXT: flh fa5, 282(sp)
2174 ; ZVFHMIN64-NEXT: flh fa4, 538(sp)
2175 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2176 ; ZVFHMIN64-NEXT: sb a0, 77(sp)
2177 ; ZVFHMIN64-NEXT: flh fa5, 152(sp)
2178 ; ZVFHMIN64-NEXT: flh fa4, 408(sp)
2179 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2180 ; ZVFHMIN64-NEXT: sb a0, 12(sp)
2181 ; ZVFHMIN64-NEXT: flh fa5, 150(sp)
2182 ; ZVFHMIN64-NEXT: flh fa4, 406(sp)
2183 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2184 ; ZVFHMIN64-NEXT: sb a0, 11(sp)
2185 ; ZVFHMIN64-NEXT: flh fa5, 148(sp)
2186 ; ZVFHMIN64-NEXT: flh fa4, 404(sp)
2187 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2188 ; ZVFHMIN64-NEXT: sb a0, 10(sp)
2189 ; ZVFHMIN64-NEXT: flh fa5, 146(sp)
2190 ; ZVFHMIN64-NEXT: flh fa4, 402(sp)
2191 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2192 ; ZVFHMIN64-NEXT: sb a0, 9(sp)
2193 ; ZVFHMIN64-NEXT: flh fa5, 144(sp)
2194 ; ZVFHMIN64-NEXT: flh fa4, 400(sp)
2195 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2196 ; ZVFHMIN64-NEXT: sb a0, 8(sp)
2197 ; ZVFHMIN64-NEXT: flh fa5, 142(sp)
2198 ; ZVFHMIN64-NEXT: flh fa4, 398(sp)
2199 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2200 ; ZVFHMIN64-NEXT: sb a0, 7(sp)
2201 ; ZVFHMIN64-NEXT: flh fa5, 140(sp)
2202 ; ZVFHMIN64-NEXT: flh fa4, 396(sp)
2203 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2204 ; ZVFHMIN64-NEXT: sb a0, 6(sp)
2205 ; ZVFHMIN64-NEXT: flh fa5, 138(sp)
2206 ; ZVFHMIN64-NEXT: flh fa4, 394(sp)
2207 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2208 ; ZVFHMIN64-NEXT: sb a0, 5(sp)
2209 ; ZVFHMIN64-NEXT: flh fa5, 136(sp)
2210 ; ZVFHMIN64-NEXT: flh fa4, 392(sp)
2211 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2212 ; ZVFHMIN64-NEXT: sb a0, 4(sp)
2213 ; ZVFHMIN64-NEXT: flh fa5, 134(sp)
2214 ; ZVFHMIN64-NEXT: flh fa4, 390(sp)
2215 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2216 ; ZVFHMIN64-NEXT: sb a0, 3(sp)
2217 ; ZVFHMIN64-NEXT: flh fa5, 132(sp)
2218 ; ZVFHMIN64-NEXT: flh fa4, 388(sp)
2219 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2220 ; ZVFHMIN64-NEXT: sb a0, 2(sp)
2221 ; ZVFHMIN64-NEXT: flh fa5, 130(sp)
2222 ; ZVFHMIN64-NEXT: flh fa4, 386(sp)
2223 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2224 ; ZVFHMIN64-NEXT: sb a0, 1(sp)
2225 ; ZVFHMIN64-NEXT: flh fa5, 128(sp)
2226 ; ZVFHMIN64-NEXT: flh fa4, 384(sp)
2227 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2228 ; ZVFHMIN64-NEXT: sb a0, 0(sp)
2229 ; ZVFHMIN64-NEXT: flh fa5, 280(sp)
2230 ; ZVFHMIN64-NEXT: flh fa4, 536(sp)
2231 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2232 ; ZVFHMIN64-NEXT: sb a0, 76(sp)
2233 ; ZVFHMIN64-NEXT: flh fa5, 278(sp)
2234 ; ZVFHMIN64-NEXT: flh fa4, 534(sp)
2235 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2236 ; ZVFHMIN64-NEXT: sb a0, 75(sp)
2237 ; ZVFHMIN64-NEXT: flh fa5, 276(sp)
2238 ; ZVFHMIN64-NEXT: flh fa4, 532(sp)
2239 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2240 ; ZVFHMIN64-NEXT: sb a0, 74(sp)
2241 ; ZVFHMIN64-NEXT: flh fa5, 274(sp)
2242 ; ZVFHMIN64-NEXT: flh fa4, 530(sp)
2243 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2244 ; ZVFHMIN64-NEXT: sb a0, 73(sp)
2245 ; ZVFHMIN64-NEXT: flh fa5, 272(sp)
2246 ; ZVFHMIN64-NEXT: flh fa4, 528(sp)
2247 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2248 ; ZVFHMIN64-NEXT: sb a0, 72(sp)
2249 ; ZVFHMIN64-NEXT: flh fa5, 270(sp)
2250 ; ZVFHMIN64-NEXT: flh fa4, 526(sp)
2251 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2252 ; ZVFHMIN64-NEXT: sb a0, 71(sp)
2253 ; ZVFHMIN64-NEXT: flh fa5, 268(sp)
2254 ; ZVFHMIN64-NEXT: flh fa4, 524(sp)
2255 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2256 ; ZVFHMIN64-NEXT: sb a0, 70(sp)
2257 ; ZVFHMIN64-NEXT: flh fa5, 266(sp)
2258 ; ZVFHMIN64-NEXT: flh fa4, 522(sp)
2259 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2260 ; ZVFHMIN64-NEXT: sb a0, 69(sp)
2261 ; ZVFHMIN64-NEXT: flh fa5, 264(sp)
2262 ; ZVFHMIN64-NEXT: flh fa4, 520(sp)
2263 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2264 ; ZVFHMIN64-NEXT: sb a0, 68(sp)
2265 ; ZVFHMIN64-NEXT: flh fa5, 262(sp)
2266 ; ZVFHMIN64-NEXT: flh fa4, 518(sp)
2267 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2268 ; ZVFHMIN64-NEXT: sb a0, 67(sp)
2269 ; ZVFHMIN64-NEXT: flh fa5, 260(sp)
2270 ; ZVFHMIN64-NEXT: flh fa4, 516(sp)
2271 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2272 ; ZVFHMIN64-NEXT: sb a0, 66(sp)
2273 ; ZVFHMIN64-NEXT: flh fa5, 258(sp)
2274 ; ZVFHMIN64-NEXT: flh fa4, 514(sp)
2275 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2276 ; ZVFHMIN64-NEXT: sb a0, 65(sp)
2277 ; ZVFHMIN64-NEXT: flh fa5, 256(sp)
2278 ; ZVFHMIN64-NEXT: flh fa4, 512(sp)
2279 ; ZVFHMIN64-NEXT: feq.h a0, fa5, fa4
2280 ; ZVFHMIN64-NEXT: sb a0, 64(sp)
2281 ; ZVFHMIN64-NEXT: li a0, 128
2282 ; ZVFHMIN64-NEXT: mv a1, sp
2283 ; ZVFHMIN64-NEXT: vsetvli zero, a0, e8, m8, ta, ma
2284 ; ZVFHMIN64-NEXT: vle8.v v8, (a1)
2285 ; ZVFHMIN64-NEXT: vand.vi v8, v8, 1
2286 ; ZVFHMIN64-NEXT: vmsne.vi v0, v8, 0
2287 ; ZVFHMIN64-NEXT: addi sp, s0, -768
2288 ; ZVFHMIN64-NEXT: ld ra, 760(sp) # 8-byte Folded Reload
2289 ; ZVFHMIN64-NEXT: ld s0, 752(sp) # 8-byte Folded Reload
2290 ; ZVFHMIN64-NEXT: addi sp, sp, 768
2291 ; ZVFHMIN64-NEXT: ret
2292 %v = call <128 x i1> @llvm.vp.fcmp.v128f16(<128 x half> %va, <128 x half> %vb, metadata !"oeq", <128 x i1> %m, i32 %evl)
2296 declare <7 x i1> @llvm.vp.fcmp.v7f64(<7 x double>, <7 x double>, metadata, <7 x i1>, i32)
2298 define <7 x i1> @fcmp_oeq_vv_v7f64(<7 x double> %va, <7 x double> %vb, <7 x i1> %m, i32 zeroext %evl) {
2299 ; CHECK-LABEL: fcmp_oeq_vv_v7f64:
2301 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2302 ; CHECK-NEXT: vmfeq.vv v16, v8, v12, v0.t
2303 ; CHECK-NEXT: vmv1r.v v0, v16
2305 %v = call <7 x i1> @llvm.vp.fcmp.v7f64(<7 x double> %va, <7 x double> %vb, metadata !"oeq", <7 x i1> %m, i32 %evl)
2309 declare <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double>, <8 x double>, metadata, <8 x i1>, i32)
2311 define <8 x i1> @fcmp_oeq_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2312 ; CHECK-LABEL: fcmp_oeq_vv_v8f64:
2314 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2315 ; CHECK-NEXT: vmfeq.vv v16, v8, v12, v0.t
2316 ; CHECK-NEXT: vmv1r.v v0, v16
2318 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"oeq", <8 x i1> %m, i32 %evl)
2322 define <8 x i1> @fcmp_oeq_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2323 ; CHECK-LABEL: fcmp_oeq_vf_v8f64:
2325 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2326 ; CHECK-NEXT: vmfeq.vf v12, v8, fa0, v0.t
2327 ; CHECK-NEXT: vmv1r.v v0, v12
2329 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2330 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2331 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"oeq", <8 x i1> %m, i32 %evl)
2335 define <8 x i1> @fcmp_oeq_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2336 ; CHECK-LABEL: fcmp_oeq_vf_swap_v8f64:
2338 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2339 ; CHECK-NEXT: vmfeq.vf v12, v8, fa0, v0.t
2340 ; CHECK-NEXT: vmv1r.v v0, v12
2342 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2343 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2344 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"oeq", <8 x i1> %m, i32 %evl)
2348 define <8 x i1> @fcmp_ogt_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2349 ; CHECK-LABEL: fcmp_ogt_vv_v8f64:
2351 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2352 ; CHECK-NEXT: vmflt.vv v16, v12, v8, v0.t
2353 ; CHECK-NEXT: vmv1r.v v0, v16
2355 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ogt", <8 x i1> %m, i32 %evl)
2359 define <8 x i1> @fcmp_ogt_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2360 ; CHECK-LABEL: fcmp_ogt_vf_v8f64:
2362 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2363 ; CHECK-NEXT: vmfgt.vf v12, v8, fa0, v0.t
2364 ; CHECK-NEXT: vmv1r.v v0, v12
2366 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2367 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2368 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ogt", <8 x i1> %m, i32 %evl)
2372 define <8 x i1> @fcmp_ogt_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2373 ; CHECK-LABEL: fcmp_ogt_vf_swap_v8f64:
2375 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2376 ; CHECK-NEXT: vmflt.vf v12, v8, fa0, v0.t
2377 ; CHECK-NEXT: vmv1r.v v0, v12
2379 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2380 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2381 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ogt", <8 x i1> %m, i32 %evl)
2385 define <8 x i1> @fcmp_oge_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2386 ; CHECK-LABEL: fcmp_oge_vv_v8f64:
2388 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2389 ; CHECK-NEXT: vmfle.vv v16, v12, v8, v0.t
2390 ; CHECK-NEXT: vmv1r.v v0, v16
2392 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"oge", <8 x i1> %m, i32 %evl)
2396 define <8 x i1> @fcmp_oge_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2397 ; CHECK-LABEL: fcmp_oge_vf_v8f64:
2399 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2400 ; CHECK-NEXT: vmfge.vf v12, v8, fa0, v0.t
2401 ; CHECK-NEXT: vmv1r.v v0, v12
2403 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2404 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2405 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"oge", <8 x i1> %m, i32 %evl)
2409 define <8 x i1> @fcmp_oge_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2410 ; CHECK-LABEL: fcmp_oge_vf_swap_v8f64:
2412 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2413 ; CHECK-NEXT: vmfle.vf v12, v8, fa0, v0.t
2414 ; CHECK-NEXT: vmv1r.v v0, v12
2416 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2417 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2418 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"oge", <8 x i1> %m, i32 %evl)
2422 define <8 x i1> @fcmp_olt_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2423 ; CHECK-LABEL: fcmp_olt_vv_v8f64:
2425 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2426 ; CHECK-NEXT: vmflt.vv v16, v8, v12, v0.t
2427 ; CHECK-NEXT: vmv1r.v v0, v16
2429 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"olt", <8 x i1> %m, i32 %evl)
2433 define <8 x i1> @fcmp_olt_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2434 ; CHECK-LABEL: fcmp_olt_vf_v8f64:
2436 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2437 ; CHECK-NEXT: vmflt.vf v12, v8, fa0, v0.t
2438 ; CHECK-NEXT: vmv1r.v v0, v12
2440 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2441 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2442 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"olt", <8 x i1> %m, i32 %evl)
2446 define <8 x i1> @fcmp_olt_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2447 ; CHECK-LABEL: fcmp_olt_vf_swap_v8f64:
2449 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2450 ; CHECK-NEXT: vmfgt.vf v12, v8, fa0, v0.t
2451 ; CHECK-NEXT: vmv1r.v v0, v12
2453 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2454 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2455 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"olt", <8 x i1> %m, i32 %evl)
2459 define <8 x i1> @fcmp_ole_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2460 ; CHECK-LABEL: fcmp_ole_vv_v8f64:
2462 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2463 ; CHECK-NEXT: vmfle.vv v16, v8, v12, v0.t
2464 ; CHECK-NEXT: vmv1r.v v0, v16
2466 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ole", <8 x i1> %m, i32 %evl)
2470 define <8 x i1> @fcmp_ole_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2471 ; CHECK-LABEL: fcmp_ole_vf_v8f64:
2473 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2474 ; CHECK-NEXT: vmfle.vf v12, v8, fa0, v0.t
2475 ; CHECK-NEXT: vmv1r.v v0, v12
2477 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2478 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2479 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ole", <8 x i1> %m, i32 %evl)
2483 define <8 x i1> @fcmp_ole_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2484 ; CHECK-LABEL: fcmp_ole_vf_swap_v8f64:
2486 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2487 ; CHECK-NEXT: vmfge.vf v12, v8, fa0, v0.t
2488 ; CHECK-NEXT: vmv1r.v v0, v12
2490 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2491 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2492 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ole", <8 x i1> %m, i32 %evl)
2496 define <8 x i1> @fcmp_one_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2497 ; CHECK-LABEL: fcmp_one_vv_v8f64:
2499 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2500 ; CHECK-NEXT: vmflt.vv v16, v8, v12, v0.t
2501 ; CHECK-NEXT: vmflt.vv v17, v12, v8, v0.t
2502 ; CHECK-NEXT: vmor.mm v0, v17, v16
2504 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"one", <8 x i1> %m, i32 %evl)
2508 define <8 x i1> @fcmp_one_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2509 ; CHECK-LABEL: fcmp_one_vf_v8f64:
2511 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2512 ; CHECK-NEXT: vmflt.vf v12, v8, fa0, v0.t
2513 ; CHECK-NEXT: vmfgt.vf v13, v8, fa0, v0.t
2514 ; CHECK-NEXT: vmor.mm v0, v13, v12
2516 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2517 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2518 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"one", <8 x i1> %m, i32 %evl)
2522 define <8 x i1> @fcmp_one_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2523 ; CHECK-LABEL: fcmp_one_vf_swap_v8f64:
2525 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2526 ; CHECK-NEXT: vmfgt.vf v12, v8, fa0, v0.t
2527 ; CHECK-NEXT: vmflt.vf v13, v8, fa0, v0.t
2528 ; CHECK-NEXT: vmor.mm v0, v13, v12
2530 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2531 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2532 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"one", <8 x i1> %m, i32 %evl)
2536 define <8 x i1> @fcmp_ord_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2537 ; CHECK-LABEL: fcmp_ord_vv_v8f64:
2539 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2540 ; CHECK-NEXT: vmfeq.vv v16, v12, v12, v0.t
2541 ; CHECK-NEXT: vmfeq.vv v12, v8, v8, v0.t
2542 ; CHECK-NEXT: vmand.mm v0, v12, v16
2544 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ord", <8 x i1> %m, i32 %evl)
2548 define <8 x i1> @fcmp_ord_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2549 ; CHECK-LABEL: fcmp_ord_vf_v8f64:
2551 ; CHECK-NEXT: vsetivli zero, 8, e64, m4, ta, ma
2552 ; CHECK-NEXT: vfmv.v.f v12, fa0
2553 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2554 ; CHECK-NEXT: vmfeq.vf v16, v12, fa0, v0.t
2555 ; CHECK-NEXT: vmfeq.vv v12, v8, v8, v0.t
2556 ; CHECK-NEXT: vmand.mm v0, v12, v16
2558 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2559 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2560 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ord", <8 x i1> %m, i32 %evl)
2564 define <8 x i1> @fcmp_ord_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2565 ; CHECK-LABEL: fcmp_ord_vf_swap_v8f64:
2567 ; CHECK-NEXT: vsetivli zero, 8, e64, m4, ta, ma
2568 ; CHECK-NEXT: vfmv.v.f v12, fa0
2569 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2570 ; CHECK-NEXT: vmfeq.vf v16, v12, fa0, v0.t
2571 ; CHECK-NEXT: vmfeq.vv v12, v8, v8, v0.t
2572 ; CHECK-NEXT: vmand.mm v0, v16, v12
2574 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2575 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2576 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ord", <8 x i1> %m, i32 %evl)
2580 define <8 x i1> @fcmp_ueq_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2581 ; CHECK-LABEL: fcmp_ueq_vv_v8f64:
2583 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2584 ; CHECK-NEXT: vmflt.vv v16, v8, v12, v0.t
2585 ; CHECK-NEXT: vmflt.vv v17, v12, v8, v0.t
2586 ; CHECK-NEXT: vmnor.mm v0, v17, v16
2588 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ueq", <8 x i1> %m, i32 %evl)
2592 define <8 x i1> @fcmp_ueq_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2593 ; CHECK-LABEL: fcmp_ueq_vf_v8f64:
2595 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2596 ; CHECK-NEXT: vmflt.vf v12, v8, fa0, v0.t
2597 ; CHECK-NEXT: vmfgt.vf v13, v8, fa0, v0.t
2598 ; CHECK-NEXT: vmnor.mm v0, v13, v12
2600 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2601 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2602 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ueq", <8 x i1> %m, i32 %evl)
2606 define <8 x i1> @fcmp_ueq_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2607 ; CHECK-LABEL: fcmp_ueq_vf_swap_v8f64:
2609 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2610 ; CHECK-NEXT: vmfgt.vf v12, v8, fa0, v0.t
2611 ; CHECK-NEXT: vmflt.vf v13, v8, fa0, v0.t
2612 ; CHECK-NEXT: vmnor.mm v0, v13, v12
2614 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2615 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2616 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ueq", <8 x i1> %m, i32 %evl)
2620 define <8 x i1> @fcmp_ugt_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2621 ; CHECK-LABEL: fcmp_ugt_vv_v8f64:
2623 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2624 ; CHECK-NEXT: vmfle.vv v16, v8, v12, v0.t
2625 ; CHECK-NEXT: vmnot.m v0, v16
2627 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)
2631 define <8 x i1> @fcmp_ugt_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2632 ; CHECK-LABEL: fcmp_ugt_vf_v8f64:
2634 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2635 ; CHECK-NEXT: vmfle.vf v12, v8, fa0, v0.t
2636 ; CHECK-NEXT: vmnot.m v0, v12
2638 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2639 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2640 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)
2644 define <8 x i1> @fcmp_ugt_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2645 ; CHECK-LABEL: fcmp_ugt_vf_swap_v8f64:
2647 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2648 ; CHECK-NEXT: vmfge.vf v12, v8, fa0, v0.t
2649 ; CHECK-NEXT: vmnot.m v0, v12
2651 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2652 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2653 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)
2657 define <8 x i1> @fcmp_uge_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2658 ; CHECK-LABEL: fcmp_uge_vv_v8f64:
2660 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2661 ; CHECK-NEXT: vmflt.vv v16, v8, v12, v0.t
2662 ; CHECK-NEXT: vmnot.m v0, v16
2664 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)
2668 define <8 x i1> @fcmp_uge_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2669 ; CHECK-LABEL: fcmp_uge_vf_v8f64:
2671 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2672 ; CHECK-NEXT: vmflt.vf v12, v8, fa0, v0.t
2673 ; CHECK-NEXT: vmnot.m v0, v12
2675 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2676 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2677 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)
2681 define <8 x i1> @fcmp_uge_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2682 ; CHECK-LABEL: fcmp_uge_vf_swap_v8f64:
2684 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2685 ; CHECK-NEXT: vmfgt.vf v12, v8, fa0, v0.t
2686 ; CHECK-NEXT: vmnot.m v0, v12
2688 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2689 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2690 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"uge", <8 x i1> %m, i32 %evl)
2694 define <8 x i1> @fcmp_ult_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2695 ; CHECK-LABEL: fcmp_ult_vv_v8f64:
2697 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2698 ; CHECK-NEXT: vmfle.vv v16, v12, v8, v0.t
2699 ; CHECK-NEXT: vmnot.m v0, v16
2701 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)
2705 define <8 x i1> @fcmp_ult_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2706 ; CHECK-LABEL: fcmp_ult_vf_v8f64:
2708 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2709 ; CHECK-NEXT: vmfge.vf v12, v8, fa0, v0.t
2710 ; CHECK-NEXT: vmnot.m v0, v12
2712 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2713 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2714 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)
2718 define <8 x i1> @fcmp_ult_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2719 ; CHECK-LABEL: fcmp_ult_vf_swap_v8f64:
2721 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2722 ; CHECK-NEXT: vmfle.vf v12, v8, fa0, v0.t
2723 ; CHECK-NEXT: vmnot.m v0, v12
2725 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2726 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2727 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ult", <8 x i1> %m, i32 %evl)
2731 define <8 x i1> @fcmp_ule_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2732 ; CHECK-LABEL: fcmp_ule_vv_v8f64:
2734 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2735 ; CHECK-NEXT: vmflt.vv v16, v12, v8, v0.t
2736 ; CHECK-NEXT: vmnot.m v0, v16
2738 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ule", <8 x i1> %m, i32 %evl)
2742 define <8 x i1> @fcmp_ule_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2743 ; CHECK-LABEL: fcmp_ule_vf_v8f64:
2745 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2746 ; CHECK-NEXT: vmfgt.vf v12, v8, fa0, v0.t
2747 ; CHECK-NEXT: vmnot.m v0, v12
2749 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2750 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2751 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ule", <8 x i1> %m, i32 %evl)
2755 define <8 x i1> @fcmp_ule_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2756 ; CHECK-LABEL: fcmp_ule_vf_swap_v8f64:
2758 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2759 ; CHECK-NEXT: vmflt.vf v12, v8, fa0, v0.t
2760 ; CHECK-NEXT: vmnot.m v0, v12
2762 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2763 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2764 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"ule", <8 x i1> %m, i32 %evl)
2768 define <8 x i1> @fcmp_une_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2769 ; CHECK-LABEL: fcmp_une_vv_v8f64:
2771 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2772 ; CHECK-NEXT: vmfne.vv v16, v8, v12, v0.t
2773 ; CHECK-NEXT: vmv1r.v v0, v16
2775 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"une", <8 x i1> %m, i32 %evl)
2779 define <8 x i1> @fcmp_une_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2780 ; CHECK-LABEL: fcmp_une_vf_v8f64:
2782 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2783 ; CHECK-NEXT: vmfne.vf v12, v8, fa0, v0.t
2784 ; CHECK-NEXT: vmv1r.v v0, v12
2786 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2787 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2788 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"une", <8 x i1> %m, i32 %evl)
2792 define <8 x i1> @fcmp_une_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2793 ; CHECK-LABEL: fcmp_une_vf_swap_v8f64:
2795 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2796 ; CHECK-NEXT: vmfne.vf v12, v8, fa0, v0.t
2797 ; CHECK-NEXT: vmv1r.v v0, v12
2799 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2800 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2801 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"une", <8 x i1> %m, i32 %evl)
2805 define <8 x i1> @fcmp_uno_vv_v8f64(<8 x double> %va, <8 x double> %vb, <8 x i1> %m, i32 zeroext %evl) {
2806 ; CHECK-LABEL: fcmp_uno_vv_v8f64:
2808 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2809 ; CHECK-NEXT: vmfne.vv v16, v12, v12, v0.t
2810 ; CHECK-NEXT: vmfne.vv v12, v8, v8, v0.t
2811 ; CHECK-NEXT: vmor.mm v0, v12, v16
2813 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"uno", <8 x i1> %m, i32 %evl)
2817 define <8 x i1> @fcmp_uno_vf_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2818 ; CHECK-LABEL: fcmp_uno_vf_v8f64:
2820 ; CHECK-NEXT: vsetivli zero, 8, e64, m4, ta, ma
2821 ; CHECK-NEXT: vfmv.v.f v12, fa0
2822 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2823 ; CHECK-NEXT: vmfne.vf v16, v12, fa0, v0.t
2824 ; CHECK-NEXT: vmfne.vv v12, v8, v8, v0.t
2825 ; CHECK-NEXT: vmor.mm v0, v12, v16
2827 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2828 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2829 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"uno", <8 x i1> %m, i32 %evl)
2833 define <8 x i1> @fcmp_uno_vf_swap_v8f64(<8 x double> %va, double %b, <8 x i1> %m, i32 zeroext %evl) {
2834 ; CHECK-LABEL: fcmp_uno_vf_swap_v8f64:
2836 ; CHECK-NEXT: vsetivli zero, 8, e64, m4, ta, ma
2837 ; CHECK-NEXT: vfmv.v.f v12, fa0
2838 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
2839 ; CHECK-NEXT: vmfne.vf v16, v12, fa0, v0.t
2840 ; CHECK-NEXT: vmfne.vv v12, v8, v8, v0.t
2841 ; CHECK-NEXT: vmor.mm v0, v16, v12
2843 %elt.head = insertelement <8 x double> poison, double %b, i32 0
2844 %vb = shufflevector <8 x double> %elt.head, <8 x double> poison, <8 x i32> zeroinitializer
2845 %v = call <8 x i1> @llvm.vp.fcmp.v8f64(<8 x double> %vb, <8 x double> %va, metadata !"uno", <8 x i1> %m, i32 %evl)
2849 declare <32 x i1> @llvm.vp.fcmp.v32f64(<32 x double>, <32 x double>, metadata, <32 x i1>, i32)
2851 define <32 x i1> @fcmp_oeq_vv_v32f64(<32 x double> %va, <32 x double> %vb, <32 x i1> %m, i32 zeroext %evl) {
2852 ; CHECK-LABEL: fcmp_oeq_vv_v32f64:
2854 ; CHECK-NEXT: addi sp, sp, -16
2855 ; CHECK-NEXT: .cfi_def_cfa_offset 16
2856 ; CHECK-NEXT: csrr a1, vlenb
2857 ; CHECK-NEXT: slli a1, a1, 4
2858 ; CHECK-NEXT: sub sp, sp, a1
2859 ; CHECK-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x10, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 16 * vlenb
2860 ; CHECK-NEXT: addi a1, a0, 128
2861 ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
2862 ; CHECK-NEXT: vle64.v v24, (a1)
2863 ; CHECK-NEXT: csrr a1, vlenb
2864 ; CHECK-NEXT: slli a1, a1, 3
2865 ; CHECK-NEXT: add a1, sp, a1
2866 ; CHECK-NEXT: addi a1, a1, 16
2867 ; CHECK-NEXT: vs8r.v v24, (a1) # Unknown-size Folded Spill
2868 ; CHECK-NEXT: vle64.v v24, (a0)
2869 ; CHECK-NEXT: addi a0, sp, 16
2870 ; CHECK-NEXT: vs8r.v v24, (a0) # Unknown-size Folded Spill
2871 ; CHECK-NEXT: li a1, 16
2872 ; CHECK-NEXT: vsetivli zero, 2, e8, mf4, ta, ma
2873 ; CHECK-NEXT: vslidedown.vi v6, v0, 2
2874 ; CHECK-NEXT: mv a0, a2
2875 ; CHECK-NEXT: bltu a2, a1, .LBB87_2
2876 ; CHECK-NEXT: # %bb.1:
2877 ; CHECK-NEXT: li a0, 16
2878 ; CHECK-NEXT: .LBB87_2:
2879 ; CHECK-NEXT: addi a1, sp, 16
2880 ; CHECK-NEXT: vl8r.v v24, (a1) # Unknown-size Folded Reload
2881 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
2882 ; CHECK-NEXT: vmfeq.vv v7, v8, v24, v0.t
2883 ; CHECK-NEXT: addi a0, a2, -16
2884 ; CHECK-NEXT: sltu a1, a2, a0
2885 ; CHECK-NEXT: addi a1, a1, -1
2886 ; CHECK-NEXT: and a0, a1, a0
2887 ; CHECK-NEXT: vmv1r.v v0, v6
2888 ; CHECK-NEXT: csrr a1, vlenb
2889 ; CHECK-NEXT: slli a1, a1, 3
2890 ; CHECK-NEXT: add a1, sp, a1
2891 ; CHECK-NEXT: addi a1, a1, 16
2892 ; CHECK-NEXT: vl8r.v v24, (a1) # Unknown-size Folded Reload
2893 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
2894 ; CHECK-NEXT: vmfeq.vv v8, v16, v24, v0.t
2895 ; CHECK-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
2896 ; CHECK-NEXT: vslideup.vi v7, v8, 2
2897 ; CHECK-NEXT: vmv1r.v v0, v7
2898 ; CHECK-NEXT: csrr a0, vlenb
2899 ; CHECK-NEXT: slli a0, a0, 4
2900 ; CHECK-NEXT: add sp, sp, a0
2901 ; CHECK-NEXT: addi sp, sp, 16
2903 %v = call <32 x i1> @llvm.vp.fcmp.v32f64(<32 x double> %va, <32 x double> %vb, metadata !"oeq", <32 x i1> %m, i32 %evl)
2906 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: