brintos

brintos / llvm-project-archived public Read only

0
0
Text · 242.4 KiB · 634e581 Raw
5223 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+d,+zvfh,+zfbfmin,+zvfbfmin,+v \3; RUN:     -target-abi=ilp32d -verify-machineinstrs < %s | FileCheck %s \4; RUN:     --check-prefixes=CHECK,CHECK32,ZVFH5; RUN: llc -mtriple=riscv64 -mattr=+d,+zvfh,+zfbfmin,+zvfbfmin,+v \6; RUN:     -target-abi=lp64d -verify-machineinstrs < %s | FileCheck %s \7; RUN:     --check-prefixes=CHECK,CHECK64,ZVFH8; RUN: llc -mtriple=riscv32 -mattr=+d,+zfhmin,+zvfhmin,+zfbfmin,+zvfbfmin,+v \9; RUN:     -target-abi=ilp32d -verify-machineinstrs < %s | FileCheck %s \10; RUN:     --check-prefixes=CHECK,CHECK32,ZVFHMIN11; RUN: llc -mtriple=riscv64 -mattr=+d,+zfhmin,+zvfhmin,+zfbfmin,+zvfbfmin,+v \12; RUN:     -target-abi=lp64d -verify-machineinstrs < %s | FileCheck %s \13; RUN:     --check-prefixes=CHECK,CHECK64,ZVFHMIN14 15define <vscale x 1 x i1> @fcmp_oeq_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {16; CHECK-LABEL: fcmp_oeq_vv_nxv1bf16:17; CHECK:       # %bb.0:18; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma19; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v920; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v821; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma22; CHECK-NEXT:    vmfeq.vv v0, v9, v10, v0.t23; CHECK-NEXT:    ret24  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)25  ret <vscale x 1 x i1> %v26}27 28define <vscale x 1 x i1> @fcmp_oeq_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {29; CHECK-LABEL: fcmp_oeq_vf_nxv1bf16:30; CHECK:       # %bb.0:31; CHECK-NEXT:    fcvt.s.bf16 fa5, fa032; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma33; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v834; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma35; CHECK-NEXT:    vmfeq.vf v0, v9, fa5, v0.t36; CHECK-NEXT:    ret37  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 038  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer39  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)40  ret <vscale x 1 x i1> %v41}42 43define <vscale x 1 x i1> @fcmp_oeq_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {44; CHECK-LABEL: fcmp_oeq_vf_swap_nxv1bf16:45; CHECK:       # %bb.0:46; CHECK-NEXT:    fcvt.s.bf16 fa5, fa047; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma48; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v849; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma50; CHECK-NEXT:    vmfeq.vf v0, v9, fa5, v0.t51; CHECK-NEXT:    ret52  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 053  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer54  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)55  ret <vscale x 1 x i1> %v56}57 58define <vscale x 1 x i1> @fcmp_ogt_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {59; CHECK-LABEL: fcmp_ogt_vv_nxv1bf16:60; CHECK:       # %bb.0:61; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma62; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v863; CHECK-NEXT:    vfwcvtbf16.f.f.v v8, v964; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma65; CHECK-NEXT:    vmflt.vv v0, v8, v10, v0.t66; CHECK-NEXT:    ret67  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)68  ret <vscale x 1 x i1> %v69}70 71define <vscale x 1 x i1> @fcmp_ogt_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {72; CHECK-LABEL: fcmp_ogt_vf_nxv1bf16:73; CHECK:       # %bb.0:74; CHECK-NEXT:    fcvt.s.bf16 fa5, fa075; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma76; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v877; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma78; CHECK-NEXT:    vmfgt.vf v0, v9, fa5, v0.t79; CHECK-NEXT:    ret80  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 081  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer82  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)83  ret <vscale x 1 x i1> %v84}85 86define <vscale x 1 x i1> @fcmp_ogt_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {87; CHECK-LABEL: fcmp_ogt_vf_swap_nxv1bf16:88; CHECK:       # %bb.0:89; CHECK-NEXT:    fcvt.s.bf16 fa5, fa090; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma91; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v892; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma93; CHECK-NEXT:    vmflt.vf v0, v9, fa5, v0.t94; CHECK-NEXT:    ret95  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 096  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer97  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)98  ret <vscale x 1 x i1> %v99}100 101define <vscale x 1 x i1> @fcmp_oge_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {102; CHECK-LABEL: fcmp_oge_vv_nxv1bf16:103; CHECK:       # %bb.0:104; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma105; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v8106; CHECK-NEXT:    vfwcvtbf16.f.f.v v8, v9107; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma108; CHECK-NEXT:    vmfle.vv v0, v8, v10, v0.t109; CHECK-NEXT:    ret110  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)111  ret <vscale x 1 x i1> %v112}113 114define <vscale x 1 x i1> @fcmp_oge_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {115; CHECK-LABEL: fcmp_oge_vf_nxv1bf16:116; CHECK:       # %bb.0:117; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0118; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma119; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8120; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma121; CHECK-NEXT:    vmfge.vf v0, v9, fa5, v0.t122; CHECK-NEXT:    ret123  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0124  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer125  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)126  ret <vscale x 1 x i1> %v127}128 129define <vscale x 1 x i1> @fcmp_oge_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {130; CHECK-LABEL: fcmp_oge_vf_swap_nxv1bf16:131; CHECK:       # %bb.0:132; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0133; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma134; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8135; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma136; CHECK-NEXT:    vmfle.vf v0, v9, fa5, v0.t137; CHECK-NEXT:    ret138  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0139  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer140  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)141  ret <vscale x 1 x i1> %v142}143 144define <vscale x 1 x i1> @fcmp_olt_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {145; CHECK-LABEL: fcmp_olt_vv_nxv1bf16:146; CHECK:       # %bb.0:147; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma148; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9149; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8150; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma151; CHECK-NEXT:    vmflt.vv v0, v9, v10, v0.t152; CHECK-NEXT:    ret153  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)154  ret <vscale x 1 x i1> %v155}156 157define <vscale x 1 x i1> @fcmp_olt_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {158; CHECK-LABEL: fcmp_olt_vf_nxv1bf16:159; CHECK:       # %bb.0:160; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0161; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma162; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8163; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma164; CHECK-NEXT:    vmflt.vf v0, v9, fa5, v0.t165; CHECK-NEXT:    ret166  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0167  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer168  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)169  ret <vscale x 1 x i1> %v170}171 172define <vscale x 1 x i1> @fcmp_olt_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {173; CHECK-LABEL: fcmp_olt_vf_swap_nxv1bf16:174; CHECK:       # %bb.0:175; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0176; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma177; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8178; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma179; CHECK-NEXT:    vmfgt.vf v0, v9, fa5, v0.t180; CHECK-NEXT:    ret181  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0182  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer183  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)184  ret <vscale x 1 x i1> %v185}186 187define <vscale x 1 x i1> @fcmp_ole_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {188; CHECK-LABEL: fcmp_ole_vv_nxv1bf16:189; CHECK:       # %bb.0:190; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma191; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9192; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8193; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma194; CHECK-NEXT:    vmfle.vv v0, v9, v10, v0.t195; CHECK-NEXT:    ret196  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)197  ret <vscale x 1 x i1> %v198}199 200define <vscale x 1 x i1> @fcmp_ole_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {201; CHECK-LABEL: fcmp_ole_vf_nxv1bf16:202; CHECK:       # %bb.0:203; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0204; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma205; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8206; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma207; CHECK-NEXT:    vmfle.vf v0, v9, fa5, v0.t208; CHECK-NEXT:    ret209  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0210  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer211  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)212  ret <vscale x 1 x i1> %v213}214 215define <vscale x 1 x i1> @fcmp_ole_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {216; CHECK-LABEL: fcmp_ole_vf_swap_nxv1bf16:217; CHECK:       # %bb.0:218; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0219; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma220; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8221; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma222; CHECK-NEXT:    vmfge.vf v0, v9, fa5, v0.t223; CHECK-NEXT:    ret224  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0225  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer226  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)227  ret <vscale x 1 x i1> %v228}229 230define <vscale x 1 x i1> @fcmp_one_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {231; CHECK-LABEL: fcmp_one_vv_nxv1bf16:232; CHECK:       # %bb.0:233; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma234; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9235; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8236; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma237; CHECK-NEXT:    vmflt.vv v8, v9, v10, v0.t238; CHECK-NEXT:    vmflt.vv v9, v10, v9, v0.t239; CHECK-NEXT:    vmor.mm v0, v9, v8240; CHECK-NEXT:    ret241  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)242  ret <vscale x 1 x i1> %v243}244 245define <vscale x 1 x i1> @fcmp_one_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {246; CHECK-LABEL: fcmp_one_vf_nxv1bf16:247; CHECK:       # %bb.0:248; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0249; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma250; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8251; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma252; CHECK-NEXT:    vmflt.vf v8, v9, fa5, v0.t253; CHECK-NEXT:    vmfgt.vf v9, v9, fa5, v0.t254; CHECK-NEXT:    vmor.mm v0, v9, v8255; CHECK-NEXT:    ret256  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0257  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer258  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)259  ret <vscale x 1 x i1> %v260}261 262define <vscale x 1 x i1> @fcmp_one_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {263; CHECK-LABEL: fcmp_one_vf_swap_nxv1bf16:264; CHECK:       # %bb.0:265; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0266; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma267; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8268; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma269; CHECK-NEXT:    vmfgt.vf v8, v9, fa5, v0.t270; CHECK-NEXT:    vmflt.vf v9, v9, fa5, v0.t271; CHECK-NEXT:    vmor.mm v0, v9, v8272; CHECK-NEXT:    ret273  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0274  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer275  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)276  ret <vscale x 1 x i1> %v277}278 279define <vscale x 1 x i1> @fcmp_ord_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {280; CHECK-LABEL: fcmp_ord_vv_nxv1bf16:281; CHECK:       # %bb.0:282; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma283; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9284; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8285; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma286; CHECK-NEXT:    vmfeq.vv v8, v10, v10, v0.t287; CHECK-NEXT:    vmfeq.vv v9, v9, v9, v0.t288; CHECK-NEXT:    vmand.mm v0, v9, v8289; CHECK-NEXT:    ret290  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)291  ret <vscale x 1 x i1> %v292}293 294define <vscale x 1 x i1> @fcmp_ord_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {295; CHECK-LABEL: fcmp_ord_vf_nxv1bf16:296; CHECK:       # %bb.0:297; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0298; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma299; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8300; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma301; CHECK-NEXT:    vfmv.v.f v8, fa5302; CHECK-NEXT:    vmfeq.vf v8, v8, fa5, v0.t303; CHECK-NEXT:    vmfeq.vv v9, v9, v9, v0.t304; CHECK-NEXT:    vmand.mm v0, v9, v8305; CHECK-NEXT:    ret306  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0307  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer308  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)309  ret <vscale x 1 x i1> %v310}311 312define <vscale x 1 x i1> @fcmp_ord_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {313; CHECK-LABEL: fcmp_ord_vf_swap_nxv1bf16:314; CHECK:       # %bb.0:315; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0316; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma317; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8318; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma319; CHECK-NEXT:    vfmv.v.f v8, fa5320; CHECK-NEXT:    vmfeq.vf v8, v8, fa5, v0.t321; CHECK-NEXT:    vmfeq.vv v9, v9, v9, v0.t322; CHECK-NEXT:    vmand.mm v0, v8, v9323; CHECK-NEXT:    ret324  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0325  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer326  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)327  ret <vscale x 1 x i1> %v328}329 330define <vscale x 1 x i1> @fcmp_ueq_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {331; CHECK-LABEL: fcmp_ueq_vv_nxv1bf16:332; CHECK:       # %bb.0:333; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma334; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9335; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8336; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma337; CHECK-NEXT:    vmflt.vv v8, v9, v10, v0.t338; CHECK-NEXT:    vmflt.vv v9, v10, v9, v0.t339; CHECK-NEXT:    vmnor.mm v0, v9, v8340; CHECK-NEXT:    ret341  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)342  ret <vscale x 1 x i1> %v343}344 345define <vscale x 1 x i1> @fcmp_ueq_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {346; CHECK-LABEL: fcmp_ueq_vf_nxv1bf16:347; CHECK:       # %bb.0:348; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0349; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma350; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8351; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma352; CHECK-NEXT:    vmflt.vf v8, v9, fa5, v0.t353; CHECK-NEXT:    vmfgt.vf v9, v9, fa5, v0.t354; CHECK-NEXT:    vmnor.mm v0, v9, v8355; CHECK-NEXT:    ret356  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0357  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer358  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)359  ret <vscale x 1 x i1> %v360}361 362define <vscale x 1 x i1> @fcmp_ueq_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {363; CHECK-LABEL: fcmp_ueq_vf_swap_nxv1bf16:364; CHECK:       # %bb.0:365; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0366; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma367; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8368; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma369; CHECK-NEXT:    vmfgt.vf v8, v9, fa5, v0.t370; CHECK-NEXT:    vmflt.vf v9, v9, fa5, v0.t371; CHECK-NEXT:    vmnor.mm v0, v9, v8372; CHECK-NEXT:    ret373  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0374  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer375  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)376  ret <vscale x 1 x i1> %v377}378 379define <vscale x 1 x i1> @fcmp_ugt_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {380; CHECK-LABEL: fcmp_ugt_vv_nxv1bf16:381; CHECK:       # %bb.0:382; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma383; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9384; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8385; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma386; CHECK-NEXT:    vmfle.vv v8, v9, v10, v0.t387; CHECK-NEXT:    vmnot.m v0, v8388; CHECK-NEXT:    ret389  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)390  ret <vscale x 1 x i1> %v391}392 393define <vscale x 1 x i1> @fcmp_ugt_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {394; CHECK-LABEL: fcmp_ugt_vf_nxv1bf16:395; CHECK:       # %bb.0:396; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0397; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma398; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8399; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma400; CHECK-NEXT:    vmfle.vf v8, v9, fa5, v0.t401; CHECK-NEXT:    vmnot.m v0, v8402; CHECK-NEXT:    ret403  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0404  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer405  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)406  ret <vscale x 1 x i1> %v407}408 409define <vscale x 1 x i1> @fcmp_ugt_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {410; CHECK-LABEL: fcmp_ugt_vf_swap_nxv1bf16:411; CHECK:       # %bb.0:412; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0413; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma414; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8415; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma416; CHECK-NEXT:    vmfge.vf v8, v9, fa5, v0.t417; CHECK-NEXT:    vmnot.m v0, v8418; CHECK-NEXT:    ret419  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0420  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer421  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)422  ret <vscale x 1 x i1> %v423}424 425define <vscale x 1 x i1> @fcmp_uge_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {426; CHECK-LABEL: fcmp_uge_vv_nxv1bf16:427; CHECK:       # %bb.0:428; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma429; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9430; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8431; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma432; CHECK-NEXT:    vmflt.vv v8, v9, v10, v0.t433; CHECK-NEXT:    vmnot.m v0, v8434; CHECK-NEXT:    ret435  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)436  ret <vscale x 1 x i1> %v437}438 439define <vscale x 1 x i1> @fcmp_uge_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {440; CHECK-LABEL: fcmp_uge_vf_nxv1bf16:441; CHECK:       # %bb.0:442; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0443; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma444; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8445; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma446; CHECK-NEXT:    vmflt.vf v8, v9, fa5, v0.t447; CHECK-NEXT:    vmnot.m v0, v8448; CHECK-NEXT:    ret449  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0450  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer451  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)452  ret <vscale x 1 x i1> %v453}454 455define <vscale x 1 x i1> @fcmp_uge_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {456; CHECK-LABEL: fcmp_uge_vf_swap_nxv1bf16:457; CHECK:       # %bb.0:458; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0459; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma460; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8461; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma462; CHECK-NEXT:    vmfgt.vf v8, v9, fa5, v0.t463; CHECK-NEXT:    vmnot.m v0, v8464; CHECK-NEXT:    ret465  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0466  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer467  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)468  ret <vscale x 1 x i1> %v469}470 471define <vscale x 1 x i1> @fcmp_ult_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {472; CHECK-LABEL: fcmp_ult_vv_nxv1bf16:473; CHECK:       # %bb.0:474; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma475; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v8476; CHECK-NEXT:    vfwcvtbf16.f.f.v v8, v9477; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma478; CHECK-NEXT:    vmfle.vv v8, v8, v10, v0.t479; CHECK-NEXT:    vmnot.m v0, v8480; CHECK-NEXT:    ret481  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)482  ret <vscale x 1 x i1> %v483}484 485define <vscale x 1 x i1> @fcmp_ult_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {486; CHECK-LABEL: fcmp_ult_vf_nxv1bf16:487; CHECK:       # %bb.0:488; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0489; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma490; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8491; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma492; CHECK-NEXT:    vmfge.vf v8, v9, fa5, v0.t493; CHECK-NEXT:    vmnot.m v0, v8494; CHECK-NEXT:    ret495  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0496  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer497  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)498  ret <vscale x 1 x i1> %v499}500 501define <vscale x 1 x i1> @fcmp_ult_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {502; CHECK-LABEL: fcmp_ult_vf_swap_nxv1bf16:503; CHECK:       # %bb.0:504; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0505; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma506; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8507; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma508; CHECK-NEXT:    vmfle.vf v8, v9, fa5, v0.t509; CHECK-NEXT:    vmnot.m v0, v8510; CHECK-NEXT:    ret511  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0512  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer513  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)514  ret <vscale x 1 x i1> %v515}516 517define <vscale x 1 x i1> @fcmp_ule_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {518; CHECK-LABEL: fcmp_ule_vv_nxv1bf16:519; CHECK:       # %bb.0:520; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma521; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v8522; CHECK-NEXT:    vfwcvtbf16.f.f.v v8, v9523; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma524; CHECK-NEXT:    vmflt.vv v8, v8, v10, v0.t525; CHECK-NEXT:    vmnot.m v0, v8526; CHECK-NEXT:    ret527  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)528  ret <vscale x 1 x i1> %v529}530 531define <vscale x 1 x i1> @fcmp_ule_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {532; CHECK-LABEL: fcmp_ule_vf_nxv1bf16:533; CHECK:       # %bb.0:534; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0535; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma536; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8537; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma538; CHECK-NEXT:    vmfgt.vf v8, v9, fa5, v0.t539; CHECK-NEXT:    vmnot.m v0, v8540; CHECK-NEXT:    ret541  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0542  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer543  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)544  ret <vscale x 1 x i1> %v545}546 547define <vscale x 1 x i1> @fcmp_ule_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {548; CHECK-LABEL: fcmp_ule_vf_swap_nxv1bf16:549; CHECK:       # %bb.0:550; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0551; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma552; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8553; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma554; CHECK-NEXT:    vmflt.vf v8, v9, fa5, v0.t555; CHECK-NEXT:    vmnot.m v0, v8556; CHECK-NEXT:    ret557  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0558  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer559  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)560  ret <vscale x 1 x i1> %v561}562 563define <vscale x 1 x i1> @fcmp_une_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {564; CHECK-LABEL: fcmp_une_vv_nxv1bf16:565; CHECK:       # %bb.0:566; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma567; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9568; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8569; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma570; CHECK-NEXT:    vmfne.vv v0, v9, v10, v0.t571; CHECK-NEXT:    ret572  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)573  ret <vscale x 1 x i1> %v574}575 576define <vscale x 1 x i1> @fcmp_une_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {577; CHECK-LABEL: fcmp_une_vf_nxv1bf16:578; CHECK:       # %bb.0:579; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0580; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma581; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8582; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma583; CHECK-NEXT:    vmfne.vf v0, v9, fa5, v0.t584; CHECK-NEXT:    ret585  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0586  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer587  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)588  ret <vscale x 1 x i1> %v589}590 591define <vscale x 1 x i1> @fcmp_une_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {592; CHECK-LABEL: fcmp_une_vf_swap_nxv1bf16:593; CHECK:       # %bb.0:594; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0595; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma596; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8597; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma598; CHECK-NEXT:    vmfne.vf v0, v9, fa5, v0.t599; CHECK-NEXT:    ret600  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0601  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer602  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)603  ret <vscale x 1 x i1> %v604}605 606define <vscale x 1 x i1> @fcmp_uno_vv_nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {607; CHECK-LABEL: fcmp_uno_vv_nxv1bf16:608; CHECK:       # %bb.0:609; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma610; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9611; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8612; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma613; CHECK-NEXT:    vmfne.vv v8, v10, v10, v0.t614; CHECK-NEXT:    vmfne.vv v9, v9, v9, v0.t615; CHECK-NEXT:    vmor.mm v0, v9, v8616; CHECK-NEXT:    ret617  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)618  ret <vscale x 1 x i1> %v619}620 621define <vscale x 1 x i1> @fcmp_uno_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {622; CHECK-LABEL: fcmp_uno_vf_nxv1bf16:623; CHECK:       # %bb.0:624; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0625; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma626; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8627; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma628; CHECK-NEXT:    vfmv.v.f v8, fa5629; CHECK-NEXT:    vmfne.vf v8, v8, fa5, v0.t630; CHECK-NEXT:    vmfne.vv v9, v9, v9, v0.t631; CHECK-NEXT:    vmor.mm v0, v9, v8632; CHECK-NEXT:    ret633  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0634  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer635  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %va, <vscale x 1 x bfloat> %vb, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)636  ret <vscale x 1 x i1> %v637}638 639define <vscale x 1 x i1> @fcmp_uno_vf_swap_nxv1bf16(<vscale x 1 x bfloat> %va, bfloat %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {640; CHECK-LABEL: fcmp_uno_vf_swap_nxv1bf16:641; CHECK:       # %bb.0:642; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0643; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma644; CHECK-NEXT:    vfwcvtbf16.f.f.v v9, v8645; CHECK-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma646; CHECK-NEXT:    vfmv.v.f v8, fa5647; CHECK-NEXT:    vmfne.vf v8, v8, fa5, v0.t648; CHECK-NEXT:    vmfne.vv v9, v9, v9, v0.t649; CHECK-NEXT:    vmor.mm v0, v8, v9650; CHECK-NEXT:    ret651  %elt.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0652  %vb = shufflevector <vscale x 1 x bfloat> %elt.head, <vscale x 1 x bfloat> poison, <vscale x 1 x i32> zeroinitializer653  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1bf16(<vscale x 1 x bfloat> %vb, <vscale x 1 x bfloat> %va, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)654  ret <vscale x 1 x i1> %v655}656 657define <vscale x 3 x i1> @fcmp_oeq_vv_nxv3bf16(<vscale x 3 x bfloat> %va, <vscale x 3 x bfloat> %vb, <vscale x 3 x i1> %m, i32 zeroext %evl) {658; CHECK-LABEL: fcmp_oeq_vv_nxv3bf16:659; CHECK:       # %bb.0:660; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma661; CHECK-NEXT:    vfwcvtbf16.f.f.v v10, v9662; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8663; CHECK-NEXT:    vsetvli zero, zero, e32, m2, ta, ma664; CHECK-NEXT:    vmfeq.vv v8, v12, v10, v0.t665; CHECK-NEXT:    vmv1r.v v0, v8666; CHECK-NEXT:    ret667  %v = call <vscale x 3 x i1> @llvm.vp.fcmp.nxv3bf16(<vscale x 3 x bfloat> %va, <vscale x 3 x bfloat> %vb, metadata !"oeq", <vscale x 3 x i1> %m, i32 %evl)668  ret <vscale x 3 x i1> %v669}670 671define <vscale x 8 x i1> @fcmp_oeq_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {672; CHECK-LABEL: fcmp_oeq_vv_nxv8bf16:673; CHECK:       # %bb.0:674; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma675; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v10676; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v8677; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma678; CHECK-NEXT:    vmfeq.vv v8, v16, v12, v0.t679; CHECK-NEXT:    vmv1r.v v0, v8680; CHECK-NEXT:    ret681  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)682  ret <vscale x 8 x i1> %v683}684 685define <vscale x 8 x i1> @fcmp_oeq_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {686; CHECK-LABEL: fcmp_oeq_vf_nxv8bf16:687; CHECK:       # %bb.0:688; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0689; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma690; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8691; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma692; CHECK-NEXT:    vmfeq.vf v8, v12, fa5, v0.t693; CHECK-NEXT:    vmv1r.v v0, v8694; CHECK-NEXT:    ret695  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0696  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer697  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)698  ret <vscale x 8 x i1> %v699}700 701define <vscale x 8 x i1> @fcmp_oeq_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {702; CHECK-LABEL: fcmp_oeq_vf_swap_nxv8bf16:703; CHECK:       # %bb.0:704; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0705; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma706; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8707; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma708; CHECK-NEXT:    vmfeq.vf v8, v12, fa5, v0.t709; CHECK-NEXT:    vmv1r.v v0, v8710; CHECK-NEXT:    ret711  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0712  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer713  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)714  ret <vscale x 8 x i1> %v715}716 717define <vscale x 8 x i1> @fcmp_ogt_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {718; CHECK-LABEL: fcmp_ogt_vv_nxv8bf16:719; CHECK:       # %bb.0:720; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma721; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8722; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v10723; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma724; CHECK-NEXT:    vmflt.vv v8, v16, v12, v0.t725; CHECK-NEXT:    vmv1r.v v0, v8726; CHECK-NEXT:    ret727  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)728  ret <vscale x 8 x i1> %v729}730 731define <vscale x 8 x i1> @fcmp_ogt_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {732; CHECK-LABEL: fcmp_ogt_vf_nxv8bf16:733; CHECK:       # %bb.0:734; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0735; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma736; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8737; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma738; CHECK-NEXT:    vmfgt.vf v8, v12, fa5, v0.t739; CHECK-NEXT:    vmv1r.v v0, v8740; CHECK-NEXT:    ret741  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0742  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer743  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)744  ret <vscale x 8 x i1> %v745}746 747define <vscale x 8 x i1> @fcmp_ogt_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {748; CHECK-LABEL: fcmp_ogt_vf_swap_nxv8bf16:749; CHECK:       # %bb.0:750; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0751; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma752; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8753; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma754; CHECK-NEXT:    vmflt.vf v8, v12, fa5, v0.t755; CHECK-NEXT:    vmv1r.v v0, v8756; CHECK-NEXT:    ret757  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0758  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer759  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)760  ret <vscale x 8 x i1> %v761}762 763define <vscale x 8 x i1> @fcmp_oge_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {764; CHECK-LABEL: fcmp_oge_vv_nxv8bf16:765; CHECK:       # %bb.0:766; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma767; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8768; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v10769; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma770; CHECK-NEXT:    vmfle.vv v8, v16, v12, v0.t771; CHECK-NEXT:    vmv1r.v v0, v8772; CHECK-NEXT:    ret773  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)774  ret <vscale x 8 x i1> %v775}776 777define <vscale x 8 x i1> @fcmp_oge_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {778; CHECK-LABEL: fcmp_oge_vf_nxv8bf16:779; CHECK:       # %bb.0:780; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0781; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma782; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8783; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma784; CHECK-NEXT:    vmfge.vf v8, v12, fa5, v0.t785; CHECK-NEXT:    vmv1r.v v0, v8786; CHECK-NEXT:    ret787  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0788  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer789  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)790  ret <vscale x 8 x i1> %v791}792 793define <vscale x 8 x i1> @fcmp_oge_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {794; CHECK-LABEL: fcmp_oge_vf_swap_nxv8bf16:795; CHECK:       # %bb.0:796; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0797; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma798; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8799; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma800; CHECK-NEXT:    vmfle.vf v8, v12, fa5, v0.t801; CHECK-NEXT:    vmv1r.v v0, v8802; CHECK-NEXT:    ret803  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0804  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer805  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)806  ret <vscale x 8 x i1> %v807}808 809define <vscale x 8 x i1> @fcmp_olt_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {810; CHECK-LABEL: fcmp_olt_vv_nxv8bf16:811; CHECK:       # %bb.0:812; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma813; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v10814; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v8815; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma816; CHECK-NEXT:    vmflt.vv v8, v16, v12, v0.t817; CHECK-NEXT:    vmv1r.v v0, v8818; CHECK-NEXT:    ret819  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)820  ret <vscale x 8 x i1> %v821}822 823define <vscale x 8 x i1> @fcmp_olt_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {824; CHECK-LABEL: fcmp_olt_vf_nxv8bf16:825; CHECK:       # %bb.0:826; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0827; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma828; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8829; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma830; CHECK-NEXT:    vmflt.vf v8, v12, fa5, v0.t831; CHECK-NEXT:    vmv1r.v v0, v8832; CHECK-NEXT:    ret833  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0834  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer835  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)836  ret <vscale x 8 x i1> %v837}838 839define <vscale x 8 x i1> @fcmp_olt_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {840; CHECK-LABEL: fcmp_olt_vf_swap_nxv8bf16:841; CHECK:       # %bb.0:842; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0843; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma844; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8845; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma846; CHECK-NEXT:    vmfgt.vf v8, v12, fa5, v0.t847; CHECK-NEXT:    vmv1r.v v0, v8848; CHECK-NEXT:    ret849  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0850  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer851  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)852  ret <vscale x 8 x i1> %v853}854 855define <vscale x 8 x i1> @fcmp_ole_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {856; CHECK-LABEL: fcmp_ole_vv_nxv8bf16:857; CHECK:       # %bb.0:858; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma859; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v10860; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v8861; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma862; CHECK-NEXT:    vmfle.vv v8, v16, v12, v0.t863; CHECK-NEXT:    vmv1r.v v0, v8864; CHECK-NEXT:    ret865  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)866  ret <vscale x 8 x i1> %v867}868 869define <vscale x 8 x i1> @fcmp_ole_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {870; CHECK-LABEL: fcmp_ole_vf_nxv8bf16:871; CHECK:       # %bb.0:872; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0873; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma874; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8875; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma876; CHECK-NEXT:    vmfle.vf v8, v12, fa5, v0.t877; CHECK-NEXT:    vmv1r.v v0, v8878; CHECK-NEXT:    ret879  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0880  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer881  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)882  ret <vscale x 8 x i1> %v883}884 885define <vscale x 8 x i1> @fcmp_ole_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {886; CHECK-LABEL: fcmp_ole_vf_swap_nxv8bf16:887; CHECK:       # %bb.0:888; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0889; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma890; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8891; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma892; CHECK-NEXT:    vmfge.vf v8, v12, fa5, v0.t893; CHECK-NEXT:    vmv1r.v v0, v8894; CHECK-NEXT:    ret895  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0896  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer897  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)898  ret <vscale x 8 x i1> %v899}900 901define <vscale x 8 x i1> @fcmp_one_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {902; CHECK-LABEL: fcmp_one_vv_nxv8bf16:903; CHECK:       # %bb.0:904; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma905; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v10906; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v8907; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma908; CHECK-NEXT:    vmflt.vv v8, v16, v12, v0.t909; CHECK-NEXT:    vmflt.vv v9, v12, v16, v0.t910; CHECK-NEXT:    vmor.mm v0, v9, v8911; CHECK-NEXT:    ret912  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)913  ret <vscale x 8 x i1> %v914}915 916define <vscale x 8 x i1> @fcmp_one_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {917; CHECK-LABEL: fcmp_one_vf_nxv8bf16:918; CHECK:       # %bb.0:919; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0920; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma921; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8922; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma923; CHECK-NEXT:    vmflt.vf v8, v12, fa5, v0.t924; CHECK-NEXT:    vmfgt.vf v9, v12, fa5, v0.t925; CHECK-NEXT:    vmor.mm v0, v9, v8926; CHECK-NEXT:    ret927  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0928  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer929  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)930  ret <vscale x 8 x i1> %v931}932 933define <vscale x 8 x i1> @fcmp_one_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {934; CHECK-LABEL: fcmp_one_vf_swap_nxv8bf16:935; CHECK:       # %bb.0:936; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0937; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma938; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8939; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma940; CHECK-NEXT:    vmfgt.vf v8, v12, fa5, v0.t941; CHECK-NEXT:    vmflt.vf v9, v12, fa5, v0.t942; CHECK-NEXT:    vmor.mm v0, v9, v8943; CHECK-NEXT:    ret944  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0945  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer946  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)947  ret <vscale x 8 x i1> %v948}949 950define <vscale x 8 x i1> @fcmp_ord_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {951; CHECK-LABEL: fcmp_ord_vv_nxv8bf16:952; CHECK:       # %bb.0:953; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma954; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v10955; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma956; CHECK-NEXT:    vmfeq.vv v10, v12, v12, v0.t957; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma958; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8959; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma960; CHECK-NEXT:    vmfeq.vv v8, v12, v12, v0.t961; CHECK-NEXT:    vmand.mm v0, v8, v10962; CHECK-NEXT:    ret963  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)964  ret <vscale x 8 x i1> %v965}966 967define <vscale x 8 x i1> @fcmp_ord_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {968; CHECK-LABEL: fcmp_ord_vf_nxv8bf16:969; CHECK:       # %bb.0:970; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0971; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma972; CHECK-NEXT:    vfmv.v.f v12, fa5973; CHECK-NEXT:    vmfeq.vf v10, v12, fa5, v0.t974; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma975; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8976; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma977; CHECK-NEXT:    vmfeq.vv v8, v12, v12, v0.t978; CHECK-NEXT:    vmand.mm v0, v8, v10979; CHECK-NEXT:    ret980  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0981  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer982  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)983  ret <vscale x 8 x i1> %v984}985 986define <vscale x 8 x i1> @fcmp_ord_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {987; CHECK-LABEL: fcmp_ord_vf_swap_nxv8bf16:988; CHECK:       # %bb.0:989; CHECK-NEXT:    fcvt.s.bf16 fa5, fa0990; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma991; CHECK-NEXT:    vfmv.v.f v12, fa5992; CHECK-NEXT:    vmfeq.vf v10, v12, fa5, v0.t993; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma994; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v8995; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma996; CHECK-NEXT:    vmfeq.vv v8, v12, v12, v0.t997; CHECK-NEXT:    vmand.mm v0, v10, v8998; CHECK-NEXT:    ret999  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01000  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1001  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)1002  ret <vscale x 8 x i1> %v1003}1004 1005define <vscale x 8 x i1> @fcmp_ueq_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1006; CHECK-LABEL: fcmp_ueq_vv_nxv8bf16:1007; CHECK:       # %bb.0:1008; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1009; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v101010; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v81011; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1012; CHECK-NEXT:    vmflt.vv v8, v16, v12, v0.t1013; CHECK-NEXT:    vmflt.vv v9, v12, v16, v0.t1014; CHECK-NEXT:    vmnor.mm v0, v9, v81015; CHECK-NEXT:    ret1016  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)1017  ret <vscale x 8 x i1> %v1018}1019 1020define <vscale x 8 x i1> @fcmp_ueq_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1021; CHECK-LABEL: fcmp_ueq_vf_nxv8bf16:1022; CHECK:       # %bb.0:1023; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01024; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1025; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81026; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1027; CHECK-NEXT:    vmflt.vf v8, v12, fa5, v0.t1028; CHECK-NEXT:    vmfgt.vf v9, v12, fa5, v0.t1029; CHECK-NEXT:    vmnor.mm v0, v9, v81030; CHECK-NEXT:    ret1031  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01032  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1033  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)1034  ret <vscale x 8 x i1> %v1035}1036 1037define <vscale x 8 x i1> @fcmp_ueq_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1038; CHECK-LABEL: fcmp_ueq_vf_swap_nxv8bf16:1039; CHECK:       # %bb.0:1040; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01041; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1042; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81043; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1044; CHECK-NEXT:    vmfgt.vf v8, v12, fa5, v0.t1045; CHECK-NEXT:    vmflt.vf v9, v12, fa5, v0.t1046; CHECK-NEXT:    vmnor.mm v0, v9, v81047; CHECK-NEXT:    ret1048  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01049  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1050  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)1051  ret <vscale x 8 x i1> %v1052}1053 1054define <vscale x 8 x i1> @fcmp_ugt_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1055; CHECK-LABEL: fcmp_ugt_vv_nxv8bf16:1056; CHECK:       # %bb.0:1057; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1058; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v101059; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v81060; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1061; CHECK-NEXT:    vmfle.vv v8, v16, v12, v0.t1062; CHECK-NEXT:    vmnot.m v0, v81063; CHECK-NEXT:    ret1064  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)1065  ret <vscale x 8 x i1> %v1066}1067 1068define <vscale x 8 x i1> @fcmp_ugt_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1069; CHECK-LABEL: fcmp_ugt_vf_nxv8bf16:1070; CHECK:       # %bb.0:1071; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01072; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1073; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81074; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1075; CHECK-NEXT:    vmfle.vf v8, v12, fa5, v0.t1076; CHECK-NEXT:    vmnot.m v0, v81077; CHECK-NEXT:    ret1078  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01079  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1080  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)1081  ret <vscale x 8 x i1> %v1082}1083 1084define <vscale x 8 x i1> @fcmp_ugt_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1085; CHECK-LABEL: fcmp_ugt_vf_swap_nxv8bf16:1086; CHECK:       # %bb.0:1087; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01088; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1089; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81090; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1091; CHECK-NEXT:    vmfge.vf v8, v12, fa5, v0.t1092; CHECK-NEXT:    vmnot.m v0, v81093; CHECK-NEXT:    ret1094  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01095  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1096  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)1097  ret <vscale x 8 x i1> %v1098}1099 1100define <vscale x 8 x i1> @fcmp_uge_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1101; CHECK-LABEL: fcmp_uge_vv_nxv8bf16:1102; CHECK:       # %bb.0:1103; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1104; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v101105; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v81106; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1107; CHECK-NEXT:    vmflt.vv v8, v16, v12, v0.t1108; CHECK-NEXT:    vmnot.m v0, v81109; CHECK-NEXT:    ret1110  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)1111  ret <vscale x 8 x i1> %v1112}1113 1114define <vscale x 8 x i1> @fcmp_uge_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1115; CHECK-LABEL: fcmp_uge_vf_nxv8bf16:1116; CHECK:       # %bb.0:1117; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01118; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1119; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81120; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1121; CHECK-NEXT:    vmflt.vf v8, v12, fa5, v0.t1122; CHECK-NEXT:    vmnot.m v0, v81123; CHECK-NEXT:    ret1124  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01125  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1126  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)1127  ret <vscale x 8 x i1> %v1128}1129 1130define <vscale x 8 x i1> @fcmp_uge_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1131; CHECK-LABEL: fcmp_uge_vf_swap_nxv8bf16:1132; CHECK:       # %bb.0:1133; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01134; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1135; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81136; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1137; CHECK-NEXT:    vmfgt.vf v8, v12, fa5, v0.t1138; CHECK-NEXT:    vmnot.m v0, v81139; CHECK-NEXT:    ret1140  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01141  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1142  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)1143  ret <vscale x 8 x i1> %v1144}1145 1146define <vscale x 8 x i1> @fcmp_ult_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1147; CHECK-LABEL: fcmp_ult_vv_nxv8bf16:1148; CHECK:       # %bb.0:1149; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1150; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81151; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v101152; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1153; CHECK-NEXT:    vmfle.vv v8, v16, v12, v0.t1154; CHECK-NEXT:    vmnot.m v0, v81155; CHECK-NEXT:    ret1156  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)1157  ret <vscale x 8 x i1> %v1158}1159 1160define <vscale x 8 x i1> @fcmp_ult_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1161; CHECK-LABEL: fcmp_ult_vf_nxv8bf16:1162; CHECK:       # %bb.0:1163; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01164; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1165; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81166; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1167; CHECK-NEXT:    vmfge.vf v8, v12, fa5, v0.t1168; CHECK-NEXT:    vmnot.m v0, v81169; CHECK-NEXT:    ret1170  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01171  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1172  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)1173  ret <vscale x 8 x i1> %v1174}1175 1176define <vscale x 8 x i1> @fcmp_ult_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1177; CHECK-LABEL: fcmp_ult_vf_swap_nxv8bf16:1178; CHECK:       # %bb.0:1179; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01180; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1181; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81182; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1183; CHECK-NEXT:    vmfle.vf v8, v12, fa5, v0.t1184; CHECK-NEXT:    vmnot.m v0, v81185; CHECK-NEXT:    ret1186  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01187  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1188  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)1189  ret <vscale x 8 x i1> %v1190}1191 1192define <vscale x 8 x i1> @fcmp_ule_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1193; CHECK-LABEL: fcmp_ule_vv_nxv8bf16:1194; CHECK:       # %bb.0:1195; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1196; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81197; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v101198; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1199; CHECK-NEXT:    vmflt.vv v8, v16, v12, v0.t1200; CHECK-NEXT:    vmnot.m v0, v81201; CHECK-NEXT:    ret1202  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)1203  ret <vscale x 8 x i1> %v1204}1205 1206define <vscale x 8 x i1> @fcmp_ule_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1207; CHECK-LABEL: fcmp_ule_vf_nxv8bf16:1208; CHECK:       # %bb.0:1209; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01210; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1211; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81212; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1213; CHECK-NEXT:    vmfgt.vf v8, v12, fa5, v0.t1214; CHECK-NEXT:    vmnot.m v0, v81215; CHECK-NEXT:    ret1216  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01217  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1218  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)1219  ret <vscale x 8 x i1> %v1220}1221 1222define <vscale x 8 x i1> @fcmp_ule_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1223; CHECK-LABEL: fcmp_ule_vf_swap_nxv8bf16:1224; CHECK:       # %bb.0:1225; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01226; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1227; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81228; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1229; CHECK-NEXT:    vmflt.vf v8, v12, fa5, v0.t1230; CHECK-NEXT:    vmnot.m v0, v81231; CHECK-NEXT:    ret1232  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01233  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1234  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)1235  ret <vscale x 8 x i1> %v1236}1237 1238define <vscale x 8 x i1> @fcmp_une_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1239; CHECK-LABEL: fcmp_une_vv_nxv8bf16:1240; CHECK:       # %bb.0:1241; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1242; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v101243; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v81244; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1245; CHECK-NEXT:    vmfne.vv v8, v16, v12, v0.t1246; CHECK-NEXT:    vmv1r.v v0, v81247; CHECK-NEXT:    ret1248  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)1249  ret <vscale x 8 x i1> %v1250}1251 1252define <vscale x 8 x i1> @fcmp_une_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1253; CHECK-LABEL: fcmp_une_vf_nxv8bf16:1254; CHECK:       # %bb.0:1255; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01256; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1257; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81258; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1259; CHECK-NEXT:    vmfne.vf v8, v12, fa5, v0.t1260; CHECK-NEXT:    vmv1r.v v0, v81261; CHECK-NEXT:    ret1262  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01263  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1264  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)1265  ret <vscale x 8 x i1> %v1266}1267 1268define <vscale x 8 x i1> @fcmp_une_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1269; CHECK-LABEL: fcmp_une_vf_swap_nxv8bf16:1270; CHECK:       # %bb.0:1271; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01272; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1273; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81274; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1275; CHECK-NEXT:    vmfne.vf v8, v12, fa5, v0.t1276; CHECK-NEXT:    vmv1r.v v0, v81277; CHECK-NEXT:    ret1278  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01279  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1280  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)1281  ret <vscale x 8 x i1> %v1282}1283 1284define <vscale x 8 x i1> @fcmp_uno_vv_nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {1285; CHECK-LABEL: fcmp_uno_vv_nxv8bf16:1286; CHECK:       # %bb.0:1287; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1288; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v101289; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1290; CHECK-NEXT:    vmfne.vv v10, v12, v12, v0.t1291; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma1292; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81293; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1294; CHECK-NEXT:    vmfne.vv v8, v12, v12, v0.t1295; CHECK-NEXT:    vmor.mm v0, v8, v101296; CHECK-NEXT:    ret1297  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)1298  ret <vscale x 8 x i1> %v1299}1300 1301define <vscale x 8 x i1> @fcmp_uno_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1302; CHECK-LABEL: fcmp_uno_vf_nxv8bf16:1303; CHECK:       # %bb.0:1304; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01305; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1306; CHECK-NEXT:    vfmv.v.f v12, fa51307; CHECK-NEXT:    vmfne.vf v10, v12, fa5, v0.t1308; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma1309; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81310; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1311; CHECK-NEXT:    vmfne.vv v8, v12, v12, v0.t1312; CHECK-NEXT:    vmor.mm v0, v8, v101313; CHECK-NEXT:    ret1314  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01315  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1316  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %va, <vscale x 8 x bfloat> %vb, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)1317  ret <vscale x 8 x i1> %v1318}1319 1320define <vscale x 8 x i1> @fcmp_uno_vf_swap_nxv8bf16(<vscale x 8 x bfloat> %va, bfloat %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1321; CHECK-LABEL: fcmp_uno_vf_swap_nxv8bf16:1322; CHECK:       # %bb.0:1323; CHECK-NEXT:    fcvt.s.bf16 fa5, fa01324; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1325; CHECK-NEXT:    vfmv.v.f v12, fa51326; CHECK-NEXT:    vmfne.vf v10, v12, fa5, v0.t1327; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma1328; CHECK-NEXT:    vfwcvtbf16.f.f.v v12, v81329; CHECK-NEXT:    vsetvli zero, zero, e32, m4, ta, ma1330; CHECK-NEXT:    vmfne.vv v8, v12, v12, v0.t1331; CHECK-NEXT:    vmor.mm v0, v10, v81332; CHECK-NEXT:    ret1333  %elt.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 01334  %vb = shufflevector <vscale x 8 x bfloat> %elt.head, <vscale x 8 x bfloat> poison, <vscale x 8 x i32> zeroinitializer1335  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8bf16(<vscale x 8 x bfloat> %vb, <vscale x 8 x bfloat> %va, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)1336  ret <vscale x 8 x i1> %v1337}1338 1339define <vscale x 64 x i1> @fcmp_oeq_vv_nxv64bf16(<vscale x 64 x bfloat> %va, <vscale x 64 x bfloat> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {1340; CHECK-LABEL: fcmp_oeq_vv_nxv64bf16:1341; CHECK:       # %bb.0:1342; CHECK-NEXT:    addi sp, sp, -161343; CHECK-NEXT:    .cfi_def_cfa_offset 161344; CHECK-NEXT:    csrr a1, vlenb1345; CHECK-NEXT:    mv a3, a11346; CHECK-NEXT:    slli a1, a1, 11347; CHECK-NEXT:    add a3, a3, a11348; CHECK-NEXT:    slli a1, a1, 21349; CHECK-NEXT:    add a3, a3, a11350; CHECK-NEXT:    slli a1, a1, 11351; CHECK-NEXT:    add a1, a1, a31352; CHECK-NEXT:    sub sp, sp, a11353; CHECK-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x1b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 27 * vlenb1354; CHECK-NEXT:    csrr a1, vlenb1355; CHECK-NEXT:    slli a1, a1, 11356; CHECK-NEXT:    mv a3, a11357; CHECK-NEXT:    slli a1, a1, 21358; CHECK-NEXT:    add a3, a3, a11359; CHECK-NEXT:    slli a1, a1, 11360; CHECK-NEXT:    add a1, a1, a31361; CHECK-NEXT:    add a1, sp, a11362; CHECK-NEXT:    addi a1, a1, 161363; CHECK-NEXT:    vs1r.v v0, (a1) # vscale x 8-byte Folded Spill1364; CHECK-NEXT:    vsetvli a1, zero, e8, m1, ta, ma1365; CHECK-NEXT:    vmv8r.v v0, v161366; CHECK-NEXT:    csrr a1, vlenb1367; CHECK-NEXT:    slli a1, a1, 11368; CHECK-NEXT:    mv a3, a11369; CHECK-NEXT:    slli a1, a1, 31370; CHECK-NEXT:    add a1, a1, a31371; CHECK-NEXT:    add a1, sp, a11372; CHECK-NEXT:    addi a1, a1, 161373; CHECK-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill1374; CHECK-NEXT:    csrr a3, vlenb1375; CHECK-NEXT:    slli a1, a3, 31376; CHECK-NEXT:    slli a5, a3, 21377; CHECK-NEXT:    slli a4, a3, 11378; CHECK-NEXT:    add a1, a0, a11379; CHECK-NEXT:    sub a6, a2, a51380; CHECK-NEXT:    vl8re16.v v24, (a1)1381; CHECK-NEXT:    sltu a1, a2, a61382; CHECK-NEXT:    addi a1, a1, -11383; CHECK-NEXT:    and a6, a1, a61384; CHECK-NEXT:    sub a1, a6, a41385; CHECK-NEXT:    sltu a7, a6, a11386; CHECK-NEXT:    addi a7, a7, -11387; CHECK-NEXT:    and a7, a7, a11388; CHECK-NEXT:    srli a1, a3, 11389; CHECK-NEXT:    srli a3, a3, 21390; CHECK-NEXT:    csrr t0, vlenb1391; CHECK-NEXT:    slli t0, t0, 11392; CHECK-NEXT:    mv t1, t01393; CHECK-NEXT:    slli t0, t0, 21394; CHECK-NEXT:    add t1, t1, t01395; CHECK-NEXT:    slli t0, t0, 11396; CHECK-NEXT:    add t0, t0, t11397; CHECK-NEXT:    add t0, sp, t01398; CHECK-NEXT:    addi t0, t0, 161399; CHECK-NEXT:    vl1r.v v8, (t0) # vscale x 8-byte Folded Reload1400; CHECK-NEXT:    vslidedown.vx v16, v8, a11401; CHECK-NEXT:    vl8re16.v v8, (a0)1402; CHECK-NEXT:    csrr a0, vlenb1403; CHECK-NEXT:    slli a0, a0, 11404; CHECK-NEXT:    mv t0, a01405; CHECK-NEXT:    slli a0, a0, 21406; CHECK-NEXT:    add a0, a0, t01407; CHECK-NEXT:    add a0, sp, a01408; CHECK-NEXT:    addi a0, a0, 161409; CHECK-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill1410; CHECK-NEXT:    csrr a0, vlenb1411; CHECK-NEXT:    add a0, sp, a01412; CHECK-NEXT:    addi a0, a0, 161413; CHECK-NEXT:    vs1r.v v16, (a0) # vscale x 8-byte Folded Spill1414; CHECK-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma1415; CHECK-NEXT:    vslidedown.vx v8, v16, a31416; CHECK-NEXT:    addi a0, sp, 161417; CHECK-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill1418; CHECK-NEXT:    vsetvli zero, a7, e16, m4, ta, ma1419; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v281420; CHECK-NEXT:    csrr a0, vlenb1421; CHECK-NEXT:    slli a0, a0, 11422; CHECK-NEXT:    add a0, sp, a01423; CHECK-NEXT:    addi a0, a0, 161424; CHECK-NEXT:    vs8r.v v0, (a0) # vscale x 64-byte Folded Spill1425; CHECK-NEXT:    vfwcvtbf16.f.f.v v8, v41426; CHECK-NEXT:    bltu a6, a4, .LBB85_21427; CHECK-NEXT:  # %bb.1:1428; CHECK-NEXT:    mv a6, a41429; CHECK-NEXT:  .LBB85_2:1430; CHECK-NEXT:    addi a0, sp, 161431; CHECK-NEXT:    vl1r.v v0, (a0) # vscale x 8-byte Folded Reload1432; CHECK-NEXT:    vsetvli zero, zero, e32, m8, ta, ma1433; CHECK-NEXT:    vmfeq.vv v5, v8, v16, v0.t1434; CHECK-NEXT:    vsetvli zero, a6, e16, m4, ta, ma1435; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v241436; CHECK-NEXT:    csrr a0, vlenb1437; CHECK-NEXT:    slli a0, a0, 11438; CHECK-NEXT:    add a0, sp, a01439; CHECK-NEXT:    addi a0, a0, 161440; CHECK-NEXT:    vl8r.v v8, (a0) # vscale x 64-byte Folded Reload1441; CHECK-NEXT:    vfwcvtbf16.f.f.v v24, v81442; CHECK-NEXT:    csrr a0, vlenb1443; CHECK-NEXT:    add a0, sp, a01444; CHECK-NEXT:    addi a0, a0, 161445; CHECK-NEXT:    vl1r.v v0, (a0) # vscale x 8-byte Folded Reload1446; CHECK-NEXT:    vsetvli zero, zero, e32, m8, ta, ma1447; CHECK-NEXT:    vmfeq.vv v7, v24, v16, v0.t1448; CHECK-NEXT:    bltu a2, a5, .LBB85_41449; CHECK-NEXT:  # %bb.3:1450; CHECK-NEXT:    mv a2, a51451; CHECK-NEXT:  .LBB85_4:1452; CHECK-NEXT:    sub a0, a2, a41453; CHECK-NEXT:    csrr a5, vlenb1454; CHECK-NEXT:    slli a5, a5, 11455; CHECK-NEXT:    mv a6, a51456; CHECK-NEXT:    slli a5, a5, 21457; CHECK-NEXT:    add a6, a6, a51458; CHECK-NEXT:    slli a5, a5, 11459; CHECK-NEXT:    add a5, a5, a61460; CHECK-NEXT:    add a5, sp, a51461; CHECK-NEXT:    addi a5, a5, 161462; CHECK-NEXT:    vl1r.v v8, (a5) # vscale x 8-byte Folded Reload1463; CHECK-NEXT:    vsetvli a5, zero, e8, mf2, ta, ma1464; CHECK-NEXT:    vslidedown.vx v0, v8, a31465; CHECK-NEXT:    sltu a5, a2, a01466; CHECK-NEXT:    addi a5, a5, -11467; CHECK-NEXT:    and a0, a5, a01468; CHECK-NEXT:    csrr a5, vlenb1469; CHECK-NEXT:    slli a5, a5, 11470; CHECK-NEXT:    mv a6, a51471; CHECK-NEXT:    slli a5, a5, 31472; CHECK-NEXT:    add a5, a5, a61473; CHECK-NEXT:    add a5, sp, a51474; CHECK-NEXT:    addi a5, a5, 161475; CHECK-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload1476; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1477; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v281478; CHECK-NEXT:    csrr a0, vlenb1479; CHECK-NEXT:    slli a0, a0, 11480; CHECK-NEXT:    mv a5, a01481; CHECK-NEXT:    slli a0, a0, 21482; CHECK-NEXT:    add a0, a0, a51483; CHECK-NEXT:    add a0, sp, a01484; CHECK-NEXT:    addi a0, a0, 161485; CHECK-NEXT:    vl8r.v v8, (a0) # vscale x 64-byte Folded Reload1486; CHECK-NEXT:    vfwcvtbf16.f.f.v v24, v121487; CHECK-NEXT:    vsetvli zero, zero, e32, m8, ta, ma1488; CHECK-NEXT:    vmfeq.vv v10, v16, v24, v0.t1489; CHECK-NEXT:    vmv1r.v v9, v71490; CHECK-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma1491; CHECK-NEXT:    vslideup.vx v9, v5, a31492; CHECK-NEXT:    bltu a2, a4, .LBB85_61493; CHECK-NEXT:  # %bb.5:1494; CHECK-NEXT:    mv a2, a41495; CHECK-NEXT:  .LBB85_6:1496; CHECK-NEXT:    csrr a0, vlenb1497; CHECK-NEXT:    slli a0, a0, 11498; CHECK-NEXT:    mv a4, a01499; CHECK-NEXT:    slli a0, a0, 31500; CHECK-NEXT:    add a0, a0, a41501; CHECK-NEXT:    add a0, sp, a01502; CHECK-NEXT:    addi a0, a0, 161503; CHECK-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload1504; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma1505; CHECK-NEXT:    vfwcvtbf16.f.f.v v16, v241506; CHECK-NEXT:    csrr a0, vlenb1507; CHECK-NEXT:    slli a0, a0, 11508; CHECK-NEXT:    mv a2, a01509; CHECK-NEXT:    slli a0, a0, 21510; CHECK-NEXT:    add a0, a0, a21511; CHECK-NEXT:    add a0, sp, a01512; CHECK-NEXT:    addi a0, a0, 161513; CHECK-NEXT:    vl8r.v v0, (a0) # vscale x 64-byte Folded Reload1514; CHECK-NEXT:    vfwcvtbf16.f.f.v v24, v01515; CHECK-NEXT:    csrr a0, vlenb1516; CHECK-NEXT:    slli a0, a0, 11517; CHECK-NEXT:    mv a2, a01518; CHECK-NEXT:    slli a0, a0, 21519; CHECK-NEXT:    add a2, a2, a01520; CHECK-NEXT:    slli a0, a0, 11521; CHECK-NEXT:    add a0, a0, a21522; CHECK-NEXT:    add a0, sp, a01523; CHECK-NEXT:    addi a0, a0, 161524; CHECK-NEXT:    vl1r.v v0, (a0) # vscale x 8-byte Folded Reload1525; CHECK-NEXT:    vsetvli zero, zero, e32, m8, ta, ma1526; CHECK-NEXT:    vmfeq.vv v8, v16, v24, v0.t1527; CHECK-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma1528; CHECK-NEXT:    vslideup.vx v8, v10, a31529; CHECK-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1530; CHECK-NEXT:    vslideup.vx v8, v9, a11531; CHECK-NEXT:    vmv.v.v v0, v81532; CHECK-NEXT:    csrr a0, vlenb1533; CHECK-NEXT:    mv a1, a01534; CHECK-NEXT:    slli a0, a0, 11535; CHECK-NEXT:    add a1, a1, a01536; CHECK-NEXT:    slli a0, a0, 21537; CHECK-NEXT:    add a1, a1, a01538; CHECK-NEXT:    slli a0, a0, 11539; CHECK-NEXT:    add a0, a0, a11540; CHECK-NEXT:    add sp, sp, a01541; CHECK-NEXT:    .cfi_def_cfa sp, 161542; CHECK-NEXT:    addi sp, sp, 161543; CHECK-NEXT:    .cfi_def_cfa_offset 01544; CHECK-NEXT:    ret1545  %v = call <vscale x 64 x i1> @llvm.vp.fcmp.nxv64bf16(<vscale x 64 x bfloat> %va, <vscale x 64 x bfloat> %vb, metadata !"oeq", <vscale x 64 x i1> %m, i32 %evl)1546  ret <vscale x 64 x i1> %v1547}1548 1549define <vscale x 1 x i1> @fcmp_oeq_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1550; ZVFH-LABEL: fcmp_oeq_vv_nxv1f16:1551; ZVFH:       # %bb.0:1552; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1553; ZVFH-NEXT:    vmfeq.vv v0, v8, v9, v0.t1554; ZVFH-NEXT:    ret1555;1556; ZVFHMIN-LABEL: fcmp_oeq_vv_nxv1f16:1557; ZVFHMIN:       # %bb.0:1558; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1559; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v91560; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81561; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1562; ZVFHMIN-NEXT:    vmfeq.vv v0, v9, v10, v0.t1563; ZVFHMIN-NEXT:    ret1564  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)1565  ret <vscale x 1 x i1> %v1566}1567 1568define <vscale x 1 x i1> @fcmp_oeq_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1569; ZVFH-LABEL: fcmp_oeq_vf_nxv1f16:1570; ZVFH:       # %bb.0:1571; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1572; ZVFH-NEXT:    vmfeq.vf v0, v8, fa0, v0.t1573; ZVFH-NEXT:    ret1574;1575; ZVFHMIN-LABEL: fcmp_oeq_vf_nxv1f16:1576; ZVFHMIN:       # %bb.0:1577; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01578; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1579; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81580; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1581; ZVFHMIN-NEXT:    vmfeq.vf v0, v9, fa5, v0.t1582; ZVFHMIN-NEXT:    ret1583  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01584  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1585  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)1586  ret <vscale x 1 x i1> %v1587}1588 1589define <vscale x 1 x i1> @fcmp_oeq_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1590; ZVFH-LABEL: fcmp_oeq_vf_swap_nxv1f16:1591; ZVFH:       # %bb.0:1592; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1593; ZVFH-NEXT:    vmfeq.vf v0, v8, fa0, v0.t1594; ZVFH-NEXT:    ret1595;1596; ZVFHMIN-LABEL: fcmp_oeq_vf_swap_nxv1f16:1597; ZVFHMIN:       # %bb.0:1598; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01599; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1600; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81601; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1602; ZVFHMIN-NEXT:    vmfeq.vf v0, v9, fa5, v0.t1603; ZVFHMIN-NEXT:    ret1604  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01605  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1606  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)1607  ret <vscale x 1 x i1> %v1608}1609 1610define <vscale x 1 x i1> @fcmp_ogt_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1611; ZVFH-LABEL: fcmp_ogt_vv_nxv1f16:1612; ZVFH:       # %bb.0:1613; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1614; ZVFH-NEXT:    vmflt.vv v0, v9, v8, v0.t1615; ZVFH-NEXT:    ret1616;1617; ZVFHMIN-LABEL: fcmp_ogt_vv_nxv1f16:1618; ZVFHMIN:       # %bb.0:1619; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1620; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v81621; ZVFHMIN-NEXT:    vfwcvt.f.f.v v8, v91622; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1623; ZVFHMIN-NEXT:    vmflt.vv v0, v8, v10, v0.t1624; ZVFHMIN-NEXT:    ret1625  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)1626  ret <vscale x 1 x i1> %v1627}1628 1629define <vscale x 1 x i1> @fcmp_ogt_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1630; ZVFH-LABEL: fcmp_ogt_vf_nxv1f16:1631; ZVFH:       # %bb.0:1632; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1633; ZVFH-NEXT:    vmfgt.vf v0, v8, fa0, v0.t1634; ZVFH-NEXT:    ret1635;1636; ZVFHMIN-LABEL: fcmp_ogt_vf_nxv1f16:1637; ZVFHMIN:       # %bb.0:1638; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01639; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1640; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81641; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1642; ZVFHMIN-NEXT:    vmfgt.vf v0, v9, fa5, v0.t1643; ZVFHMIN-NEXT:    ret1644  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01645  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1646  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)1647  ret <vscale x 1 x i1> %v1648}1649 1650define <vscale x 1 x i1> @fcmp_ogt_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1651; ZVFH-LABEL: fcmp_ogt_vf_swap_nxv1f16:1652; ZVFH:       # %bb.0:1653; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1654; ZVFH-NEXT:    vmflt.vf v0, v8, fa0, v0.t1655; ZVFH-NEXT:    ret1656;1657; ZVFHMIN-LABEL: fcmp_ogt_vf_swap_nxv1f16:1658; ZVFHMIN:       # %bb.0:1659; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01660; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1661; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81662; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1663; ZVFHMIN-NEXT:    vmflt.vf v0, v9, fa5, v0.t1664; ZVFHMIN-NEXT:    ret1665  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01666  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1667  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)1668  ret <vscale x 1 x i1> %v1669}1670 1671define <vscale x 1 x i1> @fcmp_oge_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1672; ZVFH-LABEL: fcmp_oge_vv_nxv1f16:1673; ZVFH:       # %bb.0:1674; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1675; ZVFH-NEXT:    vmfle.vv v0, v9, v8, v0.t1676; ZVFH-NEXT:    ret1677;1678; ZVFHMIN-LABEL: fcmp_oge_vv_nxv1f16:1679; ZVFHMIN:       # %bb.0:1680; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1681; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v81682; ZVFHMIN-NEXT:    vfwcvt.f.f.v v8, v91683; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1684; ZVFHMIN-NEXT:    vmfle.vv v0, v8, v10, v0.t1685; ZVFHMIN-NEXT:    ret1686  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)1687  ret <vscale x 1 x i1> %v1688}1689 1690define <vscale x 1 x i1> @fcmp_oge_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1691; ZVFH-LABEL: fcmp_oge_vf_nxv1f16:1692; ZVFH:       # %bb.0:1693; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1694; ZVFH-NEXT:    vmfge.vf v0, v8, fa0, v0.t1695; ZVFH-NEXT:    ret1696;1697; ZVFHMIN-LABEL: fcmp_oge_vf_nxv1f16:1698; ZVFHMIN:       # %bb.0:1699; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01700; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1701; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81702; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1703; ZVFHMIN-NEXT:    vmfge.vf v0, v9, fa5, v0.t1704; ZVFHMIN-NEXT:    ret1705  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01706  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1707  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)1708  ret <vscale x 1 x i1> %v1709}1710 1711define <vscale x 1 x i1> @fcmp_oge_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1712; ZVFH-LABEL: fcmp_oge_vf_swap_nxv1f16:1713; ZVFH:       # %bb.0:1714; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1715; ZVFH-NEXT:    vmfle.vf v0, v8, fa0, v0.t1716; ZVFH-NEXT:    ret1717;1718; ZVFHMIN-LABEL: fcmp_oge_vf_swap_nxv1f16:1719; ZVFHMIN:       # %bb.0:1720; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01721; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1722; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81723; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1724; ZVFHMIN-NEXT:    vmfle.vf v0, v9, fa5, v0.t1725; ZVFHMIN-NEXT:    ret1726  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01727  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1728  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)1729  ret <vscale x 1 x i1> %v1730}1731 1732define <vscale x 1 x i1> @fcmp_olt_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1733; ZVFH-LABEL: fcmp_olt_vv_nxv1f16:1734; ZVFH:       # %bb.0:1735; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1736; ZVFH-NEXT:    vmflt.vv v0, v8, v9, v0.t1737; ZVFH-NEXT:    ret1738;1739; ZVFHMIN-LABEL: fcmp_olt_vv_nxv1f16:1740; ZVFHMIN:       # %bb.0:1741; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1742; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v91743; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81744; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1745; ZVFHMIN-NEXT:    vmflt.vv v0, v9, v10, v0.t1746; ZVFHMIN-NEXT:    ret1747  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)1748  ret <vscale x 1 x i1> %v1749}1750 1751define <vscale x 1 x i1> @fcmp_olt_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1752; ZVFH-LABEL: fcmp_olt_vf_nxv1f16:1753; ZVFH:       # %bb.0:1754; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1755; ZVFH-NEXT:    vmflt.vf v0, v8, fa0, v0.t1756; ZVFH-NEXT:    ret1757;1758; ZVFHMIN-LABEL: fcmp_olt_vf_nxv1f16:1759; ZVFHMIN:       # %bb.0:1760; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01761; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1762; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81763; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1764; ZVFHMIN-NEXT:    vmflt.vf v0, v9, fa5, v0.t1765; ZVFHMIN-NEXT:    ret1766  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01767  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1768  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)1769  ret <vscale x 1 x i1> %v1770}1771 1772define <vscale x 1 x i1> @fcmp_olt_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1773; ZVFH-LABEL: fcmp_olt_vf_swap_nxv1f16:1774; ZVFH:       # %bb.0:1775; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1776; ZVFH-NEXT:    vmfgt.vf v0, v8, fa0, v0.t1777; ZVFH-NEXT:    ret1778;1779; ZVFHMIN-LABEL: fcmp_olt_vf_swap_nxv1f16:1780; ZVFHMIN:       # %bb.0:1781; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01782; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1783; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81784; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1785; ZVFHMIN-NEXT:    vmfgt.vf v0, v9, fa5, v0.t1786; ZVFHMIN-NEXT:    ret1787  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01788  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1789  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)1790  ret <vscale x 1 x i1> %v1791}1792 1793define <vscale x 1 x i1> @fcmp_ole_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1794; ZVFH-LABEL: fcmp_ole_vv_nxv1f16:1795; ZVFH:       # %bb.0:1796; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1797; ZVFH-NEXT:    vmfle.vv v0, v8, v9, v0.t1798; ZVFH-NEXT:    ret1799;1800; ZVFHMIN-LABEL: fcmp_ole_vv_nxv1f16:1801; ZVFHMIN:       # %bb.0:1802; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1803; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v91804; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81805; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1806; ZVFHMIN-NEXT:    vmfle.vv v0, v9, v10, v0.t1807; ZVFHMIN-NEXT:    ret1808  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)1809  ret <vscale x 1 x i1> %v1810}1811 1812define <vscale x 1 x i1> @fcmp_ole_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1813; ZVFH-LABEL: fcmp_ole_vf_nxv1f16:1814; ZVFH:       # %bb.0:1815; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1816; ZVFH-NEXT:    vmfle.vf v0, v8, fa0, v0.t1817; ZVFH-NEXT:    ret1818;1819; ZVFHMIN-LABEL: fcmp_ole_vf_nxv1f16:1820; ZVFHMIN:       # %bb.0:1821; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01822; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1823; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81824; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1825; ZVFHMIN-NEXT:    vmfle.vf v0, v9, fa5, v0.t1826; ZVFHMIN-NEXT:    ret1827  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01828  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1829  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)1830  ret <vscale x 1 x i1> %v1831}1832 1833define <vscale x 1 x i1> @fcmp_ole_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1834; ZVFH-LABEL: fcmp_ole_vf_swap_nxv1f16:1835; ZVFH:       # %bb.0:1836; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1837; ZVFH-NEXT:    vmfge.vf v0, v8, fa0, v0.t1838; ZVFH-NEXT:    ret1839;1840; ZVFHMIN-LABEL: fcmp_ole_vf_swap_nxv1f16:1841; ZVFHMIN:       # %bb.0:1842; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01843; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1844; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81845; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1846; ZVFHMIN-NEXT:    vmfge.vf v0, v9, fa5, v0.t1847; ZVFHMIN-NEXT:    ret1848  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01849  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1850  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)1851  ret <vscale x 1 x i1> %v1852}1853 1854define <vscale x 1 x i1> @fcmp_one_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1855; ZVFH-LABEL: fcmp_one_vv_nxv1f16:1856; ZVFH:       # %bb.0:1857; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1858; ZVFH-NEXT:    vmflt.vv v10, v8, v9, v0.t1859; ZVFH-NEXT:    vmflt.vv v8, v9, v8, v0.t1860; ZVFH-NEXT:    vmor.mm v0, v8, v101861; ZVFH-NEXT:    ret1862;1863; ZVFHMIN-LABEL: fcmp_one_vv_nxv1f16:1864; ZVFHMIN:       # %bb.0:1865; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1866; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v91867; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81868; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1869; ZVFHMIN-NEXT:    vmflt.vv v8, v9, v10, v0.t1870; ZVFHMIN-NEXT:    vmflt.vv v9, v10, v9, v0.t1871; ZVFHMIN-NEXT:    vmor.mm v0, v9, v81872; ZVFHMIN-NEXT:    ret1873  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)1874  ret <vscale x 1 x i1> %v1875}1876 1877define <vscale x 1 x i1> @fcmp_one_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1878; ZVFH-LABEL: fcmp_one_vf_nxv1f16:1879; ZVFH:       # %bb.0:1880; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1881; ZVFH-NEXT:    vmflt.vf v9, v8, fa0, v0.t1882; ZVFH-NEXT:    vmfgt.vf v8, v8, fa0, v0.t1883; ZVFH-NEXT:    vmor.mm v0, v8, v91884; ZVFH-NEXT:    ret1885;1886; ZVFHMIN-LABEL: fcmp_one_vf_nxv1f16:1887; ZVFHMIN:       # %bb.0:1888; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01889; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1890; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81891; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1892; ZVFHMIN-NEXT:    vmflt.vf v8, v9, fa5, v0.t1893; ZVFHMIN-NEXT:    vmfgt.vf v9, v9, fa5, v0.t1894; ZVFHMIN-NEXT:    vmor.mm v0, v9, v81895; ZVFHMIN-NEXT:    ret1896  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01897  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1898  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)1899  ret <vscale x 1 x i1> %v1900}1901 1902define <vscale x 1 x i1> @fcmp_one_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1903; ZVFH-LABEL: fcmp_one_vf_swap_nxv1f16:1904; ZVFH:       # %bb.0:1905; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1906; ZVFH-NEXT:    vmfgt.vf v9, v8, fa0, v0.t1907; ZVFH-NEXT:    vmflt.vf v8, v8, fa0, v0.t1908; ZVFH-NEXT:    vmor.mm v0, v8, v91909; ZVFH-NEXT:    ret1910;1911; ZVFHMIN-LABEL: fcmp_one_vf_swap_nxv1f16:1912; ZVFHMIN:       # %bb.0:1913; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01914; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1915; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81916; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1917; ZVFHMIN-NEXT:    vmfgt.vf v8, v9, fa5, v0.t1918; ZVFHMIN-NEXT:    vmflt.vf v9, v9, fa5, v0.t1919; ZVFHMIN-NEXT:    vmor.mm v0, v9, v81920; ZVFHMIN-NEXT:    ret1921  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01922  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1923  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)1924  ret <vscale x 1 x i1> %v1925}1926 1927define <vscale x 1 x i1> @fcmp_ord_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {1928; ZVFH-LABEL: fcmp_ord_vv_nxv1f16:1929; ZVFH:       # %bb.0:1930; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1931; ZVFH-NEXT:    vmfeq.vv v9, v9, v9, v0.t1932; ZVFH-NEXT:    vmfeq.vv v8, v8, v8, v0.t1933; ZVFH-NEXT:    vmand.mm v0, v8, v91934; ZVFH-NEXT:    ret1935;1936; ZVFHMIN-LABEL: fcmp_ord_vv_nxv1f16:1937; ZVFHMIN:       # %bb.0:1938; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1939; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v91940; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81941; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1942; ZVFHMIN-NEXT:    vmfeq.vv v8, v10, v10, v0.t1943; ZVFHMIN-NEXT:    vmfeq.vv v9, v9, v9, v0.t1944; ZVFHMIN-NEXT:    vmand.mm v0, v9, v81945; ZVFHMIN-NEXT:    ret1946  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)1947  ret <vscale x 1 x i1> %v1948}1949 1950define <vscale x 1 x i1> @fcmp_ord_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1951; ZVFH-LABEL: fcmp_ord_vf_nxv1f16:1952; ZVFH:       # %bb.0:1953; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1954; ZVFH-NEXT:    vfmv.v.f v9, fa01955; ZVFH-NEXT:    vmfeq.vf v9, v9, fa0, v0.t1956; ZVFH-NEXT:    vmfeq.vv v8, v8, v8, v0.t1957; ZVFH-NEXT:    vmand.mm v0, v8, v91958; ZVFH-NEXT:    ret1959;1960; ZVFHMIN-LABEL: fcmp_ord_vf_nxv1f16:1961; ZVFHMIN:       # %bb.0:1962; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01963; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1964; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81965; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1966; ZVFHMIN-NEXT:    vfmv.v.f v8, fa51967; ZVFHMIN-NEXT:    vmfeq.vf v8, v8, fa5, v0.t1968; ZVFHMIN-NEXT:    vmfeq.vv v9, v9, v9, v0.t1969; ZVFHMIN-NEXT:    vmand.mm v0, v9, v81970; ZVFHMIN-NEXT:    ret1971  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01972  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer1973  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)1974  ret <vscale x 1 x i1> %v1975}1976 1977define <vscale x 1 x i1> @fcmp_ord_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1978; ZVFH-LABEL: fcmp_ord_vf_swap_nxv1f16:1979; ZVFH:       # %bb.0:1980; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1981; ZVFH-NEXT:    vfmv.v.f v9, fa01982; ZVFH-NEXT:    vmfeq.vf v9, v9, fa0, v0.t1983; ZVFH-NEXT:    vmfeq.vv v8, v8, v8, v0.t1984; ZVFH-NEXT:    vmand.mm v0, v9, v81985; ZVFH-NEXT:    ret1986;1987; ZVFHMIN-LABEL: fcmp_ord_vf_swap_nxv1f16:1988; ZVFHMIN:       # %bb.0:1989; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa01990; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1991; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v81992; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma1993; ZVFHMIN-NEXT:    vfmv.v.f v8, fa51994; ZVFHMIN-NEXT:    vmfeq.vf v8, v8, fa5, v0.t1995; ZVFHMIN-NEXT:    vmfeq.vv v9, v9, v9, v0.t1996; ZVFHMIN-NEXT:    vmand.mm v0, v8, v91997; ZVFHMIN-NEXT:    ret1998  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 01999  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2000  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)2001  ret <vscale x 1 x i1> %v2002}2003 2004define <vscale x 1 x i1> @fcmp_ueq_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2005; ZVFH-LABEL: fcmp_ueq_vv_nxv1f16:2006; ZVFH:       # %bb.0:2007; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2008; ZVFH-NEXT:    vmflt.vv v10, v8, v9, v0.t2009; ZVFH-NEXT:    vmflt.vv v8, v9, v8, v0.t2010; ZVFH-NEXT:    vmnor.mm v0, v8, v102011; ZVFH-NEXT:    ret2012;2013; ZVFHMIN-LABEL: fcmp_ueq_vv_nxv1f16:2014; ZVFHMIN:       # %bb.0:2015; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2016; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v92017; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82018; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2019; ZVFHMIN-NEXT:    vmflt.vv v8, v9, v10, v0.t2020; ZVFHMIN-NEXT:    vmflt.vv v9, v10, v9, v0.t2021; ZVFHMIN-NEXT:    vmnor.mm v0, v9, v82022; ZVFHMIN-NEXT:    ret2023  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)2024  ret <vscale x 1 x i1> %v2025}2026 2027define <vscale x 1 x i1> @fcmp_ueq_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2028; ZVFH-LABEL: fcmp_ueq_vf_nxv1f16:2029; ZVFH:       # %bb.0:2030; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2031; ZVFH-NEXT:    vmflt.vf v9, v8, fa0, v0.t2032; ZVFH-NEXT:    vmfgt.vf v8, v8, fa0, v0.t2033; ZVFH-NEXT:    vmnor.mm v0, v8, v92034; ZVFH-NEXT:    ret2035;2036; ZVFHMIN-LABEL: fcmp_ueq_vf_nxv1f16:2037; ZVFHMIN:       # %bb.0:2038; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02039; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2040; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82041; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2042; ZVFHMIN-NEXT:    vmflt.vf v8, v9, fa5, v0.t2043; ZVFHMIN-NEXT:    vmfgt.vf v9, v9, fa5, v0.t2044; ZVFHMIN-NEXT:    vmnor.mm v0, v9, v82045; ZVFHMIN-NEXT:    ret2046  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02047  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2048  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)2049  ret <vscale x 1 x i1> %v2050}2051 2052define <vscale x 1 x i1> @fcmp_ueq_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2053; ZVFH-LABEL: fcmp_ueq_vf_swap_nxv1f16:2054; ZVFH:       # %bb.0:2055; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2056; ZVFH-NEXT:    vmfgt.vf v9, v8, fa0, v0.t2057; ZVFH-NEXT:    vmflt.vf v8, v8, fa0, v0.t2058; ZVFH-NEXT:    vmnor.mm v0, v8, v92059; ZVFH-NEXT:    ret2060;2061; ZVFHMIN-LABEL: fcmp_ueq_vf_swap_nxv1f16:2062; ZVFHMIN:       # %bb.0:2063; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02064; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2065; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82066; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2067; ZVFHMIN-NEXT:    vmfgt.vf v8, v9, fa5, v0.t2068; ZVFHMIN-NEXT:    vmflt.vf v9, v9, fa5, v0.t2069; ZVFHMIN-NEXT:    vmnor.mm v0, v9, v82070; ZVFHMIN-NEXT:    ret2071  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02072  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2073  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)2074  ret <vscale x 1 x i1> %v2075}2076 2077define <vscale x 1 x i1> @fcmp_ugt_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2078; ZVFH-LABEL: fcmp_ugt_vv_nxv1f16:2079; ZVFH:       # %bb.0:2080; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2081; ZVFH-NEXT:    vmfle.vv v8, v8, v9, v0.t2082; ZVFH-NEXT:    vmnot.m v0, v82083; ZVFH-NEXT:    ret2084;2085; ZVFHMIN-LABEL: fcmp_ugt_vv_nxv1f16:2086; ZVFHMIN:       # %bb.0:2087; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2088; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v92089; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82090; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2091; ZVFHMIN-NEXT:    vmfle.vv v8, v9, v10, v0.t2092; ZVFHMIN-NEXT:    vmnot.m v0, v82093; ZVFHMIN-NEXT:    ret2094  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)2095  ret <vscale x 1 x i1> %v2096}2097 2098define <vscale x 1 x i1> @fcmp_ugt_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2099; ZVFH-LABEL: fcmp_ugt_vf_nxv1f16:2100; ZVFH:       # %bb.0:2101; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2102; ZVFH-NEXT:    vmfle.vf v8, v8, fa0, v0.t2103; ZVFH-NEXT:    vmnot.m v0, v82104; ZVFH-NEXT:    ret2105;2106; ZVFHMIN-LABEL: fcmp_ugt_vf_nxv1f16:2107; ZVFHMIN:       # %bb.0:2108; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02109; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2110; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82111; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2112; ZVFHMIN-NEXT:    vmfle.vf v8, v9, fa5, v0.t2113; ZVFHMIN-NEXT:    vmnot.m v0, v82114; ZVFHMIN-NEXT:    ret2115  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02116  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2117  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)2118  ret <vscale x 1 x i1> %v2119}2120 2121define <vscale x 1 x i1> @fcmp_ugt_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2122; ZVFH-LABEL: fcmp_ugt_vf_swap_nxv1f16:2123; ZVFH:       # %bb.0:2124; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2125; ZVFH-NEXT:    vmfge.vf v8, v8, fa0, v0.t2126; ZVFH-NEXT:    vmnot.m v0, v82127; ZVFH-NEXT:    ret2128;2129; ZVFHMIN-LABEL: fcmp_ugt_vf_swap_nxv1f16:2130; ZVFHMIN:       # %bb.0:2131; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02132; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2133; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82134; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2135; ZVFHMIN-NEXT:    vmfge.vf v8, v9, fa5, v0.t2136; ZVFHMIN-NEXT:    vmnot.m v0, v82137; ZVFHMIN-NEXT:    ret2138  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02139  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2140  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)2141  ret <vscale x 1 x i1> %v2142}2143 2144define <vscale x 1 x i1> @fcmp_uge_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2145; ZVFH-LABEL: fcmp_uge_vv_nxv1f16:2146; ZVFH:       # %bb.0:2147; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2148; ZVFH-NEXT:    vmflt.vv v8, v8, v9, v0.t2149; ZVFH-NEXT:    vmnot.m v0, v82150; ZVFH-NEXT:    ret2151;2152; ZVFHMIN-LABEL: fcmp_uge_vv_nxv1f16:2153; ZVFHMIN:       # %bb.0:2154; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2155; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v92156; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82157; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2158; ZVFHMIN-NEXT:    vmflt.vv v8, v9, v10, v0.t2159; ZVFHMIN-NEXT:    vmnot.m v0, v82160; ZVFHMIN-NEXT:    ret2161  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)2162  ret <vscale x 1 x i1> %v2163}2164 2165define <vscale x 1 x i1> @fcmp_uge_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2166; ZVFH-LABEL: fcmp_uge_vf_nxv1f16:2167; ZVFH:       # %bb.0:2168; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2169; ZVFH-NEXT:    vmflt.vf v8, v8, fa0, v0.t2170; ZVFH-NEXT:    vmnot.m v0, v82171; ZVFH-NEXT:    ret2172;2173; ZVFHMIN-LABEL: fcmp_uge_vf_nxv1f16:2174; ZVFHMIN:       # %bb.0:2175; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02176; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2177; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82178; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2179; ZVFHMIN-NEXT:    vmflt.vf v8, v9, fa5, v0.t2180; ZVFHMIN-NEXT:    vmnot.m v0, v82181; ZVFHMIN-NEXT:    ret2182  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02183  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2184  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)2185  ret <vscale x 1 x i1> %v2186}2187 2188define <vscale x 1 x i1> @fcmp_uge_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2189; ZVFH-LABEL: fcmp_uge_vf_swap_nxv1f16:2190; ZVFH:       # %bb.0:2191; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2192; ZVFH-NEXT:    vmfgt.vf v8, v8, fa0, v0.t2193; ZVFH-NEXT:    vmnot.m v0, v82194; ZVFH-NEXT:    ret2195;2196; ZVFHMIN-LABEL: fcmp_uge_vf_swap_nxv1f16:2197; ZVFHMIN:       # %bb.0:2198; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02199; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2200; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82201; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2202; ZVFHMIN-NEXT:    vmfgt.vf v8, v9, fa5, v0.t2203; ZVFHMIN-NEXT:    vmnot.m v0, v82204; ZVFHMIN-NEXT:    ret2205  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02206  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2207  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)2208  ret <vscale x 1 x i1> %v2209}2210 2211define <vscale x 1 x i1> @fcmp_ult_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2212; ZVFH-LABEL: fcmp_ult_vv_nxv1f16:2213; ZVFH:       # %bb.0:2214; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2215; ZVFH-NEXT:    vmfle.vv v8, v9, v8, v0.t2216; ZVFH-NEXT:    vmnot.m v0, v82217; ZVFH-NEXT:    ret2218;2219; ZVFHMIN-LABEL: fcmp_ult_vv_nxv1f16:2220; ZVFHMIN:       # %bb.0:2221; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2222; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v82223; ZVFHMIN-NEXT:    vfwcvt.f.f.v v8, v92224; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2225; ZVFHMIN-NEXT:    vmfle.vv v8, v8, v10, v0.t2226; ZVFHMIN-NEXT:    vmnot.m v0, v82227; ZVFHMIN-NEXT:    ret2228  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)2229  ret <vscale x 1 x i1> %v2230}2231 2232define <vscale x 1 x i1> @fcmp_ult_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2233; ZVFH-LABEL: fcmp_ult_vf_nxv1f16:2234; ZVFH:       # %bb.0:2235; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2236; ZVFH-NEXT:    vmfge.vf v8, v8, fa0, v0.t2237; ZVFH-NEXT:    vmnot.m v0, v82238; ZVFH-NEXT:    ret2239;2240; ZVFHMIN-LABEL: fcmp_ult_vf_nxv1f16:2241; ZVFHMIN:       # %bb.0:2242; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02243; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2244; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82245; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2246; ZVFHMIN-NEXT:    vmfge.vf v8, v9, fa5, v0.t2247; ZVFHMIN-NEXT:    vmnot.m v0, v82248; ZVFHMIN-NEXT:    ret2249  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02250  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2251  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)2252  ret <vscale x 1 x i1> %v2253}2254 2255define <vscale x 1 x i1> @fcmp_ult_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2256; ZVFH-LABEL: fcmp_ult_vf_swap_nxv1f16:2257; ZVFH:       # %bb.0:2258; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2259; ZVFH-NEXT:    vmfle.vf v8, v8, fa0, v0.t2260; ZVFH-NEXT:    vmnot.m v0, v82261; ZVFH-NEXT:    ret2262;2263; ZVFHMIN-LABEL: fcmp_ult_vf_swap_nxv1f16:2264; ZVFHMIN:       # %bb.0:2265; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02266; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2267; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82268; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2269; ZVFHMIN-NEXT:    vmfle.vf v8, v9, fa5, v0.t2270; ZVFHMIN-NEXT:    vmnot.m v0, v82271; ZVFHMIN-NEXT:    ret2272  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02273  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2274  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)2275  ret <vscale x 1 x i1> %v2276}2277 2278define <vscale x 1 x i1> @fcmp_ule_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2279; ZVFH-LABEL: fcmp_ule_vv_nxv1f16:2280; ZVFH:       # %bb.0:2281; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2282; ZVFH-NEXT:    vmflt.vv v8, v9, v8, v0.t2283; ZVFH-NEXT:    vmnot.m v0, v82284; ZVFH-NEXT:    ret2285;2286; ZVFHMIN-LABEL: fcmp_ule_vv_nxv1f16:2287; ZVFHMIN:       # %bb.0:2288; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2289; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v82290; ZVFHMIN-NEXT:    vfwcvt.f.f.v v8, v92291; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2292; ZVFHMIN-NEXT:    vmflt.vv v8, v8, v10, v0.t2293; ZVFHMIN-NEXT:    vmnot.m v0, v82294; ZVFHMIN-NEXT:    ret2295  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)2296  ret <vscale x 1 x i1> %v2297}2298 2299define <vscale x 1 x i1> @fcmp_ule_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2300; ZVFH-LABEL: fcmp_ule_vf_nxv1f16:2301; ZVFH:       # %bb.0:2302; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2303; ZVFH-NEXT:    vmfgt.vf v8, v8, fa0, v0.t2304; ZVFH-NEXT:    vmnot.m v0, v82305; ZVFH-NEXT:    ret2306;2307; ZVFHMIN-LABEL: fcmp_ule_vf_nxv1f16:2308; ZVFHMIN:       # %bb.0:2309; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02310; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2311; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82312; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2313; ZVFHMIN-NEXT:    vmfgt.vf v8, v9, fa5, v0.t2314; ZVFHMIN-NEXT:    vmnot.m v0, v82315; ZVFHMIN-NEXT:    ret2316  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02317  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2318  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)2319  ret <vscale x 1 x i1> %v2320}2321 2322define <vscale x 1 x i1> @fcmp_ule_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2323; ZVFH-LABEL: fcmp_ule_vf_swap_nxv1f16:2324; ZVFH:       # %bb.0:2325; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2326; ZVFH-NEXT:    vmflt.vf v8, v8, fa0, v0.t2327; ZVFH-NEXT:    vmnot.m v0, v82328; ZVFH-NEXT:    ret2329;2330; ZVFHMIN-LABEL: fcmp_ule_vf_swap_nxv1f16:2331; ZVFHMIN:       # %bb.0:2332; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02333; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2334; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82335; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2336; ZVFHMIN-NEXT:    vmflt.vf v8, v9, fa5, v0.t2337; ZVFHMIN-NEXT:    vmnot.m v0, v82338; ZVFHMIN-NEXT:    ret2339  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02340  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2341  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)2342  ret <vscale x 1 x i1> %v2343}2344 2345define <vscale x 1 x i1> @fcmp_une_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2346; ZVFH-LABEL: fcmp_une_vv_nxv1f16:2347; ZVFH:       # %bb.0:2348; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2349; ZVFH-NEXT:    vmfne.vv v0, v8, v9, v0.t2350; ZVFH-NEXT:    ret2351;2352; ZVFHMIN-LABEL: fcmp_une_vv_nxv1f16:2353; ZVFHMIN:       # %bb.0:2354; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2355; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v92356; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82357; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2358; ZVFHMIN-NEXT:    vmfne.vv v0, v9, v10, v0.t2359; ZVFHMIN-NEXT:    ret2360  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)2361  ret <vscale x 1 x i1> %v2362}2363 2364define <vscale x 1 x i1> @fcmp_une_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2365; ZVFH-LABEL: fcmp_une_vf_nxv1f16:2366; ZVFH:       # %bb.0:2367; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2368; ZVFH-NEXT:    vmfne.vf v0, v8, fa0, v0.t2369; ZVFH-NEXT:    ret2370;2371; ZVFHMIN-LABEL: fcmp_une_vf_nxv1f16:2372; ZVFHMIN:       # %bb.0:2373; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02374; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2375; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82376; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2377; ZVFHMIN-NEXT:    vmfne.vf v0, v9, fa5, v0.t2378; ZVFHMIN-NEXT:    ret2379  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02380  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2381  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)2382  ret <vscale x 1 x i1> %v2383}2384 2385define <vscale x 1 x i1> @fcmp_une_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2386; ZVFH-LABEL: fcmp_une_vf_swap_nxv1f16:2387; ZVFH:       # %bb.0:2388; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2389; ZVFH-NEXT:    vmfne.vf v0, v8, fa0, v0.t2390; ZVFH-NEXT:    ret2391;2392; ZVFHMIN-LABEL: fcmp_une_vf_swap_nxv1f16:2393; ZVFHMIN:       # %bb.0:2394; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02395; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2396; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82397; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2398; ZVFHMIN-NEXT:    vmfne.vf v0, v9, fa5, v0.t2399; ZVFHMIN-NEXT:    ret2400  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02401  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2402  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)2403  ret <vscale x 1 x i1> %v2404}2405 2406define <vscale x 1 x i1> @fcmp_uno_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {2407; ZVFH-LABEL: fcmp_uno_vv_nxv1f16:2408; ZVFH:       # %bb.0:2409; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2410; ZVFH-NEXT:    vmfne.vv v9, v9, v9, v0.t2411; ZVFH-NEXT:    vmfne.vv v8, v8, v8, v0.t2412; ZVFH-NEXT:    vmor.mm v0, v8, v92413; ZVFH-NEXT:    ret2414;2415; ZVFHMIN-LABEL: fcmp_uno_vv_nxv1f16:2416; ZVFHMIN:       # %bb.0:2417; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2418; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v92419; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82420; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2421; ZVFHMIN-NEXT:    vmfne.vv v8, v10, v10, v0.t2422; ZVFHMIN-NEXT:    vmfne.vv v9, v9, v9, v0.t2423; ZVFHMIN-NEXT:    vmor.mm v0, v9, v82424; ZVFHMIN-NEXT:    ret2425  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)2426  ret <vscale x 1 x i1> %v2427}2428 2429define <vscale x 1 x i1> @fcmp_uno_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2430; ZVFH-LABEL: fcmp_uno_vf_nxv1f16:2431; ZVFH:       # %bb.0:2432; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2433; ZVFH-NEXT:    vfmv.v.f v9, fa02434; ZVFH-NEXT:    vmfne.vf v9, v9, fa0, v0.t2435; ZVFH-NEXT:    vmfne.vv v8, v8, v8, v0.t2436; ZVFH-NEXT:    vmor.mm v0, v8, v92437; ZVFH-NEXT:    ret2438;2439; ZVFHMIN-LABEL: fcmp_uno_vf_nxv1f16:2440; ZVFHMIN:       # %bb.0:2441; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02442; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2443; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82444; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2445; ZVFHMIN-NEXT:    vfmv.v.f v8, fa52446; ZVFHMIN-NEXT:    vmfne.vf v8, v8, fa5, v0.t2447; ZVFHMIN-NEXT:    vmfne.vv v9, v9, v9, v0.t2448; ZVFHMIN-NEXT:    vmor.mm v0, v9, v82449; ZVFHMIN-NEXT:    ret2450  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02451  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2452  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)2453  ret <vscale x 1 x i1> %v2454}2455 2456define <vscale x 1 x i1> @fcmp_uno_vf_swap_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {2457; ZVFH-LABEL: fcmp_uno_vf_swap_nxv1f16:2458; ZVFH:       # %bb.0:2459; ZVFH-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2460; ZVFH-NEXT:    vfmv.v.f v9, fa02461; ZVFH-NEXT:    vmfne.vf v9, v9, fa0, v0.t2462; ZVFH-NEXT:    vmfne.vv v8, v8, v8, v0.t2463; ZVFH-NEXT:    vmor.mm v0, v9, v82464; ZVFH-NEXT:    ret2465;2466; ZVFHMIN-LABEL: fcmp_uno_vf_swap_nxv1f16:2467; ZVFHMIN:       # %bb.0:2468; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02469; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma2470; ZVFHMIN-NEXT:    vfwcvt.f.f.v v9, v82471; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, mf2, ta, ma2472; ZVFHMIN-NEXT:    vfmv.v.f v8, fa52473; ZVFHMIN-NEXT:    vmfne.vf v8, v8, fa5, v0.t2474; ZVFHMIN-NEXT:    vmfne.vv v9, v9, v9, v0.t2475; ZVFHMIN-NEXT:    vmor.mm v0, v8, v92476; ZVFHMIN-NEXT:    ret2477  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 02478  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer2479  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)2480  ret <vscale x 1 x i1> %v2481}2482 2483define <vscale x 3 x i1> @fcmp_oeq_vv_nxv3f16(<vscale x 3 x half> %va, <vscale x 3 x half> %vb, <vscale x 3 x i1> %m, i32 zeroext %evl) {2484; ZVFH-LABEL: fcmp_oeq_vv_nxv3f16:2485; ZVFH:       # %bb.0:2486; ZVFH-NEXT:    vsetvli zero, a0, e16, m1, ta, ma2487; ZVFH-NEXT:    vmfeq.vv v0, v8, v9, v0.t2488; ZVFH-NEXT:    ret2489;2490; ZVFHMIN-LABEL: fcmp_oeq_vv_nxv3f16:2491; ZVFHMIN:       # %bb.0:2492; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m1, ta, ma2493; ZVFHMIN-NEXT:    vfwcvt.f.f.v v10, v92494; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82495; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m2, ta, ma2496; ZVFHMIN-NEXT:    vmfeq.vv v8, v12, v10, v0.t2497; ZVFHMIN-NEXT:    vmv1r.v v0, v82498; ZVFHMIN-NEXT:    ret2499  %v = call <vscale x 3 x i1> @llvm.vp.fcmp.nxv3f16(<vscale x 3 x half> %va, <vscale x 3 x half> %vb, metadata !"oeq", <vscale x 3 x i1> %m, i32 %evl)2500  ret <vscale x 3 x i1> %v2501}2502 2503define <vscale x 8 x i1> @fcmp_oeq_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2504; ZVFH-LABEL: fcmp_oeq_vv_nxv8f16:2505; ZVFH:       # %bb.0:2506; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2507; ZVFH-NEXT:    vmfeq.vv v12, v8, v10, v0.t2508; ZVFH-NEXT:    vmv1r.v v0, v122509; ZVFH-NEXT:    ret2510;2511; ZVFHMIN-LABEL: fcmp_oeq_vv_nxv8f16:2512; ZVFHMIN:       # %bb.0:2513; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2514; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v102515; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v82516; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2517; ZVFHMIN-NEXT:    vmfeq.vv v8, v16, v12, v0.t2518; ZVFHMIN-NEXT:    vmv1r.v v0, v82519; ZVFHMIN-NEXT:    ret2520  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)2521  ret <vscale x 8 x i1> %v2522}2523 2524define <vscale x 8 x i1> @fcmp_oeq_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2525; ZVFH-LABEL: fcmp_oeq_vf_nxv8f16:2526; ZVFH:       # %bb.0:2527; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2528; ZVFH-NEXT:    vmfeq.vf v10, v8, fa0, v0.t2529; ZVFH-NEXT:    vmv1r.v v0, v102530; ZVFH-NEXT:    ret2531;2532; ZVFHMIN-LABEL: fcmp_oeq_vf_nxv8f16:2533; ZVFHMIN:       # %bb.0:2534; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02535; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2536; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82537; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2538; ZVFHMIN-NEXT:    vmfeq.vf v8, v12, fa5, v0.t2539; ZVFHMIN-NEXT:    vmv1r.v v0, v82540; ZVFHMIN-NEXT:    ret2541  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02542  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2543  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)2544  ret <vscale x 8 x i1> %v2545}2546 2547define <vscale x 8 x i1> @fcmp_oeq_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2548; ZVFH-LABEL: fcmp_oeq_vf_swap_nxv8f16:2549; ZVFH:       # %bb.0:2550; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2551; ZVFH-NEXT:    vmfeq.vf v10, v8, fa0, v0.t2552; ZVFH-NEXT:    vmv1r.v v0, v102553; ZVFH-NEXT:    ret2554;2555; ZVFHMIN-LABEL: fcmp_oeq_vf_swap_nxv8f16:2556; ZVFHMIN:       # %bb.0:2557; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02558; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2559; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82560; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2561; ZVFHMIN-NEXT:    vmfeq.vf v8, v12, fa5, v0.t2562; ZVFHMIN-NEXT:    vmv1r.v v0, v82563; ZVFHMIN-NEXT:    ret2564  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02565  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2566  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)2567  ret <vscale x 8 x i1> %v2568}2569 2570define <vscale x 8 x i1> @fcmp_ogt_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2571; ZVFH-LABEL: fcmp_ogt_vv_nxv8f16:2572; ZVFH:       # %bb.0:2573; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2574; ZVFH-NEXT:    vmflt.vv v12, v10, v8, v0.t2575; ZVFH-NEXT:    vmv1r.v v0, v122576; ZVFH-NEXT:    ret2577;2578; ZVFHMIN-LABEL: fcmp_ogt_vv_nxv8f16:2579; ZVFHMIN:       # %bb.0:2580; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2581; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82582; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v102583; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2584; ZVFHMIN-NEXT:    vmflt.vv v8, v16, v12, v0.t2585; ZVFHMIN-NEXT:    vmv1r.v v0, v82586; ZVFHMIN-NEXT:    ret2587  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)2588  ret <vscale x 8 x i1> %v2589}2590 2591define <vscale x 8 x i1> @fcmp_ogt_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2592; ZVFH-LABEL: fcmp_ogt_vf_nxv8f16:2593; ZVFH:       # %bb.0:2594; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2595; ZVFH-NEXT:    vmfgt.vf v10, v8, fa0, v0.t2596; ZVFH-NEXT:    vmv1r.v v0, v102597; ZVFH-NEXT:    ret2598;2599; ZVFHMIN-LABEL: fcmp_ogt_vf_nxv8f16:2600; ZVFHMIN:       # %bb.0:2601; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02602; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2603; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82604; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2605; ZVFHMIN-NEXT:    vmfgt.vf v8, v12, fa5, v0.t2606; ZVFHMIN-NEXT:    vmv1r.v v0, v82607; ZVFHMIN-NEXT:    ret2608  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02609  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2610  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)2611  ret <vscale x 8 x i1> %v2612}2613 2614define <vscale x 8 x i1> @fcmp_ogt_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2615; ZVFH-LABEL: fcmp_ogt_vf_swap_nxv8f16:2616; ZVFH:       # %bb.0:2617; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2618; ZVFH-NEXT:    vmflt.vf v10, v8, fa0, v0.t2619; ZVFH-NEXT:    vmv1r.v v0, v102620; ZVFH-NEXT:    ret2621;2622; ZVFHMIN-LABEL: fcmp_ogt_vf_swap_nxv8f16:2623; ZVFHMIN:       # %bb.0:2624; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02625; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2626; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82627; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2628; ZVFHMIN-NEXT:    vmflt.vf v8, v12, fa5, v0.t2629; ZVFHMIN-NEXT:    vmv1r.v v0, v82630; ZVFHMIN-NEXT:    ret2631  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02632  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2633  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)2634  ret <vscale x 8 x i1> %v2635}2636 2637define <vscale x 8 x i1> @fcmp_oge_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2638; ZVFH-LABEL: fcmp_oge_vv_nxv8f16:2639; ZVFH:       # %bb.0:2640; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2641; ZVFH-NEXT:    vmfle.vv v12, v10, v8, v0.t2642; ZVFH-NEXT:    vmv1r.v v0, v122643; ZVFH-NEXT:    ret2644;2645; ZVFHMIN-LABEL: fcmp_oge_vv_nxv8f16:2646; ZVFHMIN:       # %bb.0:2647; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2648; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82649; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v102650; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2651; ZVFHMIN-NEXT:    vmfle.vv v8, v16, v12, v0.t2652; ZVFHMIN-NEXT:    vmv1r.v v0, v82653; ZVFHMIN-NEXT:    ret2654  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)2655  ret <vscale x 8 x i1> %v2656}2657 2658define <vscale x 8 x i1> @fcmp_oge_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2659; ZVFH-LABEL: fcmp_oge_vf_nxv8f16:2660; ZVFH:       # %bb.0:2661; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2662; ZVFH-NEXT:    vmfge.vf v10, v8, fa0, v0.t2663; ZVFH-NEXT:    vmv1r.v v0, v102664; ZVFH-NEXT:    ret2665;2666; ZVFHMIN-LABEL: fcmp_oge_vf_nxv8f16:2667; ZVFHMIN:       # %bb.0:2668; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02669; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2670; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82671; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2672; ZVFHMIN-NEXT:    vmfge.vf v8, v12, fa5, v0.t2673; ZVFHMIN-NEXT:    vmv1r.v v0, v82674; ZVFHMIN-NEXT:    ret2675  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02676  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2677  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)2678  ret <vscale x 8 x i1> %v2679}2680 2681define <vscale x 8 x i1> @fcmp_oge_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2682; ZVFH-LABEL: fcmp_oge_vf_swap_nxv8f16:2683; ZVFH:       # %bb.0:2684; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2685; ZVFH-NEXT:    vmfle.vf v10, v8, fa0, v0.t2686; ZVFH-NEXT:    vmv1r.v v0, v102687; ZVFH-NEXT:    ret2688;2689; ZVFHMIN-LABEL: fcmp_oge_vf_swap_nxv8f16:2690; ZVFHMIN:       # %bb.0:2691; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02692; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2693; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82694; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2695; ZVFHMIN-NEXT:    vmfle.vf v8, v12, fa5, v0.t2696; ZVFHMIN-NEXT:    vmv1r.v v0, v82697; ZVFHMIN-NEXT:    ret2698  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02699  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2700  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)2701  ret <vscale x 8 x i1> %v2702}2703 2704define <vscale x 8 x i1> @fcmp_olt_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2705; ZVFH-LABEL: fcmp_olt_vv_nxv8f16:2706; ZVFH:       # %bb.0:2707; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2708; ZVFH-NEXT:    vmflt.vv v12, v8, v10, v0.t2709; ZVFH-NEXT:    vmv1r.v v0, v122710; ZVFH-NEXT:    ret2711;2712; ZVFHMIN-LABEL: fcmp_olt_vv_nxv8f16:2713; ZVFHMIN:       # %bb.0:2714; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2715; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v102716; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v82717; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2718; ZVFHMIN-NEXT:    vmflt.vv v8, v16, v12, v0.t2719; ZVFHMIN-NEXT:    vmv1r.v v0, v82720; ZVFHMIN-NEXT:    ret2721  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)2722  ret <vscale x 8 x i1> %v2723}2724 2725define <vscale x 8 x i1> @fcmp_olt_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2726; ZVFH-LABEL: fcmp_olt_vf_nxv8f16:2727; ZVFH:       # %bb.0:2728; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2729; ZVFH-NEXT:    vmflt.vf v10, v8, fa0, v0.t2730; ZVFH-NEXT:    vmv1r.v v0, v102731; ZVFH-NEXT:    ret2732;2733; ZVFHMIN-LABEL: fcmp_olt_vf_nxv8f16:2734; ZVFHMIN:       # %bb.0:2735; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02736; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2737; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82738; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2739; ZVFHMIN-NEXT:    vmflt.vf v8, v12, fa5, v0.t2740; ZVFHMIN-NEXT:    vmv1r.v v0, v82741; ZVFHMIN-NEXT:    ret2742  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02743  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2744  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)2745  ret <vscale x 8 x i1> %v2746}2747 2748define <vscale x 8 x i1> @fcmp_olt_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2749; ZVFH-LABEL: fcmp_olt_vf_swap_nxv8f16:2750; ZVFH:       # %bb.0:2751; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2752; ZVFH-NEXT:    vmfgt.vf v10, v8, fa0, v0.t2753; ZVFH-NEXT:    vmv1r.v v0, v102754; ZVFH-NEXT:    ret2755;2756; ZVFHMIN-LABEL: fcmp_olt_vf_swap_nxv8f16:2757; ZVFHMIN:       # %bb.0:2758; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02759; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2760; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82761; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2762; ZVFHMIN-NEXT:    vmfgt.vf v8, v12, fa5, v0.t2763; ZVFHMIN-NEXT:    vmv1r.v v0, v82764; ZVFHMIN-NEXT:    ret2765  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02766  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2767  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)2768  ret <vscale x 8 x i1> %v2769}2770 2771define <vscale x 8 x i1> @fcmp_ole_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2772; ZVFH-LABEL: fcmp_ole_vv_nxv8f16:2773; ZVFH:       # %bb.0:2774; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2775; ZVFH-NEXT:    vmfle.vv v12, v8, v10, v0.t2776; ZVFH-NEXT:    vmv1r.v v0, v122777; ZVFH-NEXT:    ret2778;2779; ZVFHMIN-LABEL: fcmp_ole_vv_nxv8f16:2780; ZVFHMIN:       # %bb.0:2781; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2782; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v102783; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v82784; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2785; ZVFHMIN-NEXT:    vmfle.vv v8, v16, v12, v0.t2786; ZVFHMIN-NEXT:    vmv1r.v v0, v82787; ZVFHMIN-NEXT:    ret2788  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)2789  ret <vscale x 8 x i1> %v2790}2791 2792define <vscale x 8 x i1> @fcmp_ole_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2793; ZVFH-LABEL: fcmp_ole_vf_nxv8f16:2794; ZVFH:       # %bb.0:2795; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2796; ZVFH-NEXT:    vmfle.vf v10, v8, fa0, v0.t2797; ZVFH-NEXT:    vmv1r.v v0, v102798; ZVFH-NEXT:    ret2799;2800; ZVFHMIN-LABEL: fcmp_ole_vf_nxv8f16:2801; ZVFHMIN:       # %bb.0:2802; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02803; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2804; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82805; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2806; ZVFHMIN-NEXT:    vmfle.vf v8, v12, fa5, v0.t2807; ZVFHMIN-NEXT:    vmv1r.v v0, v82808; ZVFHMIN-NEXT:    ret2809  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02810  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2811  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)2812  ret <vscale x 8 x i1> %v2813}2814 2815define <vscale x 8 x i1> @fcmp_ole_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2816; ZVFH-LABEL: fcmp_ole_vf_swap_nxv8f16:2817; ZVFH:       # %bb.0:2818; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2819; ZVFH-NEXT:    vmfge.vf v10, v8, fa0, v0.t2820; ZVFH-NEXT:    vmv1r.v v0, v102821; ZVFH-NEXT:    ret2822;2823; ZVFHMIN-LABEL: fcmp_ole_vf_swap_nxv8f16:2824; ZVFHMIN:       # %bb.0:2825; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02826; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2827; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82828; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2829; ZVFHMIN-NEXT:    vmfge.vf v8, v12, fa5, v0.t2830; ZVFHMIN-NEXT:    vmv1r.v v0, v82831; ZVFHMIN-NEXT:    ret2832  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02833  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2834  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)2835  ret <vscale x 8 x i1> %v2836}2837 2838define <vscale x 8 x i1> @fcmp_one_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2839; ZVFH-LABEL: fcmp_one_vv_nxv8f16:2840; ZVFH:       # %bb.0:2841; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2842; ZVFH-NEXT:    vmflt.vv v12, v8, v10, v0.t2843; ZVFH-NEXT:    vmflt.vv v13, v10, v8, v0.t2844; ZVFH-NEXT:    vmor.mm v0, v13, v122845; ZVFH-NEXT:    ret2846;2847; ZVFHMIN-LABEL: fcmp_one_vv_nxv8f16:2848; ZVFHMIN:       # %bb.0:2849; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2850; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v102851; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v82852; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2853; ZVFHMIN-NEXT:    vmflt.vv v8, v16, v12, v0.t2854; ZVFHMIN-NEXT:    vmflt.vv v9, v12, v16, v0.t2855; ZVFHMIN-NEXT:    vmor.mm v0, v9, v82856; ZVFHMIN-NEXT:    ret2857  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)2858  ret <vscale x 8 x i1> %v2859}2860 2861define <vscale x 8 x i1> @fcmp_one_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2862; ZVFH-LABEL: fcmp_one_vf_nxv8f16:2863; ZVFH:       # %bb.0:2864; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2865; ZVFH-NEXT:    vmflt.vf v10, v8, fa0, v0.t2866; ZVFH-NEXT:    vmfgt.vf v11, v8, fa0, v0.t2867; ZVFH-NEXT:    vmor.mm v0, v11, v102868; ZVFH-NEXT:    ret2869;2870; ZVFHMIN-LABEL: fcmp_one_vf_nxv8f16:2871; ZVFHMIN:       # %bb.0:2872; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02873; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2874; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82875; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2876; ZVFHMIN-NEXT:    vmflt.vf v8, v12, fa5, v0.t2877; ZVFHMIN-NEXT:    vmfgt.vf v9, v12, fa5, v0.t2878; ZVFHMIN-NEXT:    vmor.mm v0, v9, v82879; ZVFHMIN-NEXT:    ret2880  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02881  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2882  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)2883  ret <vscale x 8 x i1> %v2884}2885 2886define <vscale x 8 x i1> @fcmp_one_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2887; ZVFH-LABEL: fcmp_one_vf_swap_nxv8f16:2888; ZVFH:       # %bb.0:2889; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2890; ZVFH-NEXT:    vmfgt.vf v10, v8, fa0, v0.t2891; ZVFH-NEXT:    vmflt.vf v11, v8, fa0, v0.t2892; ZVFH-NEXT:    vmor.mm v0, v11, v102893; ZVFH-NEXT:    ret2894;2895; ZVFHMIN-LABEL: fcmp_one_vf_swap_nxv8f16:2896; ZVFHMIN:       # %bb.0:2897; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02898; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2899; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82900; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2901; ZVFHMIN-NEXT:    vmfgt.vf v8, v12, fa5, v0.t2902; ZVFHMIN-NEXT:    vmflt.vf v9, v12, fa5, v0.t2903; ZVFHMIN-NEXT:    vmor.mm v0, v9, v82904; ZVFHMIN-NEXT:    ret2905  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02906  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2907  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)2908  ret <vscale x 8 x i1> %v2909}2910 2911define <vscale x 8 x i1> @fcmp_ord_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2912; ZVFH-LABEL: fcmp_ord_vv_nxv8f16:2913; ZVFH:       # %bb.0:2914; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2915; ZVFH-NEXT:    vmfeq.vv v12, v10, v10, v0.t2916; ZVFH-NEXT:    vmfeq.vv v10, v8, v8, v0.t2917; ZVFH-NEXT:    vmand.mm v0, v10, v122918; ZVFH-NEXT:    ret2919;2920; ZVFHMIN-LABEL: fcmp_ord_vv_nxv8f16:2921; ZVFHMIN:       # %bb.0:2922; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2923; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v102924; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2925; ZVFHMIN-NEXT:    vmfeq.vv v10, v12, v12, v0.t2926; ZVFHMIN-NEXT:    vsetvli zero, zero, e16, m2, ta, ma2927; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82928; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2929; ZVFHMIN-NEXT:    vmfeq.vv v8, v12, v12, v0.t2930; ZVFHMIN-NEXT:    vmand.mm v0, v8, v102931; ZVFHMIN-NEXT:    ret2932  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)2933  ret <vscale x 8 x i1> %v2934}2935 2936define <vscale x 8 x i1> @fcmp_ord_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2937; ZVFH-LABEL: fcmp_ord_vf_nxv8f16:2938; ZVFH:       # %bb.0:2939; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2940; ZVFH-NEXT:    vfmv.v.f v10, fa02941; ZVFH-NEXT:    vmfeq.vf v12, v10, fa0, v0.t2942; ZVFH-NEXT:    vmfeq.vv v10, v8, v8, v0.t2943; ZVFH-NEXT:    vmand.mm v0, v10, v122944; ZVFH-NEXT:    ret2945;2946; ZVFHMIN-LABEL: fcmp_ord_vf_nxv8f16:2947; ZVFHMIN:       # %bb.0:2948; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02949; ZVFHMIN-NEXT:    vsetvli zero, a0, e32, m4, ta, ma2950; ZVFHMIN-NEXT:    vfmv.v.f v12, fa52951; ZVFHMIN-NEXT:    vmfeq.vf v10, v12, fa5, v0.t2952; ZVFHMIN-NEXT:    vsetvli zero, zero, e16, m2, ta, ma2953; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82954; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2955; ZVFHMIN-NEXT:    vmfeq.vv v8, v12, v12, v0.t2956; ZVFHMIN-NEXT:    vmand.mm v0, v8, v102957; ZVFHMIN-NEXT:    ret2958  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02959  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2960  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)2961  ret <vscale x 8 x i1> %v2962}2963 2964define <vscale x 8 x i1> @fcmp_ord_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {2965; ZVFH-LABEL: fcmp_ord_vf_swap_nxv8f16:2966; ZVFH:       # %bb.0:2967; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2968; ZVFH-NEXT:    vfmv.v.f v10, fa02969; ZVFH-NEXT:    vmfeq.vf v12, v10, fa0, v0.t2970; ZVFH-NEXT:    vmfeq.vv v10, v8, v8, v0.t2971; ZVFH-NEXT:    vmand.mm v0, v12, v102972; ZVFH-NEXT:    ret2973;2974; ZVFHMIN-LABEL: fcmp_ord_vf_swap_nxv8f16:2975; ZVFHMIN:       # %bb.0:2976; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa02977; ZVFHMIN-NEXT:    vsetvli zero, a0, e32, m4, ta, ma2978; ZVFHMIN-NEXT:    vfmv.v.f v12, fa52979; ZVFHMIN-NEXT:    vmfeq.vf v10, v12, fa5, v0.t2980; ZVFHMIN-NEXT:    vsetvli zero, zero, e16, m2, ta, ma2981; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v82982; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma2983; ZVFHMIN-NEXT:    vmfeq.vv v8, v12, v12, v0.t2984; ZVFHMIN-NEXT:    vmand.mm v0, v10, v82985; ZVFHMIN-NEXT:    ret2986  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 02987  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2988  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)2989  ret <vscale x 8 x i1> %v2990}2991 2992define <vscale x 8 x i1> @fcmp_ueq_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {2993; ZVFH-LABEL: fcmp_ueq_vv_nxv8f16:2994; ZVFH:       # %bb.0:2995; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma2996; ZVFH-NEXT:    vmflt.vv v12, v8, v10, v0.t2997; ZVFH-NEXT:    vmflt.vv v13, v10, v8, v0.t2998; ZVFH-NEXT:    vmnor.mm v0, v13, v122999; ZVFH-NEXT:    ret3000;3001; ZVFHMIN-LABEL: fcmp_ueq_vv_nxv8f16:3002; ZVFHMIN:       # %bb.0:3003; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3004; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v103005; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v83006; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3007; ZVFHMIN-NEXT:    vmflt.vv v8, v16, v12, v0.t3008; ZVFHMIN-NEXT:    vmflt.vv v9, v12, v16, v0.t3009; ZVFHMIN-NEXT:    vmnor.mm v0, v9, v83010; ZVFHMIN-NEXT:    ret3011  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)3012  ret <vscale x 8 x i1> %v3013}3014 3015define <vscale x 8 x i1> @fcmp_ueq_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3016; ZVFH-LABEL: fcmp_ueq_vf_nxv8f16:3017; ZVFH:       # %bb.0:3018; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3019; ZVFH-NEXT:    vmflt.vf v10, v8, fa0, v0.t3020; ZVFH-NEXT:    vmfgt.vf v11, v8, fa0, v0.t3021; ZVFH-NEXT:    vmnor.mm v0, v11, v103022; ZVFH-NEXT:    ret3023;3024; ZVFHMIN-LABEL: fcmp_ueq_vf_nxv8f16:3025; ZVFHMIN:       # %bb.0:3026; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03027; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3028; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83029; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3030; ZVFHMIN-NEXT:    vmflt.vf v8, v12, fa5, v0.t3031; ZVFHMIN-NEXT:    vmfgt.vf v9, v12, fa5, v0.t3032; ZVFHMIN-NEXT:    vmnor.mm v0, v9, v83033; ZVFHMIN-NEXT:    ret3034  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03035  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3036  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)3037  ret <vscale x 8 x i1> %v3038}3039 3040define <vscale x 8 x i1> @fcmp_ueq_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3041; ZVFH-LABEL: fcmp_ueq_vf_swap_nxv8f16:3042; ZVFH:       # %bb.0:3043; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3044; ZVFH-NEXT:    vmfgt.vf v10, v8, fa0, v0.t3045; ZVFH-NEXT:    vmflt.vf v11, v8, fa0, v0.t3046; ZVFH-NEXT:    vmnor.mm v0, v11, v103047; ZVFH-NEXT:    ret3048;3049; ZVFHMIN-LABEL: fcmp_ueq_vf_swap_nxv8f16:3050; ZVFHMIN:       # %bb.0:3051; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03052; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3053; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83054; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3055; ZVFHMIN-NEXT:    vmfgt.vf v8, v12, fa5, v0.t3056; ZVFHMIN-NEXT:    vmflt.vf v9, v12, fa5, v0.t3057; ZVFHMIN-NEXT:    vmnor.mm v0, v9, v83058; ZVFHMIN-NEXT:    ret3059  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03060  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3061  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)3062  ret <vscale x 8 x i1> %v3063}3064 3065define <vscale x 8 x i1> @fcmp_ugt_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {3066; ZVFH-LABEL: fcmp_ugt_vv_nxv8f16:3067; ZVFH:       # %bb.0:3068; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3069; ZVFH-NEXT:    vmfle.vv v12, v8, v10, v0.t3070; ZVFH-NEXT:    vmnot.m v0, v123071; ZVFH-NEXT:    ret3072;3073; ZVFHMIN-LABEL: fcmp_ugt_vv_nxv8f16:3074; ZVFHMIN:       # %bb.0:3075; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3076; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v103077; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v83078; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3079; ZVFHMIN-NEXT:    vmfle.vv v8, v16, v12, v0.t3080; ZVFHMIN-NEXT:    vmnot.m v0, v83081; ZVFHMIN-NEXT:    ret3082  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)3083  ret <vscale x 8 x i1> %v3084}3085 3086define <vscale x 8 x i1> @fcmp_ugt_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3087; ZVFH-LABEL: fcmp_ugt_vf_nxv8f16:3088; ZVFH:       # %bb.0:3089; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3090; ZVFH-NEXT:    vmfle.vf v10, v8, fa0, v0.t3091; ZVFH-NEXT:    vmnot.m v0, v103092; ZVFH-NEXT:    ret3093;3094; ZVFHMIN-LABEL: fcmp_ugt_vf_nxv8f16:3095; ZVFHMIN:       # %bb.0:3096; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03097; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3098; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83099; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3100; ZVFHMIN-NEXT:    vmfle.vf v8, v12, fa5, v0.t3101; ZVFHMIN-NEXT:    vmnot.m v0, v83102; ZVFHMIN-NEXT:    ret3103  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03104  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3105  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)3106  ret <vscale x 8 x i1> %v3107}3108 3109define <vscale x 8 x i1> @fcmp_ugt_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3110; ZVFH-LABEL: fcmp_ugt_vf_swap_nxv8f16:3111; ZVFH:       # %bb.0:3112; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3113; ZVFH-NEXT:    vmfge.vf v10, v8, fa0, v0.t3114; ZVFH-NEXT:    vmnot.m v0, v103115; ZVFH-NEXT:    ret3116;3117; ZVFHMIN-LABEL: fcmp_ugt_vf_swap_nxv8f16:3118; ZVFHMIN:       # %bb.0:3119; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03120; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3121; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83122; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3123; ZVFHMIN-NEXT:    vmfge.vf v8, v12, fa5, v0.t3124; ZVFHMIN-NEXT:    vmnot.m v0, v83125; ZVFHMIN-NEXT:    ret3126  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03127  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3128  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)3129  ret <vscale x 8 x i1> %v3130}3131 3132define <vscale x 8 x i1> @fcmp_uge_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {3133; ZVFH-LABEL: fcmp_uge_vv_nxv8f16:3134; ZVFH:       # %bb.0:3135; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3136; ZVFH-NEXT:    vmflt.vv v12, v8, v10, v0.t3137; ZVFH-NEXT:    vmnot.m v0, v123138; ZVFH-NEXT:    ret3139;3140; ZVFHMIN-LABEL: fcmp_uge_vv_nxv8f16:3141; ZVFHMIN:       # %bb.0:3142; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3143; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v103144; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v83145; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3146; ZVFHMIN-NEXT:    vmflt.vv v8, v16, v12, v0.t3147; ZVFHMIN-NEXT:    vmnot.m v0, v83148; ZVFHMIN-NEXT:    ret3149  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)3150  ret <vscale x 8 x i1> %v3151}3152 3153define <vscale x 8 x i1> @fcmp_uge_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3154; ZVFH-LABEL: fcmp_uge_vf_nxv8f16:3155; ZVFH:       # %bb.0:3156; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3157; ZVFH-NEXT:    vmflt.vf v10, v8, fa0, v0.t3158; ZVFH-NEXT:    vmnot.m v0, v103159; ZVFH-NEXT:    ret3160;3161; ZVFHMIN-LABEL: fcmp_uge_vf_nxv8f16:3162; ZVFHMIN:       # %bb.0:3163; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03164; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3165; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83166; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3167; ZVFHMIN-NEXT:    vmflt.vf v8, v12, fa5, v0.t3168; ZVFHMIN-NEXT:    vmnot.m v0, v83169; ZVFHMIN-NEXT:    ret3170  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03171  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3172  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)3173  ret <vscale x 8 x i1> %v3174}3175 3176define <vscale x 8 x i1> @fcmp_uge_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3177; ZVFH-LABEL: fcmp_uge_vf_swap_nxv8f16:3178; ZVFH:       # %bb.0:3179; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3180; ZVFH-NEXT:    vmfgt.vf v10, v8, fa0, v0.t3181; ZVFH-NEXT:    vmnot.m v0, v103182; ZVFH-NEXT:    ret3183;3184; ZVFHMIN-LABEL: fcmp_uge_vf_swap_nxv8f16:3185; ZVFHMIN:       # %bb.0:3186; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03187; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3188; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83189; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3190; ZVFHMIN-NEXT:    vmfgt.vf v8, v12, fa5, v0.t3191; ZVFHMIN-NEXT:    vmnot.m v0, v83192; ZVFHMIN-NEXT:    ret3193  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03194  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3195  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)3196  ret <vscale x 8 x i1> %v3197}3198 3199define <vscale x 8 x i1> @fcmp_ult_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {3200; ZVFH-LABEL: fcmp_ult_vv_nxv8f16:3201; ZVFH:       # %bb.0:3202; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3203; ZVFH-NEXT:    vmfle.vv v12, v10, v8, v0.t3204; ZVFH-NEXT:    vmnot.m v0, v123205; ZVFH-NEXT:    ret3206;3207; ZVFHMIN-LABEL: fcmp_ult_vv_nxv8f16:3208; ZVFHMIN:       # %bb.0:3209; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3210; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83211; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v103212; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3213; ZVFHMIN-NEXT:    vmfle.vv v8, v16, v12, v0.t3214; ZVFHMIN-NEXT:    vmnot.m v0, v83215; ZVFHMIN-NEXT:    ret3216  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)3217  ret <vscale x 8 x i1> %v3218}3219 3220define <vscale x 8 x i1> @fcmp_ult_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3221; ZVFH-LABEL: fcmp_ult_vf_nxv8f16:3222; ZVFH:       # %bb.0:3223; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3224; ZVFH-NEXT:    vmfge.vf v10, v8, fa0, v0.t3225; ZVFH-NEXT:    vmnot.m v0, v103226; ZVFH-NEXT:    ret3227;3228; ZVFHMIN-LABEL: fcmp_ult_vf_nxv8f16:3229; ZVFHMIN:       # %bb.0:3230; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03231; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3232; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83233; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3234; ZVFHMIN-NEXT:    vmfge.vf v8, v12, fa5, v0.t3235; ZVFHMIN-NEXT:    vmnot.m v0, v83236; ZVFHMIN-NEXT:    ret3237  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03238  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3239  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)3240  ret <vscale x 8 x i1> %v3241}3242 3243define <vscale x 8 x i1> @fcmp_ult_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3244; ZVFH-LABEL: fcmp_ult_vf_swap_nxv8f16:3245; ZVFH:       # %bb.0:3246; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3247; ZVFH-NEXT:    vmfle.vf v10, v8, fa0, v0.t3248; ZVFH-NEXT:    vmnot.m v0, v103249; ZVFH-NEXT:    ret3250;3251; ZVFHMIN-LABEL: fcmp_ult_vf_swap_nxv8f16:3252; ZVFHMIN:       # %bb.0:3253; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03254; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3255; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83256; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3257; ZVFHMIN-NEXT:    vmfle.vf v8, v12, fa5, v0.t3258; ZVFHMIN-NEXT:    vmnot.m v0, v83259; ZVFHMIN-NEXT:    ret3260  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03261  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3262  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)3263  ret <vscale x 8 x i1> %v3264}3265 3266define <vscale x 8 x i1> @fcmp_ule_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {3267; ZVFH-LABEL: fcmp_ule_vv_nxv8f16:3268; ZVFH:       # %bb.0:3269; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3270; ZVFH-NEXT:    vmflt.vv v12, v10, v8, v0.t3271; ZVFH-NEXT:    vmnot.m v0, v123272; ZVFH-NEXT:    ret3273;3274; ZVFHMIN-LABEL: fcmp_ule_vv_nxv8f16:3275; ZVFHMIN:       # %bb.0:3276; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3277; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83278; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v103279; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3280; ZVFHMIN-NEXT:    vmflt.vv v8, v16, v12, v0.t3281; ZVFHMIN-NEXT:    vmnot.m v0, v83282; ZVFHMIN-NEXT:    ret3283  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)3284  ret <vscale x 8 x i1> %v3285}3286 3287define <vscale x 8 x i1> @fcmp_ule_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3288; ZVFH-LABEL: fcmp_ule_vf_nxv8f16:3289; ZVFH:       # %bb.0:3290; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3291; ZVFH-NEXT:    vmfgt.vf v10, v8, fa0, v0.t3292; ZVFH-NEXT:    vmnot.m v0, v103293; ZVFH-NEXT:    ret3294;3295; ZVFHMIN-LABEL: fcmp_ule_vf_nxv8f16:3296; ZVFHMIN:       # %bb.0:3297; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03298; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3299; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83300; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3301; ZVFHMIN-NEXT:    vmfgt.vf v8, v12, fa5, v0.t3302; ZVFHMIN-NEXT:    vmnot.m v0, v83303; ZVFHMIN-NEXT:    ret3304  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03305  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3306  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)3307  ret <vscale x 8 x i1> %v3308}3309 3310define <vscale x 8 x i1> @fcmp_ule_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3311; ZVFH-LABEL: fcmp_ule_vf_swap_nxv8f16:3312; ZVFH:       # %bb.0:3313; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3314; ZVFH-NEXT:    vmflt.vf v10, v8, fa0, v0.t3315; ZVFH-NEXT:    vmnot.m v0, v103316; ZVFH-NEXT:    ret3317;3318; ZVFHMIN-LABEL: fcmp_ule_vf_swap_nxv8f16:3319; ZVFHMIN:       # %bb.0:3320; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03321; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3322; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83323; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3324; ZVFHMIN-NEXT:    vmflt.vf v8, v12, fa5, v0.t3325; ZVFHMIN-NEXT:    vmnot.m v0, v83326; ZVFHMIN-NEXT:    ret3327  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03328  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3329  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)3330  ret <vscale x 8 x i1> %v3331}3332 3333define <vscale x 8 x i1> @fcmp_une_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {3334; ZVFH-LABEL: fcmp_une_vv_nxv8f16:3335; ZVFH:       # %bb.0:3336; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3337; ZVFH-NEXT:    vmfne.vv v12, v8, v10, v0.t3338; ZVFH-NEXT:    vmv1r.v v0, v123339; ZVFH-NEXT:    ret3340;3341; ZVFHMIN-LABEL: fcmp_une_vv_nxv8f16:3342; ZVFHMIN:       # %bb.0:3343; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3344; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v103345; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v83346; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3347; ZVFHMIN-NEXT:    vmfne.vv v8, v16, v12, v0.t3348; ZVFHMIN-NEXT:    vmv1r.v v0, v83349; ZVFHMIN-NEXT:    ret3350  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)3351  ret <vscale x 8 x i1> %v3352}3353 3354define <vscale x 8 x i1> @fcmp_une_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3355; ZVFH-LABEL: fcmp_une_vf_nxv8f16:3356; ZVFH:       # %bb.0:3357; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3358; ZVFH-NEXT:    vmfne.vf v10, v8, fa0, v0.t3359; ZVFH-NEXT:    vmv1r.v v0, v103360; ZVFH-NEXT:    ret3361;3362; ZVFHMIN-LABEL: fcmp_une_vf_nxv8f16:3363; ZVFHMIN:       # %bb.0:3364; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03365; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3366; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83367; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3368; ZVFHMIN-NEXT:    vmfne.vf v8, v12, fa5, v0.t3369; ZVFHMIN-NEXT:    vmv1r.v v0, v83370; ZVFHMIN-NEXT:    ret3371  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03372  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3373  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)3374  ret <vscale x 8 x i1> %v3375}3376 3377define <vscale x 8 x i1> @fcmp_une_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3378; ZVFH-LABEL: fcmp_une_vf_swap_nxv8f16:3379; ZVFH:       # %bb.0:3380; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3381; ZVFH-NEXT:    vmfne.vf v10, v8, fa0, v0.t3382; ZVFH-NEXT:    vmv1r.v v0, v103383; ZVFH-NEXT:    ret3384;3385; ZVFHMIN-LABEL: fcmp_une_vf_swap_nxv8f16:3386; ZVFHMIN:       # %bb.0:3387; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03388; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3389; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83390; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3391; ZVFHMIN-NEXT:    vmfne.vf v8, v12, fa5, v0.t3392; ZVFHMIN-NEXT:    vmv1r.v v0, v83393; ZVFHMIN-NEXT:    ret3394  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03395  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3396  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)3397  ret <vscale x 8 x i1> %v3398}3399 3400define <vscale x 8 x i1> @fcmp_uno_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {3401; ZVFH-LABEL: fcmp_uno_vv_nxv8f16:3402; ZVFH:       # %bb.0:3403; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3404; ZVFH-NEXT:    vmfne.vv v12, v10, v10, v0.t3405; ZVFH-NEXT:    vmfne.vv v10, v8, v8, v0.t3406; ZVFH-NEXT:    vmor.mm v0, v10, v123407; ZVFH-NEXT:    ret3408;3409; ZVFHMIN-LABEL: fcmp_uno_vv_nxv8f16:3410; ZVFHMIN:       # %bb.0:3411; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3412; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v103413; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3414; ZVFHMIN-NEXT:    vmfne.vv v10, v12, v12, v0.t3415; ZVFHMIN-NEXT:    vsetvli zero, zero, e16, m2, ta, ma3416; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83417; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3418; ZVFHMIN-NEXT:    vmfne.vv v8, v12, v12, v0.t3419; ZVFHMIN-NEXT:    vmor.mm v0, v8, v103420; ZVFHMIN-NEXT:    ret3421  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)3422  ret <vscale x 8 x i1> %v3423}3424 3425define <vscale x 8 x i1> @fcmp_uno_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3426; ZVFH-LABEL: fcmp_uno_vf_nxv8f16:3427; ZVFH:       # %bb.0:3428; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3429; ZVFH-NEXT:    vfmv.v.f v10, fa03430; ZVFH-NEXT:    vmfne.vf v12, v10, fa0, v0.t3431; ZVFH-NEXT:    vmfne.vv v10, v8, v8, v0.t3432; ZVFH-NEXT:    vmor.mm v0, v10, v123433; ZVFH-NEXT:    ret3434;3435; ZVFHMIN-LABEL: fcmp_uno_vf_nxv8f16:3436; ZVFHMIN:       # %bb.0:3437; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03438; ZVFHMIN-NEXT:    vsetvli zero, a0, e32, m4, ta, ma3439; ZVFHMIN-NEXT:    vfmv.v.f v12, fa53440; ZVFHMIN-NEXT:    vmfne.vf v10, v12, fa5, v0.t3441; ZVFHMIN-NEXT:    vsetvli zero, zero, e16, m2, ta, ma3442; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83443; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3444; ZVFHMIN-NEXT:    vmfne.vv v8, v12, v12, v0.t3445; ZVFHMIN-NEXT:    vmor.mm v0, v8, v103446; ZVFHMIN-NEXT:    ret3447  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03448  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3449  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)3450  ret <vscale x 8 x i1> %v3451}3452 3453define <vscale x 8 x i1> @fcmp_uno_vf_swap_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {3454; ZVFH-LABEL: fcmp_uno_vf_swap_nxv8f16:3455; ZVFH:       # %bb.0:3456; ZVFH-NEXT:    vsetvli zero, a0, e16, m2, ta, ma3457; ZVFH-NEXT:    vfmv.v.f v10, fa03458; ZVFH-NEXT:    vmfne.vf v12, v10, fa0, v0.t3459; ZVFH-NEXT:    vmfne.vv v10, v8, v8, v0.t3460; ZVFH-NEXT:    vmor.mm v0, v12, v103461; ZVFH-NEXT:    ret3462;3463; ZVFHMIN-LABEL: fcmp_uno_vf_swap_nxv8f16:3464; ZVFHMIN:       # %bb.0:3465; ZVFHMIN-NEXT:    fcvt.s.h fa5, fa03466; ZVFHMIN-NEXT:    vsetvli zero, a0, e32, m4, ta, ma3467; ZVFHMIN-NEXT:    vfmv.v.f v12, fa53468; ZVFHMIN-NEXT:    vmfne.vf v10, v12, fa5, v0.t3469; ZVFHMIN-NEXT:    vsetvli zero, zero, e16, m2, ta, ma3470; ZVFHMIN-NEXT:    vfwcvt.f.f.v v12, v83471; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m4, ta, ma3472; ZVFHMIN-NEXT:    vmfne.vv v8, v12, v12, v0.t3473; ZVFHMIN-NEXT:    vmor.mm v0, v10, v83474; ZVFHMIN-NEXT:    ret3475  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 03476  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer3477  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)3478  ret <vscale x 8 x i1> %v3479}3480 3481define <vscale x 64 x i1> @fcmp_oeq_vv_nxv64f16(<vscale x 64 x half> %va, <vscale x 64 x half> %vb, <vscale x 64 x i1> %m, i32 zeroext %evl) {3482; ZVFH-LABEL: fcmp_oeq_vv_nxv64f16:3483; ZVFH:       # %bb.0:3484; ZVFH-NEXT:    addi sp, sp, -163485; ZVFH-NEXT:    .cfi_def_cfa_offset 163486; ZVFH-NEXT:    csrr a1, vlenb3487; ZVFH-NEXT:    slli a1, a1, 33488; ZVFH-NEXT:    sub sp, sp, a13489; ZVFH-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb3490; ZVFH-NEXT:    vsetvli a1, zero, e8, m1, ta, ma3491; ZVFH-NEXT:    vmv1r.v v7, v03492; ZVFH-NEXT:    addi a1, sp, 163493; ZVFH-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill3494; ZVFH-NEXT:    csrr a3, vlenb3495; ZVFH-NEXT:    srli a1, a3, 13496; ZVFH-NEXT:    slli a4, a3, 33497; ZVFH-NEXT:    slli a3, a3, 23498; ZVFH-NEXT:    add a4, a0, a43499; ZVFH-NEXT:    sub a5, a2, a33500; ZVFH-NEXT:    vl8re16.v v24, (a4)3501; ZVFH-NEXT:    sltu a4, a2, a53502; ZVFH-NEXT:    addi a4, a4, -13503; ZVFH-NEXT:    vl8re16.v v8, (a0)3504; ZVFH-NEXT:    vslidedown.vx v0, v0, a13505; ZVFH-NEXT:    and a4, a4, a53506; ZVFH-NEXT:    vsetvli zero, a4, e16, m8, ta, ma3507; ZVFH-NEXT:    vmfeq.vv v6, v16, v24, v0.t3508; ZVFH-NEXT:    bltu a2, a3, .LBB171_23509; ZVFH-NEXT:  # %bb.1:3510; ZVFH-NEXT:    mv a2, a33511; ZVFH-NEXT:  .LBB171_2:3512; ZVFH-NEXT:    vmv1r.v v0, v73513; ZVFH-NEXT:    addi a0, sp, 163514; ZVFH-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload3515; ZVFH-NEXT:    vsetvli zero, a2, e16, m8, ta, ma3516; ZVFH-NEXT:    vmfeq.vv v16, v24, v8, v0.t3517; ZVFH-NEXT:    vsetvli a0, zero, e8, m1, ta, ma3518; ZVFH-NEXT:    vslideup.vx v16, v6, a13519; ZVFH-NEXT:    vmv.v.v v0, v163520; ZVFH-NEXT:    csrr a0, vlenb3521; ZVFH-NEXT:    slli a0, a0, 33522; ZVFH-NEXT:    add sp, sp, a03523; ZVFH-NEXT:    .cfi_def_cfa sp, 163524; ZVFH-NEXT:    addi sp, sp, 163525; ZVFH-NEXT:    .cfi_def_cfa_offset 03526; ZVFH-NEXT:    ret3527;3528; ZVFHMIN-LABEL: fcmp_oeq_vv_nxv64f16:3529; ZVFHMIN:       # %bb.0:3530; ZVFHMIN-NEXT:    addi sp, sp, -163531; ZVFHMIN-NEXT:    .cfi_def_cfa_offset 163532; ZVFHMIN-NEXT:    csrr a1, vlenb3533; ZVFHMIN-NEXT:    mv a3, a13534; ZVFHMIN-NEXT:    slli a1, a1, 13535; ZVFHMIN-NEXT:    add a3, a3, a13536; ZVFHMIN-NEXT:    slli a1, a1, 23537; ZVFHMIN-NEXT:    add a3, a3, a13538; ZVFHMIN-NEXT:    slli a1, a1, 13539; ZVFHMIN-NEXT:    add a1, a1, a33540; ZVFHMIN-NEXT:    sub sp, sp, a13541; ZVFHMIN-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x1b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 27 * vlenb3542; ZVFHMIN-NEXT:    csrr a1, vlenb3543; ZVFHMIN-NEXT:    slli a1, a1, 13544; ZVFHMIN-NEXT:    mv a3, a13545; ZVFHMIN-NEXT:    slli a1, a1, 23546; ZVFHMIN-NEXT:    add a3, a3, a13547; ZVFHMIN-NEXT:    slli a1, a1, 13548; ZVFHMIN-NEXT:    add a1, a1, a33549; ZVFHMIN-NEXT:    add a1, sp, a13550; ZVFHMIN-NEXT:    addi a1, a1, 163551; ZVFHMIN-NEXT:    vs1r.v v0, (a1) # vscale x 8-byte Folded Spill3552; ZVFHMIN-NEXT:    vsetvli a1, zero, e8, m1, ta, ma3553; ZVFHMIN-NEXT:    vmv8r.v v0, v163554; ZVFHMIN-NEXT:    csrr a1, vlenb3555; ZVFHMIN-NEXT:    slli a1, a1, 13556; ZVFHMIN-NEXT:    mv a3, a13557; ZVFHMIN-NEXT:    slli a1, a1, 33558; ZVFHMIN-NEXT:    add a1, a1, a33559; ZVFHMIN-NEXT:    add a1, sp, a13560; ZVFHMIN-NEXT:    addi a1, a1, 163561; ZVFHMIN-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill3562; ZVFHMIN-NEXT:    csrr a3, vlenb3563; ZVFHMIN-NEXT:    slli a1, a3, 33564; ZVFHMIN-NEXT:    slli a5, a3, 23565; ZVFHMIN-NEXT:    slli a4, a3, 13566; ZVFHMIN-NEXT:    add a1, a0, a13567; ZVFHMIN-NEXT:    sub a6, a2, a53568; ZVFHMIN-NEXT:    vl8re16.v v24, (a1)3569; ZVFHMIN-NEXT:    sltu a1, a2, a63570; ZVFHMIN-NEXT:    addi a1, a1, -13571; ZVFHMIN-NEXT:    and a6, a1, a63572; ZVFHMIN-NEXT:    sub a1, a6, a43573; ZVFHMIN-NEXT:    sltu a7, a6, a13574; ZVFHMIN-NEXT:    addi a7, a7, -13575; ZVFHMIN-NEXT:    and a7, a7, a13576; ZVFHMIN-NEXT:    srli a1, a3, 13577; ZVFHMIN-NEXT:    srli a3, a3, 23578; ZVFHMIN-NEXT:    csrr t0, vlenb3579; ZVFHMIN-NEXT:    slli t0, t0, 13580; ZVFHMIN-NEXT:    mv t1, t03581; ZVFHMIN-NEXT:    slli t0, t0, 23582; ZVFHMIN-NEXT:    add t1, t1, t03583; ZVFHMIN-NEXT:    slli t0, t0, 13584; ZVFHMIN-NEXT:    add t0, t0, t13585; ZVFHMIN-NEXT:    add t0, sp, t03586; ZVFHMIN-NEXT:    addi t0, t0, 163587; ZVFHMIN-NEXT:    vl1r.v v8, (t0) # vscale x 8-byte Folded Reload3588; ZVFHMIN-NEXT:    vslidedown.vx v16, v8, a13589; ZVFHMIN-NEXT:    vl8re16.v v8, (a0)3590; ZVFHMIN-NEXT:    csrr a0, vlenb3591; ZVFHMIN-NEXT:    slli a0, a0, 13592; ZVFHMIN-NEXT:    mv t0, a03593; ZVFHMIN-NEXT:    slli a0, a0, 23594; ZVFHMIN-NEXT:    add a0, a0, t03595; ZVFHMIN-NEXT:    add a0, sp, a03596; ZVFHMIN-NEXT:    addi a0, a0, 163597; ZVFHMIN-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill3598; ZVFHMIN-NEXT:    csrr a0, vlenb3599; ZVFHMIN-NEXT:    add a0, sp, a03600; ZVFHMIN-NEXT:    addi a0, a0, 163601; ZVFHMIN-NEXT:    vs1r.v v16, (a0) # vscale x 8-byte Folded Spill3602; ZVFHMIN-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma3603; ZVFHMIN-NEXT:    vslidedown.vx v8, v16, a33604; ZVFHMIN-NEXT:    addi a0, sp, 163605; ZVFHMIN-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill3606; ZVFHMIN-NEXT:    vsetvli zero, a7, e16, m4, ta, ma3607; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v283608; ZVFHMIN-NEXT:    csrr a0, vlenb3609; ZVFHMIN-NEXT:    slli a0, a0, 13610; ZVFHMIN-NEXT:    add a0, sp, a03611; ZVFHMIN-NEXT:    addi a0, a0, 163612; ZVFHMIN-NEXT:    vs8r.v v0, (a0) # vscale x 64-byte Folded Spill3613; ZVFHMIN-NEXT:    vfwcvt.f.f.v v8, v43614; ZVFHMIN-NEXT:    bltu a6, a4, .LBB171_23615; ZVFHMIN-NEXT:  # %bb.1:3616; ZVFHMIN-NEXT:    mv a6, a43617; ZVFHMIN-NEXT:  .LBB171_2:3618; ZVFHMIN-NEXT:    addi a0, sp, 163619; ZVFHMIN-NEXT:    vl1r.v v0, (a0) # vscale x 8-byte Folded Reload3620; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m8, ta, ma3621; ZVFHMIN-NEXT:    vmfeq.vv v5, v8, v16, v0.t3622; ZVFHMIN-NEXT:    vsetvli zero, a6, e16, m4, ta, ma3623; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v243624; ZVFHMIN-NEXT:    csrr a0, vlenb3625; ZVFHMIN-NEXT:    slli a0, a0, 13626; ZVFHMIN-NEXT:    add a0, sp, a03627; ZVFHMIN-NEXT:    addi a0, a0, 163628; ZVFHMIN-NEXT:    vl8r.v v8, (a0) # vscale x 64-byte Folded Reload3629; ZVFHMIN-NEXT:    vfwcvt.f.f.v v24, v83630; ZVFHMIN-NEXT:    csrr a0, vlenb3631; ZVFHMIN-NEXT:    add a0, sp, a03632; ZVFHMIN-NEXT:    addi a0, a0, 163633; ZVFHMIN-NEXT:    vl1r.v v0, (a0) # vscale x 8-byte Folded Reload3634; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m8, ta, ma3635; ZVFHMIN-NEXT:    vmfeq.vv v7, v24, v16, v0.t3636; ZVFHMIN-NEXT:    bltu a2, a5, .LBB171_43637; ZVFHMIN-NEXT:  # %bb.3:3638; ZVFHMIN-NEXT:    mv a2, a53639; ZVFHMIN-NEXT:  .LBB171_4:3640; ZVFHMIN-NEXT:    sub a0, a2, a43641; ZVFHMIN-NEXT:    csrr a5, vlenb3642; ZVFHMIN-NEXT:    slli a5, a5, 13643; ZVFHMIN-NEXT:    mv a6, a53644; ZVFHMIN-NEXT:    slli a5, a5, 23645; ZVFHMIN-NEXT:    add a6, a6, a53646; ZVFHMIN-NEXT:    slli a5, a5, 13647; ZVFHMIN-NEXT:    add a5, a5, a63648; ZVFHMIN-NEXT:    add a5, sp, a53649; ZVFHMIN-NEXT:    addi a5, a5, 163650; ZVFHMIN-NEXT:    vl1r.v v8, (a5) # vscale x 8-byte Folded Reload3651; ZVFHMIN-NEXT:    vsetvli a5, zero, e8, mf2, ta, ma3652; ZVFHMIN-NEXT:    vslidedown.vx v0, v8, a33653; ZVFHMIN-NEXT:    sltu a5, a2, a03654; ZVFHMIN-NEXT:    addi a5, a5, -13655; ZVFHMIN-NEXT:    and a0, a5, a03656; ZVFHMIN-NEXT:    csrr a5, vlenb3657; ZVFHMIN-NEXT:    slli a5, a5, 13658; ZVFHMIN-NEXT:    mv a6, a53659; ZVFHMIN-NEXT:    slli a5, a5, 33660; ZVFHMIN-NEXT:    add a5, a5, a63661; ZVFHMIN-NEXT:    add a5, sp, a53662; ZVFHMIN-NEXT:    addi a5, a5, 163663; ZVFHMIN-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload3664; ZVFHMIN-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3665; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v283666; ZVFHMIN-NEXT:    csrr a0, vlenb3667; ZVFHMIN-NEXT:    slli a0, a0, 13668; ZVFHMIN-NEXT:    mv a5, a03669; ZVFHMIN-NEXT:    slli a0, a0, 23670; ZVFHMIN-NEXT:    add a0, a0, a53671; ZVFHMIN-NEXT:    add a0, sp, a03672; ZVFHMIN-NEXT:    addi a0, a0, 163673; ZVFHMIN-NEXT:    vl8r.v v8, (a0) # vscale x 64-byte Folded Reload3674; ZVFHMIN-NEXT:    vfwcvt.f.f.v v24, v123675; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m8, ta, ma3676; ZVFHMIN-NEXT:    vmfeq.vv v10, v16, v24, v0.t3677; ZVFHMIN-NEXT:    vmv1r.v v9, v73678; ZVFHMIN-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma3679; ZVFHMIN-NEXT:    vslideup.vx v9, v5, a33680; ZVFHMIN-NEXT:    bltu a2, a4, .LBB171_63681; ZVFHMIN-NEXT:  # %bb.5:3682; ZVFHMIN-NEXT:    mv a2, a43683; ZVFHMIN-NEXT:  .LBB171_6:3684; ZVFHMIN-NEXT:    csrr a0, vlenb3685; ZVFHMIN-NEXT:    slli a0, a0, 13686; ZVFHMIN-NEXT:    mv a4, a03687; ZVFHMIN-NEXT:    slli a0, a0, 33688; ZVFHMIN-NEXT:    add a0, a0, a43689; ZVFHMIN-NEXT:    add a0, sp, a03690; ZVFHMIN-NEXT:    addi a0, a0, 163691; ZVFHMIN-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload3692; ZVFHMIN-NEXT:    vsetvli zero, a2, e16, m4, ta, ma3693; ZVFHMIN-NEXT:    vfwcvt.f.f.v v16, v243694; ZVFHMIN-NEXT:    csrr a0, vlenb3695; ZVFHMIN-NEXT:    slli a0, a0, 13696; ZVFHMIN-NEXT:    mv a2, a03697; ZVFHMIN-NEXT:    slli a0, a0, 23698; ZVFHMIN-NEXT:    add a0, a0, a23699; ZVFHMIN-NEXT:    add a0, sp, a03700; ZVFHMIN-NEXT:    addi a0, a0, 163701; ZVFHMIN-NEXT:    vl8r.v v0, (a0) # vscale x 64-byte Folded Reload3702; ZVFHMIN-NEXT:    vfwcvt.f.f.v v24, v03703; ZVFHMIN-NEXT:    csrr a0, vlenb3704; ZVFHMIN-NEXT:    slli a0, a0, 13705; ZVFHMIN-NEXT:    mv a2, a03706; ZVFHMIN-NEXT:    slli a0, a0, 23707; ZVFHMIN-NEXT:    add a2, a2, a03708; ZVFHMIN-NEXT:    slli a0, a0, 13709; ZVFHMIN-NEXT:    add a0, a0, a23710; ZVFHMIN-NEXT:    add a0, sp, a03711; ZVFHMIN-NEXT:    addi a0, a0, 163712; ZVFHMIN-NEXT:    vl1r.v v0, (a0) # vscale x 8-byte Folded Reload3713; ZVFHMIN-NEXT:    vsetvli zero, zero, e32, m8, ta, ma3714; ZVFHMIN-NEXT:    vmfeq.vv v8, v16, v24, v0.t3715; ZVFHMIN-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma3716; ZVFHMIN-NEXT:    vslideup.vx v8, v10, a33717; ZVFHMIN-NEXT:    vsetvli a0, zero, e8, m1, ta, ma3718; ZVFHMIN-NEXT:    vslideup.vx v8, v9, a13719; ZVFHMIN-NEXT:    vmv.v.v v0, v83720; ZVFHMIN-NEXT:    csrr a0, vlenb3721; ZVFHMIN-NEXT:    mv a1, a03722; ZVFHMIN-NEXT:    slli a0, a0, 13723; ZVFHMIN-NEXT:    add a1, a1, a03724; ZVFHMIN-NEXT:    slli a0, a0, 23725; ZVFHMIN-NEXT:    add a1, a1, a03726; ZVFHMIN-NEXT:    slli a0, a0, 13727; ZVFHMIN-NEXT:    add a0, a0, a13728; ZVFHMIN-NEXT:    add sp, sp, a03729; ZVFHMIN-NEXT:    .cfi_def_cfa sp, 163730; ZVFHMIN-NEXT:    addi sp, sp, 163731; ZVFHMIN-NEXT:    .cfi_def_cfa_offset 03732; ZVFHMIN-NEXT:    ret3733  %v = call <vscale x 64 x i1> @llvm.vp.fcmp.nxv64f16(<vscale x 64 x half> %va, <vscale x 64 x half> %vb, metadata !"oeq", <vscale x 64 x i1> %m, i32 %evl)3734  ret <vscale x 64 x i1> %v3735}3736 3737define <vscale x 1 x i1> @fcmp_oeq_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3738; CHECK-LABEL: fcmp_oeq_vv_nxv1f64:3739; CHECK:       # %bb.0:3740; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3741; CHECK-NEXT:    vmfeq.vv v0, v8, v9, v0.t3742; CHECK-NEXT:    ret3743  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)3744  ret <vscale x 1 x i1> %v3745}3746 3747define <vscale x 1 x i1> @fcmp_oeq_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3748; CHECK-LABEL: fcmp_oeq_vf_nxv1f64:3749; CHECK:       # %bb.0:3750; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3751; CHECK-NEXT:    vmfeq.vf v0, v8, fa0, v0.t3752; CHECK-NEXT:    ret3753  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03754  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3755  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)3756  ret <vscale x 1 x i1> %v3757}3758 3759define <vscale x 1 x i1> @fcmp_oeq_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3760; CHECK-LABEL: fcmp_oeq_vf_swap_nxv1f64:3761; CHECK:       # %bb.0:3762; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3763; CHECK-NEXT:    vmfeq.vf v0, v8, fa0, v0.t3764; CHECK-NEXT:    ret3765  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03766  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3767  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"oeq", <vscale x 1 x i1> %m, i32 %evl)3768  ret <vscale x 1 x i1> %v3769}3770 3771define <vscale x 1 x i1> @fcmp_ogt_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3772; CHECK-LABEL: fcmp_ogt_vv_nxv1f64:3773; CHECK:       # %bb.0:3774; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3775; CHECK-NEXT:    vmflt.vv v0, v9, v8, v0.t3776; CHECK-NEXT:    ret3777  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)3778  ret <vscale x 1 x i1> %v3779}3780 3781define <vscale x 1 x i1> @fcmp_ogt_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3782; CHECK-LABEL: fcmp_ogt_vf_nxv1f64:3783; CHECK:       # %bb.0:3784; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3785; CHECK-NEXT:    vmfgt.vf v0, v8, fa0, v0.t3786; CHECK-NEXT:    ret3787  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03788  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3789  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)3790  ret <vscale x 1 x i1> %v3791}3792 3793define <vscale x 1 x i1> @fcmp_ogt_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3794; CHECK-LABEL: fcmp_ogt_vf_swap_nxv1f64:3795; CHECK:       # %bb.0:3796; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3797; CHECK-NEXT:    vmflt.vf v0, v8, fa0, v0.t3798; CHECK-NEXT:    ret3799  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03800  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3801  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ogt", <vscale x 1 x i1> %m, i32 %evl)3802  ret <vscale x 1 x i1> %v3803}3804 3805define <vscale x 1 x i1> @fcmp_oge_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3806; CHECK-LABEL: fcmp_oge_vv_nxv1f64:3807; CHECK:       # %bb.0:3808; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3809; CHECK-NEXT:    vmfle.vv v0, v9, v8, v0.t3810; CHECK-NEXT:    ret3811  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)3812  ret <vscale x 1 x i1> %v3813}3814 3815define <vscale x 1 x i1> @fcmp_oge_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3816; CHECK-LABEL: fcmp_oge_vf_nxv1f64:3817; CHECK:       # %bb.0:3818; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3819; CHECK-NEXT:    vmfge.vf v0, v8, fa0, v0.t3820; CHECK-NEXT:    ret3821  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03822  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3823  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)3824  ret <vscale x 1 x i1> %v3825}3826 3827define <vscale x 1 x i1> @fcmp_oge_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3828; CHECK-LABEL: fcmp_oge_vf_swap_nxv1f64:3829; CHECK:       # %bb.0:3830; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3831; CHECK-NEXT:    vmfle.vf v0, v8, fa0, v0.t3832; CHECK-NEXT:    ret3833  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03834  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3835  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"oge", <vscale x 1 x i1> %m, i32 %evl)3836  ret <vscale x 1 x i1> %v3837}3838 3839define <vscale x 1 x i1> @fcmp_olt_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3840; CHECK-LABEL: fcmp_olt_vv_nxv1f64:3841; CHECK:       # %bb.0:3842; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3843; CHECK-NEXT:    vmflt.vv v0, v8, v9, v0.t3844; CHECK-NEXT:    ret3845  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)3846  ret <vscale x 1 x i1> %v3847}3848 3849define <vscale x 1 x i1> @fcmp_olt_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3850; CHECK-LABEL: fcmp_olt_vf_nxv1f64:3851; CHECK:       # %bb.0:3852; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3853; CHECK-NEXT:    vmflt.vf v0, v8, fa0, v0.t3854; CHECK-NEXT:    ret3855  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03856  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3857  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)3858  ret <vscale x 1 x i1> %v3859}3860 3861define <vscale x 1 x i1> @fcmp_olt_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3862; CHECK-LABEL: fcmp_olt_vf_swap_nxv1f64:3863; CHECK:       # %bb.0:3864; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3865; CHECK-NEXT:    vmfgt.vf v0, v8, fa0, v0.t3866; CHECK-NEXT:    ret3867  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03868  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3869  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"olt", <vscale x 1 x i1> %m, i32 %evl)3870  ret <vscale x 1 x i1> %v3871}3872 3873define <vscale x 1 x i1> @fcmp_ole_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3874; CHECK-LABEL: fcmp_ole_vv_nxv1f64:3875; CHECK:       # %bb.0:3876; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3877; CHECK-NEXT:    vmfle.vv v0, v8, v9, v0.t3878; CHECK-NEXT:    ret3879  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)3880  ret <vscale x 1 x i1> %v3881}3882 3883define <vscale x 1 x i1> @fcmp_ole_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3884; CHECK-LABEL: fcmp_ole_vf_nxv1f64:3885; CHECK:       # %bb.0:3886; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3887; CHECK-NEXT:    vmfle.vf v0, v8, fa0, v0.t3888; CHECK-NEXT:    ret3889  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03890  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3891  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)3892  ret <vscale x 1 x i1> %v3893}3894 3895define <vscale x 1 x i1> @fcmp_ole_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3896; CHECK-LABEL: fcmp_ole_vf_swap_nxv1f64:3897; CHECK:       # %bb.0:3898; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3899; CHECK-NEXT:    vmfge.vf v0, v8, fa0, v0.t3900; CHECK-NEXT:    ret3901  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03902  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3903  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ole", <vscale x 1 x i1> %m, i32 %evl)3904  ret <vscale x 1 x i1> %v3905}3906 3907define <vscale x 1 x i1> @fcmp_one_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3908; CHECK-LABEL: fcmp_one_vv_nxv1f64:3909; CHECK:       # %bb.0:3910; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3911; CHECK-NEXT:    vmflt.vv v10, v8, v9, v0.t3912; CHECK-NEXT:    vmflt.vv v8, v9, v8, v0.t3913; CHECK-NEXT:    vmor.mm v0, v8, v103914; CHECK-NEXT:    ret3915  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)3916  ret <vscale x 1 x i1> %v3917}3918 3919define <vscale x 1 x i1> @fcmp_one_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3920; CHECK-LABEL: fcmp_one_vf_nxv1f64:3921; CHECK:       # %bb.0:3922; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3923; CHECK-NEXT:    vmflt.vf v9, v8, fa0, v0.t3924; CHECK-NEXT:    vmfgt.vf v8, v8, fa0, v0.t3925; CHECK-NEXT:    vmor.mm v0, v8, v93926; CHECK-NEXT:    ret3927  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03928  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3929  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)3930  ret <vscale x 1 x i1> %v3931}3932 3933define <vscale x 1 x i1> @fcmp_one_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3934; CHECK-LABEL: fcmp_one_vf_swap_nxv1f64:3935; CHECK:       # %bb.0:3936; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3937; CHECK-NEXT:    vmfgt.vf v9, v8, fa0, v0.t3938; CHECK-NEXT:    vmflt.vf v8, v8, fa0, v0.t3939; CHECK-NEXT:    vmor.mm v0, v8, v93940; CHECK-NEXT:    ret3941  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03942  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3943  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"one", <vscale x 1 x i1> %m, i32 %evl)3944  ret <vscale x 1 x i1> %v3945}3946 3947define <vscale x 1 x i1> @fcmp_ord_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3948; CHECK-LABEL: fcmp_ord_vv_nxv1f64:3949; CHECK:       # %bb.0:3950; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3951; CHECK-NEXT:    vmfeq.vv v9, v9, v9, v0.t3952; CHECK-NEXT:    vmfeq.vv v8, v8, v8, v0.t3953; CHECK-NEXT:    vmand.mm v0, v8, v93954; CHECK-NEXT:    ret3955  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)3956  ret <vscale x 1 x i1> %v3957}3958 3959define <vscale x 1 x i1> @fcmp_ord_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3960; CHECK-LABEL: fcmp_ord_vf_nxv1f64:3961; CHECK:       # %bb.0:3962; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3963; CHECK-NEXT:    vfmv.v.f v9, fa03964; CHECK-NEXT:    vmfeq.vf v9, v9, fa0, v0.t3965; CHECK-NEXT:    vmfeq.vv v8, v8, v8, v0.t3966; CHECK-NEXT:    vmand.mm v0, v8, v93967; CHECK-NEXT:    ret3968  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03969  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3970  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)3971  ret <vscale x 1 x i1> %v3972}3973 3974define <vscale x 1 x i1> @fcmp_ord_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {3975; CHECK-LABEL: fcmp_ord_vf_swap_nxv1f64:3976; CHECK:       # %bb.0:3977; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3978; CHECK-NEXT:    vfmv.v.f v9, fa03979; CHECK-NEXT:    vmfeq.vf v9, v9, fa0, v0.t3980; CHECK-NEXT:    vmfeq.vv v8, v8, v8, v0.t3981; CHECK-NEXT:    vmand.mm v0, v9, v83982; CHECK-NEXT:    ret3983  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 03984  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer3985  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ord", <vscale x 1 x i1> %m, i32 %evl)3986  ret <vscale x 1 x i1> %v3987}3988 3989define <vscale x 1 x i1> @fcmp_ueq_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {3990; CHECK-LABEL: fcmp_ueq_vv_nxv1f64:3991; CHECK:       # %bb.0:3992; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma3993; CHECK-NEXT:    vmflt.vv v10, v8, v9, v0.t3994; CHECK-NEXT:    vmflt.vv v8, v9, v8, v0.t3995; CHECK-NEXT:    vmnor.mm v0, v8, v103996; CHECK-NEXT:    ret3997  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)3998  ret <vscale x 1 x i1> %v3999}4000 4001define <vscale x 1 x i1> @fcmp_ueq_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4002; CHECK-LABEL: fcmp_ueq_vf_nxv1f64:4003; CHECK:       # %bb.0:4004; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4005; CHECK-NEXT:    vmflt.vf v9, v8, fa0, v0.t4006; CHECK-NEXT:    vmfgt.vf v8, v8, fa0, v0.t4007; CHECK-NEXT:    vmnor.mm v0, v8, v94008; CHECK-NEXT:    ret4009  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04010  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4011  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)4012  ret <vscale x 1 x i1> %v4013}4014 4015define <vscale x 1 x i1> @fcmp_ueq_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4016; CHECK-LABEL: fcmp_ueq_vf_swap_nxv1f64:4017; CHECK:       # %bb.0:4018; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4019; CHECK-NEXT:    vmfgt.vf v9, v8, fa0, v0.t4020; CHECK-NEXT:    vmflt.vf v8, v8, fa0, v0.t4021; CHECK-NEXT:    vmnor.mm v0, v8, v94022; CHECK-NEXT:    ret4023  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04024  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4025  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ueq", <vscale x 1 x i1> %m, i32 %evl)4026  ret <vscale x 1 x i1> %v4027}4028 4029define <vscale x 1 x i1> @fcmp_ugt_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {4030; CHECK-LABEL: fcmp_ugt_vv_nxv1f64:4031; CHECK:       # %bb.0:4032; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4033; CHECK-NEXT:    vmfle.vv v8, v8, v9, v0.t4034; CHECK-NEXT:    vmnot.m v0, v84035; CHECK-NEXT:    ret4036  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)4037  ret <vscale x 1 x i1> %v4038}4039 4040define <vscale x 1 x i1> @fcmp_ugt_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4041; CHECK-LABEL: fcmp_ugt_vf_nxv1f64:4042; CHECK:       # %bb.0:4043; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4044; CHECK-NEXT:    vmfle.vf v8, v8, fa0, v0.t4045; CHECK-NEXT:    vmnot.m v0, v84046; CHECK-NEXT:    ret4047  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04048  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4049  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)4050  ret <vscale x 1 x i1> %v4051}4052 4053define <vscale x 1 x i1> @fcmp_ugt_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4054; CHECK-LABEL: fcmp_ugt_vf_swap_nxv1f64:4055; CHECK:       # %bb.0:4056; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4057; CHECK-NEXT:    vmfge.vf v8, v8, fa0, v0.t4058; CHECK-NEXT:    vmnot.m v0, v84059; CHECK-NEXT:    ret4060  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04061  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4062  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ugt", <vscale x 1 x i1> %m, i32 %evl)4063  ret <vscale x 1 x i1> %v4064}4065 4066define <vscale x 1 x i1> @fcmp_uge_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {4067; CHECK-LABEL: fcmp_uge_vv_nxv1f64:4068; CHECK:       # %bb.0:4069; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4070; CHECK-NEXT:    vmflt.vv v8, v8, v9, v0.t4071; CHECK-NEXT:    vmnot.m v0, v84072; CHECK-NEXT:    ret4073  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)4074  ret <vscale x 1 x i1> %v4075}4076 4077define <vscale x 1 x i1> @fcmp_uge_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4078; CHECK-LABEL: fcmp_uge_vf_nxv1f64:4079; CHECK:       # %bb.0:4080; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4081; CHECK-NEXT:    vmflt.vf v8, v8, fa0, v0.t4082; CHECK-NEXT:    vmnot.m v0, v84083; CHECK-NEXT:    ret4084  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04085  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4086  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)4087  ret <vscale x 1 x i1> %v4088}4089 4090define <vscale x 1 x i1> @fcmp_uge_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4091; CHECK-LABEL: fcmp_uge_vf_swap_nxv1f64:4092; CHECK:       # %bb.0:4093; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4094; CHECK-NEXT:    vmfgt.vf v8, v8, fa0, v0.t4095; CHECK-NEXT:    vmnot.m v0, v84096; CHECK-NEXT:    ret4097  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04098  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4099  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"uge", <vscale x 1 x i1> %m, i32 %evl)4100  ret <vscale x 1 x i1> %v4101}4102 4103define <vscale x 1 x i1> @fcmp_ult_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {4104; CHECK-LABEL: fcmp_ult_vv_nxv1f64:4105; CHECK:       # %bb.0:4106; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4107; CHECK-NEXT:    vmfle.vv v8, v9, v8, v0.t4108; CHECK-NEXT:    vmnot.m v0, v84109; CHECK-NEXT:    ret4110  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)4111  ret <vscale x 1 x i1> %v4112}4113 4114define <vscale x 1 x i1> @fcmp_ult_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4115; CHECK-LABEL: fcmp_ult_vf_nxv1f64:4116; CHECK:       # %bb.0:4117; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4118; CHECK-NEXT:    vmfge.vf v8, v8, fa0, v0.t4119; CHECK-NEXT:    vmnot.m v0, v84120; CHECK-NEXT:    ret4121  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04122  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4123  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)4124  ret <vscale x 1 x i1> %v4125}4126 4127define <vscale x 1 x i1> @fcmp_ult_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4128; CHECK-LABEL: fcmp_ult_vf_swap_nxv1f64:4129; CHECK:       # %bb.0:4130; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4131; CHECK-NEXT:    vmfle.vf v8, v8, fa0, v0.t4132; CHECK-NEXT:    vmnot.m v0, v84133; CHECK-NEXT:    ret4134  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04135  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4136  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ult", <vscale x 1 x i1> %m, i32 %evl)4137  ret <vscale x 1 x i1> %v4138}4139 4140define <vscale x 1 x i1> @fcmp_ule_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {4141; CHECK-LABEL: fcmp_ule_vv_nxv1f64:4142; CHECK:       # %bb.0:4143; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4144; CHECK-NEXT:    vmflt.vv v8, v9, v8, v0.t4145; CHECK-NEXT:    vmnot.m v0, v84146; CHECK-NEXT:    ret4147  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)4148  ret <vscale x 1 x i1> %v4149}4150 4151define <vscale x 1 x i1> @fcmp_ule_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4152; CHECK-LABEL: fcmp_ule_vf_nxv1f64:4153; CHECK:       # %bb.0:4154; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4155; CHECK-NEXT:    vmfgt.vf v8, v8, fa0, v0.t4156; CHECK-NEXT:    vmnot.m v0, v84157; CHECK-NEXT:    ret4158  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04159  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4160  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)4161  ret <vscale x 1 x i1> %v4162}4163 4164define <vscale x 1 x i1> @fcmp_ule_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4165; CHECK-LABEL: fcmp_ule_vf_swap_nxv1f64:4166; CHECK:       # %bb.0:4167; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4168; CHECK-NEXT:    vmflt.vf v8, v8, fa0, v0.t4169; CHECK-NEXT:    vmnot.m v0, v84170; CHECK-NEXT:    ret4171  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04172  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4173  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"ule", <vscale x 1 x i1> %m, i32 %evl)4174  ret <vscale x 1 x i1> %v4175}4176 4177define <vscale x 1 x i1> @fcmp_une_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {4178; CHECK-LABEL: fcmp_une_vv_nxv1f64:4179; CHECK:       # %bb.0:4180; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4181; CHECK-NEXT:    vmfne.vv v0, v8, v9, v0.t4182; CHECK-NEXT:    ret4183  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)4184  ret <vscale x 1 x i1> %v4185}4186 4187define <vscale x 1 x i1> @fcmp_une_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4188; CHECK-LABEL: fcmp_une_vf_nxv1f64:4189; CHECK:       # %bb.0:4190; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4191; CHECK-NEXT:    vmfne.vf v0, v8, fa0, v0.t4192; CHECK-NEXT:    ret4193  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04194  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4195  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)4196  ret <vscale x 1 x i1> %v4197}4198 4199define <vscale x 1 x i1> @fcmp_une_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4200; CHECK-LABEL: fcmp_une_vf_swap_nxv1f64:4201; CHECK:       # %bb.0:4202; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4203; CHECK-NEXT:    vmfne.vf v0, v8, fa0, v0.t4204; CHECK-NEXT:    ret4205  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04206  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4207  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"une", <vscale x 1 x i1> %m, i32 %evl)4208  ret <vscale x 1 x i1> %v4209}4210 4211define <vscale x 1 x i1> @fcmp_uno_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32 zeroext %evl) {4212; CHECK-LABEL: fcmp_uno_vv_nxv1f64:4213; CHECK:       # %bb.0:4214; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4215; CHECK-NEXT:    vmfne.vv v9, v9, v9, v0.t4216; CHECK-NEXT:    vmfne.vv v8, v8, v8, v0.t4217; CHECK-NEXT:    vmor.mm v0, v8, v94218; CHECK-NEXT:    ret4219  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)4220  ret <vscale x 1 x i1> %v4221}4222 4223define <vscale x 1 x i1> @fcmp_uno_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4224; CHECK-LABEL: fcmp_uno_vf_nxv1f64:4225; CHECK:       # %bb.0:4226; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4227; CHECK-NEXT:    vfmv.v.f v9, fa04228; CHECK-NEXT:    vmfne.vf v9, v9, fa0, v0.t4229; CHECK-NEXT:    vmfne.vv v8, v8, v8, v0.t4230; CHECK-NEXT:    vmor.mm v0, v8, v94231; CHECK-NEXT:    ret4232  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04233  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4234  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)4235  ret <vscale x 1 x i1> %v4236}4237 4238define <vscale x 1 x i1> @fcmp_uno_vf_swap_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {4239; CHECK-LABEL: fcmp_uno_vf_swap_nxv1f64:4240; CHECK:       # %bb.0:4241; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma4242; CHECK-NEXT:    vfmv.v.f v9, fa04243; CHECK-NEXT:    vmfne.vf v9, v9, fa0, v0.t4244; CHECK-NEXT:    vmfne.vv v8, v8, v8, v0.t4245; CHECK-NEXT:    vmor.mm v0, v9, v84246; CHECK-NEXT:    ret4247  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 04248  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer4249  %v = call <vscale x 1 x i1> @llvm.vp.fcmp.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, metadata !"uno", <vscale x 1 x i1> %m, i32 %evl)4250  ret <vscale x 1 x i1> %v4251}4252 4253define <vscale x 3 x i1> @fcmp_oeq_vv_nxv3f64(<vscale x 3 x double> %va, <vscale x 3 x double> %vb, <vscale x 3 x i1> %m, i32 zeroext %evl) {4254; CHECK-LABEL: fcmp_oeq_vv_nxv3f64:4255; CHECK:       # %bb.0:4256; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma4257; CHECK-NEXT:    vmfeq.vv v16, v8, v12, v0.t4258; CHECK-NEXT:    vmv1r.v v0, v164259; CHECK-NEXT:    ret4260  %v = call <vscale x 3 x i1> @llvm.vp.fcmp.nxv3f64(<vscale x 3 x double> %va, <vscale x 3 x double> %vb, metadata !"oeq", <vscale x 3 x i1> %m, i32 %evl)4261  ret <vscale x 3 x i1> %v4262}4263 4264define <vscale x 8 x i1> @fcmp_oeq_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4265; CHECK-LABEL: fcmp_oeq_vv_nxv8f64:4266; CHECK:       # %bb.0:4267; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4268; CHECK-NEXT:    vmfeq.vv v24, v8, v16, v0.t4269; CHECK-NEXT:    vmv1r.v v0, v244270; CHECK-NEXT:    ret4271  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)4272  ret <vscale x 8 x i1> %v4273}4274 4275define <vscale x 8 x i1> @fcmp_oeq_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4276; CHECK-LABEL: fcmp_oeq_vf_nxv8f64:4277; CHECK:       # %bb.0:4278; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4279; CHECK-NEXT:    vmfeq.vf v16, v8, fa0, v0.t4280; CHECK-NEXT:    vmv1r.v v0, v164281; CHECK-NEXT:    ret4282  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04283  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4284  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)4285  ret <vscale x 8 x i1> %v4286}4287 4288define <vscale x 8 x i1> @fcmp_oeq_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4289; CHECK-LABEL: fcmp_oeq_vf_swap_nxv8f64:4290; CHECK:       # %bb.0:4291; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4292; CHECK-NEXT:    vmfeq.vf v16, v8, fa0, v0.t4293; CHECK-NEXT:    vmv1r.v v0, v164294; CHECK-NEXT:    ret4295  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04296  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4297  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"oeq", <vscale x 8 x i1> %m, i32 %evl)4298  ret <vscale x 8 x i1> %v4299}4300 4301define <vscale x 8 x i1> @fcmp_ogt_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4302; CHECK-LABEL: fcmp_ogt_vv_nxv8f64:4303; CHECK:       # %bb.0:4304; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4305; CHECK-NEXT:    vmflt.vv v24, v16, v8, v0.t4306; CHECK-NEXT:    vmv1r.v v0, v244307; CHECK-NEXT:    ret4308  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)4309  ret <vscale x 8 x i1> %v4310}4311 4312define <vscale x 8 x i1> @fcmp_ogt_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4313; CHECK-LABEL: fcmp_ogt_vf_nxv8f64:4314; CHECK:       # %bb.0:4315; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4316; CHECK-NEXT:    vmfgt.vf v16, v8, fa0, v0.t4317; CHECK-NEXT:    vmv1r.v v0, v164318; CHECK-NEXT:    ret4319  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04320  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4321  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)4322  ret <vscale x 8 x i1> %v4323}4324 4325define <vscale x 8 x i1> @fcmp_ogt_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4326; CHECK-LABEL: fcmp_ogt_vf_swap_nxv8f64:4327; CHECK:       # %bb.0:4328; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4329; CHECK-NEXT:    vmflt.vf v16, v8, fa0, v0.t4330; CHECK-NEXT:    vmv1r.v v0, v164331; CHECK-NEXT:    ret4332  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04333  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4334  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ogt", <vscale x 8 x i1> %m, i32 %evl)4335  ret <vscale x 8 x i1> %v4336}4337 4338define <vscale x 8 x i1> @fcmp_oge_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4339; CHECK-LABEL: fcmp_oge_vv_nxv8f64:4340; CHECK:       # %bb.0:4341; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4342; CHECK-NEXT:    vmfle.vv v24, v16, v8, v0.t4343; CHECK-NEXT:    vmv1r.v v0, v244344; CHECK-NEXT:    ret4345  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)4346  ret <vscale x 8 x i1> %v4347}4348 4349define <vscale x 8 x i1> @fcmp_oge_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4350; CHECK-LABEL: fcmp_oge_vf_nxv8f64:4351; CHECK:       # %bb.0:4352; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4353; CHECK-NEXT:    vmfge.vf v16, v8, fa0, v0.t4354; CHECK-NEXT:    vmv1r.v v0, v164355; CHECK-NEXT:    ret4356  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04357  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4358  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)4359  ret <vscale x 8 x i1> %v4360}4361 4362define <vscale x 8 x i1> @fcmp_oge_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4363; CHECK-LABEL: fcmp_oge_vf_swap_nxv8f64:4364; CHECK:       # %bb.0:4365; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4366; CHECK-NEXT:    vmfle.vf v16, v8, fa0, v0.t4367; CHECK-NEXT:    vmv1r.v v0, v164368; CHECK-NEXT:    ret4369  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04370  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4371  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"oge", <vscale x 8 x i1> %m, i32 %evl)4372  ret <vscale x 8 x i1> %v4373}4374 4375define <vscale x 8 x i1> @fcmp_olt_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4376; CHECK-LABEL: fcmp_olt_vv_nxv8f64:4377; CHECK:       # %bb.0:4378; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4379; CHECK-NEXT:    vmflt.vv v24, v8, v16, v0.t4380; CHECK-NEXT:    vmv1r.v v0, v244381; CHECK-NEXT:    ret4382  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)4383  ret <vscale x 8 x i1> %v4384}4385 4386define <vscale x 8 x i1> @fcmp_olt_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4387; CHECK-LABEL: fcmp_olt_vf_nxv8f64:4388; CHECK:       # %bb.0:4389; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4390; CHECK-NEXT:    vmflt.vf v16, v8, fa0, v0.t4391; CHECK-NEXT:    vmv1r.v v0, v164392; CHECK-NEXT:    ret4393  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04394  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4395  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)4396  ret <vscale x 8 x i1> %v4397}4398 4399define <vscale x 8 x i1> @fcmp_olt_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4400; CHECK-LABEL: fcmp_olt_vf_swap_nxv8f64:4401; CHECK:       # %bb.0:4402; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4403; CHECK-NEXT:    vmfgt.vf v16, v8, fa0, v0.t4404; CHECK-NEXT:    vmv1r.v v0, v164405; CHECK-NEXT:    ret4406  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04407  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4408  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"olt", <vscale x 8 x i1> %m, i32 %evl)4409  ret <vscale x 8 x i1> %v4410}4411 4412define <vscale x 8 x i1> @fcmp_ole_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4413; CHECK-LABEL: fcmp_ole_vv_nxv8f64:4414; CHECK:       # %bb.0:4415; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4416; CHECK-NEXT:    vmfle.vv v24, v8, v16, v0.t4417; CHECK-NEXT:    vmv1r.v v0, v244418; CHECK-NEXT:    ret4419  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)4420  ret <vscale x 8 x i1> %v4421}4422 4423define <vscale x 8 x i1> @fcmp_ole_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4424; CHECK-LABEL: fcmp_ole_vf_nxv8f64:4425; CHECK:       # %bb.0:4426; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4427; CHECK-NEXT:    vmfle.vf v16, v8, fa0, v0.t4428; CHECK-NEXT:    vmv1r.v v0, v164429; CHECK-NEXT:    ret4430  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04431  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4432  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)4433  ret <vscale x 8 x i1> %v4434}4435 4436define <vscale x 8 x i1> @fcmp_ole_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4437; CHECK-LABEL: fcmp_ole_vf_swap_nxv8f64:4438; CHECK:       # %bb.0:4439; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4440; CHECK-NEXT:    vmfge.vf v16, v8, fa0, v0.t4441; CHECK-NEXT:    vmv1r.v v0, v164442; CHECK-NEXT:    ret4443  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04444  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4445  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ole", <vscale x 8 x i1> %m, i32 %evl)4446  ret <vscale x 8 x i1> %v4447}4448 4449define <vscale x 8 x i1> @fcmp_one_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4450; CHECK-LABEL: fcmp_one_vv_nxv8f64:4451; CHECK:       # %bb.0:4452; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4453; CHECK-NEXT:    vmflt.vv v24, v8, v16, v0.t4454; CHECK-NEXT:    vmflt.vv v25, v16, v8, v0.t4455; CHECK-NEXT:    vmor.mm v0, v25, v244456; CHECK-NEXT:    ret4457  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)4458  ret <vscale x 8 x i1> %v4459}4460 4461define <vscale x 8 x i1> @fcmp_one_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4462; CHECK-LABEL: fcmp_one_vf_nxv8f64:4463; CHECK:       # %bb.0:4464; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4465; CHECK-NEXT:    vmflt.vf v16, v8, fa0, v0.t4466; CHECK-NEXT:    vmfgt.vf v17, v8, fa0, v0.t4467; CHECK-NEXT:    vmor.mm v0, v17, v164468; CHECK-NEXT:    ret4469  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04470  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4471  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)4472  ret <vscale x 8 x i1> %v4473}4474 4475define <vscale x 8 x i1> @fcmp_one_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4476; CHECK-LABEL: fcmp_one_vf_swap_nxv8f64:4477; CHECK:       # %bb.0:4478; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4479; CHECK-NEXT:    vmfgt.vf v16, v8, fa0, v0.t4480; CHECK-NEXT:    vmflt.vf v17, v8, fa0, v0.t4481; CHECK-NEXT:    vmor.mm v0, v17, v164482; CHECK-NEXT:    ret4483  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04484  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4485  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"one", <vscale x 8 x i1> %m, i32 %evl)4486  ret <vscale x 8 x i1> %v4487}4488 4489define <vscale x 8 x i1> @fcmp_ord_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4490; CHECK-LABEL: fcmp_ord_vv_nxv8f64:4491; CHECK:       # %bb.0:4492; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4493; CHECK-NEXT:    vmfeq.vv v24, v16, v16, v0.t4494; CHECK-NEXT:    vmfeq.vv v16, v8, v8, v0.t4495; CHECK-NEXT:    vmand.mm v0, v16, v244496; CHECK-NEXT:    ret4497  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)4498  ret <vscale x 8 x i1> %v4499}4500 4501define <vscale x 8 x i1> @fcmp_ord_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4502; CHECK-LABEL: fcmp_ord_vf_nxv8f64:4503; CHECK:       # %bb.0:4504; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4505; CHECK-NEXT:    vfmv.v.f v16, fa04506; CHECK-NEXT:    vmfeq.vf v24, v16, fa0, v0.t4507; CHECK-NEXT:    vmfeq.vv v16, v8, v8, v0.t4508; CHECK-NEXT:    vmand.mm v0, v16, v244509; CHECK-NEXT:    ret4510  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04511  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4512  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)4513  ret <vscale x 8 x i1> %v4514}4515 4516define <vscale x 8 x i1> @fcmp_ord_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4517; CHECK-LABEL: fcmp_ord_vf_swap_nxv8f64:4518; CHECK:       # %bb.0:4519; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4520; CHECK-NEXT:    vfmv.v.f v16, fa04521; CHECK-NEXT:    vmfeq.vf v24, v16, fa0, v0.t4522; CHECK-NEXT:    vmfeq.vv v16, v8, v8, v0.t4523; CHECK-NEXT:    vmand.mm v0, v24, v164524; CHECK-NEXT:    ret4525  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04526  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4527  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ord", <vscale x 8 x i1> %m, i32 %evl)4528  ret <vscale x 8 x i1> %v4529}4530 4531define <vscale x 8 x i1> @fcmp_ueq_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4532; CHECK-LABEL: fcmp_ueq_vv_nxv8f64:4533; CHECK:       # %bb.0:4534; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4535; CHECK-NEXT:    vmflt.vv v24, v8, v16, v0.t4536; CHECK-NEXT:    vmflt.vv v25, v16, v8, v0.t4537; CHECK-NEXT:    vmnor.mm v0, v25, v244538; CHECK-NEXT:    ret4539  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)4540  ret <vscale x 8 x i1> %v4541}4542 4543define <vscale x 8 x i1> @fcmp_ueq_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4544; CHECK-LABEL: fcmp_ueq_vf_nxv8f64:4545; CHECK:       # %bb.0:4546; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4547; CHECK-NEXT:    vmflt.vf v16, v8, fa0, v0.t4548; CHECK-NEXT:    vmfgt.vf v17, v8, fa0, v0.t4549; CHECK-NEXT:    vmnor.mm v0, v17, v164550; CHECK-NEXT:    ret4551  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04552  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4553  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)4554  ret <vscale x 8 x i1> %v4555}4556 4557define <vscale x 8 x i1> @fcmp_ueq_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4558; CHECK-LABEL: fcmp_ueq_vf_swap_nxv8f64:4559; CHECK:       # %bb.0:4560; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4561; CHECK-NEXT:    vmfgt.vf v16, v8, fa0, v0.t4562; CHECK-NEXT:    vmflt.vf v17, v8, fa0, v0.t4563; CHECK-NEXT:    vmnor.mm v0, v17, v164564; CHECK-NEXT:    ret4565  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04566  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4567  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ueq", <vscale x 8 x i1> %m, i32 %evl)4568  ret <vscale x 8 x i1> %v4569}4570 4571define <vscale x 8 x i1> @fcmp_ugt_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4572; CHECK-LABEL: fcmp_ugt_vv_nxv8f64:4573; CHECK:       # %bb.0:4574; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4575; CHECK-NEXT:    vmfle.vv v24, v8, v16, v0.t4576; CHECK-NEXT:    vmnot.m v0, v244577; CHECK-NEXT:    ret4578  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)4579  ret <vscale x 8 x i1> %v4580}4581 4582define <vscale x 8 x i1> @fcmp_ugt_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4583; CHECK-LABEL: fcmp_ugt_vf_nxv8f64:4584; CHECK:       # %bb.0:4585; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4586; CHECK-NEXT:    vmfle.vf v16, v8, fa0, v0.t4587; CHECK-NEXT:    vmnot.m v0, v164588; CHECK-NEXT:    ret4589  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04590  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4591  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)4592  ret <vscale x 8 x i1> %v4593}4594 4595define <vscale x 8 x i1> @fcmp_ugt_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4596; CHECK-LABEL: fcmp_ugt_vf_swap_nxv8f64:4597; CHECK:       # %bb.0:4598; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4599; CHECK-NEXT:    vmfge.vf v16, v8, fa0, v0.t4600; CHECK-NEXT:    vmnot.m v0, v164601; CHECK-NEXT:    ret4602  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04603  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4604  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ugt", <vscale x 8 x i1> %m, i32 %evl)4605  ret <vscale x 8 x i1> %v4606}4607 4608define <vscale x 8 x i1> @fcmp_uge_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4609; CHECK-LABEL: fcmp_uge_vv_nxv8f64:4610; CHECK:       # %bb.0:4611; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4612; CHECK-NEXT:    vmflt.vv v24, v8, v16, v0.t4613; CHECK-NEXT:    vmnot.m v0, v244614; CHECK-NEXT:    ret4615  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)4616  ret <vscale x 8 x i1> %v4617}4618 4619define <vscale x 8 x i1> @fcmp_uge_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4620; CHECK-LABEL: fcmp_uge_vf_nxv8f64:4621; CHECK:       # %bb.0:4622; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4623; CHECK-NEXT:    vmflt.vf v16, v8, fa0, v0.t4624; CHECK-NEXT:    vmnot.m v0, v164625; CHECK-NEXT:    ret4626  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04627  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4628  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)4629  ret <vscale x 8 x i1> %v4630}4631 4632define <vscale x 8 x i1> @fcmp_uge_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4633; CHECK-LABEL: fcmp_uge_vf_swap_nxv8f64:4634; CHECK:       # %bb.0:4635; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4636; CHECK-NEXT:    vmfgt.vf v16, v8, fa0, v0.t4637; CHECK-NEXT:    vmnot.m v0, v164638; CHECK-NEXT:    ret4639  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04640  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4641  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"uge", <vscale x 8 x i1> %m, i32 %evl)4642  ret <vscale x 8 x i1> %v4643}4644 4645define <vscale x 8 x i1> @fcmp_ult_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4646; CHECK-LABEL: fcmp_ult_vv_nxv8f64:4647; CHECK:       # %bb.0:4648; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4649; CHECK-NEXT:    vmfle.vv v24, v16, v8, v0.t4650; CHECK-NEXT:    vmnot.m v0, v244651; CHECK-NEXT:    ret4652  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)4653  ret <vscale x 8 x i1> %v4654}4655 4656define <vscale x 8 x i1> @fcmp_ult_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4657; CHECK-LABEL: fcmp_ult_vf_nxv8f64:4658; CHECK:       # %bb.0:4659; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4660; CHECK-NEXT:    vmfge.vf v16, v8, fa0, v0.t4661; CHECK-NEXT:    vmnot.m v0, v164662; CHECK-NEXT:    ret4663  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04664  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4665  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)4666  ret <vscale x 8 x i1> %v4667}4668 4669define <vscale x 8 x i1> @fcmp_ult_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4670; CHECK-LABEL: fcmp_ult_vf_swap_nxv8f64:4671; CHECK:       # %bb.0:4672; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4673; CHECK-NEXT:    vmfle.vf v16, v8, fa0, v0.t4674; CHECK-NEXT:    vmnot.m v0, v164675; CHECK-NEXT:    ret4676  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04677  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4678  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ult", <vscale x 8 x i1> %m, i32 %evl)4679  ret <vscale x 8 x i1> %v4680}4681 4682define <vscale x 8 x i1> @fcmp_ule_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4683; CHECK-LABEL: fcmp_ule_vv_nxv8f64:4684; CHECK:       # %bb.0:4685; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4686; CHECK-NEXT:    vmflt.vv v24, v16, v8, v0.t4687; CHECK-NEXT:    vmnot.m v0, v244688; CHECK-NEXT:    ret4689  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)4690  ret <vscale x 8 x i1> %v4691}4692 4693define <vscale x 8 x i1> @fcmp_ule_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4694; CHECK-LABEL: fcmp_ule_vf_nxv8f64:4695; CHECK:       # %bb.0:4696; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4697; CHECK-NEXT:    vmfgt.vf v16, v8, fa0, v0.t4698; CHECK-NEXT:    vmnot.m v0, v164699; CHECK-NEXT:    ret4700  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04701  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4702  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)4703  ret <vscale x 8 x i1> %v4704}4705 4706define <vscale x 8 x i1> @fcmp_ule_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4707; CHECK-LABEL: fcmp_ule_vf_swap_nxv8f64:4708; CHECK:       # %bb.0:4709; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4710; CHECK-NEXT:    vmflt.vf v16, v8, fa0, v0.t4711; CHECK-NEXT:    vmnot.m v0, v164712; CHECK-NEXT:    ret4713  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04714  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4715  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"ule", <vscale x 8 x i1> %m, i32 %evl)4716  ret <vscale x 8 x i1> %v4717}4718 4719define <vscale x 8 x i1> @fcmp_une_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4720; CHECK-LABEL: fcmp_une_vv_nxv8f64:4721; CHECK:       # %bb.0:4722; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4723; CHECK-NEXT:    vmfne.vv v24, v8, v16, v0.t4724; CHECK-NEXT:    vmv1r.v v0, v244725; CHECK-NEXT:    ret4726  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)4727  ret <vscale x 8 x i1> %v4728}4729 4730define <vscale x 8 x i1> @fcmp_une_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4731; CHECK-LABEL: fcmp_une_vf_nxv8f64:4732; CHECK:       # %bb.0:4733; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4734; CHECK-NEXT:    vmfne.vf v16, v8, fa0, v0.t4735; CHECK-NEXT:    vmv1r.v v0, v164736; CHECK-NEXT:    ret4737  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04738  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4739  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)4740  ret <vscale x 8 x i1> %v4741}4742 4743define <vscale x 8 x i1> @fcmp_une_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4744; CHECK-LABEL: fcmp_une_vf_swap_nxv8f64:4745; CHECK:       # %bb.0:4746; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4747; CHECK-NEXT:    vmfne.vf v16, v8, fa0, v0.t4748; CHECK-NEXT:    vmv1r.v v0, v164749; CHECK-NEXT:    ret4750  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04751  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4752  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"une", <vscale x 8 x i1> %m, i32 %evl)4753  ret <vscale x 8 x i1> %v4754}4755 4756define <vscale x 8 x i1> @fcmp_uno_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32 zeroext %evl) {4757; CHECK-LABEL: fcmp_uno_vv_nxv8f64:4758; CHECK:       # %bb.0:4759; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4760; CHECK-NEXT:    vmfne.vv v24, v16, v16, v0.t4761; CHECK-NEXT:    vmfne.vv v16, v8, v8, v0.t4762; CHECK-NEXT:    vmor.mm v0, v16, v244763; CHECK-NEXT:    ret4764  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)4765  ret <vscale x 8 x i1> %v4766}4767 4768define <vscale x 8 x i1> @fcmp_uno_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4769; CHECK-LABEL: fcmp_uno_vf_nxv8f64:4770; CHECK:       # %bb.0:4771; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4772; CHECK-NEXT:    vfmv.v.f v16, fa04773; CHECK-NEXT:    vmfne.vf v24, v16, fa0, v0.t4774; CHECK-NEXT:    vmfne.vv v16, v8, v8, v0.t4775; CHECK-NEXT:    vmor.mm v0, v16, v244776; CHECK-NEXT:    ret4777  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04778  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4779  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)4780  ret <vscale x 8 x i1> %v4781}4782 4783define <vscale x 8 x i1> @fcmp_uno_vf_swap_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {4784; CHECK-LABEL: fcmp_uno_vf_swap_nxv8f64:4785; CHECK:       # %bb.0:4786; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma4787; CHECK-NEXT:    vfmv.v.f v16, fa04788; CHECK-NEXT:    vmfne.vf v24, v16, fa0, v0.t4789; CHECK-NEXT:    vmfne.vv v16, v8, v8, v0.t4790; CHECK-NEXT:    vmor.mm v0, v24, v164791; CHECK-NEXT:    ret4792  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 04793  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer4794  %v = call <vscale x 8 x i1> @llvm.vp.fcmp.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, metadata !"uno", <vscale x 8 x i1> %m, i32 %evl)4795  ret <vscale x 8 x i1> %v4796}4797 4798define <vscale x 32 x i1> @fcmp_oeq_vv_nxv32f64(<vscale x 32 x double> %va, <vscale x 32 x double> %vb, <vscale x 32 x i1> %m, i32 zeroext %evl) {4799; CHECK32-LABEL: fcmp_oeq_vv_nxv32f64:4800; CHECK32:       # %bb.0:4801; CHECK32-NEXT:    addi sp, sp, -484802; CHECK32-NEXT:    .cfi_def_cfa_offset 484803; CHECK32-NEXT:    sw ra, 44(sp) # 4-byte Folded Spill4804; CHECK32-NEXT:    sw s0, 40(sp) # 4-byte Folded Spill4805; CHECK32-NEXT:    sw s1, 36(sp) # 4-byte Folded Spill4806; CHECK32-NEXT:    sw s2, 32(sp) # 4-byte Folded Spill4807; CHECK32-NEXT:    sw s3, 28(sp) # 4-byte Folded Spill4808; CHECK32-NEXT:    sw s4, 24(sp) # 4-byte Folded Spill4809; CHECK32-NEXT:    .cfi_offset ra, -44810; CHECK32-NEXT:    .cfi_offset s0, -84811; CHECK32-NEXT:    .cfi_offset s1, -124812; CHECK32-NEXT:    .cfi_offset s2, -164813; CHECK32-NEXT:    .cfi_offset s3, -204814; CHECK32-NEXT:    .cfi_offset s4, -244815; CHECK32-NEXT:    csrr a1, vlenb4816; CHECK32-NEXT:    slli a1, a1, 14817; CHECK32-NEXT:    mv a3, a14818; CHECK32-NEXT:    slli a1, a1, 24819; CHECK32-NEXT:    add a3, a3, a14820; CHECK32-NEXT:    slli a1, a1, 14821; CHECK32-NEXT:    add a1, a1, a34822; CHECK32-NEXT:    sub sp, sp, a14823; CHECK32-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x1a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 26 * vlenb4824; CHECK32-NEXT:    mv s1, a64825; CHECK32-NEXT:    csrr a1, vlenb4826; CHECK32-NEXT:    add a1, sp, a14827; CHECK32-NEXT:    addi a1, a1, 164828; CHECK32-NEXT:    vs1r.v v0, (a1) # vscale x 8-byte Folded Spill4829; CHECK32-NEXT:    mv s3, a24830; CHECK32-NEXT:    mv s2, a04831; CHECK32-NEXT:    csrr a0, vlenb4832; CHECK32-NEXT:    slli a1, a0, 34833; CHECK32-NEXT:    add a0, a1, a04834; CHECK32-NEXT:    add a0, sp, a04835; CHECK32-NEXT:    addi a0, a0, 164836; CHECK32-NEXT:    vs8r.v v16, (a0) # vscale x 64-byte Folded Spill4837; CHECK32-NEXT:    csrr a0, vlenb4838; CHECK32-NEXT:    slli a0, a0, 14839; CHECK32-NEXT:    mv a1, a04840; CHECK32-NEXT:    slli a0, a0, 34841; CHECK32-NEXT:    add a0, a0, a14842; CHECK32-NEXT:    add a0, sp, a04843; CHECK32-NEXT:    addi a0, a0, 164844; CHECK32-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill4845; CHECK32-NEXT:    csrr s0, vlenb4846; CHECK32-NEXT:    li a1, 244847; CHECK32-NEXT:    mv a0, s04848; CHECK32-NEXT:    call __mulsi34849; CHECK32-NEXT:    csrr a1, vlenb4850; CHECK32-NEXT:    add a1, sp, a14851; CHECK32-NEXT:    addi a1, a1, 164852; CHECK32-NEXT:    vl1r.v v6, (a1) # vscale x 8-byte Folded Reload4853; CHECK32-NEXT:    mv a1, a04854; CHECK32-NEXT:    slli a4, s0, 34855; CHECK32-NEXT:    srli s4, s0, 24856; CHECK32-NEXT:    srli a0, s0, 34857; CHECK32-NEXT:    vsetvli a2, zero, e8, mf2, ta, ma4858; CHECK32-NEXT:    vslidedown.vx v7, v6, s44859; CHECK32-NEXT:    add a2, s3, a44860; CHECK32-NEXT:    vl8re64.v v16, (a2)4861; CHECK32-NEXT:    slli a6, s0, 44862; CHECK32-NEXT:    slli a2, s0, 14863; CHECK32-NEXT:    vsetvli a3, zero, e8, mf4, ta, ma4864; CHECK32-NEXT:    vslidedown.vx v0, v6, a04865; CHECK32-NEXT:    mv a3, s14866; CHECK32-NEXT:    bltu s1, a2, .LBB257_24867; CHECK32-NEXT:  # %bb.1:4868; CHECK32-NEXT:    mv a3, a24869; CHECK32-NEXT:  .LBB257_2:4870; CHECK32-NEXT:    add a5, s3, a14871; CHECK32-NEXT:    add a1, s2, a44872; CHECK32-NEXT:    vslidedown.vx v9, v7, a04873; CHECK32-NEXT:    csrr a4, vlenb4874; CHECK32-NEXT:    slli a7, a4, 44875; CHECK32-NEXT:    add a4, a7, a44876; CHECK32-NEXT:    add a4, sp, a44877; CHECK32-NEXT:    addi a4, a4, 164878; CHECK32-NEXT:    vs1r.v v9, (a4) # vscale x 8-byte Folded Spill4879; CHECK32-NEXT:    add a4, s3, a64880; CHECK32-NEXT:    vl8re64.v v24, (s3)4881; CHECK32-NEXT:    sub a6, a3, s04882; CHECK32-NEXT:    sltu a7, a3, a64883; CHECK32-NEXT:    addi a7, a7, -14884; CHECK32-NEXT:    and a6, a7, a64885; CHECK32-NEXT:    csrr a7, vlenb4886; CHECK32-NEXT:    slli t0, a7, 34887; CHECK32-NEXT:    add a7, t0, a74888; CHECK32-NEXT:    add a7, sp, a74889; CHECK32-NEXT:    addi a7, a7, 164890; CHECK32-NEXT:    vl8r.v v8, (a7) # vscale x 64-byte Folded Reload4891; CHECK32-NEXT:    vsetvli zero, a6, e64, m8, ta, ma4892; CHECK32-NEXT:    vmfeq.vv v5, v8, v16, v0.t4893; CHECK32-NEXT:    bltu a3, s0, .LBB257_44894; CHECK32-NEXT:  # %bb.3:4895; CHECK32-NEXT:    mv a3, s04896; CHECK32-NEXT:  .LBB257_4:4897; CHECK32-NEXT:    vmv1r.v v0, v64898; CHECK32-NEXT:    vl8re64.v v8, (a5)4899; CHECK32-NEXT:    csrr a5, vlenb4900; CHECK32-NEXT:    slli a6, a5, 34901; CHECK32-NEXT:    add a5, a6, a54902; CHECK32-NEXT:    add a5, sp, a54903; CHECK32-NEXT:    addi a5, a5, 164904; CHECK32-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill4905; CHECK32-NEXT:    csrr a5, vlenb4906; CHECK32-NEXT:    slli a5, a5, 14907; CHECK32-NEXT:    mv a6, a54908; CHECK32-NEXT:    slli a5, a5, 34909; CHECK32-NEXT:    add a5, a5, a64910; CHECK32-NEXT:    add a5, sp, a54911; CHECK32-NEXT:    addi a5, a5, 164912; CHECK32-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload4913; CHECK32-NEXT:    vsetvli zero, a3, e64, m8, ta, ma4914; CHECK32-NEXT:    vmfeq.vv v8, v16, v24, v0.t4915; CHECK32-NEXT:    vl8re64.v v16, (a1)4916; CHECK32-NEXT:    csrr a1, vlenb4917; CHECK32-NEXT:    add a1, sp, a14918; CHECK32-NEXT:    addi a1, a1, 164919; CHECK32-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill4920; CHECK32-NEXT:    vl8re64.v v16, (a4)4921; CHECK32-NEXT:    sub a1, s1, a24922; CHECK32-NEXT:    sltu a2, s1, a14923; CHECK32-NEXT:    vl8re64.v v24, (s2)4924; CHECK32-NEXT:    addi a2, a2, -14925; CHECK32-NEXT:    and s1, a2, a14926; CHECK32-NEXT:    vsetvli zero, s4, e8, mf2, tu, ma4927; CHECK32-NEXT:    vslideup.vx v8, v5, a04928; CHECK32-NEXT:    csrr a1, vlenb4929; CHECK32-NEXT:    slli a1, a1, 14930; CHECK32-NEXT:    mv a2, a14931; CHECK32-NEXT:    slli a1, a1, 34932; CHECK32-NEXT:    add a1, a1, a24933; CHECK32-NEXT:    add a1, sp, a14934; CHECK32-NEXT:    addi a1, a1, 164935; CHECK32-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill4936; CHECK32-NEXT:    mv a1, s14937; CHECK32-NEXT:    bltu s1, s0, .LBB257_64938; CHECK32-NEXT:  # %bb.5:4939; CHECK32-NEXT:    mv a1, s04940; CHECK32-NEXT:  .LBB257_6:4941; CHECK32-NEXT:    vmv1r.v v0, v74942; CHECK32-NEXT:    vsetvli zero, a1, e64, m8, ta, ma4943; CHECK32-NEXT:    vmfeq.vv v8, v24, v16, v0.t4944; CHECK32-NEXT:    addi a1, sp, 164945; CHECK32-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill4946; CHECK32-NEXT:    li a1, 34947; CHECK32-NEXT:    call __mulsi34948; CHECK32-NEXT:    csrr a1, vlenb4949; CHECK32-NEXT:    slli a2, a1, 44950; CHECK32-NEXT:    add a1, a2, a14951; CHECK32-NEXT:    add a1, sp, a14952; CHECK32-NEXT:    addi a1, a1, 164953; CHECK32-NEXT:    vl1r.v v0, (a1) # vscale x 8-byte Folded Reload4954; CHECK32-NEXT:    csrr a1, vlenb4955; CHECK32-NEXT:    slli a1, a1, 14956; CHECK32-NEXT:    mv a2, a14957; CHECK32-NEXT:    slli a1, a1, 34958; CHECK32-NEXT:    add a1, a1, a24959; CHECK32-NEXT:    add a1, sp, a14960; CHECK32-NEXT:    addi a1, a1, 164961; CHECK32-NEXT:    vl1r.v v9, (a1) # vscale x 8-byte Folded Reload4962; CHECK32-NEXT:    addi a1, sp, 164963; CHECK32-NEXT:    vl1r.v v8, (a1) # vscale x 8-byte Folded Reload4964; CHECK32-NEXT:    vsetvli zero, a0, e8, mf2, tu, ma4965; CHECK32-NEXT:    vslideup.vx v9, v8, s44966; CHECK32-NEXT:    sub a1, s1, s04967; CHECK32-NEXT:    sltu a2, s1, a14968; CHECK32-NEXT:    addi a2, a2, -14969; CHECK32-NEXT:    and a1, a2, a14970; CHECK32-NEXT:    csrr a2, vlenb4971; CHECK32-NEXT:    slli a3, a2, 34972; CHECK32-NEXT:    add a2, a3, a24973; CHECK32-NEXT:    add a2, sp, a24974; CHECK32-NEXT:    addi a2, a2, 164975; CHECK32-NEXT:    vl8r.v v16, (a2) # vscale x 64-byte Folded Reload4976; CHECK32-NEXT:    csrr a2, vlenb4977; CHECK32-NEXT:    add a2, sp, a24978; CHECK32-NEXT:    addi a2, a2, 164979; CHECK32-NEXT:    vl8r.v v24, (a2) # vscale x 64-byte Folded Reload4980; CHECK32-NEXT:    vsetvli zero, a1, e64, m8, ta, ma4981; CHECK32-NEXT:    vmfeq.vv v8, v24, v16, v0.t4982; CHECK32-NEXT:    vsetvli a1, zero, e8, mf2, ta, ma4983; CHECK32-NEXT:    vslideup.vx v9, v8, a04984; CHECK32-NEXT:    vmv1r.v v0, v94985; CHECK32-NEXT:    csrr a0, vlenb4986; CHECK32-NEXT:    slli a0, a0, 14987; CHECK32-NEXT:    mv a1, a04988; CHECK32-NEXT:    slli a0, a0, 24989; CHECK32-NEXT:    add a1, a1, a04990; CHECK32-NEXT:    slli a0, a0, 14991; CHECK32-NEXT:    add a0, a0, a14992; CHECK32-NEXT:    add sp, sp, a04993; CHECK32-NEXT:    .cfi_def_cfa sp, 484994; CHECK32-NEXT:    lw ra, 44(sp) # 4-byte Folded Reload4995; CHECK32-NEXT:    lw s0, 40(sp) # 4-byte Folded Reload4996; CHECK32-NEXT:    lw s1, 36(sp) # 4-byte Folded Reload4997; CHECK32-NEXT:    lw s2, 32(sp) # 4-byte Folded Reload4998; CHECK32-NEXT:    lw s3, 28(sp) # 4-byte Folded Reload4999; CHECK32-NEXT:    lw s4, 24(sp) # 4-byte Folded Reload5000; CHECK32-NEXT:    .cfi_restore ra5001; CHECK32-NEXT:    .cfi_restore s05002; CHECK32-NEXT:    .cfi_restore s15003; CHECK32-NEXT:    .cfi_restore s25004; CHECK32-NEXT:    .cfi_restore s35005; CHECK32-NEXT:    .cfi_restore s45006; CHECK32-NEXT:    addi sp, sp, 485007; CHECK32-NEXT:    .cfi_def_cfa_offset 05008; CHECK32-NEXT:    ret5009;5010; CHECK64-LABEL: fcmp_oeq_vv_nxv32f64:5011; CHECK64:       # %bb.0:5012; CHECK64-NEXT:    addi sp, sp, -645013; CHECK64-NEXT:    .cfi_def_cfa_offset 645014; CHECK64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill5015; CHECK64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill5016; CHECK64-NEXT:    sd s1, 40(sp) # 8-byte Folded Spill5017; CHECK64-NEXT:    sd s2, 32(sp) # 8-byte Folded Spill5018; CHECK64-NEXT:    sd s3, 24(sp) # 8-byte Folded Spill5019; CHECK64-NEXT:    sd s4, 16(sp) # 8-byte Folded Spill5020; CHECK64-NEXT:    .cfi_offset ra, -85021; CHECK64-NEXT:    .cfi_offset s0, -165022; CHECK64-NEXT:    .cfi_offset s1, -245023; CHECK64-NEXT:    .cfi_offset s2, -325024; CHECK64-NEXT:    .cfi_offset s3, -405025; CHECK64-NEXT:    .cfi_offset s4, -485026; CHECK64-NEXT:    csrr a1, vlenb5027; CHECK64-NEXT:    slli a1, a1, 15028; CHECK64-NEXT:    mv a3, a15029; CHECK64-NEXT:    slli a1, a1, 25030; CHECK64-NEXT:    add a3, a3, a15031; CHECK64-NEXT:    slli a1, a1, 15032; CHECK64-NEXT:    add a1, a1, a35033; CHECK64-NEXT:    sub sp, sp, a15034; CHECK64-NEXT:    .cfi_escape 0x0f, 0x0e, 0x72, 0x00, 0x11, 0xc0, 0x00, 0x22, 0x11, 0x1a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 64 + 26 * vlenb5035; CHECK64-NEXT:    mv s1, a65036; CHECK64-NEXT:    csrr a1, vlenb5037; CHECK64-NEXT:    add a1, sp, a15038; CHECK64-NEXT:    addi a1, a1, 165039; CHECK64-NEXT:    vs1r.v v0, (a1) # vscale x 8-byte Folded Spill5040; CHECK64-NEXT:    mv s3, a25041; CHECK64-NEXT:    mv s2, a05042; CHECK64-NEXT:    csrr a0, vlenb5043; CHECK64-NEXT:    slli a1, a0, 35044; CHECK64-NEXT:    add a0, a1, a05045; CHECK64-NEXT:    add a0, sp, a05046; CHECK64-NEXT:    addi a0, a0, 165047; CHECK64-NEXT:    vs8r.v v16, (a0) # vscale x 64-byte Folded Spill5048; CHECK64-NEXT:    csrr a0, vlenb5049; CHECK64-NEXT:    slli a0, a0, 15050; CHECK64-NEXT:    mv a1, a05051; CHECK64-NEXT:    slli a0, a0, 35052; CHECK64-NEXT:    add a0, a0, a15053; CHECK64-NEXT:    add a0, sp, a05054; CHECK64-NEXT:    addi a0, a0, 165055; CHECK64-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill5056; CHECK64-NEXT:    csrr s0, vlenb5057; CHECK64-NEXT:    li a1, 245058; CHECK64-NEXT:    mv a0, s05059; CHECK64-NEXT:    call __muldi35060; CHECK64-NEXT:    csrr a1, vlenb5061; CHECK64-NEXT:    add a1, sp, a15062; CHECK64-NEXT:    addi a1, a1, 165063; CHECK64-NEXT:    vl1r.v v6, (a1) # vscale x 8-byte Folded Reload5064; CHECK64-NEXT:    mv a1, a05065; CHECK64-NEXT:    slli a4, s0, 35066; CHECK64-NEXT:    srli s4, s0, 25067; CHECK64-NEXT:    srli a0, s0, 35068; CHECK64-NEXT:    vsetvli a2, zero, e8, mf2, ta, ma5069; CHECK64-NEXT:    vslidedown.vx v7, v6, s45070; CHECK64-NEXT:    add a2, s3, a45071; CHECK64-NEXT:    vl8re64.v v16, (a2)5072; CHECK64-NEXT:    slli a6, s0, 45073; CHECK64-NEXT:    slli a2, s0, 15074; CHECK64-NEXT:    vsetvli a3, zero, e8, mf4, ta, ma5075; CHECK64-NEXT:    vslidedown.vx v0, v6, a05076; CHECK64-NEXT:    mv a3, s15077; CHECK64-NEXT:    bltu s1, a2, .LBB257_25078; CHECK64-NEXT:  # %bb.1:5079; CHECK64-NEXT:    mv a3, a25080; CHECK64-NEXT:  .LBB257_2:5081; CHECK64-NEXT:    add a5, s3, a15082; CHECK64-NEXT:    add a1, s2, a45083; CHECK64-NEXT:    vslidedown.vx v9, v7, a05084; CHECK64-NEXT:    csrr a4, vlenb5085; CHECK64-NEXT:    slli a7, a4, 45086; CHECK64-NEXT:    add a4, a7, a45087; CHECK64-NEXT:    add a4, sp, a45088; CHECK64-NEXT:    addi a4, a4, 165089; CHECK64-NEXT:    vs1r.v v9, (a4) # vscale x 8-byte Folded Spill5090; CHECK64-NEXT:    add a4, s3, a65091; CHECK64-NEXT:    vl8re64.v v24, (s3)5092; CHECK64-NEXT:    sub a6, a3, s05093; CHECK64-NEXT:    sltu a7, a3, a65094; CHECK64-NEXT:    addi a7, a7, -15095; CHECK64-NEXT:    and a6, a7, a65096; CHECK64-NEXT:    csrr a7, vlenb5097; CHECK64-NEXT:    slli t0, a7, 35098; CHECK64-NEXT:    add a7, t0, a75099; CHECK64-NEXT:    add a7, sp, a75100; CHECK64-NEXT:    addi a7, a7, 165101; CHECK64-NEXT:    vl8r.v v8, (a7) # vscale x 64-byte Folded Reload5102; CHECK64-NEXT:    vsetvli zero, a6, e64, m8, ta, ma5103; CHECK64-NEXT:    vmfeq.vv v5, v8, v16, v0.t5104; CHECK64-NEXT:    bltu a3, s0, .LBB257_45105; CHECK64-NEXT:  # %bb.3:5106; CHECK64-NEXT:    mv a3, s05107; CHECK64-NEXT:  .LBB257_4:5108; CHECK64-NEXT:    vmv1r.v v0, v65109; CHECK64-NEXT:    vl8re64.v v8, (a5)5110; CHECK64-NEXT:    csrr a5, vlenb5111; CHECK64-NEXT:    slli a6, a5, 35112; CHECK64-NEXT:    add a5, a6, a55113; CHECK64-NEXT:    add a5, sp, a55114; CHECK64-NEXT:    addi a5, a5, 165115; CHECK64-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill5116; CHECK64-NEXT:    csrr a5, vlenb5117; CHECK64-NEXT:    slli a5, a5, 15118; CHECK64-NEXT:    mv a6, a55119; CHECK64-NEXT:    slli a5, a5, 35120; CHECK64-NEXT:    add a5, a5, a65121; CHECK64-NEXT:    add a5, sp, a55122; CHECK64-NEXT:    addi a5, a5, 165123; CHECK64-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload5124; CHECK64-NEXT:    vsetvli zero, a3, e64, m8, ta, ma5125; CHECK64-NEXT:    vmfeq.vv v8, v16, v24, v0.t5126; CHECK64-NEXT:    vl8re64.v v16, (a1)5127; CHECK64-NEXT:    csrr a1, vlenb5128; CHECK64-NEXT:    add a1, sp, a15129; CHECK64-NEXT:    addi a1, a1, 165130; CHECK64-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill5131; CHECK64-NEXT:    vl8re64.v v16, (a4)5132; CHECK64-NEXT:    sub a1, s1, a25133; CHECK64-NEXT:    sltu a2, s1, a15134; CHECK64-NEXT:    vl8re64.v v24, (s2)5135; CHECK64-NEXT:    addi a2, a2, -15136; CHECK64-NEXT:    and s1, a2, a15137; CHECK64-NEXT:    vsetvli zero, s4, e8, mf2, tu, ma5138; CHECK64-NEXT:    vslideup.vx v8, v5, a05139; CHECK64-NEXT:    csrr a1, vlenb5140; CHECK64-NEXT:    slli a1, a1, 15141; CHECK64-NEXT:    mv a2, a15142; CHECK64-NEXT:    slli a1, a1, 35143; CHECK64-NEXT:    add a1, a1, a25144; CHECK64-NEXT:    add a1, sp, a15145; CHECK64-NEXT:    addi a1, a1, 165146; CHECK64-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill5147; CHECK64-NEXT:    mv a1, s15148; CHECK64-NEXT:    bltu s1, s0, .LBB257_65149; CHECK64-NEXT:  # %bb.5:5150; CHECK64-NEXT:    mv a1, s05151; CHECK64-NEXT:  .LBB257_6:5152; CHECK64-NEXT:    vmv1r.v v0, v75153; CHECK64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma5154; CHECK64-NEXT:    vmfeq.vv v8, v24, v16, v0.t5155; CHECK64-NEXT:    addi a1, sp, 165156; CHECK64-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill5157; CHECK64-NEXT:    li a1, 35158; CHECK64-NEXT:    call __muldi35159; CHECK64-NEXT:    csrr a1, vlenb5160; CHECK64-NEXT:    slli a2, a1, 45161; CHECK64-NEXT:    add a1, a2, a15162; CHECK64-NEXT:    add a1, sp, a15163; CHECK64-NEXT:    addi a1, a1, 165164; CHECK64-NEXT:    vl1r.v v0, (a1) # vscale x 8-byte Folded Reload5165; CHECK64-NEXT:    csrr a1, vlenb5166; CHECK64-NEXT:    slli a1, a1, 15167; CHECK64-NEXT:    mv a2, a15168; CHECK64-NEXT:    slli a1, a1, 35169; CHECK64-NEXT:    add a1, a1, a25170; CHECK64-NEXT:    add a1, sp, a15171; CHECK64-NEXT:    addi a1, a1, 165172; CHECK64-NEXT:    vl1r.v v9, (a1) # vscale x 8-byte Folded Reload5173; CHECK64-NEXT:    addi a1, sp, 165174; CHECK64-NEXT:    vl1r.v v8, (a1) # vscale x 8-byte Folded Reload5175; CHECK64-NEXT:    vsetvli zero, a0, e8, mf2, tu, ma5176; CHECK64-NEXT:    vslideup.vx v9, v8, s45177; CHECK64-NEXT:    sub a1, s1, s05178; CHECK64-NEXT:    sltu a2, s1, a15179; CHECK64-NEXT:    addi a2, a2, -15180; CHECK64-NEXT:    and a1, a2, a15181; CHECK64-NEXT:    csrr a2, vlenb5182; CHECK64-NEXT:    slli a3, a2, 35183; CHECK64-NEXT:    add a2, a3, a25184; CHECK64-NEXT:    add a2, sp, a25185; CHECK64-NEXT:    addi a2, a2, 165186; CHECK64-NEXT:    vl8r.v v16, (a2) # vscale x 64-byte Folded Reload5187; CHECK64-NEXT:    csrr a2, vlenb5188; CHECK64-NEXT:    add a2, sp, a25189; CHECK64-NEXT:    addi a2, a2, 165190; CHECK64-NEXT:    vl8r.v v24, (a2) # vscale x 64-byte Folded Reload5191; CHECK64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma5192; CHECK64-NEXT:    vmfeq.vv v8, v24, v16, v0.t5193; CHECK64-NEXT:    vsetvli a1, zero, e8, mf2, ta, ma5194; CHECK64-NEXT:    vslideup.vx v9, v8, a05195; CHECK64-NEXT:    vmv1r.v v0, v95196; CHECK64-NEXT:    csrr a0, vlenb5197; CHECK64-NEXT:    slli a0, a0, 15198; CHECK64-NEXT:    mv a1, a05199; CHECK64-NEXT:    slli a0, a0, 25200; CHECK64-NEXT:    add a1, a1, a05201; CHECK64-NEXT:    slli a0, a0, 15202; CHECK64-NEXT:    add a0, a0, a15203; CHECK64-NEXT:    add sp, sp, a05204; CHECK64-NEXT:    .cfi_def_cfa sp, 645205; CHECK64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload5206; CHECK64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload5207; CHECK64-NEXT:    ld s1, 40(sp) # 8-byte Folded Reload5208; CHECK64-NEXT:    ld s2, 32(sp) # 8-byte Folded Reload5209; CHECK64-NEXT:    ld s3, 24(sp) # 8-byte Folded Reload5210; CHECK64-NEXT:    ld s4, 16(sp) # 8-byte Folded Reload5211; CHECK64-NEXT:    .cfi_restore ra5212; CHECK64-NEXT:    .cfi_restore s05213; CHECK64-NEXT:    .cfi_restore s15214; CHECK64-NEXT:    .cfi_restore s25215; CHECK64-NEXT:    .cfi_restore s35216; CHECK64-NEXT:    .cfi_restore s45217; CHECK64-NEXT:    addi sp, sp, 645218; CHECK64-NEXT:    .cfi_def_cfa_offset 05219; CHECK64-NEXT:    ret5220  %v = call <vscale x 32 x i1> @llvm.vp.fcmp.nxv32f64(<vscale x 32 x double> %va, <vscale x 32 x double> %vb, metadata !"oeq", <vscale x 32 x i1> %m, i32 %evl)5221  ret <vscale x 32 x i1> %v5222}5223