brintos

brintos / llvm-project-archived public Read only

0
0
Text · 410.8 KiB · d33cd5a Raw
7971 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+d,+zvfh,+v -target-abi=ilp32d \3; RUN:     -verify-machineinstrs < %s | FileCheck %s4; RUN: llc -mtriple=riscv64 -mattr=+d,+zvfh,+v -target-abi=lp64d \5; RUN:     -verify-machineinstrs < %s | FileCheck %s6 7define <vscale x 1 x i1> @fcmps_oeq_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {8; CHECK-LABEL: fcmps_oeq_vv_nxv1f16:9; CHECK:       # %bb.0:10; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma11; CHECK-NEXT:    vmfle.vv v10, v9, v812; CHECK-NEXT:    vmfle.vv v8, v8, v913; CHECK-NEXT:    vmand.mm v0, v8, v1014; CHECK-NEXT:    ret15  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp16  ret <vscale x 1 x i1> %117}18 19define <vscale x 1 x i1> @fcmps_oeq_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {20; CHECK-LABEL: fcmps_oeq_vf_nxv1f16:21; CHECK:       # %bb.0:22; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma23; CHECK-NEXT:    vmfge.vf v9, v8, fa024; CHECK-NEXT:    vmfle.vf v8, v8, fa025; CHECK-NEXT:    vmand.mm v0, v8, v926; CHECK-NEXT:    ret27  %head = insertelement <vscale x 1 x half> poison, half %b, i32 028  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer29  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp30  ret <vscale x 1 x i1> %131}32 33define <vscale x 1 x i1> @fcmps_oeq_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {34; CHECK-LABEL: fcmps_oeq_fv_nxv1f16:35; CHECK:       # %bb.0:36; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma37; CHECK-NEXT:    vmfle.vf v9, v8, fa038; CHECK-NEXT:    vmfge.vf v8, v8, fa039; CHECK-NEXT:    vmand.mm v0, v8, v940; CHECK-NEXT:    ret41  %head = insertelement <vscale x 1 x half> poison, half %b, i32 042  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer43  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp44  ret <vscale x 1 x i1> %145}46 47define <vscale x 1 x i1> @fcmps_ogt_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {48; CHECK-LABEL: fcmps_ogt_vv_nxv1f16:49; CHECK:       # %bb.0:50; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma51; CHECK-NEXT:    vmflt.vv v0, v9, v852; CHECK-NEXT:    ret53  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp54  ret <vscale x 1 x i1> %155}56 57define <vscale x 1 x i1> @fcmps_ogt_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {58; CHECK-LABEL: fcmps_ogt_vf_nxv1f16:59; CHECK:       # %bb.0:60; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma61; CHECK-NEXT:    vmfgt.vf v0, v8, fa062; CHECK-NEXT:    ret63  %head = insertelement <vscale x 1 x half> poison, half %b, i32 064  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer65  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp66  ret <vscale x 1 x i1> %167}68 69define <vscale x 1 x i1> @fcmps_ogt_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {70; CHECK-LABEL: fcmps_ogt_fv_nxv1f16:71; CHECK:       # %bb.0:72; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma73; CHECK-NEXT:    vmflt.vf v0, v8, fa074; CHECK-NEXT:    ret75  %head = insertelement <vscale x 1 x half> poison, half %b, i32 076  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer77  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp78  ret <vscale x 1 x i1> %179}80 81define <vscale x 1 x i1> @fcmps_oge_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {82; CHECK-LABEL: fcmps_oge_vv_nxv1f16:83; CHECK:       # %bb.0:84; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma85; CHECK-NEXT:    vmfle.vv v0, v9, v886; CHECK-NEXT:    ret87  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp88  ret <vscale x 1 x i1> %189}90 91define <vscale x 1 x i1> @fcmps_oge_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {92; CHECK-LABEL: fcmps_oge_vf_nxv1f16:93; CHECK:       # %bb.0:94; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma95; CHECK-NEXT:    vmfge.vf v0, v8, fa096; CHECK-NEXT:    ret97  %head = insertelement <vscale x 1 x half> poison, half %b, i32 098  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer99  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp100  ret <vscale x 1 x i1> %1101}102 103define <vscale x 1 x i1> @fcmps_oge_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {104; CHECK-LABEL: fcmps_oge_fv_nxv1f16:105; CHECK:       # %bb.0:106; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma107; CHECK-NEXT:    vmfle.vf v0, v8, fa0108; CHECK-NEXT:    ret109  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0110  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer111  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp112  ret <vscale x 1 x i1> %1113}114 115define <vscale x 1 x i1> @fcmps_olt_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {116; CHECK-LABEL: fcmps_olt_vv_nxv1f16:117; CHECK:       # %bb.0:118; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma119; CHECK-NEXT:    vmflt.vv v0, v8, v9120; CHECK-NEXT:    ret121  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp122  ret <vscale x 1 x i1> %1123}124 125define <vscale x 1 x i1> @fcmps_olt_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {126; CHECK-LABEL: fcmps_olt_vf_nxv1f16:127; CHECK:       # %bb.0:128; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma129; CHECK-NEXT:    vmflt.vf v0, v8, fa0130; CHECK-NEXT:    ret131  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0132  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer133  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp134  ret <vscale x 1 x i1> %1135}136 137define <vscale x 1 x i1> @fcmps_olt_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {138; CHECK-LABEL: fcmps_olt_fv_nxv1f16:139; CHECK:       # %bb.0:140; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma141; CHECK-NEXT:    vmfgt.vf v0, v8, fa0142; CHECK-NEXT:    ret143  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0144  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer145  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp146  ret <vscale x 1 x i1> %1147}148 149define <vscale x 1 x i1> @fcmps_ole_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {150; CHECK-LABEL: fcmps_ole_vv_nxv1f16:151; CHECK:       # %bb.0:152; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma153; CHECK-NEXT:    vmfle.vv v0, v8, v9154; CHECK-NEXT:    ret155  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp156  ret <vscale x 1 x i1> %1157}158 159define <vscale x 1 x i1> @fcmps_ole_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {160; CHECK-LABEL: fcmps_ole_vf_nxv1f16:161; CHECK:       # %bb.0:162; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma163; CHECK-NEXT:    vmfle.vf v0, v8, fa0164; CHECK-NEXT:    ret165  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0166  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer167  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp168  ret <vscale x 1 x i1> %1169}170 171define <vscale x 1 x i1> @fcmps_ole_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {172; CHECK-LABEL: fcmps_ole_fv_nxv1f16:173; CHECK:       # %bb.0:174; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma175; CHECK-NEXT:    vmfge.vf v0, v8, fa0176; CHECK-NEXT:    ret177  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0178  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer179  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp180  ret <vscale x 1 x i1> %1181}182 183define <vscale x 1 x i1> @fcmps_one_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {184; CHECK-LABEL: fcmps_one_vv_nxv1f16:185; CHECK:       # %bb.0:186; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma187; CHECK-NEXT:    vmflt.vv v10, v8, v9188; CHECK-NEXT:    vmflt.vv v8, v9, v8189; CHECK-NEXT:    vmor.mm v0, v8, v10190; CHECK-NEXT:    ret191  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp192  ret <vscale x 1 x i1> %1193}194 195define <vscale x 1 x i1> @fcmps_one_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {196; CHECK-LABEL: fcmps_one_vf_nxv1f16:197; CHECK:       # %bb.0:198; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma199; CHECK-NEXT:    vmflt.vf v9, v8, fa0200; CHECK-NEXT:    vmfgt.vf v8, v8, fa0201; CHECK-NEXT:    vmor.mm v0, v8, v9202; CHECK-NEXT:    ret203  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0204  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer205  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp206  ret <vscale x 1 x i1> %1207}208 209define <vscale x 1 x i1> @fcmps_one_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {210; CHECK-LABEL: fcmps_one_fv_nxv1f16:211; CHECK:       # %bb.0:212; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma213; CHECK-NEXT:    vmfgt.vf v9, v8, fa0214; CHECK-NEXT:    vmflt.vf v8, v8, fa0215; CHECK-NEXT:    vmor.mm v0, v8, v9216; CHECK-NEXT:    ret217  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0218  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer219  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp220  ret <vscale x 1 x i1> %1221}222 223define <vscale x 1 x i1> @fcmps_ord_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {224; CHECK-LABEL: fcmps_ord_vv_nxv1f16:225; CHECK:       # %bb.0:226; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma227; CHECK-NEXT:    vmfle.vv v9, v9, v9228; CHECK-NEXT:    vmfle.vv v8, v8, v8229; CHECK-NEXT:    vmand.mm v0, v8, v9230; CHECK-NEXT:    ret231  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp232  ret <vscale x 1 x i1> %1233}234 235define <vscale x 1 x i1> @fcmps_ord_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {236; CHECK-LABEL: fcmps_ord_vf_nxv1f16:237; CHECK:       # %bb.0:238; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma239; CHECK-NEXT:    vfmv.v.f v9, fa0240; CHECK-NEXT:    vmfle.vf v9, v9, fa0241; CHECK-NEXT:    vmfle.vv v8, v8, v8242; CHECK-NEXT:    vmand.mm v0, v8, v9243; CHECK-NEXT:    ret244  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0245  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer246  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp247  ret <vscale x 1 x i1> %1248}249 250define <vscale x 1 x i1> @fcmps_ord_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {251; CHECK-LABEL: fcmps_ord_fv_nxv1f16:252; CHECK:       # %bb.0:253; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma254; CHECK-NEXT:    vfmv.v.f v9, fa0255; CHECK-NEXT:    vmfle.vf v9, v9, fa0256; CHECK-NEXT:    vmfle.vv v8, v8, v8257; CHECK-NEXT:    vmand.mm v0, v9, v8258; CHECK-NEXT:    ret259  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0260  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer261  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp262  ret <vscale x 1 x i1> %1263}264 265define <vscale x 1 x i1> @fcmps_ueq_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {266; CHECK-LABEL: fcmps_ueq_vv_nxv1f16:267; CHECK:       # %bb.0:268; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma269; CHECK-NEXT:    vmflt.vv v10, v8, v9270; CHECK-NEXT:    vmflt.vv v8, v9, v8271; CHECK-NEXT:    vmnor.mm v0, v8, v10272; CHECK-NEXT:    ret273  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp274  ret <vscale x 1 x i1> %1275}276 277define <vscale x 1 x i1> @fcmps_ueq_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {278; CHECK-LABEL: fcmps_ueq_vf_nxv1f16:279; CHECK:       # %bb.0:280; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma281; CHECK-NEXT:    vmflt.vf v9, v8, fa0282; CHECK-NEXT:    vmfgt.vf v8, v8, fa0283; CHECK-NEXT:    vmnor.mm v0, v8, v9284; CHECK-NEXT:    ret285  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0286  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer287  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp288  ret <vscale x 1 x i1> %1289}290 291define <vscale x 1 x i1> @fcmps_ueq_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {292; CHECK-LABEL: fcmps_ueq_fv_nxv1f16:293; CHECK:       # %bb.0:294; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma295; CHECK-NEXT:    vmfgt.vf v9, v8, fa0296; CHECK-NEXT:    vmflt.vf v8, v8, fa0297; CHECK-NEXT:    vmnor.mm v0, v8, v9298; CHECK-NEXT:    ret299  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0300  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer301  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp302  ret <vscale x 1 x i1> %1303}304 305define <vscale x 1 x i1> @fcmps_ugt_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {306; CHECK-LABEL: fcmps_ugt_vv_nxv1f16:307; CHECK:       # %bb.0:308; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma309; CHECK-NEXT:    vmfle.vv v8, v8, v9310; CHECK-NEXT:    vmnot.m v0, v8311; CHECK-NEXT:    ret312  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp313  ret <vscale x 1 x i1> %1314}315 316define <vscale x 1 x i1> @fcmps_ugt_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {317; CHECK-LABEL: fcmps_ugt_vf_nxv1f16:318; CHECK:       # %bb.0:319; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma320; CHECK-NEXT:    vmfle.vf v8, v8, fa0321; CHECK-NEXT:    vmnot.m v0, v8322; CHECK-NEXT:    ret323  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0324  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer325  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp326  ret <vscale x 1 x i1> %1327}328 329define <vscale x 1 x i1> @fcmps_ugt_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {330; CHECK-LABEL: fcmps_ugt_fv_nxv1f16:331; CHECK:       # %bb.0:332; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma333; CHECK-NEXT:    vmfge.vf v8, v8, fa0334; CHECK-NEXT:    vmnot.m v0, v8335; CHECK-NEXT:    ret336  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0337  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer338  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp339  ret <vscale x 1 x i1> %1340}341 342define <vscale x 1 x i1> @fcmps_uge_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {343; CHECK-LABEL: fcmps_uge_vv_nxv1f16:344; CHECK:       # %bb.0:345; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma346; CHECK-NEXT:    vmflt.vv v8, v8, v9347; CHECK-NEXT:    vmnot.m v0, v8348; CHECK-NEXT:    ret349  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp350  ret <vscale x 1 x i1> %1351}352 353define <vscale x 1 x i1> @fcmps_uge_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {354; CHECK-LABEL: fcmps_uge_vf_nxv1f16:355; CHECK:       # %bb.0:356; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma357; CHECK-NEXT:    vmflt.vf v8, v8, fa0358; CHECK-NEXT:    vmnot.m v0, v8359; CHECK-NEXT:    ret360  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0361  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer362  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp363  ret <vscale x 1 x i1> %1364}365 366define <vscale x 1 x i1> @fcmps_uge_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {367; CHECK-LABEL: fcmps_uge_fv_nxv1f16:368; CHECK:       # %bb.0:369; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma370; CHECK-NEXT:    vmfgt.vf v8, v8, fa0371; CHECK-NEXT:    vmnot.m v0, v8372; CHECK-NEXT:    ret373  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0374  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer375  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp376  ret <vscale x 1 x i1> %1377}378 379define <vscale x 1 x i1> @fcmps_ult_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {380; CHECK-LABEL: fcmps_ult_vv_nxv1f16:381; CHECK:       # %bb.0:382; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma383; CHECK-NEXT:    vmfle.vv v8, v9, v8384; CHECK-NEXT:    vmnot.m v0, v8385; CHECK-NEXT:    ret386  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp387  ret <vscale x 1 x i1> %1388}389 390define <vscale x 1 x i1> @fcmps_ult_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {391; CHECK-LABEL: fcmps_ult_vf_nxv1f16:392; CHECK:       # %bb.0:393; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma394; CHECK-NEXT:    vmfge.vf v8, v8, fa0395; CHECK-NEXT:    vmnot.m v0, v8396; CHECK-NEXT:    ret397  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0398  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer399  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp400  ret <vscale x 1 x i1> %1401}402 403define <vscale x 1 x i1> @fcmps_ult_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {404; CHECK-LABEL: fcmps_ult_fv_nxv1f16:405; CHECK:       # %bb.0:406; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma407; CHECK-NEXT:    vmfle.vf v8, v8, fa0408; CHECK-NEXT:    vmnot.m v0, v8409; CHECK-NEXT:    ret410  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0411  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer412  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp413  ret <vscale x 1 x i1> %1414}415 416define <vscale x 1 x i1> @fcmps_ule_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {417; CHECK-LABEL: fcmps_ule_vv_nxv1f16:418; CHECK:       # %bb.0:419; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma420; CHECK-NEXT:    vmflt.vv v8, v9, v8421; CHECK-NEXT:    vmnot.m v0, v8422; CHECK-NEXT:    ret423  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp424  ret <vscale x 1 x i1> %1425}426 427define <vscale x 1 x i1> @fcmps_ule_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {428; CHECK-LABEL: fcmps_ule_vf_nxv1f16:429; CHECK:       # %bb.0:430; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma431; CHECK-NEXT:    vmfgt.vf v8, v8, fa0432; CHECK-NEXT:    vmnot.m v0, v8433; CHECK-NEXT:    ret434  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0435  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer436  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp437  ret <vscale x 1 x i1> %1438}439 440define <vscale x 1 x i1> @fcmps_ule_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {441; CHECK-LABEL: fcmps_ule_fv_nxv1f16:442; CHECK:       # %bb.0:443; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma444; CHECK-NEXT:    vmflt.vf v8, v8, fa0445; CHECK-NEXT:    vmnot.m v0, v8446; CHECK-NEXT:    ret447  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0448  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer449  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp450  ret <vscale x 1 x i1> %1451}452 453define <vscale x 1 x i1> @fcmps_une_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {454; CHECK-LABEL: fcmps_une_vv_nxv1f16:455; CHECK:       # %bb.0:456; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma457; CHECK-NEXT:    vmfle.vv v10, v9, v8458; CHECK-NEXT:    vmfle.vv v8, v8, v9459; CHECK-NEXT:    vmnand.mm v0, v8, v10460; CHECK-NEXT:    ret461  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp462  ret <vscale x 1 x i1> %1463}464 465define <vscale x 1 x i1> @fcmps_une_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {466; CHECK-LABEL: fcmps_une_vf_nxv1f16:467; CHECK:       # %bb.0:468; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma469; CHECK-NEXT:    vmfge.vf v9, v8, fa0470; CHECK-NEXT:    vmfle.vf v8, v8, fa0471; CHECK-NEXT:    vmnand.mm v0, v8, v9472; CHECK-NEXT:    ret473  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0474  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer475  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp476  ret <vscale x 1 x i1> %1477}478 479define <vscale x 1 x i1> @fcmps_une_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {480; CHECK-LABEL: fcmps_une_fv_nxv1f16:481; CHECK:       # %bb.0:482; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma483; CHECK-NEXT:    vmfle.vf v9, v8, fa0484; CHECK-NEXT:    vmfge.vf v8, v8, fa0485; CHECK-NEXT:    vmnand.mm v0, v8, v9486; CHECK-NEXT:    ret487  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0488  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer489  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp490  ret <vscale x 1 x i1> %1491}492 493define <vscale x 1 x i1> @fcmps_uno_vv_nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb) nounwind strictfp {494; CHECK-LABEL: fcmps_uno_vv_nxv1f16:495; CHECK:       # %bb.0:496; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma497; CHECK-NEXT:    vmfle.vv v9, v9, v9498; CHECK-NEXT:    vmfle.vv v8, v8, v8499; CHECK-NEXT:    vmnot.m v8, v8500; CHECK-NEXT:    vmorn.mm v0, v8, v9501; CHECK-NEXT:    ret502  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp503  ret <vscale x 1 x i1> %1504}505 506define <vscale x 1 x i1> @fcmps_uno_vf_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {507; CHECK-LABEL: fcmps_uno_vf_nxv1f16:508; CHECK:       # %bb.0:509; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma510; CHECK-NEXT:    vfmv.v.f v9, fa0511; CHECK-NEXT:    vmfle.vv v8, v8, v8512; CHECK-NEXT:    vmfle.vf v9, v9, fa0513; CHECK-NEXT:    vmnot.m v8, v8514; CHECK-NEXT:    vmorn.mm v0, v8, v9515; CHECK-NEXT:    ret516  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0517  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer518  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp519  ret <vscale x 1 x i1> %1520}521 522define <vscale x 1 x i1> @fcmps_uno_fv_nxv1f16(<vscale x 1 x half> %va, half %b) nounwind strictfp {523; CHECK-LABEL: fcmps_uno_fv_nxv1f16:524; CHECK:       # %bb.0:525; CHECK-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma526; CHECK-NEXT:    vfmv.v.f v9, fa0527; CHECK-NEXT:    vmfle.vf v9, v9, fa0528; CHECK-NEXT:    vmnot.m v9, v9529; CHECK-NEXT:    vmfle.vv v8, v8, v8530; CHECK-NEXT:    vmorn.mm v0, v9, v8531; CHECK-NEXT:    ret532  %head = insertelement <vscale x 1 x half> poison, half %b, i32 0533  %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer534  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f16(<vscale x 1 x half> %splat, <vscale x 1 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp535  ret <vscale x 1 x i1> %1536}537 538define <vscale x 2 x i1> @fcmps_oeq_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {539; CHECK-LABEL: fcmps_oeq_vv_nxv2f16:540; CHECK:       # %bb.0:541; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma542; CHECK-NEXT:    vmfle.vv v10, v9, v8543; CHECK-NEXT:    vmfle.vv v8, v8, v9544; CHECK-NEXT:    vmand.mm v0, v8, v10545; CHECK-NEXT:    ret546  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp547  ret <vscale x 2 x i1> %1548}549 550define <vscale x 2 x i1> @fcmps_oeq_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {551; CHECK-LABEL: fcmps_oeq_vf_nxv2f16:552; CHECK:       # %bb.0:553; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma554; CHECK-NEXT:    vmfge.vf v9, v8, fa0555; CHECK-NEXT:    vmfle.vf v8, v8, fa0556; CHECK-NEXT:    vmand.mm v0, v8, v9557; CHECK-NEXT:    ret558  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0559  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer560  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp561  ret <vscale x 2 x i1> %1562}563 564define <vscale x 2 x i1> @fcmps_oeq_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {565; CHECK-LABEL: fcmps_oeq_fv_nxv2f16:566; CHECK:       # %bb.0:567; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma568; CHECK-NEXT:    vmfle.vf v9, v8, fa0569; CHECK-NEXT:    vmfge.vf v8, v8, fa0570; CHECK-NEXT:    vmand.mm v0, v8, v9571; CHECK-NEXT:    ret572  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0573  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer574  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp575  ret <vscale x 2 x i1> %1576}577 578define <vscale x 2 x i1> @fcmps_ogt_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {579; CHECK-LABEL: fcmps_ogt_vv_nxv2f16:580; CHECK:       # %bb.0:581; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma582; CHECK-NEXT:    vmflt.vv v0, v9, v8583; CHECK-NEXT:    ret584  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp585  ret <vscale x 2 x i1> %1586}587 588define <vscale x 2 x i1> @fcmps_ogt_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {589; CHECK-LABEL: fcmps_ogt_vf_nxv2f16:590; CHECK:       # %bb.0:591; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma592; CHECK-NEXT:    vmfgt.vf v0, v8, fa0593; CHECK-NEXT:    ret594  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0595  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer596  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp597  ret <vscale x 2 x i1> %1598}599 600define <vscale x 2 x i1> @fcmps_ogt_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {601; CHECK-LABEL: fcmps_ogt_fv_nxv2f16:602; CHECK:       # %bb.0:603; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma604; CHECK-NEXT:    vmflt.vf v0, v8, fa0605; CHECK-NEXT:    ret606  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0607  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer608  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp609  ret <vscale x 2 x i1> %1610}611 612define <vscale x 2 x i1> @fcmps_oge_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {613; CHECK-LABEL: fcmps_oge_vv_nxv2f16:614; CHECK:       # %bb.0:615; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma616; CHECK-NEXT:    vmfle.vv v0, v9, v8617; CHECK-NEXT:    ret618  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp619  ret <vscale x 2 x i1> %1620}621 622define <vscale x 2 x i1> @fcmps_oge_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {623; CHECK-LABEL: fcmps_oge_vf_nxv2f16:624; CHECK:       # %bb.0:625; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma626; CHECK-NEXT:    vmfge.vf v0, v8, fa0627; CHECK-NEXT:    ret628  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0629  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer630  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp631  ret <vscale x 2 x i1> %1632}633 634define <vscale x 2 x i1> @fcmps_oge_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {635; CHECK-LABEL: fcmps_oge_fv_nxv2f16:636; CHECK:       # %bb.0:637; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma638; CHECK-NEXT:    vmfle.vf v0, v8, fa0639; CHECK-NEXT:    ret640  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0641  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer642  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp643  ret <vscale x 2 x i1> %1644}645 646define <vscale x 2 x i1> @fcmps_olt_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {647; CHECK-LABEL: fcmps_olt_vv_nxv2f16:648; CHECK:       # %bb.0:649; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma650; CHECK-NEXT:    vmflt.vv v0, v8, v9651; CHECK-NEXT:    ret652  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp653  ret <vscale x 2 x i1> %1654}655 656define <vscale x 2 x i1> @fcmps_olt_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {657; CHECK-LABEL: fcmps_olt_vf_nxv2f16:658; CHECK:       # %bb.0:659; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma660; CHECK-NEXT:    vmflt.vf v0, v8, fa0661; CHECK-NEXT:    ret662  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0663  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer664  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp665  ret <vscale x 2 x i1> %1666}667 668define <vscale x 2 x i1> @fcmps_olt_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {669; CHECK-LABEL: fcmps_olt_fv_nxv2f16:670; CHECK:       # %bb.0:671; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma672; CHECK-NEXT:    vmfgt.vf v0, v8, fa0673; CHECK-NEXT:    ret674  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0675  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer676  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp677  ret <vscale x 2 x i1> %1678}679 680define <vscale x 2 x i1> @fcmps_ole_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {681; CHECK-LABEL: fcmps_ole_vv_nxv2f16:682; CHECK:       # %bb.0:683; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma684; CHECK-NEXT:    vmfle.vv v0, v8, v9685; CHECK-NEXT:    ret686  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp687  ret <vscale x 2 x i1> %1688}689 690define <vscale x 2 x i1> @fcmps_ole_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {691; CHECK-LABEL: fcmps_ole_vf_nxv2f16:692; CHECK:       # %bb.0:693; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma694; CHECK-NEXT:    vmfle.vf v0, v8, fa0695; CHECK-NEXT:    ret696  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0697  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer698  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp699  ret <vscale x 2 x i1> %1700}701 702define <vscale x 2 x i1> @fcmps_ole_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {703; CHECK-LABEL: fcmps_ole_fv_nxv2f16:704; CHECK:       # %bb.0:705; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma706; CHECK-NEXT:    vmfge.vf v0, v8, fa0707; CHECK-NEXT:    ret708  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0709  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer710  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp711  ret <vscale x 2 x i1> %1712}713 714define <vscale x 2 x i1> @fcmps_one_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {715; CHECK-LABEL: fcmps_one_vv_nxv2f16:716; CHECK:       # %bb.0:717; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma718; CHECK-NEXT:    vmflt.vv v10, v8, v9719; CHECK-NEXT:    vmflt.vv v8, v9, v8720; CHECK-NEXT:    vmor.mm v0, v8, v10721; CHECK-NEXT:    ret722  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp723  ret <vscale x 2 x i1> %1724}725 726define <vscale x 2 x i1> @fcmps_one_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {727; CHECK-LABEL: fcmps_one_vf_nxv2f16:728; CHECK:       # %bb.0:729; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma730; CHECK-NEXT:    vmflt.vf v9, v8, fa0731; CHECK-NEXT:    vmfgt.vf v8, v8, fa0732; CHECK-NEXT:    vmor.mm v0, v8, v9733; CHECK-NEXT:    ret734  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0735  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer736  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp737  ret <vscale x 2 x i1> %1738}739 740define <vscale x 2 x i1> @fcmps_one_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {741; CHECK-LABEL: fcmps_one_fv_nxv2f16:742; CHECK:       # %bb.0:743; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma744; CHECK-NEXT:    vmfgt.vf v9, v8, fa0745; CHECK-NEXT:    vmflt.vf v8, v8, fa0746; CHECK-NEXT:    vmor.mm v0, v8, v9747; CHECK-NEXT:    ret748  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0749  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer750  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp751  ret <vscale x 2 x i1> %1752}753 754define <vscale x 2 x i1> @fcmps_ord_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {755; CHECK-LABEL: fcmps_ord_vv_nxv2f16:756; CHECK:       # %bb.0:757; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma758; CHECK-NEXT:    vmfle.vv v9, v9, v9759; CHECK-NEXT:    vmfle.vv v8, v8, v8760; CHECK-NEXT:    vmand.mm v0, v8, v9761; CHECK-NEXT:    ret762  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp763  ret <vscale x 2 x i1> %1764}765 766define <vscale x 2 x i1> @fcmps_ord_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {767; CHECK-LABEL: fcmps_ord_vf_nxv2f16:768; CHECK:       # %bb.0:769; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma770; CHECK-NEXT:    vfmv.v.f v9, fa0771; CHECK-NEXT:    vmfle.vf v9, v9, fa0772; CHECK-NEXT:    vmfle.vv v8, v8, v8773; CHECK-NEXT:    vmand.mm v0, v8, v9774; CHECK-NEXT:    ret775  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0776  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer777  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp778  ret <vscale x 2 x i1> %1779}780 781define <vscale x 2 x i1> @fcmps_ord_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {782; CHECK-LABEL: fcmps_ord_fv_nxv2f16:783; CHECK:       # %bb.0:784; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma785; CHECK-NEXT:    vfmv.v.f v9, fa0786; CHECK-NEXT:    vmfle.vf v9, v9, fa0787; CHECK-NEXT:    vmfle.vv v8, v8, v8788; CHECK-NEXT:    vmand.mm v0, v9, v8789; CHECK-NEXT:    ret790  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0791  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer792  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp793  ret <vscale x 2 x i1> %1794}795 796define <vscale x 2 x i1> @fcmps_ueq_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {797; CHECK-LABEL: fcmps_ueq_vv_nxv2f16:798; CHECK:       # %bb.0:799; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma800; CHECK-NEXT:    vmflt.vv v10, v8, v9801; CHECK-NEXT:    vmflt.vv v8, v9, v8802; CHECK-NEXT:    vmnor.mm v0, v8, v10803; CHECK-NEXT:    ret804  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp805  ret <vscale x 2 x i1> %1806}807 808define <vscale x 2 x i1> @fcmps_ueq_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {809; CHECK-LABEL: fcmps_ueq_vf_nxv2f16:810; CHECK:       # %bb.0:811; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma812; CHECK-NEXT:    vmflt.vf v9, v8, fa0813; CHECK-NEXT:    vmfgt.vf v8, v8, fa0814; CHECK-NEXT:    vmnor.mm v0, v8, v9815; CHECK-NEXT:    ret816  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0817  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer818  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp819  ret <vscale x 2 x i1> %1820}821 822define <vscale x 2 x i1> @fcmps_ueq_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {823; CHECK-LABEL: fcmps_ueq_fv_nxv2f16:824; CHECK:       # %bb.0:825; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma826; CHECK-NEXT:    vmfgt.vf v9, v8, fa0827; CHECK-NEXT:    vmflt.vf v8, v8, fa0828; CHECK-NEXT:    vmnor.mm v0, v8, v9829; CHECK-NEXT:    ret830  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0831  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer832  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp833  ret <vscale x 2 x i1> %1834}835 836define <vscale x 2 x i1> @fcmps_ugt_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {837; CHECK-LABEL: fcmps_ugt_vv_nxv2f16:838; CHECK:       # %bb.0:839; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma840; CHECK-NEXT:    vmfle.vv v8, v8, v9841; CHECK-NEXT:    vmnot.m v0, v8842; CHECK-NEXT:    ret843  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp844  ret <vscale x 2 x i1> %1845}846 847define <vscale x 2 x i1> @fcmps_ugt_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {848; CHECK-LABEL: fcmps_ugt_vf_nxv2f16:849; CHECK:       # %bb.0:850; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma851; CHECK-NEXT:    vmfle.vf v8, v8, fa0852; CHECK-NEXT:    vmnot.m v0, v8853; CHECK-NEXT:    ret854  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0855  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer856  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp857  ret <vscale x 2 x i1> %1858}859 860define <vscale x 2 x i1> @fcmps_ugt_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {861; CHECK-LABEL: fcmps_ugt_fv_nxv2f16:862; CHECK:       # %bb.0:863; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma864; CHECK-NEXT:    vmfge.vf v8, v8, fa0865; CHECK-NEXT:    vmnot.m v0, v8866; CHECK-NEXT:    ret867  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0868  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer869  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp870  ret <vscale x 2 x i1> %1871}872 873define <vscale x 2 x i1> @fcmps_uge_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {874; CHECK-LABEL: fcmps_uge_vv_nxv2f16:875; CHECK:       # %bb.0:876; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma877; CHECK-NEXT:    vmflt.vv v8, v8, v9878; CHECK-NEXT:    vmnot.m v0, v8879; CHECK-NEXT:    ret880  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp881  ret <vscale x 2 x i1> %1882}883 884define <vscale x 2 x i1> @fcmps_uge_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {885; CHECK-LABEL: fcmps_uge_vf_nxv2f16:886; CHECK:       # %bb.0:887; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma888; CHECK-NEXT:    vmflt.vf v8, v8, fa0889; CHECK-NEXT:    vmnot.m v0, v8890; CHECK-NEXT:    ret891  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0892  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer893  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp894  ret <vscale x 2 x i1> %1895}896 897define <vscale x 2 x i1> @fcmps_uge_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {898; CHECK-LABEL: fcmps_uge_fv_nxv2f16:899; CHECK:       # %bb.0:900; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma901; CHECK-NEXT:    vmfgt.vf v8, v8, fa0902; CHECK-NEXT:    vmnot.m v0, v8903; CHECK-NEXT:    ret904  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0905  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer906  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp907  ret <vscale x 2 x i1> %1908}909 910define <vscale x 2 x i1> @fcmps_ult_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {911; CHECK-LABEL: fcmps_ult_vv_nxv2f16:912; CHECK:       # %bb.0:913; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma914; CHECK-NEXT:    vmfle.vv v8, v9, v8915; CHECK-NEXT:    vmnot.m v0, v8916; CHECK-NEXT:    ret917  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp918  ret <vscale x 2 x i1> %1919}920 921define <vscale x 2 x i1> @fcmps_ult_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {922; CHECK-LABEL: fcmps_ult_vf_nxv2f16:923; CHECK:       # %bb.0:924; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma925; CHECK-NEXT:    vmfge.vf v8, v8, fa0926; CHECK-NEXT:    vmnot.m v0, v8927; CHECK-NEXT:    ret928  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0929  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer930  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp931  ret <vscale x 2 x i1> %1932}933 934define <vscale x 2 x i1> @fcmps_ult_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {935; CHECK-LABEL: fcmps_ult_fv_nxv2f16:936; CHECK:       # %bb.0:937; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma938; CHECK-NEXT:    vmfle.vf v8, v8, fa0939; CHECK-NEXT:    vmnot.m v0, v8940; CHECK-NEXT:    ret941  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0942  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer943  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp944  ret <vscale x 2 x i1> %1945}946 947define <vscale x 2 x i1> @fcmps_ule_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {948; CHECK-LABEL: fcmps_ule_vv_nxv2f16:949; CHECK:       # %bb.0:950; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma951; CHECK-NEXT:    vmflt.vv v8, v9, v8952; CHECK-NEXT:    vmnot.m v0, v8953; CHECK-NEXT:    ret954  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp955  ret <vscale x 2 x i1> %1956}957 958define <vscale x 2 x i1> @fcmps_ule_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {959; CHECK-LABEL: fcmps_ule_vf_nxv2f16:960; CHECK:       # %bb.0:961; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma962; CHECK-NEXT:    vmfgt.vf v8, v8, fa0963; CHECK-NEXT:    vmnot.m v0, v8964; CHECK-NEXT:    ret965  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0966  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer967  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp968  ret <vscale x 2 x i1> %1969}970 971define <vscale x 2 x i1> @fcmps_ule_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {972; CHECK-LABEL: fcmps_ule_fv_nxv2f16:973; CHECK:       # %bb.0:974; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma975; CHECK-NEXT:    vmflt.vf v8, v8, fa0976; CHECK-NEXT:    vmnot.m v0, v8977; CHECK-NEXT:    ret978  %head = insertelement <vscale x 2 x half> poison, half %b, i32 0979  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer980  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp981  ret <vscale x 2 x i1> %1982}983 984define <vscale x 2 x i1> @fcmps_une_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {985; CHECK-LABEL: fcmps_une_vv_nxv2f16:986; CHECK:       # %bb.0:987; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma988; CHECK-NEXT:    vmfle.vv v10, v9, v8989; CHECK-NEXT:    vmfle.vv v8, v8, v9990; CHECK-NEXT:    vmnand.mm v0, v8, v10991; CHECK-NEXT:    ret992  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp993  ret <vscale x 2 x i1> %1994}995 996define <vscale x 2 x i1> @fcmps_une_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {997; CHECK-LABEL: fcmps_une_vf_nxv2f16:998; CHECK:       # %bb.0:999; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma1000; CHECK-NEXT:    vmfge.vf v9, v8, fa01001; CHECK-NEXT:    vmfle.vf v8, v8, fa01002; CHECK-NEXT:    vmnand.mm v0, v8, v91003; CHECK-NEXT:    ret1004  %head = insertelement <vscale x 2 x half> poison, half %b, i32 01005  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer1006  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp1007  ret <vscale x 2 x i1> %11008}1009 1010define <vscale x 2 x i1> @fcmps_une_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {1011; CHECK-LABEL: fcmps_une_fv_nxv2f16:1012; CHECK:       # %bb.0:1013; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma1014; CHECK-NEXT:    vmfle.vf v9, v8, fa01015; CHECK-NEXT:    vmfge.vf v8, v8, fa01016; CHECK-NEXT:    vmnand.mm v0, v8, v91017; CHECK-NEXT:    ret1018  %head = insertelement <vscale x 2 x half> poison, half %b, i32 01019  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer1020  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp1021  ret <vscale x 2 x i1> %11022}1023 1024define <vscale x 2 x i1> @fcmps_uno_vv_nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb) nounwind strictfp {1025; CHECK-LABEL: fcmps_uno_vv_nxv2f16:1026; CHECK:       # %bb.0:1027; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma1028; CHECK-NEXT:    vmfle.vv v9, v9, v91029; CHECK-NEXT:    vmfle.vv v8, v8, v81030; CHECK-NEXT:    vmnot.m v8, v81031; CHECK-NEXT:    vmorn.mm v0, v8, v91032; CHECK-NEXT:    ret1033  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp1034  ret <vscale x 2 x i1> %11035}1036 1037define <vscale x 2 x i1> @fcmps_uno_vf_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {1038; CHECK-LABEL: fcmps_uno_vf_nxv2f16:1039; CHECK:       # %bb.0:1040; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma1041; CHECK-NEXT:    vfmv.v.f v9, fa01042; CHECK-NEXT:    vmfle.vv v8, v8, v81043; CHECK-NEXT:    vmfle.vf v9, v9, fa01044; CHECK-NEXT:    vmnot.m v8, v81045; CHECK-NEXT:    vmorn.mm v0, v8, v91046; CHECK-NEXT:    ret1047  %head = insertelement <vscale x 2 x half> poison, half %b, i32 01048  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer1049  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp1050  ret <vscale x 2 x i1> %11051}1052 1053define <vscale x 2 x i1> @fcmps_uno_fv_nxv2f16(<vscale x 2 x half> %va, half %b) nounwind strictfp {1054; CHECK-LABEL: fcmps_uno_fv_nxv2f16:1055; CHECK:       # %bb.0:1056; CHECK-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma1057; CHECK-NEXT:    vfmv.v.f v9, fa01058; CHECK-NEXT:    vmfle.vf v9, v9, fa01059; CHECK-NEXT:    vmnot.m v9, v91060; CHECK-NEXT:    vmfle.vv v8, v8, v81061; CHECK-NEXT:    vmorn.mm v0, v9, v81062; CHECK-NEXT:    ret1063  %head = insertelement <vscale x 2 x half> poison, half %b, i32 01064  %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer1065  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f16(<vscale x 2 x half> %splat, <vscale x 2 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp1066  ret <vscale x 2 x i1> %11067}1068 1069define <vscale x 4 x i1> @fcmps_oeq_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1070; CHECK-LABEL: fcmps_oeq_vv_nxv4f16:1071; CHECK:       # %bb.0:1072; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1073; CHECK-NEXT:    vmfle.vv v10, v9, v81074; CHECK-NEXT:    vmfle.vv v8, v8, v91075; CHECK-NEXT:    vmand.mm v0, v8, v101076; CHECK-NEXT:    ret1077  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp1078  ret <vscale x 4 x i1> %11079}1080 1081define <vscale x 4 x i1> @fcmps_oeq_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1082; CHECK-LABEL: fcmps_oeq_vf_nxv4f16:1083; CHECK:       # %bb.0:1084; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1085; CHECK-NEXT:    vmfge.vf v9, v8, fa01086; CHECK-NEXT:    vmfle.vf v8, v8, fa01087; CHECK-NEXT:    vmand.mm v0, v8, v91088; CHECK-NEXT:    ret1089  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01090  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1091  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp1092  ret <vscale x 4 x i1> %11093}1094 1095define <vscale x 4 x i1> @fcmps_oeq_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1096; CHECK-LABEL: fcmps_oeq_fv_nxv4f16:1097; CHECK:       # %bb.0:1098; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1099; CHECK-NEXT:    vmfle.vf v9, v8, fa01100; CHECK-NEXT:    vmfge.vf v8, v8, fa01101; CHECK-NEXT:    vmand.mm v0, v8, v91102; CHECK-NEXT:    ret1103  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01104  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1105  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp1106  ret <vscale x 4 x i1> %11107}1108 1109define <vscale x 4 x i1> @fcmps_ogt_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1110; CHECK-LABEL: fcmps_ogt_vv_nxv4f16:1111; CHECK:       # %bb.0:1112; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1113; CHECK-NEXT:    vmflt.vv v0, v9, v81114; CHECK-NEXT:    ret1115  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp1116  ret <vscale x 4 x i1> %11117}1118 1119define <vscale x 4 x i1> @fcmps_ogt_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1120; CHECK-LABEL: fcmps_ogt_vf_nxv4f16:1121; CHECK:       # %bb.0:1122; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1123; CHECK-NEXT:    vmfgt.vf v0, v8, fa01124; CHECK-NEXT:    ret1125  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01126  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1127  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp1128  ret <vscale x 4 x i1> %11129}1130 1131define <vscale x 4 x i1> @fcmps_ogt_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1132; CHECK-LABEL: fcmps_ogt_fv_nxv4f16:1133; CHECK:       # %bb.0:1134; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1135; CHECK-NEXT:    vmflt.vf v0, v8, fa01136; CHECK-NEXT:    ret1137  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01138  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1139  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp1140  ret <vscale x 4 x i1> %11141}1142 1143define <vscale x 4 x i1> @fcmps_oge_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1144; CHECK-LABEL: fcmps_oge_vv_nxv4f16:1145; CHECK:       # %bb.0:1146; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1147; CHECK-NEXT:    vmfle.vv v0, v9, v81148; CHECK-NEXT:    ret1149  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp1150  ret <vscale x 4 x i1> %11151}1152 1153define <vscale x 4 x i1> @fcmps_oge_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1154; CHECK-LABEL: fcmps_oge_vf_nxv4f16:1155; CHECK:       # %bb.0:1156; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1157; CHECK-NEXT:    vmfge.vf v0, v8, fa01158; CHECK-NEXT:    ret1159  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01160  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1161  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp1162  ret <vscale x 4 x i1> %11163}1164 1165define <vscale x 4 x i1> @fcmps_oge_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1166; CHECK-LABEL: fcmps_oge_fv_nxv4f16:1167; CHECK:       # %bb.0:1168; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1169; CHECK-NEXT:    vmfle.vf v0, v8, fa01170; CHECK-NEXT:    ret1171  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01172  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1173  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp1174  ret <vscale x 4 x i1> %11175}1176 1177define <vscale x 4 x i1> @fcmps_olt_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1178; CHECK-LABEL: fcmps_olt_vv_nxv4f16:1179; CHECK:       # %bb.0:1180; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1181; CHECK-NEXT:    vmflt.vv v0, v8, v91182; CHECK-NEXT:    ret1183  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp1184  ret <vscale x 4 x i1> %11185}1186 1187define <vscale x 4 x i1> @fcmps_olt_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1188; CHECK-LABEL: fcmps_olt_vf_nxv4f16:1189; CHECK:       # %bb.0:1190; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1191; CHECK-NEXT:    vmflt.vf v0, v8, fa01192; CHECK-NEXT:    ret1193  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01194  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1195  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp1196  ret <vscale x 4 x i1> %11197}1198 1199define <vscale x 4 x i1> @fcmps_olt_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1200; CHECK-LABEL: fcmps_olt_fv_nxv4f16:1201; CHECK:       # %bb.0:1202; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1203; CHECK-NEXT:    vmfgt.vf v0, v8, fa01204; CHECK-NEXT:    ret1205  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01206  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1207  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp1208  ret <vscale x 4 x i1> %11209}1210 1211define <vscale x 4 x i1> @fcmps_ole_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1212; CHECK-LABEL: fcmps_ole_vv_nxv4f16:1213; CHECK:       # %bb.0:1214; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1215; CHECK-NEXT:    vmfle.vv v0, v8, v91216; CHECK-NEXT:    ret1217  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp1218  ret <vscale x 4 x i1> %11219}1220 1221define <vscale x 4 x i1> @fcmps_ole_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1222; CHECK-LABEL: fcmps_ole_vf_nxv4f16:1223; CHECK:       # %bb.0:1224; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1225; CHECK-NEXT:    vmfle.vf v0, v8, fa01226; CHECK-NEXT:    ret1227  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01228  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1229  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp1230  ret <vscale x 4 x i1> %11231}1232 1233define <vscale x 4 x i1> @fcmps_ole_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1234; CHECK-LABEL: fcmps_ole_fv_nxv4f16:1235; CHECK:       # %bb.0:1236; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1237; CHECK-NEXT:    vmfge.vf v0, v8, fa01238; CHECK-NEXT:    ret1239  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01240  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1241  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp1242  ret <vscale x 4 x i1> %11243}1244 1245define <vscale x 4 x i1> @fcmps_one_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1246; CHECK-LABEL: fcmps_one_vv_nxv4f16:1247; CHECK:       # %bb.0:1248; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1249; CHECK-NEXT:    vmflt.vv v10, v8, v91250; CHECK-NEXT:    vmflt.vv v8, v9, v81251; CHECK-NEXT:    vmor.mm v0, v8, v101252; CHECK-NEXT:    ret1253  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp1254  ret <vscale x 4 x i1> %11255}1256 1257define <vscale x 4 x i1> @fcmps_one_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1258; CHECK-LABEL: fcmps_one_vf_nxv4f16:1259; CHECK:       # %bb.0:1260; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1261; CHECK-NEXT:    vmflt.vf v9, v8, fa01262; CHECK-NEXT:    vmfgt.vf v8, v8, fa01263; CHECK-NEXT:    vmor.mm v0, v8, v91264; CHECK-NEXT:    ret1265  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01266  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1267  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp1268  ret <vscale x 4 x i1> %11269}1270 1271define <vscale x 4 x i1> @fcmps_one_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1272; CHECK-LABEL: fcmps_one_fv_nxv4f16:1273; CHECK:       # %bb.0:1274; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1275; CHECK-NEXT:    vmfgt.vf v9, v8, fa01276; CHECK-NEXT:    vmflt.vf v8, v8, fa01277; CHECK-NEXT:    vmor.mm v0, v8, v91278; CHECK-NEXT:    ret1279  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01280  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1281  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp1282  ret <vscale x 4 x i1> %11283}1284 1285define <vscale x 4 x i1> @fcmps_ord_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1286; CHECK-LABEL: fcmps_ord_vv_nxv4f16:1287; CHECK:       # %bb.0:1288; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1289; CHECK-NEXT:    vmfle.vv v9, v9, v91290; CHECK-NEXT:    vmfle.vv v8, v8, v81291; CHECK-NEXT:    vmand.mm v0, v8, v91292; CHECK-NEXT:    ret1293  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp1294  ret <vscale x 4 x i1> %11295}1296 1297define <vscale x 4 x i1> @fcmps_ord_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1298; CHECK-LABEL: fcmps_ord_vf_nxv4f16:1299; CHECK:       # %bb.0:1300; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1301; CHECK-NEXT:    vfmv.v.f v9, fa01302; CHECK-NEXT:    vmfle.vf v9, v9, fa01303; CHECK-NEXT:    vmfle.vv v8, v8, v81304; CHECK-NEXT:    vmand.mm v0, v8, v91305; CHECK-NEXT:    ret1306  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01307  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1308  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp1309  ret <vscale x 4 x i1> %11310}1311 1312define <vscale x 4 x i1> @fcmps_ord_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1313; CHECK-LABEL: fcmps_ord_fv_nxv4f16:1314; CHECK:       # %bb.0:1315; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1316; CHECK-NEXT:    vfmv.v.f v9, fa01317; CHECK-NEXT:    vmfle.vf v9, v9, fa01318; CHECK-NEXT:    vmfle.vv v8, v8, v81319; CHECK-NEXT:    vmand.mm v0, v9, v81320; CHECK-NEXT:    ret1321  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01322  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1323  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp1324  ret <vscale x 4 x i1> %11325}1326 1327define <vscale x 4 x i1> @fcmps_ueq_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1328; CHECK-LABEL: fcmps_ueq_vv_nxv4f16:1329; CHECK:       # %bb.0:1330; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1331; CHECK-NEXT:    vmflt.vv v10, v8, v91332; CHECK-NEXT:    vmflt.vv v8, v9, v81333; CHECK-NEXT:    vmnor.mm v0, v8, v101334; CHECK-NEXT:    ret1335  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp1336  ret <vscale x 4 x i1> %11337}1338 1339define <vscale x 4 x i1> @fcmps_ueq_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1340; CHECK-LABEL: fcmps_ueq_vf_nxv4f16:1341; CHECK:       # %bb.0:1342; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1343; CHECK-NEXT:    vmflt.vf v9, v8, fa01344; CHECK-NEXT:    vmfgt.vf v8, v8, fa01345; CHECK-NEXT:    vmnor.mm v0, v8, v91346; CHECK-NEXT:    ret1347  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01348  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1349  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp1350  ret <vscale x 4 x i1> %11351}1352 1353define <vscale x 4 x i1> @fcmps_ueq_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1354; CHECK-LABEL: fcmps_ueq_fv_nxv4f16:1355; CHECK:       # %bb.0:1356; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1357; CHECK-NEXT:    vmfgt.vf v9, v8, fa01358; CHECK-NEXT:    vmflt.vf v8, v8, fa01359; CHECK-NEXT:    vmnor.mm v0, v8, v91360; CHECK-NEXT:    ret1361  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01362  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1363  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp1364  ret <vscale x 4 x i1> %11365}1366 1367define <vscale x 4 x i1> @fcmps_ugt_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1368; CHECK-LABEL: fcmps_ugt_vv_nxv4f16:1369; CHECK:       # %bb.0:1370; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1371; CHECK-NEXT:    vmfle.vv v8, v8, v91372; CHECK-NEXT:    vmnot.m v0, v81373; CHECK-NEXT:    ret1374  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp1375  ret <vscale x 4 x i1> %11376}1377 1378define <vscale x 4 x i1> @fcmps_ugt_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1379; CHECK-LABEL: fcmps_ugt_vf_nxv4f16:1380; CHECK:       # %bb.0:1381; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1382; CHECK-NEXT:    vmfle.vf v8, v8, fa01383; CHECK-NEXT:    vmnot.m v0, v81384; CHECK-NEXT:    ret1385  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01386  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1387  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp1388  ret <vscale x 4 x i1> %11389}1390 1391define <vscale x 4 x i1> @fcmps_ugt_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1392; CHECK-LABEL: fcmps_ugt_fv_nxv4f16:1393; CHECK:       # %bb.0:1394; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1395; CHECK-NEXT:    vmfge.vf v8, v8, fa01396; CHECK-NEXT:    vmnot.m v0, v81397; CHECK-NEXT:    ret1398  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01399  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1400  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp1401  ret <vscale x 4 x i1> %11402}1403 1404define <vscale x 4 x i1> @fcmps_uge_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1405; CHECK-LABEL: fcmps_uge_vv_nxv4f16:1406; CHECK:       # %bb.0:1407; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1408; CHECK-NEXT:    vmflt.vv v8, v8, v91409; CHECK-NEXT:    vmnot.m v0, v81410; CHECK-NEXT:    ret1411  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp1412  ret <vscale x 4 x i1> %11413}1414 1415define <vscale x 4 x i1> @fcmps_uge_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1416; CHECK-LABEL: fcmps_uge_vf_nxv4f16:1417; CHECK:       # %bb.0:1418; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1419; CHECK-NEXT:    vmflt.vf v8, v8, fa01420; CHECK-NEXT:    vmnot.m v0, v81421; CHECK-NEXT:    ret1422  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01423  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1424  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp1425  ret <vscale x 4 x i1> %11426}1427 1428define <vscale x 4 x i1> @fcmps_uge_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1429; CHECK-LABEL: fcmps_uge_fv_nxv4f16:1430; CHECK:       # %bb.0:1431; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1432; CHECK-NEXT:    vmfgt.vf v8, v8, fa01433; CHECK-NEXT:    vmnot.m v0, v81434; CHECK-NEXT:    ret1435  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01436  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1437  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp1438  ret <vscale x 4 x i1> %11439}1440 1441define <vscale x 4 x i1> @fcmps_ult_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1442; CHECK-LABEL: fcmps_ult_vv_nxv4f16:1443; CHECK:       # %bb.0:1444; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1445; CHECK-NEXT:    vmfle.vv v8, v9, v81446; CHECK-NEXT:    vmnot.m v0, v81447; CHECK-NEXT:    ret1448  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp1449  ret <vscale x 4 x i1> %11450}1451 1452define <vscale x 4 x i1> @fcmps_ult_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1453; CHECK-LABEL: fcmps_ult_vf_nxv4f16:1454; CHECK:       # %bb.0:1455; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1456; CHECK-NEXT:    vmfge.vf v8, v8, fa01457; CHECK-NEXT:    vmnot.m v0, v81458; CHECK-NEXT:    ret1459  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01460  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1461  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp1462  ret <vscale x 4 x i1> %11463}1464 1465define <vscale x 4 x i1> @fcmps_ult_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1466; CHECK-LABEL: fcmps_ult_fv_nxv4f16:1467; CHECK:       # %bb.0:1468; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1469; CHECK-NEXT:    vmfle.vf v8, v8, fa01470; CHECK-NEXT:    vmnot.m v0, v81471; CHECK-NEXT:    ret1472  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01473  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1474  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp1475  ret <vscale x 4 x i1> %11476}1477 1478define <vscale x 4 x i1> @fcmps_ule_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1479; CHECK-LABEL: fcmps_ule_vv_nxv4f16:1480; CHECK:       # %bb.0:1481; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1482; CHECK-NEXT:    vmflt.vv v8, v9, v81483; CHECK-NEXT:    vmnot.m v0, v81484; CHECK-NEXT:    ret1485  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp1486  ret <vscale x 4 x i1> %11487}1488 1489define <vscale x 4 x i1> @fcmps_ule_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1490; CHECK-LABEL: fcmps_ule_vf_nxv4f16:1491; CHECK:       # %bb.0:1492; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1493; CHECK-NEXT:    vmfgt.vf v8, v8, fa01494; CHECK-NEXT:    vmnot.m v0, v81495; CHECK-NEXT:    ret1496  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01497  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1498  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp1499  ret <vscale x 4 x i1> %11500}1501 1502define <vscale x 4 x i1> @fcmps_ule_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1503; CHECK-LABEL: fcmps_ule_fv_nxv4f16:1504; CHECK:       # %bb.0:1505; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1506; CHECK-NEXT:    vmflt.vf v8, v8, fa01507; CHECK-NEXT:    vmnot.m v0, v81508; CHECK-NEXT:    ret1509  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01510  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1511  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp1512  ret <vscale x 4 x i1> %11513}1514 1515define <vscale x 4 x i1> @fcmps_une_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1516; CHECK-LABEL: fcmps_une_vv_nxv4f16:1517; CHECK:       # %bb.0:1518; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1519; CHECK-NEXT:    vmfle.vv v10, v9, v81520; CHECK-NEXT:    vmfle.vv v8, v8, v91521; CHECK-NEXT:    vmnand.mm v0, v8, v101522; CHECK-NEXT:    ret1523  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp1524  ret <vscale x 4 x i1> %11525}1526 1527define <vscale x 4 x i1> @fcmps_une_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1528; CHECK-LABEL: fcmps_une_vf_nxv4f16:1529; CHECK:       # %bb.0:1530; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1531; CHECK-NEXT:    vmfge.vf v9, v8, fa01532; CHECK-NEXT:    vmfle.vf v8, v8, fa01533; CHECK-NEXT:    vmnand.mm v0, v8, v91534; CHECK-NEXT:    ret1535  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01536  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1537  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp1538  ret <vscale x 4 x i1> %11539}1540 1541define <vscale x 4 x i1> @fcmps_une_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1542; CHECK-LABEL: fcmps_une_fv_nxv4f16:1543; CHECK:       # %bb.0:1544; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1545; CHECK-NEXT:    vmfle.vf v9, v8, fa01546; CHECK-NEXT:    vmfge.vf v8, v8, fa01547; CHECK-NEXT:    vmnand.mm v0, v8, v91548; CHECK-NEXT:    ret1549  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01550  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1551  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp1552  ret <vscale x 4 x i1> %11553}1554 1555define <vscale x 4 x i1> @fcmps_uno_vv_nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb) nounwind strictfp {1556; CHECK-LABEL: fcmps_uno_vv_nxv4f16:1557; CHECK:       # %bb.0:1558; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1559; CHECK-NEXT:    vmfle.vv v9, v9, v91560; CHECK-NEXT:    vmfle.vv v8, v8, v81561; CHECK-NEXT:    vmnot.m v8, v81562; CHECK-NEXT:    vmorn.mm v0, v8, v91563; CHECK-NEXT:    ret1564  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp1565  ret <vscale x 4 x i1> %11566}1567 1568define <vscale x 4 x i1> @fcmps_uno_vf_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1569; CHECK-LABEL: fcmps_uno_vf_nxv4f16:1570; CHECK:       # %bb.0:1571; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1572; CHECK-NEXT:    vfmv.v.f v9, fa01573; CHECK-NEXT:    vmfle.vv v8, v8, v81574; CHECK-NEXT:    vmfle.vf v9, v9, fa01575; CHECK-NEXT:    vmnot.m v8, v81576; CHECK-NEXT:    vmorn.mm v0, v8, v91577; CHECK-NEXT:    ret1578  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01579  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1580  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp1581  ret <vscale x 4 x i1> %11582}1583 1584define <vscale x 4 x i1> @fcmps_uno_fv_nxv4f16(<vscale x 4 x half> %va, half %b) nounwind strictfp {1585; CHECK-LABEL: fcmps_uno_fv_nxv4f16:1586; CHECK:       # %bb.0:1587; CHECK-NEXT:    vsetvli a0, zero, e16, m1, ta, ma1588; CHECK-NEXT:    vfmv.v.f v9, fa01589; CHECK-NEXT:    vmfle.vf v9, v9, fa01590; CHECK-NEXT:    vmnot.m v9, v91591; CHECK-NEXT:    vmfle.vv v8, v8, v81592; CHECK-NEXT:    vmorn.mm v0, v9, v81593; CHECK-NEXT:    ret1594  %head = insertelement <vscale x 4 x half> poison, half %b, i32 01595  %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer1596  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f16(<vscale x 4 x half> %splat, <vscale x 4 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp1597  ret <vscale x 4 x i1> %11598}1599 1600define <vscale x 8 x i1> @fcmps_oeq_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1601; CHECK-LABEL: fcmps_oeq_vv_nxv8f16:1602; CHECK:       # %bb.0:1603; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1604; CHECK-NEXT:    vmfle.vv v12, v10, v81605; CHECK-NEXT:    vmfle.vv v13, v8, v101606; CHECK-NEXT:    vmand.mm v0, v13, v121607; CHECK-NEXT:    ret1608  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp1609  ret <vscale x 8 x i1> %11610}1611 1612define <vscale x 8 x i1> @fcmps_oeq_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1613; CHECK-LABEL: fcmps_oeq_vf_nxv8f16:1614; CHECK:       # %bb.0:1615; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1616; CHECK-NEXT:    vmfge.vf v10, v8, fa01617; CHECK-NEXT:    vmfle.vf v11, v8, fa01618; CHECK-NEXT:    vmand.mm v0, v11, v101619; CHECK-NEXT:    ret1620  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01621  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1622  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp1623  ret <vscale x 8 x i1> %11624}1625 1626define <vscale x 8 x i1> @fcmps_oeq_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1627; CHECK-LABEL: fcmps_oeq_fv_nxv8f16:1628; CHECK:       # %bb.0:1629; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1630; CHECK-NEXT:    vmfle.vf v10, v8, fa01631; CHECK-NEXT:    vmfge.vf v11, v8, fa01632; CHECK-NEXT:    vmand.mm v0, v11, v101633; CHECK-NEXT:    ret1634  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01635  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1636  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp1637  ret <vscale x 8 x i1> %11638}1639 1640define <vscale x 8 x i1> @fcmps_ogt_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1641; CHECK-LABEL: fcmps_ogt_vv_nxv8f16:1642; CHECK:       # %bb.0:1643; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1644; CHECK-NEXT:    vmflt.vv v0, v10, v81645; CHECK-NEXT:    ret1646  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp1647  ret <vscale x 8 x i1> %11648}1649 1650define <vscale x 8 x i1> @fcmps_ogt_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1651; CHECK-LABEL: fcmps_ogt_vf_nxv8f16:1652; CHECK:       # %bb.0:1653; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1654; CHECK-NEXT:    vmfgt.vf v0, v8, fa01655; CHECK-NEXT:    ret1656  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01657  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1658  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp1659  ret <vscale x 8 x i1> %11660}1661 1662define <vscale x 8 x i1> @fcmps_ogt_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1663; CHECK-LABEL: fcmps_ogt_fv_nxv8f16:1664; CHECK:       # %bb.0:1665; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1666; CHECK-NEXT:    vmflt.vf v0, v8, fa01667; CHECK-NEXT:    ret1668  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01669  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1670  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp1671  ret <vscale x 8 x i1> %11672}1673 1674define <vscale x 8 x i1> @fcmps_oge_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1675; CHECK-LABEL: fcmps_oge_vv_nxv8f16:1676; CHECK:       # %bb.0:1677; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1678; CHECK-NEXT:    vmfle.vv v0, v10, v81679; CHECK-NEXT:    ret1680  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp1681  ret <vscale x 8 x i1> %11682}1683 1684define <vscale x 8 x i1> @fcmps_oge_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1685; CHECK-LABEL: fcmps_oge_vf_nxv8f16:1686; CHECK:       # %bb.0:1687; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1688; CHECK-NEXT:    vmfge.vf v0, v8, fa01689; CHECK-NEXT:    ret1690  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01691  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1692  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp1693  ret <vscale x 8 x i1> %11694}1695 1696define <vscale x 8 x i1> @fcmps_oge_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1697; CHECK-LABEL: fcmps_oge_fv_nxv8f16:1698; CHECK:       # %bb.0:1699; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1700; CHECK-NEXT:    vmfle.vf v0, v8, fa01701; CHECK-NEXT:    ret1702  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01703  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1704  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp1705  ret <vscale x 8 x i1> %11706}1707 1708define <vscale x 8 x i1> @fcmps_olt_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1709; CHECK-LABEL: fcmps_olt_vv_nxv8f16:1710; CHECK:       # %bb.0:1711; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1712; CHECK-NEXT:    vmflt.vv v0, v8, v101713; CHECK-NEXT:    ret1714  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp1715  ret <vscale x 8 x i1> %11716}1717 1718define <vscale x 8 x i1> @fcmps_olt_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1719; CHECK-LABEL: fcmps_olt_vf_nxv8f16:1720; CHECK:       # %bb.0:1721; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1722; CHECK-NEXT:    vmflt.vf v0, v8, fa01723; CHECK-NEXT:    ret1724  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01725  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1726  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp1727  ret <vscale x 8 x i1> %11728}1729 1730define <vscale x 8 x i1> @fcmps_olt_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1731; CHECK-LABEL: fcmps_olt_fv_nxv8f16:1732; CHECK:       # %bb.0:1733; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1734; CHECK-NEXT:    vmfgt.vf v0, v8, fa01735; CHECK-NEXT:    ret1736  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01737  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1738  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp1739  ret <vscale x 8 x i1> %11740}1741 1742define <vscale x 8 x i1> @fcmps_ole_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1743; CHECK-LABEL: fcmps_ole_vv_nxv8f16:1744; CHECK:       # %bb.0:1745; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1746; CHECK-NEXT:    vmfle.vv v0, v8, v101747; CHECK-NEXT:    ret1748  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp1749  ret <vscale x 8 x i1> %11750}1751 1752define <vscale x 8 x i1> @fcmps_ole_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1753; CHECK-LABEL: fcmps_ole_vf_nxv8f16:1754; CHECK:       # %bb.0:1755; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1756; CHECK-NEXT:    vmfle.vf v0, v8, fa01757; CHECK-NEXT:    ret1758  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01759  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1760  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp1761  ret <vscale x 8 x i1> %11762}1763 1764define <vscale x 8 x i1> @fcmps_ole_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1765; CHECK-LABEL: fcmps_ole_fv_nxv8f16:1766; CHECK:       # %bb.0:1767; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1768; CHECK-NEXT:    vmfge.vf v0, v8, fa01769; CHECK-NEXT:    ret1770  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01771  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1772  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp1773  ret <vscale x 8 x i1> %11774}1775 1776define <vscale x 8 x i1> @fcmps_one_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1777; CHECK-LABEL: fcmps_one_vv_nxv8f16:1778; CHECK:       # %bb.0:1779; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1780; CHECK-NEXT:    vmflt.vv v12, v8, v101781; CHECK-NEXT:    vmflt.vv v13, v10, v81782; CHECK-NEXT:    vmor.mm v0, v13, v121783; CHECK-NEXT:    ret1784  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp1785  ret <vscale x 8 x i1> %11786}1787 1788define <vscale x 8 x i1> @fcmps_one_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1789; CHECK-LABEL: fcmps_one_vf_nxv8f16:1790; CHECK:       # %bb.0:1791; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1792; CHECK-NEXT:    vmflt.vf v10, v8, fa01793; CHECK-NEXT:    vmfgt.vf v11, v8, fa01794; CHECK-NEXT:    vmor.mm v0, v11, v101795; CHECK-NEXT:    ret1796  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01797  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1798  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp1799  ret <vscale x 8 x i1> %11800}1801 1802define <vscale x 8 x i1> @fcmps_one_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1803; CHECK-LABEL: fcmps_one_fv_nxv8f16:1804; CHECK:       # %bb.0:1805; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1806; CHECK-NEXT:    vmfgt.vf v10, v8, fa01807; CHECK-NEXT:    vmflt.vf v11, v8, fa01808; CHECK-NEXT:    vmor.mm v0, v11, v101809; CHECK-NEXT:    ret1810  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01811  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1812  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp1813  ret <vscale x 8 x i1> %11814}1815 1816define <vscale x 8 x i1> @fcmps_ord_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1817; CHECK-LABEL: fcmps_ord_vv_nxv8f16:1818; CHECK:       # %bb.0:1819; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1820; CHECK-NEXT:    vmfle.vv v12, v10, v101821; CHECK-NEXT:    vmfle.vv v10, v8, v81822; CHECK-NEXT:    vmand.mm v0, v10, v121823; CHECK-NEXT:    ret1824  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp1825  ret <vscale x 8 x i1> %11826}1827 1828define <vscale x 8 x i1> @fcmps_ord_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1829; CHECK-LABEL: fcmps_ord_vf_nxv8f16:1830; CHECK:       # %bb.0:1831; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1832; CHECK-NEXT:    vfmv.v.f v10, fa01833; CHECK-NEXT:    vmfle.vf v12, v10, fa01834; CHECK-NEXT:    vmfle.vv v10, v8, v81835; CHECK-NEXT:    vmand.mm v0, v10, v121836; CHECK-NEXT:    ret1837  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01838  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1839  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp1840  ret <vscale x 8 x i1> %11841}1842 1843define <vscale x 8 x i1> @fcmps_ord_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1844; CHECK-LABEL: fcmps_ord_fv_nxv8f16:1845; CHECK:       # %bb.0:1846; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1847; CHECK-NEXT:    vfmv.v.f v10, fa01848; CHECK-NEXT:    vmfle.vf v12, v10, fa01849; CHECK-NEXT:    vmfle.vv v10, v8, v81850; CHECK-NEXT:    vmand.mm v0, v12, v101851; CHECK-NEXT:    ret1852  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01853  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1854  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp1855  ret <vscale x 8 x i1> %11856}1857 1858define <vscale x 8 x i1> @fcmps_ueq_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1859; CHECK-LABEL: fcmps_ueq_vv_nxv8f16:1860; CHECK:       # %bb.0:1861; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1862; CHECK-NEXT:    vmflt.vv v12, v8, v101863; CHECK-NEXT:    vmflt.vv v13, v10, v81864; CHECK-NEXT:    vmnor.mm v0, v13, v121865; CHECK-NEXT:    ret1866  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp1867  ret <vscale x 8 x i1> %11868}1869 1870define <vscale x 8 x i1> @fcmps_ueq_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1871; CHECK-LABEL: fcmps_ueq_vf_nxv8f16:1872; CHECK:       # %bb.0:1873; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1874; CHECK-NEXT:    vmflt.vf v10, v8, fa01875; CHECK-NEXT:    vmfgt.vf v11, v8, fa01876; CHECK-NEXT:    vmnor.mm v0, v11, v101877; CHECK-NEXT:    ret1878  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01879  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1880  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp1881  ret <vscale x 8 x i1> %11882}1883 1884define <vscale x 8 x i1> @fcmps_ueq_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1885; CHECK-LABEL: fcmps_ueq_fv_nxv8f16:1886; CHECK:       # %bb.0:1887; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1888; CHECK-NEXT:    vmfgt.vf v10, v8, fa01889; CHECK-NEXT:    vmflt.vf v11, v8, fa01890; CHECK-NEXT:    vmnor.mm v0, v11, v101891; CHECK-NEXT:    ret1892  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01893  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1894  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp1895  ret <vscale x 8 x i1> %11896}1897 1898define <vscale x 8 x i1> @fcmps_ugt_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1899; CHECK-LABEL: fcmps_ugt_vv_nxv8f16:1900; CHECK:       # %bb.0:1901; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1902; CHECK-NEXT:    vmfle.vv v12, v8, v101903; CHECK-NEXT:    vmnot.m v0, v121904; CHECK-NEXT:    ret1905  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp1906  ret <vscale x 8 x i1> %11907}1908 1909define <vscale x 8 x i1> @fcmps_ugt_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1910; CHECK-LABEL: fcmps_ugt_vf_nxv8f16:1911; CHECK:       # %bb.0:1912; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1913; CHECK-NEXT:    vmfle.vf v10, v8, fa01914; CHECK-NEXT:    vmnot.m v0, v101915; CHECK-NEXT:    ret1916  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01917  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1918  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp1919  ret <vscale x 8 x i1> %11920}1921 1922define <vscale x 8 x i1> @fcmps_ugt_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1923; CHECK-LABEL: fcmps_ugt_fv_nxv8f16:1924; CHECK:       # %bb.0:1925; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1926; CHECK-NEXT:    vmfge.vf v10, v8, fa01927; CHECK-NEXT:    vmnot.m v0, v101928; CHECK-NEXT:    ret1929  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01930  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1931  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp1932  ret <vscale x 8 x i1> %11933}1934 1935define <vscale x 8 x i1> @fcmps_uge_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1936; CHECK-LABEL: fcmps_uge_vv_nxv8f16:1937; CHECK:       # %bb.0:1938; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1939; CHECK-NEXT:    vmflt.vv v12, v8, v101940; CHECK-NEXT:    vmnot.m v0, v121941; CHECK-NEXT:    ret1942  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp1943  ret <vscale x 8 x i1> %11944}1945 1946define <vscale x 8 x i1> @fcmps_uge_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1947; CHECK-LABEL: fcmps_uge_vf_nxv8f16:1948; CHECK:       # %bb.0:1949; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1950; CHECK-NEXT:    vmflt.vf v10, v8, fa01951; CHECK-NEXT:    vmnot.m v0, v101952; CHECK-NEXT:    ret1953  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01954  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1955  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp1956  ret <vscale x 8 x i1> %11957}1958 1959define <vscale x 8 x i1> @fcmps_uge_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1960; CHECK-LABEL: fcmps_uge_fv_nxv8f16:1961; CHECK:       # %bb.0:1962; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1963; CHECK-NEXT:    vmfgt.vf v10, v8, fa01964; CHECK-NEXT:    vmnot.m v0, v101965; CHECK-NEXT:    ret1966  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01967  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1968  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp1969  ret <vscale x 8 x i1> %11970}1971 1972define <vscale x 8 x i1> @fcmps_ult_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {1973; CHECK-LABEL: fcmps_ult_vv_nxv8f16:1974; CHECK:       # %bb.0:1975; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1976; CHECK-NEXT:    vmfle.vv v12, v10, v81977; CHECK-NEXT:    vmnot.m v0, v121978; CHECK-NEXT:    ret1979  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp1980  ret <vscale x 8 x i1> %11981}1982 1983define <vscale x 8 x i1> @fcmps_ult_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1984; CHECK-LABEL: fcmps_ult_vf_nxv8f16:1985; CHECK:       # %bb.0:1986; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma1987; CHECK-NEXT:    vmfge.vf v10, v8, fa01988; CHECK-NEXT:    vmnot.m v0, v101989; CHECK-NEXT:    ret1990  %head = insertelement <vscale x 8 x half> poison, half %b, i32 01991  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer1992  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp1993  ret <vscale x 8 x i1> %11994}1995 1996define <vscale x 8 x i1> @fcmps_ult_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {1997; CHECK-LABEL: fcmps_ult_fv_nxv8f16:1998; CHECK:       # %bb.0:1999; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2000; CHECK-NEXT:    vmfle.vf v10, v8, fa02001; CHECK-NEXT:    vmnot.m v0, v102002; CHECK-NEXT:    ret2003  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02004  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2005  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp2006  ret <vscale x 8 x i1> %12007}2008 2009define <vscale x 8 x i1> @fcmps_ule_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {2010; CHECK-LABEL: fcmps_ule_vv_nxv8f16:2011; CHECK:       # %bb.0:2012; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2013; CHECK-NEXT:    vmflt.vv v12, v10, v82014; CHECK-NEXT:    vmnot.m v0, v122015; CHECK-NEXT:    ret2016  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp2017  ret <vscale x 8 x i1> %12018}2019 2020define <vscale x 8 x i1> @fcmps_ule_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {2021; CHECK-LABEL: fcmps_ule_vf_nxv8f16:2022; CHECK:       # %bb.0:2023; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2024; CHECK-NEXT:    vmfgt.vf v10, v8, fa02025; CHECK-NEXT:    vmnot.m v0, v102026; CHECK-NEXT:    ret2027  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02028  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2029  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp2030  ret <vscale x 8 x i1> %12031}2032 2033define <vscale x 8 x i1> @fcmps_ule_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {2034; CHECK-LABEL: fcmps_ule_fv_nxv8f16:2035; CHECK:       # %bb.0:2036; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2037; CHECK-NEXT:    vmflt.vf v10, v8, fa02038; CHECK-NEXT:    vmnot.m v0, v102039; CHECK-NEXT:    ret2040  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02041  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2042  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp2043  ret <vscale x 8 x i1> %12044}2045 2046define <vscale x 8 x i1> @fcmps_une_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {2047; CHECK-LABEL: fcmps_une_vv_nxv8f16:2048; CHECK:       # %bb.0:2049; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2050; CHECK-NEXT:    vmfle.vv v12, v10, v82051; CHECK-NEXT:    vmfle.vv v13, v8, v102052; CHECK-NEXT:    vmnand.mm v0, v13, v122053; CHECK-NEXT:    ret2054  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp2055  ret <vscale x 8 x i1> %12056}2057 2058define <vscale x 8 x i1> @fcmps_une_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {2059; CHECK-LABEL: fcmps_une_vf_nxv8f16:2060; CHECK:       # %bb.0:2061; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2062; CHECK-NEXT:    vmfge.vf v10, v8, fa02063; CHECK-NEXT:    vmfle.vf v11, v8, fa02064; CHECK-NEXT:    vmnand.mm v0, v11, v102065; CHECK-NEXT:    ret2066  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02067  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2068  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp2069  ret <vscale x 8 x i1> %12070}2071 2072define <vscale x 8 x i1> @fcmps_une_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {2073; CHECK-LABEL: fcmps_une_fv_nxv8f16:2074; CHECK:       # %bb.0:2075; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2076; CHECK-NEXT:    vmfle.vf v10, v8, fa02077; CHECK-NEXT:    vmfge.vf v11, v8, fa02078; CHECK-NEXT:    vmnand.mm v0, v11, v102079; CHECK-NEXT:    ret2080  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02081  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2082  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp2083  ret <vscale x 8 x i1> %12084}2085 2086define <vscale x 8 x i1> @fcmps_uno_vv_nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb) nounwind strictfp {2087; CHECK-LABEL: fcmps_uno_vv_nxv8f16:2088; CHECK:       # %bb.0:2089; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2090; CHECK-NEXT:    vmfle.vv v12, v10, v102091; CHECK-NEXT:    vmfle.vv v10, v8, v82092; CHECK-NEXT:    vmnot.m v8, v102093; CHECK-NEXT:    vmorn.mm v0, v8, v122094; CHECK-NEXT:    ret2095  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp2096  ret <vscale x 8 x i1> %12097}2098 2099define <vscale x 8 x i1> @fcmps_uno_vf_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {2100; CHECK-LABEL: fcmps_uno_vf_nxv8f16:2101; CHECK:       # %bb.0:2102; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2103; CHECK-NEXT:    vfmv.v.f v10, fa02104; CHECK-NEXT:    vmfle.vv v12, v8, v82105; CHECK-NEXT:    vmfle.vf v8, v10, fa02106; CHECK-NEXT:    vmnot.m v9, v122107; CHECK-NEXT:    vmorn.mm v0, v9, v82108; CHECK-NEXT:    ret2109  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02110  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2111  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp2112  ret <vscale x 8 x i1> %12113}2114 2115define <vscale x 8 x i1> @fcmps_uno_fv_nxv8f16(<vscale x 8 x half> %va, half %b) nounwind strictfp {2116; CHECK-LABEL: fcmps_uno_fv_nxv8f16:2117; CHECK:       # %bb.0:2118; CHECK-NEXT:    vsetvli a0, zero, e16, m2, ta, ma2119; CHECK-NEXT:    vfmv.v.f v10, fa02120; CHECK-NEXT:    vmfle.vf v12, v10, fa02121; CHECK-NEXT:    vmnot.m v10, v122122; CHECK-NEXT:    vmfle.vv v11, v8, v82123; CHECK-NEXT:    vmorn.mm v0, v10, v112124; CHECK-NEXT:    ret2125  %head = insertelement <vscale x 8 x half> poison, half %b, i32 02126  %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer2127  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f16(<vscale x 8 x half> %splat, <vscale x 8 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp2128  ret <vscale x 8 x i1> %12129}2130 2131define <vscale x 16 x i1> @fcmps_oeq_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2132; CHECK-LABEL: fcmps_oeq_vv_nxv16f16:2133; CHECK:       # %bb.0:2134; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2135; CHECK-NEXT:    vmfle.vv v16, v12, v82136; CHECK-NEXT:    vmfle.vv v17, v8, v122137; CHECK-NEXT:    vmand.mm v0, v17, v162138; CHECK-NEXT:    ret2139  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp2140  ret <vscale x 16 x i1> %12141}2142 2143define <vscale x 16 x i1> @fcmps_oeq_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2144; CHECK-LABEL: fcmps_oeq_vf_nxv16f16:2145; CHECK:       # %bb.0:2146; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2147; CHECK-NEXT:    vmfge.vf v12, v8, fa02148; CHECK-NEXT:    vmfle.vf v13, v8, fa02149; CHECK-NEXT:    vmand.mm v0, v13, v122150; CHECK-NEXT:    ret2151  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02152  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2153  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp2154  ret <vscale x 16 x i1> %12155}2156 2157define <vscale x 16 x i1> @fcmps_oeq_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2158; CHECK-LABEL: fcmps_oeq_fv_nxv16f16:2159; CHECK:       # %bb.0:2160; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2161; CHECK-NEXT:    vmfle.vf v12, v8, fa02162; CHECK-NEXT:    vmfge.vf v13, v8, fa02163; CHECK-NEXT:    vmand.mm v0, v13, v122164; CHECK-NEXT:    ret2165  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02166  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2167  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp2168  ret <vscale x 16 x i1> %12169}2170 2171define <vscale x 16 x i1> @fcmps_ogt_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2172; CHECK-LABEL: fcmps_ogt_vv_nxv16f16:2173; CHECK:       # %bb.0:2174; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2175; CHECK-NEXT:    vmflt.vv v0, v12, v82176; CHECK-NEXT:    ret2177  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp2178  ret <vscale x 16 x i1> %12179}2180 2181define <vscale x 16 x i1> @fcmps_ogt_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2182; CHECK-LABEL: fcmps_ogt_vf_nxv16f16:2183; CHECK:       # %bb.0:2184; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2185; CHECK-NEXT:    vmfgt.vf v0, v8, fa02186; CHECK-NEXT:    ret2187  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02188  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2189  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp2190  ret <vscale x 16 x i1> %12191}2192 2193define <vscale x 16 x i1> @fcmps_ogt_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2194; CHECK-LABEL: fcmps_ogt_fv_nxv16f16:2195; CHECK:       # %bb.0:2196; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2197; CHECK-NEXT:    vmflt.vf v0, v8, fa02198; CHECK-NEXT:    ret2199  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02200  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2201  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp2202  ret <vscale x 16 x i1> %12203}2204 2205define <vscale x 16 x i1> @fcmps_oge_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2206; CHECK-LABEL: fcmps_oge_vv_nxv16f16:2207; CHECK:       # %bb.0:2208; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2209; CHECK-NEXT:    vmfle.vv v0, v12, v82210; CHECK-NEXT:    ret2211  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp2212  ret <vscale x 16 x i1> %12213}2214 2215define <vscale x 16 x i1> @fcmps_oge_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2216; CHECK-LABEL: fcmps_oge_vf_nxv16f16:2217; CHECK:       # %bb.0:2218; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2219; CHECK-NEXT:    vmfge.vf v0, v8, fa02220; CHECK-NEXT:    ret2221  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02222  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2223  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp2224  ret <vscale x 16 x i1> %12225}2226 2227define <vscale x 16 x i1> @fcmps_oge_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2228; CHECK-LABEL: fcmps_oge_fv_nxv16f16:2229; CHECK:       # %bb.0:2230; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2231; CHECK-NEXT:    vmfle.vf v0, v8, fa02232; CHECK-NEXT:    ret2233  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02234  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2235  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp2236  ret <vscale x 16 x i1> %12237}2238 2239define <vscale x 16 x i1> @fcmps_olt_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2240; CHECK-LABEL: fcmps_olt_vv_nxv16f16:2241; CHECK:       # %bb.0:2242; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2243; CHECK-NEXT:    vmflt.vv v0, v8, v122244; CHECK-NEXT:    ret2245  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp2246  ret <vscale x 16 x i1> %12247}2248 2249define <vscale x 16 x i1> @fcmps_olt_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2250; CHECK-LABEL: fcmps_olt_vf_nxv16f16:2251; CHECK:       # %bb.0:2252; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2253; CHECK-NEXT:    vmflt.vf v0, v8, fa02254; CHECK-NEXT:    ret2255  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02256  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2257  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp2258  ret <vscale x 16 x i1> %12259}2260 2261define <vscale x 16 x i1> @fcmps_olt_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2262; CHECK-LABEL: fcmps_olt_fv_nxv16f16:2263; CHECK:       # %bb.0:2264; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2265; CHECK-NEXT:    vmfgt.vf v0, v8, fa02266; CHECK-NEXT:    ret2267  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02268  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2269  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp2270  ret <vscale x 16 x i1> %12271}2272 2273define <vscale x 16 x i1> @fcmps_ole_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2274; CHECK-LABEL: fcmps_ole_vv_nxv16f16:2275; CHECK:       # %bb.0:2276; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2277; CHECK-NEXT:    vmfle.vv v0, v8, v122278; CHECK-NEXT:    ret2279  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp2280  ret <vscale x 16 x i1> %12281}2282 2283define <vscale x 16 x i1> @fcmps_ole_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2284; CHECK-LABEL: fcmps_ole_vf_nxv16f16:2285; CHECK:       # %bb.0:2286; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2287; CHECK-NEXT:    vmfle.vf v0, v8, fa02288; CHECK-NEXT:    ret2289  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02290  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2291  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp2292  ret <vscale x 16 x i1> %12293}2294 2295define <vscale x 16 x i1> @fcmps_ole_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2296; CHECK-LABEL: fcmps_ole_fv_nxv16f16:2297; CHECK:       # %bb.0:2298; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2299; CHECK-NEXT:    vmfge.vf v0, v8, fa02300; CHECK-NEXT:    ret2301  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02302  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2303  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp2304  ret <vscale x 16 x i1> %12305}2306 2307define <vscale x 16 x i1> @fcmps_one_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2308; CHECK-LABEL: fcmps_one_vv_nxv16f16:2309; CHECK:       # %bb.0:2310; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2311; CHECK-NEXT:    vmflt.vv v16, v8, v122312; CHECK-NEXT:    vmflt.vv v17, v12, v82313; CHECK-NEXT:    vmor.mm v0, v17, v162314; CHECK-NEXT:    ret2315  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp2316  ret <vscale x 16 x i1> %12317}2318 2319define <vscale x 16 x i1> @fcmps_one_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2320; CHECK-LABEL: fcmps_one_vf_nxv16f16:2321; CHECK:       # %bb.0:2322; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2323; CHECK-NEXT:    vmflt.vf v12, v8, fa02324; CHECK-NEXT:    vmfgt.vf v13, v8, fa02325; CHECK-NEXT:    vmor.mm v0, v13, v122326; CHECK-NEXT:    ret2327  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02328  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2329  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp2330  ret <vscale x 16 x i1> %12331}2332 2333define <vscale x 16 x i1> @fcmps_one_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2334; CHECK-LABEL: fcmps_one_fv_nxv16f16:2335; CHECK:       # %bb.0:2336; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2337; CHECK-NEXT:    vmfgt.vf v12, v8, fa02338; CHECK-NEXT:    vmflt.vf v13, v8, fa02339; CHECK-NEXT:    vmor.mm v0, v13, v122340; CHECK-NEXT:    ret2341  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02342  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2343  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp2344  ret <vscale x 16 x i1> %12345}2346 2347define <vscale x 16 x i1> @fcmps_ord_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2348; CHECK-LABEL: fcmps_ord_vv_nxv16f16:2349; CHECK:       # %bb.0:2350; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2351; CHECK-NEXT:    vmfle.vv v16, v12, v122352; CHECK-NEXT:    vmfle.vv v12, v8, v82353; CHECK-NEXT:    vmand.mm v0, v12, v162354; CHECK-NEXT:    ret2355  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp2356  ret <vscale x 16 x i1> %12357}2358 2359define <vscale x 16 x i1> @fcmps_ord_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2360; CHECK-LABEL: fcmps_ord_vf_nxv16f16:2361; CHECK:       # %bb.0:2362; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2363; CHECK-NEXT:    vfmv.v.f v12, fa02364; CHECK-NEXT:    vmfle.vf v16, v12, fa02365; CHECK-NEXT:    vmfle.vv v12, v8, v82366; CHECK-NEXT:    vmand.mm v0, v12, v162367; CHECK-NEXT:    ret2368  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02369  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2370  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp2371  ret <vscale x 16 x i1> %12372}2373 2374define <vscale x 16 x i1> @fcmps_ord_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2375; CHECK-LABEL: fcmps_ord_fv_nxv16f16:2376; CHECK:       # %bb.0:2377; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2378; CHECK-NEXT:    vfmv.v.f v12, fa02379; CHECK-NEXT:    vmfle.vf v16, v12, fa02380; CHECK-NEXT:    vmfle.vv v12, v8, v82381; CHECK-NEXT:    vmand.mm v0, v16, v122382; CHECK-NEXT:    ret2383  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02384  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2385  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp2386  ret <vscale x 16 x i1> %12387}2388 2389define <vscale x 16 x i1> @fcmps_ueq_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2390; CHECK-LABEL: fcmps_ueq_vv_nxv16f16:2391; CHECK:       # %bb.0:2392; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2393; CHECK-NEXT:    vmflt.vv v16, v8, v122394; CHECK-NEXT:    vmflt.vv v17, v12, v82395; CHECK-NEXT:    vmnor.mm v0, v17, v162396; CHECK-NEXT:    ret2397  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp2398  ret <vscale x 16 x i1> %12399}2400 2401define <vscale x 16 x i1> @fcmps_ueq_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2402; CHECK-LABEL: fcmps_ueq_vf_nxv16f16:2403; CHECK:       # %bb.0:2404; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2405; CHECK-NEXT:    vmflt.vf v12, v8, fa02406; CHECK-NEXT:    vmfgt.vf v13, v8, fa02407; CHECK-NEXT:    vmnor.mm v0, v13, v122408; CHECK-NEXT:    ret2409  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02410  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2411  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp2412  ret <vscale x 16 x i1> %12413}2414 2415define <vscale x 16 x i1> @fcmps_ueq_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2416; CHECK-LABEL: fcmps_ueq_fv_nxv16f16:2417; CHECK:       # %bb.0:2418; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2419; CHECK-NEXT:    vmfgt.vf v12, v8, fa02420; CHECK-NEXT:    vmflt.vf v13, v8, fa02421; CHECK-NEXT:    vmnor.mm v0, v13, v122422; CHECK-NEXT:    ret2423  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02424  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2425  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp2426  ret <vscale x 16 x i1> %12427}2428 2429define <vscale x 16 x i1> @fcmps_ugt_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2430; CHECK-LABEL: fcmps_ugt_vv_nxv16f16:2431; CHECK:       # %bb.0:2432; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2433; CHECK-NEXT:    vmfle.vv v16, v8, v122434; CHECK-NEXT:    vmnot.m v0, v162435; CHECK-NEXT:    ret2436  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp2437  ret <vscale x 16 x i1> %12438}2439 2440define <vscale x 16 x i1> @fcmps_ugt_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2441; CHECK-LABEL: fcmps_ugt_vf_nxv16f16:2442; CHECK:       # %bb.0:2443; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2444; CHECK-NEXT:    vmfle.vf v12, v8, fa02445; CHECK-NEXT:    vmnot.m v0, v122446; CHECK-NEXT:    ret2447  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02448  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2449  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp2450  ret <vscale x 16 x i1> %12451}2452 2453define <vscale x 16 x i1> @fcmps_ugt_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2454; CHECK-LABEL: fcmps_ugt_fv_nxv16f16:2455; CHECK:       # %bb.0:2456; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2457; CHECK-NEXT:    vmfge.vf v12, v8, fa02458; CHECK-NEXT:    vmnot.m v0, v122459; CHECK-NEXT:    ret2460  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02461  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2462  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp2463  ret <vscale x 16 x i1> %12464}2465 2466define <vscale x 16 x i1> @fcmps_uge_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2467; CHECK-LABEL: fcmps_uge_vv_nxv16f16:2468; CHECK:       # %bb.0:2469; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2470; CHECK-NEXT:    vmflt.vv v16, v8, v122471; CHECK-NEXT:    vmnot.m v0, v162472; CHECK-NEXT:    ret2473  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp2474  ret <vscale x 16 x i1> %12475}2476 2477define <vscale x 16 x i1> @fcmps_uge_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2478; CHECK-LABEL: fcmps_uge_vf_nxv16f16:2479; CHECK:       # %bb.0:2480; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2481; CHECK-NEXT:    vmflt.vf v12, v8, fa02482; CHECK-NEXT:    vmnot.m v0, v122483; CHECK-NEXT:    ret2484  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02485  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2486  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp2487  ret <vscale x 16 x i1> %12488}2489 2490define <vscale x 16 x i1> @fcmps_uge_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2491; CHECK-LABEL: fcmps_uge_fv_nxv16f16:2492; CHECK:       # %bb.0:2493; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2494; CHECK-NEXT:    vmfgt.vf v12, v8, fa02495; CHECK-NEXT:    vmnot.m v0, v122496; CHECK-NEXT:    ret2497  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02498  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2499  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp2500  ret <vscale x 16 x i1> %12501}2502 2503define <vscale x 16 x i1> @fcmps_ult_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2504; CHECK-LABEL: fcmps_ult_vv_nxv16f16:2505; CHECK:       # %bb.0:2506; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2507; CHECK-NEXT:    vmfle.vv v16, v12, v82508; CHECK-NEXT:    vmnot.m v0, v162509; CHECK-NEXT:    ret2510  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp2511  ret <vscale x 16 x i1> %12512}2513 2514define <vscale x 16 x i1> @fcmps_ult_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2515; CHECK-LABEL: fcmps_ult_vf_nxv16f16:2516; CHECK:       # %bb.0:2517; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2518; CHECK-NEXT:    vmfge.vf v12, v8, fa02519; CHECK-NEXT:    vmnot.m v0, v122520; CHECK-NEXT:    ret2521  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02522  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2523  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp2524  ret <vscale x 16 x i1> %12525}2526 2527define <vscale x 16 x i1> @fcmps_ult_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2528; CHECK-LABEL: fcmps_ult_fv_nxv16f16:2529; CHECK:       # %bb.0:2530; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2531; CHECK-NEXT:    vmfle.vf v12, v8, fa02532; CHECK-NEXT:    vmnot.m v0, v122533; CHECK-NEXT:    ret2534  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02535  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2536  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp2537  ret <vscale x 16 x i1> %12538}2539 2540define <vscale x 16 x i1> @fcmps_ule_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2541; CHECK-LABEL: fcmps_ule_vv_nxv16f16:2542; CHECK:       # %bb.0:2543; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2544; CHECK-NEXT:    vmflt.vv v16, v12, v82545; CHECK-NEXT:    vmnot.m v0, v162546; CHECK-NEXT:    ret2547  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp2548  ret <vscale x 16 x i1> %12549}2550 2551define <vscale x 16 x i1> @fcmps_ule_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2552; CHECK-LABEL: fcmps_ule_vf_nxv16f16:2553; CHECK:       # %bb.0:2554; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2555; CHECK-NEXT:    vmfgt.vf v12, v8, fa02556; CHECK-NEXT:    vmnot.m v0, v122557; CHECK-NEXT:    ret2558  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02559  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2560  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp2561  ret <vscale x 16 x i1> %12562}2563 2564define <vscale x 16 x i1> @fcmps_ule_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2565; CHECK-LABEL: fcmps_ule_fv_nxv16f16:2566; CHECK:       # %bb.0:2567; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2568; CHECK-NEXT:    vmflt.vf v12, v8, fa02569; CHECK-NEXT:    vmnot.m v0, v122570; CHECK-NEXT:    ret2571  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02572  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2573  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp2574  ret <vscale x 16 x i1> %12575}2576 2577define <vscale x 16 x i1> @fcmps_une_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2578; CHECK-LABEL: fcmps_une_vv_nxv16f16:2579; CHECK:       # %bb.0:2580; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2581; CHECK-NEXT:    vmfle.vv v16, v12, v82582; CHECK-NEXT:    vmfle.vv v17, v8, v122583; CHECK-NEXT:    vmnand.mm v0, v17, v162584; CHECK-NEXT:    ret2585  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp2586  ret <vscale x 16 x i1> %12587}2588 2589define <vscale x 16 x i1> @fcmps_une_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2590; CHECK-LABEL: fcmps_une_vf_nxv16f16:2591; CHECK:       # %bb.0:2592; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2593; CHECK-NEXT:    vmfge.vf v12, v8, fa02594; CHECK-NEXT:    vmfle.vf v13, v8, fa02595; CHECK-NEXT:    vmnand.mm v0, v13, v122596; CHECK-NEXT:    ret2597  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02598  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2599  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp2600  ret <vscale x 16 x i1> %12601}2602 2603define <vscale x 16 x i1> @fcmps_une_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2604; CHECK-LABEL: fcmps_une_fv_nxv16f16:2605; CHECK:       # %bb.0:2606; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2607; CHECK-NEXT:    vmfle.vf v12, v8, fa02608; CHECK-NEXT:    vmfge.vf v13, v8, fa02609; CHECK-NEXT:    vmnand.mm v0, v13, v122610; CHECK-NEXT:    ret2611  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02612  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2613  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp2614  ret <vscale x 16 x i1> %12615}2616 2617define <vscale x 16 x i1> @fcmps_uno_vv_nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb) nounwind strictfp {2618; CHECK-LABEL: fcmps_uno_vv_nxv16f16:2619; CHECK:       # %bb.0:2620; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2621; CHECK-NEXT:    vmfle.vv v16, v12, v122622; CHECK-NEXT:    vmfle.vv v12, v8, v82623; CHECK-NEXT:    vmnot.m v8, v122624; CHECK-NEXT:    vmorn.mm v0, v8, v162625; CHECK-NEXT:    ret2626  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp2627  ret <vscale x 16 x i1> %12628}2629 2630define <vscale x 16 x i1> @fcmps_uno_vf_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2631; CHECK-LABEL: fcmps_uno_vf_nxv16f16:2632; CHECK:       # %bb.0:2633; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2634; CHECK-NEXT:    vfmv.v.f v12, fa02635; CHECK-NEXT:    vmfle.vv v16, v8, v82636; CHECK-NEXT:    vmfle.vf v8, v12, fa02637; CHECK-NEXT:    vmnot.m v9, v162638; CHECK-NEXT:    vmorn.mm v0, v9, v82639; CHECK-NEXT:    ret2640  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02641  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2642  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp2643  ret <vscale x 16 x i1> %12644}2645 2646define <vscale x 16 x i1> @fcmps_uno_fv_nxv16f16(<vscale x 16 x half> %va, half %b) nounwind strictfp {2647; CHECK-LABEL: fcmps_uno_fv_nxv16f16:2648; CHECK:       # %bb.0:2649; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma2650; CHECK-NEXT:    vfmv.v.f v12, fa02651; CHECK-NEXT:    vmfle.vf v16, v12, fa02652; CHECK-NEXT:    vmnot.m v12, v162653; CHECK-NEXT:    vmfle.vv v13, v8, v82654; CHECK-NEXT:    vmorn.mm v0, v12, v132655; CHECK-NEXT:    ret2656  %head = insertelement <vscale x 16 x half> poison, half %b, i32 02657  %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer2658  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f16(<vscale x 16 x half> %splat, <vscale x 16 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp2659  ret <vscale x 16 x i1> %12660}2661 2662define <vscale x 32 x i1> @fcmps_oeq_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2663; CHECK-LABEL: fcmps_oeq_vv_nxv32f16:2664; CHECK:       # %bb.0:2665; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2666; CHECK-NEXT:    vmfle.vv v24, v16, v82667; CHECK-NEXT:    vmfle.vv v25, v8, v162668; CHECK-NEXT:    vmand.mm v0, v25, v242669; CHECK-NEXT:    ret2670  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp2671  ret <vscale x 32 x i1> %12672}2673 2674define <vscale x 32 x i1> @fcmps_oeq_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2675; CHECK-LABEL: fcmps_oeq_vf_nxv32f16:2676; CHECK:       # %bb.0:2677; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2678; CHECK-NEXT:    vmfge.vf v16, v8, fa02679; CHECK-NEXT:    vmfle.vf v17, v8, fa02680; CHECK-NEXT:    vmand.mm v0, v17, v162681; CHECK-NEXT:    ret2682  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02683  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2684  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp2685  ret <vscale x 32 x i1> %12686}2687 2688define <vscale x 32 x i1> @fcmps_oeq_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2689; CHECK-LABEL: fcmps_oeq_fv_nxv32f16:2690; CHECK:       # %bb.0:2691; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2692; CHECK-NEXT:    vmfle.vf v16, v8, fa02693; CHECK-NEXT:    vmfge.vf v17, v8, fa02694; CHECK-NEXT:    vmand.mm v0, v17, v162695; CHECK-NEXT:    ret2696  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02697  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2698  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp2699  ret <vscale x 32 x i1> %12700}2701 2702define <vscale x 32 x i1> @fcmps_ogt_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2703; CHECK-LABEL: fcmps_ogt_vv_nxv32f16:2704; CHECK:       # %bb.0:2705; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2706; CHECK-NEXT:    vmflt.vv v0, v16, v82707; CHECK-NEXT:    ret2708  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp2709  ret <vscale x 32 x i1> %12710}2711 2712define <vscale x 32 x i1> @fcmps_ogt_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2713; CHECK-LABEL: fcmps_ogt_vf_nxv32f16:2714; CHECK:       # %bb.0:2715; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2716; CHECK-NEXT:    vmfgt.vf v0, v8, fa02717; CHECK-NEXT:    ret2718  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02719  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2720  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp2721  ret <vscale x 32 x i1> %12722}2723 2724define <vscale x 32 x i1> @fcmps_ogt_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2725; CHECK-LABEL: fcmps_ogt_fv_nxv32f16:2726; CHECK:       # %bb.0:2727; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2728; CHECK-NEXT:    vmflt.vf v0, v8, fa02729; CHECK-NEXT:    ret2730  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02731  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2732  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp2733  ret <vscale x 32 x i1> %12734}2735 2736define <vscale x 32 x i1> @fcmps_oge_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2737; CHECK-LABEL: fcmps_oge_vv_nxv32f16:2738; CHECK:       # %bb.0:2739; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2740; CHECK-NEXT:    vmfle.vv v0, v16, v82741; CHECK-NEXT:    ret2742  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp2743  ret <vscale x 32 x i1> %12744}2745 2746define <vscale x 32 x i1> @fcmps_oge_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2747; CHECK-LABEL: fcmps_oge_vf_nxv32f16:2748; CHECK:       # %bb.0:2749; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2750; CHECK-NEXT:    vmfge.vf v0, v8, fa02751; CHECK-NEXT:    ret2752  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02753  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2754  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp2755  ret <vscale x 32 x i1> %12756}2757 2758define <vscale x 32 x i1> @fcmps_oge_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2759; CHECK-LABEL: fcmps_oge_fv_nxv32f16:2760; CHECK:       # %bb.0:2761; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2762; CHECK-NEXT:    vmfle.vf v0, v8, fa02763; CHECK-NEXT:    ret2764  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02765  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2766  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp2767  ret <vscale x 32 x i1> %12768}2769 2770define <vscale x 32 x i1> @fcmps_olt_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2771; CHECK-LABEL: fcmps_olt_vv_nxv32f16:2772; CHECK:       # %bb.0:2773; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2774; CHECK-NEXT:    vmflt.vv v0, v8, v162775; CHECK-NEXT:    ret2776  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp2777  ret <vscale x 32 x i1> %12778}2779 2780define <vscale x 32 x i1> @fcmps_olt_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2781; CHECK-LABEL: fcmps_olt_vf_nxv32f16:2782; CHECK:       # %bb.0:2783; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2784; CHECK-NEXT:    vmflt.vf v0, v8, fa02785; CHECK-NEXT:    ret2786  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02787  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2788  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp2789  ret <vscale x 32 x i1> %12790}2791 2792define <vscale x 32 x i1> @fcmps_olt_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2793; CHECK-LABEL: fcmps_olt_fv_nxv32f16:2794; CHECK:       # %bb.0:2795; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2796; CHECK-NEXT:    vmfgt.vf v0, v8, fa02797; CHECK-NEXT:    ret2798  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02799  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2800  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp2801  ret <vscale x 32 x i1> %12802}2803 2804define <vscale x 32 x i1> @fcmps_ole_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2805; CHECK-LABEL: fcmps_ole_vv_nxv32f16:2806; CHECK:       # %bb.0:2807; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2808; CHECK-NEXT:    vmfle.vv v0, v8, v162809; CHECK-NEXT:    ret2810  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp2811  ret <vscale x 32 x i1> %12812}2813 2814define <vscale x 32 x i1> @fcmps_ole_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2815; CHECK-LABEL: fcmps_ole_vf_nxv32f16:2816; CHECK:       # %bb.0:2817; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2818; CHECK-NEXT:    vmfle.vf v0, v8, fa02819; CHECK-NEXT:    ret2820  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02821  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2822  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp2823  ret <vscale x 32 x i1> %12824}2825 2826define <vscale x 32 x i1> @fcmps_ole_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2827; CHECK-LABEL: fcmps_ole_fv_nxv32f16:2828; CHECK:       # %bb.0:2829; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2830; CHECK-NEXT:    vmfge.vf v0, v8, fa02831; CHECK-NEXT:    ret2832  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02833  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2834  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp2835  ret <vscale x 32 x i1> %12836}2837 2838define <vscale x 32 x i1> @fcmps_one_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2839; CHECK-LABEL: fcmps_one_vv_nxv32f16:2840; CHECK:       # %bb.0:2841; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2842; CHECK-NEXT:    vmflt.vv v24, v8, v162843; CHECK-NEXT:    vmflt.vv v25, v16, v82844; CHECK-NEXT:    vmor.mm v0, v25, v242845; CHECK-NEXT:    ret2846  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp2847  ret <vscale x 32 x i1> %12848}2849 2850define <vscale x 32 x i1> @fcmps_one_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2851; CHECK-LABEL: fcmps_one_vf_nxv32f16:2852; CHECK:       # %bb.0:2853; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2854; CHECK-NEXT:    vmflt.vf v16, v8, fa02855; CHECK-NEXT:    vmfgt.vf v17, v8, fa02856; CHECK-NEXT:    vmor.mm v0, v17, v162857; CHECK-NEXT:    ret2858  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02859  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2860  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp2861  ret <vscale x 32 x i1> %12862}2863 2864define <vscale x 32 x i1> @fcmps_one_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2865; CHECK-LABEL: fcmps_one_fv_nxv32f16:2866; CHECK:       # %bb.0:2867; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2868; CHECK-NEXT:    vmfgt.vf v16, v8, fa02869; CHECK-NEXT:    vmflt.vf v17, v8, fa02870; CHECK-NEXT:    vmor.mm v0, v17, v162871; CHECK-NEXT:    ret2872  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02873  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2874  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp2875  ret <vscale x 32 x i1> %12876}2877 2878define <vscale x 32 x i1> @fcmps_ord_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2879; CHECK-LABEL: fcmps_ord_vv_nxv32f16:2880; CHECK:       # %bb.0:2881; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2882; CHECK-NEXT:    vmfle.vv v24, v16, v162883; CHECK-NEXT:    vmfle.vv v16, v8, v82884; CHECK-NEXT:    vmand.mm v0, v16, v242885; CHECK-NEXT:    ret2886  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp2887  ret <vscale x 32 x i1> %12888}2889 2890define <vscale x 32 x i1> @fcmps_ord_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2891; CHECK-LABEL: fcmps_ord_vf_nxv32f16:2892; CHECK:       # %bb.0:2893; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2894; CHECK-NEXT:    vfmv.v.f v16, fa02895; CHECK-NEXT:    vmfle.vf v24, v16, fa02896; CHECK-NEXT:    vmfle.vv v16, v8, v82897; CHECK-NEXT:    vmand.mm v0, v16, v242898; CHECK-NEXT:    ret2899  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02900  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2901  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp2902  ret <vscale x 32 x i1> %12903}2904 2905define <vscale x 32 x i1> @fcmps_ord_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2906; CHECK-LABEL: fcmps_ord_fv_nxv32f16:2907; CHECK:       # %bb.0:2908; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2909; CHECK-NEXT:    vfmv.v.f v16, fa02910; CHECK-NEXT:    vmfle.vf v24, v16, fa02911; CHECK-NEXT:    vmfle.vv v16, v8, v82912; CHECK-NEXT:    vmand.mm v0, v24, v162913; CHECK-NEXT:    ret2914  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02915  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2916  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp2917  ret <vscale x 32 x i1> %12918}2919 2920define <vscale x 32 x i1> @fcmps_ueq_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2921; CHECK-LABEL: fcmps_ueq_vv_nxv32f16:2922; CHECK:       # %bb.0:2923; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2924; CHECK-NEXT:    vmflt.vv v24, v8, v162925; CHECK-NEXT:    vmflt.vv v25, v16, v82926; CHECK-NEXT:    vmnor.mm v0, v25, v242927; CHECK-NEXT:    ret2928  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp2929  ret <vscale x 32 x i1> %12930}2931 2932define <vscale x 32 x i1> @fcmps_ueq_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2933; CHECK-LABEL: fcmps_ueq_vf_nxv32f16:2934; CHECK:       # %bb.0:2935; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2936; CHECK-NEXT:    vmflt.vf v16, v8, fa02937; CHECK-NEXT:    vmfgt.vf v17, v8, fa02938; CHECK-NEXT:    vmnor.mm v0, v17, v162939; CHECK-NEXT:    ret2940  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02941  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2942  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp2943  ret <vscale x 32 x i1> %12944}2945 2946define <vscale x 32 x i1> @fcmps_ueq_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2947; CHECK-LABEL: fcmps_ueq_fv_nxv32f16:2948; CHECK:       # %bb.0:2949; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2950; CHECK-NEXT:    vmfgt.vf v16, v8, fa02951; CHECK-NEXT:    vmflt.vf v17, v8, fa02952; CHECK-NEXT:    vmnor.mm v0, v17, v162953; CHECK-NEXT:    ret2954  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02955  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2956  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp2957  ret <vscale x 32 x i1> %12958}2959 2960define <vscale x 32 x i1> @fcmps_ugt_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2961; CHECK-LABEL: fcmps_ugt_vv_nxv32f16:2962; CHECK:       # %bb.0:2963; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2964; CHECK-NEXT:    vmfle.vv v24, v8, v162965; CHECK-NEXT:    vmnot.m v0, v242966; CHECK-NEXT:    ret2967  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp2968  ret <vscale x 32 x i1> %12969}2970 2971define <vscale x 32 x i1> @fcmps_ugt_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2972; CHECK-LABEL: fcmps_ugt_vf_nxv32f16:2973; CHECK:       # %bb.0:2974; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2975; CHECK-NEXT:    vmfle.vf v16, v8, fa02976; CHECK-NEXT:    vmnot.m v0, v162977; CHECK-NEXT:    ret2978  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02979  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2980  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp2981  ret <vscale x 32 x i1> %12982}2983 2984define <vscale x 32 x i1> @fcmps_ugt_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {2985; CHECK-LABEL: fcmps_ugt_fv_nxv32f16:2986; CHECK:       # %bb.0:2987; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma2988; CHECK-NEXT:    vmfge.vf v16, v8, fa02989; CHECK-NEXT:    vmnot.m v0, v162990; CHECK-NEXT:    ret2991  %head = insertelement <vscale x 32 x half> poison, half %b, i32 02992  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer2993  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp2994  ret <vscale x 32 x i1> %12995}2996 2997define <vscale x 32 x i1> @fcmps_uge_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {2998; CHECK-LABEL: fcmps_uge_vv_nxv32f16:2999; CHECK:       # %bb.0:3000; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3001; CHECK-NEXT:    vmflt.vv v24, v8, v163002; CHECK-NEXT:    vmnot.m v0, v243003; CHECK-NEXT:    ret3004  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp3005  ret <vscale x 32 x i1> %13006}3007 3008define <vscale x 32 x i1> @fcmps_uge_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3009; CHECK-LABEL: fcmps_uge_vf_nxv32f16:3010; CHECK:       # %bb.0:3011; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3012; CHECK-NEXT:    vmflt.vf v16, v8, fa03013; CHECK-NEXT:    vmnot.m v0, v163014; CHECK-NEXT:    ret3015  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03016  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3017  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp3018  ret <vscale x 32 x i1> %13019}3020 3021define <vscale x 32 x i1> @fcmps_uge_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3022; CHECK-LABEL: fcmps_uge_fv_nxv32f16:3023; CHECK:       # %bb.0:3024; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3025; CHECK-NEXT:    vmfgt.vf v16, v8, fa03026; CHECK-NEXT:    vmnot.m v0, v163027; CHECK-NEXT:    ret3028  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03029  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3030  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp3031  ret <vscale x 32 x i1> %13032}3033 3034define <vscale x 32 x i1> @fcmps_ult_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {3035; CHECK-LABEL: fcmps_ult_vv_nxv32f16:3036; CHECK:       # %bb.0:3037; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3038; CHECK-NEXT:    vmfle.vv v24, v16, v83039; CHECK-NEXT:    vmnot.m v0, v243040; CHECK-NEXT:    ret3041  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp3042  ret <vscale x 32 x i1> %13043}3044 3045define <vscale x 32 x i1> @fcmps_ult_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3046; CHECK-LABEL: fcmps_ult_vf_nxv32f16:3047; CHECK:       # %bb.0:3048; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3049; CHECK-NEXT:    vmfge.vf v16, v8, fa03050; CHECK-NEXT:    vmnot.m v0, v163051; CHECK-NEXT:    ret3052  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03053  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3054  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp3055  ret <vscale x 32 x i1> %13056}3057 3058define <vscale x 32 x i1> @fcmps_ult_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3059; CHECK-LABEL: fcmps_ult_fv_nxv32f16:3060; CHECK:       # %bb.0:3061; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3062; CHECK-NEXT:    vmfle.vf v16, v8, fa03063; CHECK-NEXT:    vmnot.m v0, v163064; CHECK-NEXT:    ret3065  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03066  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3067  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp3068  ret <vscale x 32 x i1> %13069}3070 3071define <vscale x 32 x i1> @fcmps_ule_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {3072; CHECK-LABEL: fcmps_ule_vv_nxv32f16:3073; CHECK:       # %bb.0:3074; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3075; CHECK-NEXT:    vmflt.vv v24, v16, v83076; CHECK-NEXT:    vmnot.m v0, v243077; CHECK-NEXT:    ret3078  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp3079  ret <vscale x 32 x i1> %13080}3081 3082define <vscale x 32 x i1> @fcmps_ule_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3083; CHECK-LABEL: fcmps_ule_vf_nxv32f16:3084; CHECK:       # %bb.0:3085; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3086; CHECK-NEXT:    vmfgt.vf v16, v8, fa03087; CHECK-NEXT:    vmnot.m v0, v163088; CHECK-NEXT:    ret3089  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03090  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3091  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp3092  ret <vscale x 32 x i1> %13093}3094 3095define <vscale x 32 x i1> @fcmps_ule_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3096; CHECK-LABEL: fcmps_ule_fv_nxv32f16:3097; CHECK:       # %bb.0:3098; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3099; CHECK-NEXT:    vmflt.vf v16, v8, fa03100; CHECK-NEXT:    vmnot.m v0, v163101; CHECK-NEXT:    ret3102  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03103  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3104  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp3105  ret <vscale x 32 x i1> %13106}3107 3108define <vscale x 32 x i1> @fcmps_une_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {3109; CHECK-LABEL: fcmps_une_vv_nxv32f16:3110; CHECK:       # %bb.0:3111; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3112; CHECK-NEXT:    vmfle.vv v24, v16, v83113; CHECK-NEXT:    vmfle.vv v25, v8, v163114; CHECK-NEXT:    vmnand.mm v0, v25, v243115; CHECK-NEXT:    ret3116  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp3117  ret <vscale x 32 x i1> %13118}3119 3120define <vscale x 32 x i1> @fcmps_une_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3121; CHECK-LABEL: fcmps_une_vf_nxv32f16:3122; CHECK:       # %bb.0:3123; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3124; CHECK-NEXT:    vmfge.vf v16, v8, fa03125; CHECK-NEXT:    vmfle.vf v17, v8, fa03126; CHECK-NEXT:    vmnand.mm v0, v17, v163127; CHECK-NEXT:    ret3128  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03129  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3130  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp3131  ret <vscale x 32 x i1> %13132}3133 3134define <vscale x 32 x i1> @fcmps_une_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3135; CHECK-LABEL: fcmps_une_fv_nxv32f16:3136; CHECK:       # %bb.0:3137; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3138; CHECK-NEXT:    vmfle.vf v16, v8, fa03139; CHECK-NEXT:    vmfge.vf v17, v8, fa03140; CHECK-NEXT:    vmnand.mm v0, v17, v163141; CHECK-NEXT:    ret3142  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03143  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3144  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp3145  ret <vscale x 32 x i1> %13146}3147 3148define <vscale x 32 x i1> @fcmps_uno_vv_nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb) nounwind strictfp {3149; CHECK-LABEL: fcmps_uno_vv_nxv32f16:3150; CHECK:       # %bb.0:3151; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3152; CHECK-NEXT:    vmfle.vv v24, v16, v163153; CHECK-NEXT:    vmfle.vv v16, v8, v83154; CHECK-NEXT:    vmnot.m v8, v163155; CHECK-NEXT:    vmorn.mm v0, v8, v243156; CHECK-NEXT:    ret3157  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp3158  ret <vscale x 32 x i1> %13159}3160 3161define <vscale x 32 x i1> @fcmps_uno_vf_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3162; CHECK-LABEL: fcmps_uno_vf_nxv32f16:3163; CHECK:       # %bb.0:3164; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3165; CHECK-NEXT:    vfmv.v.f v16, fa03166; CHECK-NEXT:    vmfle.vv v24, v8, v83167; CHECK-NEXT:    vmfle.vf v8, v16, fa03168; CHECK-NEXT:    vmnot.m v9, v243169; CHECK-NEXT:    vmorn.mm v0, v9, v83170; CHECK-NEXT:    ret3171  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03172  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3173  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp3174  ret <vscale x 32 x i1> %13175}3176 3177define <vscale x 32 x i1> @fcmps_uno_fv_nxv32f16(<vscale x 32 x half> %va, half %b) nounwind strictfp {3178; CHECK-LABEL: fcmps_uno_fv_nxv32f16:3179; CHECK:       # %bb.0:3180; CHECK-NEXT:    vsetvli a0, zero, e16, m8, ta, ma3181; CHECK-NEXT:    vfmv.v.f v16, fa03182; CHECK-NEXT:    vmfle.vf v24, v16, fa03183; CHECK-NEXT:    vmnot.m v16, v243184; CHECK-NEXT:    vmfle.vv v17, v8, v83185; CHECK-NEXT:    vmorn.mm v0, v16, v173186; CHECK-NEXT:    ret3187  %head = insertelement <vscale x 32 x half> poison, half %b, i32 03188  %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer3189  %1 = call <vscale x 32 x i1> @llvm.experimental.constrained.fcmps.nxv32f16(<vscale x 32 x half> %splat, <vscale x 32 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp3190  ret <vscale x 32 x i1> %13191}3192 3193define <vscale x 1 x i1> @fcmps_oeq_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3194; CHECK-LABEL: fcmps_oeq_vv_nxv1f32:3195; CHECK:       # %bb.0:3196; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3197; CHECK-NEXT:    vmfle.vv v10, v9, v83198; CHECK-NEXT:    vmfle.vv v8, v8, v93199; CHECK-NEXT:    vmand.mm v0, v8, v103200; CHECK-NEXT:    ret3201  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp3202  ret <vscale x 1 x i1> %13203}3204 3205define <vscale x 1 x i1> @fcmps_oeq_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3206; CHECK-LABEL: fcmps_oeq_vf_nxv1f32:3207; CHECK:       # %bb.0:3208; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3209; CHECK-NEXT:    vmfge.vf v9, v8, fa03210; CHECK-NEXT:    vmfle.vf v8, v8, fa03211; CHECK-NEXT:    vmand.mm v0, v8, v93212; CHECK-NEXT:    ret3213  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03214  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3215  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp3216  ret <vscale x 1 x i1> %13217}3218 3219define <vscale x 1 x i1> @fcmps_oeq_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3220; CHECK-LABEL: fcmps_oeq_fv_nxv1f32:3221; CHECK:       # %bb.0:3222; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3223; CHECK-NEXT:    vmfle.vf v9, v8, fa03224; CHECK-NEXT:    vmfge.vf v8, v8, fa03225; CHECK-NEXT:    vmand.mm v0, v8, v93226; CHECK-NEXT:    ret3227  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03228  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3229  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp3230  ret <vscale x 1 x i1> %13231}3232 3233define <vscale x 1 x i1> @fcmps_ogt_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3234; CHECK-LABEL: fcmps_ogt_vv_nxv1f32:3235; CHECK:       # %bb.0:3236; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3237; CHECK-NEXT:    vmflt.vv v0, v9, v83238; CHECK-NEXT:    ret3239  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp3240  ret <vscale x 1 x i1> %13241}3242 3243define <vscale x 1 x i1> @fcmps_ogt_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3244; CHECK-LABEL: fcmps_ogt_vf_nxv1f32:3245; CHECK:       # %bb.0:3246; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3247; CHECK-NEXT:    vmfgt.vf v0, v8, fa03248; CHECK-NEXT:    ret3249  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03250  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3251  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp3252  ret <vscale x 1 x i1> %13253}3254 3255define <vscale x 1 x i1> @fcmps_ogt_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3256; CHECK-LABEL: fcmps_ogt_fv_nxv1f32:3257; CHECK:       # %bb.0:3258; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3259; CHECK-NEXT:    vmflt.vf v0, v8, fa03260; CHECK-NEXT:    ret3261  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03262  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3263  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp3264  ret <vscale x 1 x i1> %13265}3266 3267define <vscale x 1 x i1> @fcmps_oge_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3268; CHECK-LABEL: fcmps_oge_vv_nxv1f32:3269; CHECK:       # %bb.0:3270; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3271; CHECK-NEXT:    vmfle.vv v0, v9, v83272; CHECK-NEXT:    ret3273  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp3274  ret <vscale x 1 x i1> %13275}3276 3277define <vscale x 1 x i1> @fcmps_oge_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3278; CHECK-LABEL: fcmps_oge_vf_nxv1f32:3279; CHECK:       # %bb.0:3280; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3281; CHECK-NEXT:    vmfge.vf v0, v8, fa03282; CHECK-NEXT:    ret3283  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03284  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3285  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp3286  ret <vscale x 1 x i1> %13287}3288 3289define <vscale x 1 x i1> @fcmps_oge_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3290; CHECK-LABEL: fcmps_oge_fv_nxv1f32:3291; CHECK:       # %bb.0:3292; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3293; CHECK-NEXT:    vmfle.vf v0, v8, fa03294; CHECK-NEXT:    ret3295  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03296  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3297  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp3298  ret <vscale x 1 x i1> %13299}3300 3301define <vscale x 1 x i1> @fcmps_olt_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3302; CHECK-LABEL: fcmps_olt_vv_nxv1f32:3303; CHECK:       # %bb.0:3304; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3305; CHECK-NEXT:    vmflt.vv v0, v8, v93306; CHECK-NEXT:    ret3307  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp3308  ret <vscale x 1 x i1> %13309}3310 3311define <vscale x 1 x i1> @fcmps_olt_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3312; CHECK-LABEL: fcmps_olt_vf_nxv1f32:3313; CHECK:       # %bb.0:3314; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3315; CHECK-NEXT:    vmflt.vf v0, v8, fa03316; CHECK-NEXT:    ret3317  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03318  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3319  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp3320  ret <vscale x 1 x i1> %13321}3322 3323define <vscale x 1 x i1> @fcmps_olt_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3324; CHECK-LABEL: fcmps_olt_fv_nxv1f32:3325; CHECK:       # %bb.0:3326; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3327; CHECK-NEXT:    vmfgt.vf v0, v8, fa03328; CHECK-NEXT:    ret3329  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03330  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3331  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp3332  ret <vscale x 1 x i1> %13333}3334 3335define <vscale x 1 x i1> @fcmps_ole_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3336; CHECK-LABEL: fcmps_ole_vv_nxv1f32:3337; CHECK:       # %bb.0:3338; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3339; CHECK-NEXT:    vmfle.vv v0, v8, v93340; CHECK-NEXT:    ret3341  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp3342  ret <vscale x 1 x i1> %13343}3344 3345define <vscale x 1 x i1> @fcmps_ole_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3346; CHECK-LABEL: fcmps_ole_vf_nxv1f32:3347; CHECK:       # %bb.0:3348; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3349; CHECK-NEXT:    vmfle.vf v0, v8, fa03350; CHECK-NEXT:    ret3351  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03352  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3353  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp3354  ret <vscale x 1 x i1> %13355}3356 3357define <vscale x 1 x i1> @fcmps_ole_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3358; CHECK-LABEL: fcmps_ole_fv_nxv1f32:3359; CHECK:       # %bb.0:3360; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3361; CHECK-NEXT:    vmfge.vf v0, v8, fa03362; CHECK-NEXT:    ret3363  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03364  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3365  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp3366  ret <vscale x 1 x i1> %13367}3368 3369define <vscale x 1 x i1> @fcmps_one_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3370; CHECK-LABEL: fcmps_one_vv_nxv1f32:3371; CHECK:       # %bb.0:3372; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3373; CHECK-NEXT:    vmflt.vv v10, v8, v93374; CHECK-NEXT:    vmflt.vv v8, v9, v83375; CHECK-NEXT:    vmor.mm v0, v8, v103376; CHECK-NEXT:    ret3377  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp3378  ret <vscale x 1 x i1> %13379}3380 3381define <vscale x 1 x i1> @fcmps_one_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3382; CHECK-LABEL: fcmps_one_vf_nxv1f32:3383; CHECK:       # %bb.0:3384; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3385; CHECK-NEXT:    vmflt.vf v9, v8, fa03386; CHECK-NEXT:    vmfgt.vf v8, v8, fa03387; CHECK-NEXT:    vmor.mm v0, v8, v93388; CHECK-NEXT:    ret3389  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03390  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3391  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp3392  ret <vscale x 1 x i1> %13393}3394 3395define <vscale x 1 x i1> @fcmps_one_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3396; CHECK-LABEL: fcmps_one_fv_nxv1f32:3397; CHECK:       # %bb.0:3398; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3399; CHECK-NEXT:    vmfgt.vf v9, v8, fa03400; CHECK-NEXT:    vmflt.vf v8, v8, fa03401; CHECK-NEXT:    vmor.mm v0, v8, v93402; CHECK-NEXT:    ret3403  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03404  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3405  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp3406  ret <vscale x 1 x i1> %13407}3408 3409define <vscale x 1 x i1> @fcmps_ord_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3410; CHECK-LABEL: fcmps_ord_vv_nxv1f32:3411; CHECK:       # %bb.0:3412; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3413; CHECK-NEXT:    vmfle.vv v9, v9, v93414; CHECK-NEXT:    vmfle.vv v8, v8, v83415; CHECK-NEXT:    vmand.mm v0, v8, v93416; CHECK-NEXT:    ret3417  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp3418  ret <vscale x 1 x i1> %13419}3420 3421define <vscale x 1 x i1> @fcmps_ord_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3422; CHECK-LABEL: fcmps_ord_vf_nxv1f32:3423; CHECK:       # %bb.0:3424; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3425; CHECK-NEXT:    vfmv.v.f v9, fa03426; CHECK-NEXT:    vmfle.vf v9, v9, fa03427; CHECK-NEXT:    vmfle.vv v8, v8, v83428; CHECK-NEXT:    vmand.mm v0, v8, v93429; CHECK-NEXT:    ret3430  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03431  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3432  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp3433  ret <vscale x 1 x i1> %13434}3435 3436define <vscale x 1 x i1> @fcmps_ord_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3437; CHECK-LABEL: fcmps_ord_fv_nxv1f32:3438; CHECK:       # %bb.0:3439; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3440; CHECK-NEXT:    vfmv.v.f v9, fa03441; CHECK-NEXT:    vmfle.vf v9, v9, fa03442; CHECK-NEXT:    vmfle.vv v8, v8, v83443; CHECK-NEXT:    vmand.mm v0, v9, v83444; CHECK-NEXT:    ret3445  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03446  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3447  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp3448  ret <vscale x 1 x i1> %13449}3450 3451define <vscale x 1 x i1> @fcmps_ueq_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3452; CHECK-LABEL: fcmps_ueq_vv_nxv1f32:3453; CHECK:       # %bb.0:3454; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3455; CHECK-NEXT:    vmflt.vv v10, v8, v93456; CHECK-NEXT:    vmflt.vv v8, v9, v83457; CHECK-NEXT:    vmnor.mm v0, v8, v103458; CHECK-NEXT:    ret3459  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp3460  ret <vscale x 1 x i1> %13461}3462 3463define <vscale x 1 x i1> @fcmps_ueq_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3464; CHECK-LABEL: fcmps_ueq_vf_nxv1f32:3465; CHECK:       # %bb.0:3466; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3467; CHECK-NEXT:    vmflt.vf v9, v8, fa03468; CHECK-NEXT:    vmfgt.vf v8, v8, fa03469; CHECK-NEXT:    vmnor.mm v0, v8, v93470; CHECK-NEXT:    ret3471  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03472  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3473  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp3474  ret <vscale x 1 x i1> %13475}3476 3477define <vscale x 1 x i1> @fcmps_ueq_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3478; CHECK-LABEL: fcmps_ueq_fv_nxv1f32:3479; CHECK:       # %bb.0:3480; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3481; CHECK-NEXT:    vmfgt.vf v9, v8, fa03482; CHECK-NEXT:    vmflt.vf v8, v8, fa03483; CHECK-NEXT:    vmnor.mm v0, v8, v93484; CHECK-NEXT:    ret3485  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03486  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3487  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp3488  ret <vscale x 1 x i1> %13489}3490 3491define <vscale x 1 x i1> @fcmps_ugt_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3492; CHECK-LABEL: fcmps_ugt_vv_nxv1f32:3493; CHECK:       # %bb.0:3494; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3495; CHECK-NEXT:    vmfle.vv v8, v8, v93496; CHECK-NEXT:    vmnot.m v0, v83497; CHECK-NEXT:    ret3498  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp3499  ret <vscale x 1 x i1> %13500}3501 3502define <vscale x 1 x i1> @fcmps_ugt_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3503; CHECK-LABEL: fcmps_ugt_vf_nxv1f32:3504; CHECK:       # %bb.0:3505; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3506; CHECK-NEXT:    vmfle.vf v8, v8, fa03507; CHECK-NEXT:    vmnot.m v0, v83508; CHECK-NEXT:    ret3509  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03510  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3511  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp3512  ret <vscale x 1 x i1> %13513}3514 3515define <vscale x 1 x i1> @fcmps_ugt_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3516; CHECK-LABEL: fcmps_ugt_fv_nxv1f32:3517; CHECK:       # %bb.0:3518; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3519; CHECK-NEXT:    vmfge.vf v8, v8, fa03520; CHECK-NEXT:    vmnot.m v0, v83521; CHECK-NEXT:    ret3522  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03523  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3524  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp3525  ret <vscale x 1 x i1> %13526}3527 3528define <vscale x 1 x i1> @fcmps_uge_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3529; CHECK-LABEL: fcmps_uge_vv_nxv1f32:3530; CHECK:       # %bb.0:3531; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3532; CHECK-NEXT:    vmflt.vv v8, v8, v93533; CHECK-NEXT:    vmnot.m v0, v83534; CHECK-NEXT:    ret3535  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp3536  ret <vscale x 1 x i1> %13537}3538 3539define <vscale x 1 x i1> @fcmps_uge_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3540; CHECK-LABEL: fcmps_uge_vf_nxv1f32:3541; CHECK:       # %bb.0:3542; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3543; CHECK-NEXT:    vmflt.vf v8, v8, fa03544; CHECK-NEXT:    vmnot.m v0, v83545; CHECK-NEXT:    ret3546  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03547  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3548  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp3549  ret <vscale x 1 x i1> %13550}3551 3552define <vscale x 1 x i1> @fcmps_uge_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3553; CHECK-LABEL: fcmps_uge_fv_nxv1f32:3554; CHECK:       # %bb.0:3555; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3556; CHECK-NEXT:    vmfgt.vf v8, v8, fa03557; CHECK-NEXT:    vmnot.m v0, v83558; CHECK-NEXT:    ret3559  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03560  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3561  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp3562  ret <vscale x 1 x i1> %13563}3564 3565define <vscale x 1 x i1> @fcmps_ult_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3566; CHECK-LABEL: fcmps_ult_vv_nxv1f32:3567; CHECK:       # %bb.0:3568; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3569; CHECK-NEXT:    vmfle.vv v8, v9, v83570; CHECK-NEXT:    vmnot.m v0, v83571; CHECK-NEXT:    ret3572  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp3573  ret <vscale x 1 x i1> %13574}3575 3576define <vscale x 1 x i1> @fcmps_ult_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3577; CHECK-LABEL: fcmps_ult_vf_nxv1f32:3578; CHECK:       # %bb.0:3579; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3580; CHECK-NEXT:    vmfge.vf v8, v8, fa03581; CHECK-NEXT:    vmnot.m v0, v83582; CHECK-NEXT:    ret3583  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03584  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3585  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp3586  ret <vscale x 1 x i1> %13587}3588 3589define <vscale x 1 x i1> @fcmps_ult_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3590; CHECK-LABEL: fcmps_ult_fv_nxv1f32:3591; CHECK:       # %bb.0:3592; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3593; CHECK-NEXT:    vmfle.vf v8, v8, fa03594; CHECK-NEXT:    vmnot.m v0, v83595; CHECK-NEXT:    ret3596  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03597  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3598  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp3599  ret <vscale x 1 x i1> %13600}3601 3602define <vscale x 1 x i1> @fcmps_ule_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3603; CHECK-LABEL: fcmps_ule_vv_nxv1f32:3604; CHECK:       # %bb.0:3605; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3606; CHECK-NEXT:    vmflt.vv v8, v9, v83607; CHECK-NEXT:    vmnot.m v0, v83608; CHECK-NEXT:    ret3609  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp3610  ret <vscale x 1 x i1> %13611}3612 3613define <vscale x 1 x i1> @fcmps_ule_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3614; CHECK-LABEL: fcmps_ule_vf_nxv1f32:3615; CHECK:       # %bb.0:3616; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3617; CHECK-NEXT:    vmfgt.vf v8, v8, fa03618; CHECK-NEXT:    vmnot.m v0, v83619; CHECK-NEXT:    ret3620  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03621  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3622  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp3623  ret <vscale x 1 x i1> %13624}3625 3626define <vscale x 1 x i1> @fcmps_ule_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3627; CHECK-LABEL: fcmps_ule_fv_nxv1f32:3628; CHECK:       # %bb.0:3629; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3630; CHECK-NEXT:    vmflt.vf v8, v8, fa03631; CHECK-NEXT:    vmnot.m v0, v83632; CHECK-NEXT:    ret3633  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03634  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3635  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp3636  ret <vscale x 1 x i1> %13637}3638 3639define <vscale x 1 x i1> @fcmps_une_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3640; CHECK-LABEL: fcmps_une_vv_nxv1f32:3641; CHECK:       # %bb.0:3642; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3643; CHECK-NEXT:    vmfle.vv v10, v9, v83644; CHECK-NEXT:    vmfle.vv v8, v8, v93645; CHECK-NEXT:    vmnand.mm v0, v8, v103646; CHECK-NEXT:    ret3647  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp3648  ret <vscale x 1 x i1> %13649}3650 3651define <vscale x 1 x i1> @fcmps_une_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3652; CHECK-LABEL: fcmps_une_vf_nxv1f32:3653; CHECK:       # %bb.0:3654; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3655; CHECK-NEXT:    vmfge.vf v9, v8, fa03656; CHECK-NEXT:    vmfle.vf v8, v8, fa03657; CHECK-NEXT:    vmnand.mm v0, v8, v93658; CHECK-NEXT:    ret3659  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03660  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3661  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp3662  ret <vscale x 1 x i1> %13663}3664 3665define <vscale x 1 x i1> @fcmps_une_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3666; CHECK-LABEL: fcmps_une_fv_nxv1f32:3667; CHECK:       # %bb.0:3668; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3669; CHECK-NEXT:    vmfle.vf v9, v8, fa03670; CHECK-NEXT:    vmfge.vf v8, v8, fa03671; CHECK-NEXT:    vmnand.mm v0, v8, v93672; CHECK-NEXT:    ret3673  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03674  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3675  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp3676  ret <vscale x 1 x i1> %13677}3678 3679define <vscale x 1 x i1> @fcmps_uno_vv_nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb) nounwind strictfp {3680; CHECK-LABEL: fcmps_uno_vv_nxv1f32:3681; CHECK:       # %bb.0:3682; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3683; CHECK-NEXT:    vmfle.vv v9, v9, v93684; CHECK-NEXT:    vmfle.vv v8, v8, v83685; CHECK-NEXT:    vmnot.m v8, v83686; CHECK-NEXT:    vmorn.mm v0, v8, v93687; CHECK-NEXT:    ret3688  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp3689  ret <vscale x 1 x i1> %13690}3691 3692define <vscale x 1 x i1> @fcmps_uno_vf_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3693; CHECK-LABEL: fcmps_uno_vf_nxv1f32:3694; CHECK:       # %bb.0:3695; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3696; CHECK-NEXT:    vfmv.v.f v9, fa03697; CHECK-NEXT:    vmfle.vv v8, v8, v83698; CHECK-NEXT:    vmfle.vf v9, v9, fa03699; CHECK-NEXT:    vmnot.m v8, v83700; CHECK-NEXT:    vmorn.mm v0, v8, v93701; CHECK-NEXT:    ret3702  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03703  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3704  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp3705  ret <vscale x 1 x i1> %13706}3707 3708define <vscale x 1 x i1> @fcmps_uno_fv_nxv1f32(<vscale x 1 x float> %va, float %b) nounwind strictfp {3709; CHECK-LABEL: fcmps_uno_fv_nxv1f32:3710; CHECK:       # %bb.0:3711; CHECK-NEXT:    vsetvli a0, zero, e32, mf2, ta, ma3712; CHECK-NEXT:    vfmv.v.f v9, fa03713; CHECK-NEXT:    vmfle.vf v9, v9, fa03714; CHECK-NEXT:    vmnot.m v9, v93715; CHECK-NEXT:    vmfle.vv v8, v8, v83716; CHECK-NEXT:    vmorn.mm v0, v9, v83717; CHECK-NEXT:    ret3718  %head = insertelement <vscale x 1 x float> poison, float %b, i32 03719  %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer3720  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f32(<vscale x 1 x float> %splat, <vscale x 1 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp3721  ret <vscale x 1 x i1> %13722}3723 3724define <vscale x 2 x i1> @fcmps_oeq_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3725; CHECK-LABEL: fcmps_oeq_vv_nxv2f32:3726; CHECK:       # %bb.0:3727; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3728; CHECK-NEXT:    vmfle.vv v10, v9, v83729; CHECK-NEXT:    vmfle.vv v8, v8, v93730; CHECK-NEXT:    vmand.mm v0, v8, v103731; CHECK-NEXT:    ret3732  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp3733  ret <vscale x 2 x i1> %13734}3735 3736define <vscale x 2 x i1> @fcmps_oeq_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3737; CHECK-LABEL: fcmps_oeq_vf_nxv2f32:3738; CHECK:       # %bb.0:3739; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3740; CHECK-NEXT:    vmfge.vf v9, v8, fa03741; CHECK-NEXT:    vmfle.vf v8, v8, fa03742; CHECK-NEXT:    vmand.mm v0, v8, v93743; CHECK-NEXT:    ret3744  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03745  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3746  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp3747  ret <vscale x 2 x i1> %13748}3749 3750define <vscale x 2 x i1> @fcmps_oeq_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3751; CHECK-LABEL: fcmps_oeq_fv_nxv2f32:3752; CHECK:       # %bb.0:3753; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3754; CHECK-NEXT:    vmfle.vf v9, v8, fa03755; CHECK-NEXT:    vmfge.vf v8, v8, fa03756; CHECK-NEXT:    vmand.mm v0, v8, v93757; CHECK-NEXT:    ret3758  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03759  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3760  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp3761  ret <vscale x 2 x i1> %13762}3763 3764define <vscale x 2 x i1> @fcmps_ogt_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3765; CHECK-LABEL: fcmps_ogt_vv_nxv2f32:3766; CHECK:       # %bb.0:3767; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3768; CHECK-NEXT:    vmflt.vv v0, v9, v83769; CHECK-NEXT:    ret3770  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp3771  ret <vscale x 2 x i1> %13772}3773 3774define <vscale x 2 x i1> @fcmps_ogt_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3775; CHECK-LABEL: fcmps_ogt_vf_nxv2f32:3776; CHECK:       # %bb.0:3777; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3778; CHECK-NEXT:    vmfgt.vf v0, v8, fa03779; CHECK-NEXT:    ret3780  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03781  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3782  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp3783  ret <vscale x 2 x i1> %13784}3785 3786define <vscale x 2 x i1> @fcmps_ogt_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3787; CHECK-LABEL: fcmps_ogt_fv_nxv2f32:3788; CHECK:       # %bb.0:3789; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3790; CHECK-NEXT:    vmflt.vf v0, v8, fa03791; CHECK-NEXT:    ret3792  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03793  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3794  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp3795  ret <vscale x 2 x i1> %13796}3797 3798define <vscale x 2 x i1> @fcmps_oge_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3799; CHECK-LABEL: fcmps_oge_vv_nxv2f32:3800; CHECK:       # %bb.0:3801; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3802; CHECK-NEXT:    vmfle.vv v0, v9, v83803; CHECK-NEXT:    ret3804  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp3805  ret <vscale x 2 x i1> %13806}3807 3808define <vscale x 2 x i1> @fcmps_oge_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3809; CHECK-LABEL: fcmps_oge_vf_nxv2f32:3810; CHECK:       # %bb.0:3811; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3812; CHECK-NEXT:    vmfge.vf v0, v8, fa03813; CHECK-NEXT:    ret3814  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03815  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3816  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp3817  ret <vscale x 2 x i1> %13818}3819 3820define <vscale x 2 x i1> @fcmps_oge_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3821; CHECK-LABEL: fcmps_oge_fv_nxv2f32:3822; CHECK:       # %bb.0:3823; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3824; CHECK-NEXT:    vmfle.vf v0, v8, fa03825; CHECK-NEXT:    ret3826  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03827  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3828  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp3829  ret <vscale x 2 x i1> %13830}3831 3832define <vscale x 2 x i1> @fcmps_olt_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3833; CHECK-LABEL: fcmps_olt_vv_nxv2f32:3834; CHECK:       # %bb.0:3835; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3836; CHECK-NEXT:    vmflt.vv v0, v8, v93837; CHECK-NEXT:    ret3838  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp3839  ret <vscale x 2 x i1> %13840}3841 3842define <vscale x 2 x i1> @fcmps_olt_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3843; CHECK-LABEL: fcmps_olt_vf_nxv2f32:3844; CHECK:       # %bb.0:3845; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3846; CHECK-NEXT:    vmflt.vf v0, v8, fa03847; CHECK-NEXT:    ret3848  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03849  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3850  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp3851  ret <vscale x 2 x i1> %13852}3853 3854define <vscale x 2 x i1> @fcmps_olt_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3855; CHECK-LABEL: fcmps_olt_fv_nxv2f32:3856; CHECK:       # %bb.0:3857; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3858; CHECK-NEXT:    vmfgt.vf v0, v8, fa03859; CHECK-NEXT:    ret3860  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03861  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3862  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp3863  ret <vscale x 2 x i1> %13864}3865 3866define <vscale x 2 x i1> @fcmps_ole_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3867; CHECK-LABEL: fcmps_ole_vv_nxv2f32:3868; CHECK:       # %bb.0:3869; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3870; CHECK-NEXT:    vmfle.vv v0, v8, v93871; CHECK-NEXT:    ret3872  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp3873  ret <vscale x 2 x i1> %13874}3875 3876define <vscale x 2 x i1> @fcmps_ole_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3877; CHECK-LABEL: fcmps_ole_vf_nxv2f32:3878; CHECK:       # %bb.0:3879; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3880; CHECK-NEXT:    vmfle.vf v0, v8, fa03881; CHECK-NEXT:    ret3882  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03883  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3884  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp3885  ret <vscale x 2 x i1> %13886}3887 3888define <vscale x 2 x i1> @fcmps_ole_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3889; CHECK-LABEL: fcmps_ole_fv_nxv2f32:3890; CHECK:       # %bb.0:3891; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3892; CHECK-NEXT:    vmfge.vf v0, v8, fa03893; CHECK-NEXT:    ret3894  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03895  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3896  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp3897  ret <vscale x 2 x i1> %13898}3899 3900define <vscale x 2 x i1> @fcmps_one_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3901; CHECK-LABEL: fcmps_one_vv_nxv2f32:3902; CHECK:       # %bb.0:3903; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3904; CHECK-NEXT:    vmflt.vv v10, v8, v93905; CHECK-NEXT:    vmflt.vv v8, v9, v83906; CHECK-NEXT:    vmor.mm v0, v8, v103907; CHECK-NEXT:    ret3908  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp3909  ret <vscale x 2 x i1> %13910}3911 3912define <vscale x 2 x i1> @fcmps_one_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3913; CHECK-LABEL: fcmps_one_vf_nxv2f32:3914; CHECK:       # %bb.0:3915; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3916; CHECK-NEXT:    vmflt.vf v9, v8, fa03917; CHECK-NEXT:    vmfgt.vf v8, v8, fa03918; CHECK-NEXT:    vmor.mm v0, v8, v93919; CHECK-NEXT:    ret3920  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03921  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3922  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp3923  ret <vscale x 2 x i1> %13924}3925 3926define <vscale x 2 x i1> @fcmps_one_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3927; CHECK-LABEL: fcmps_one_fv_nxv2f32:3928; CHECK:       # %bb.0:3929; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3930; CHECK-NEXT:    vmfgt.vf v9, v8, fa03931; CHECK-NEXT:    vmflt.vf v8, v8, fa03932; CHECK-NEXT:    vmor.mm v0, v8, v93933; CHECK-NEXT:    ret3934  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03935  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3936  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp3937  ret <vscale x 2 x i1> %13938}3939 3940define <vscale x 2 x i1> @fcmps_ord_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3941; CHECK-LABEL: fcmps_ord_vv_nxv2f32:3942; CHECK:       # %bb.0:3943; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3944; CHECK-NEXT:    vmfle.vv v9, v9, v93945; CHECK-NEXT:    vmfle.vv v8, v8, v83946; CHECK-NEXT:    vmand.mm v0, v8, v93947; CHECK-NEXT:    ret3948  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp3949  ret <vscale x 2 x i1> %13950}3951 3952define <vscale x 2 x i1> @fcmps_ord_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3953; CHECK-LABEL: fcmps_ord_vf_nxv2f32:3954; CHECK:       # %bb.0:3955; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3956; CHECK-NEXT:    vfmv.v.f v9, fa03957; CHECK-NEXT:    vmfle.vf v9, v9, fa03958; CHECK-NEXT:    vmfle.vv v8, v8, v83959; CHECK-NEXT:    vmand.mm v0, v8, v93960; CHECK-NEXT:    ret3961  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03962  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3963  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp3964  ret <vscale x 2 x i1> %13965}3966 3967define <vscale x 2 x i1> @fcmps_ord_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3968; CHECK-LABEL: fcmps_ord_fv_nxv2f32:3969; CHECK:       # %bb.0:3970; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3971; CHECK-NEXT:    vfmv.v.f v9, fa03972; CHECK-NEXT:    vmfle.vf v9, v9, fa03973; CHECK-NEXT:    vmfle.vv v8, v8, v83974; CHECK-NEXT:    vmand.mm v0, v9, v83975; CHECK-NEXT:    ret3976  %head = insertelement <vscale x 2 x float> poison, float %b, i32 03977  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer3978  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp3979  ret <vscale x 2 x i1> %13980}3981 3982define <vscale x 2 x i1> @fcmps_ueq_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {3983; CHECK-LABEL: fcmps_ueq_vv_nxv2f32:3984; CHECK:       # %bb.0:3985; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3986; CHECK-NEXT:    vmflt.vv v10, v8, v93987; CHECK-NEXT:    vmflt.vv v8, v9, v83988; CHECK-NEXT:    vmnor.mm v0, v8, v103989; CHECK-NEXT:    ret3990  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp3991  ret <vscale x 2 x i1> %13992}3993 3994define <vscale x 2 x i1> @fcmps_ueq_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {3995; CHECK-LABEL: fcmps_ueq_vf_nxv2f32:3996; CHECK:       # %bb.0:3997; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma3998; CHECK-NEXT:    vmflt.vf v9, v8, fa03999; CHECK-NEXT:    vmfgt.vf v8, v8, fa04000; CHECK-NEXT:    vmnor.mm v0, v8, v94001; CHECK-NEXT:    ret4002  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04003  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4004  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp4005  ret <vscale x 2 x i1> %14006}4007 4008define <vscale x 2 x i1> @fcmps_ueq_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4009; CHECK-LABEL: fcmps_ueq_fv_nxv2f32:4010; CHECK:       # %bb.0:4011; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4012; CHECK-NEXT:    vmfgt.vf v9, v8, fa04013; CHECK-NEXT:    vmflt.vf v8, v8, fa04014; CHECK-NEXT:    vmnor.mm v0, v8, v94015; CHECK-NEXT:    ret4016  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04017  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4018  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp4019  ret <vscale x 2 x i1> %14020}4021 4022define <vscale x 2 x i1> @fcmps_ugt_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {4023; CHECK-LABEL: fcmps_ugt_vv_nxv2f32:4024; CHECK:       # %bb.0:4025; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4026; CHECK-NEXT:    vmfle.vv v8, v8, v94027; CHECK-NEXT:    vmnot.m v0, v84028; CHECK-NEXT:    ret4029  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp4030  ret <vscale x 2 x i1> %14031}4032 4033define <vscale x 2 x i1> @fcmps_ugt_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4034; CHECK-LABEL: fcmps_ugt_vf_nxv2f32:4035; CHECK:       # %bb.0:4036; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4037; CHECK-NEXT:    vmfle.vf v8, v8, fa04038; CHECK-NEXT:    vmnot.m v0, v84039; CHECK-NEXT:    ret4040  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04041  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4042  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp4043  ret <vscale x 2 x i1> %14044}4045 4046define <vscale x 2 x i1> @fcmps_ugt_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4047; CHECK-LABEL: fcmps_ugt_fv_nxv2f32:4048; CHECK:       # %bb.0:4049; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4050; CHECK-NEXT:    vmfge.vf v8, v8, fa04051; CHECK-NEXT:    vmnot.m v0, v84052; CHECK-NEXT:    ret4053  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04054  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4055  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp4056  ret <vscale x 2 x i1> %14057}4058 4059define <vscale x 2 x i1> @fcmps_uge_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {4060; CHECK-LABEL: fcmps_uge_vv_nxv2f32:4061; CHECK:       # %bb.0:4062; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4063; CHECK-NEXT:    vmflt.vv v8, v8, v94064; CHECK-NEXT:    vmnot.m v0, v84065; CHECK-NEXT:    ret4066  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp4067  ret <vscale x 2 x i1> %14068}4069 4070define <vscale x 2 x i1> @fcmps_uge_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4071; CHECK-LABEL: fcmps_uge_vf_nxv2f32:4072; CHECK:       # %bb.0:4073; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4074; CHECK-NEXT:    vmflt.vf v8, v8, fa04075; CHECK-NEXT:    vmnot.m v0, v84076; CHECK-NEXT:    ret4077  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04078  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4079  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp4080  ret <vscale x 2 x i1> %14081}4082 4083define <vscale x 2 x i1> @fcmps_uge_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4084; CHECK-LABEL: fcmps_uge_fv_nxv2f32:4085; CHECK:       # %bb.0:4086; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4087; CHECK-NEXT:    vmfgt.vf v8, v8, fa04088; CHECK-NEXT:    vmnot.m v0, v84089; CHECK-NEXT:    ret4090  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04091  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4092  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp4093  ret <vscale x 2 x i1> %14094}4095 4096define <vscale x 2 x i1> @fcmps_ult_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {4097; CHECK-LABEL: fcmps_ult_vv_nxv2f32:4098; CHECK:       # %bb.0:4099; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4100; CHECK-NEXT:    vmfle.vv v8, v9, v84101; CHECK-NEXT:    vmnot.m v0, v84102; CHECK-NEXT:    ret4103  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp4104  ret <vscale x 2 x i1> %14105}4106 4107define <vscale x 2 x i1> @fcmps_ult_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4108; CHECK-LABEL: fcmps_ult_vf_nxv2f32:4109; CHECK:       # %bb.0:4110; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4111; CHECK-NEXT:    vmfge.vf v8, v8, fa04112; CHECK-NEXT:    vmnot.m v0, v84113; CHECK-NEXT:    ret4114  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04115  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4116  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp4117  ret <vscale x 2 x i1> %14118}4119 4120define <vscale x 2 x i1> @fcmps_ult_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4121; CHECK-LABEL: fcmps_ult_fv_nxv2f32:4122; CHECK:       # %bb.0:4123; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4124; CHECK-NEXT:    vmfle.vf v8, v8, fa04125; CHECK-NEXT:    vmnot.m v0, v84126; CHECK-NEXT:    ret4127  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04128  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4129  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp4130  ret <vscale x 2 x i1> %14131}4132 4133define <vscale x 2 x i1> @fcmps_ule_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {4134; CHECK-LABEL: fcmps_ule_vv_nxv2f32:4135; CHECK:       # %bb.0:4136; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4137; CHECK-NEXT:    vmflt.vv v8, v9, v84138; CHECK-NEXT:    vmnot.m v0, v84139; CHECK-NEXT:    ret4140  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp4141  ret <vscale x 2 x i1> %14142}4143 4144define <vscale x 2 x i1> @fcmps_ule_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4145; CHECK-LABEL: fcmps_ule_vf_nxv2f32:4146; CHECK:       # %bb.0:4147; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4148; CHECK-NEXT:    vmfgt.vf v8, v8, fa04149; CHECK-NEXT:    vmnot.m v0, v84150; CHECK-NEXT:    ret4151  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04152  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4153  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp4154  ret <vscale x 2 x i1> %14155}4156 4157define <vscale x 2 x i1> @fcmps_ule_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4158; CHECK-LABEL: fcmps_ule_fv_nxv2f32:4159; CHECK:       # %bb.0:4160; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4161; CHECK-NEXT:    vmflt.vf v8, v8, fa04162; CHECK-NEXT:    vmnot.m v0, v84163; CHECK-NEXT:    ret4164  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04165  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4166  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp4167  ret <vscale x 2 x i1> %14168}4169 4170define <vscale x 2 x i1> @fcmps_une_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {4171; CHECK-LABEL: fcmps_une_vv_nxv2f32:4172; CHECK:       # %bb.0:4173; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4174; CHECK-NEXT:    vmfle.vv v10, v9, v84175; CHECK-NEXT:    vmfle.vv v8, v8, v94176; CHECK-NEXT:    vmnand.mm v0, v8, v104177; CHECK-NEXT:    ret4178  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp4179  ret <vscale x 2 x i1> %14180}4181 4182define <vscale x 2 x i1> @fcmps_une_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4183; CHECK-LABEL: fcmps_une_vf_nxv2f32:4184; CHECK:       # %bb.0:4185; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4186; CHECK-NEXT:    vmfge.vf v9, v8, fa04187; CHECK-NEXT:    vmfle.vf v8, v8, fa04188; CHECK-NEXT:    vmnand.mm v0, v8, v94189; CHECK-NEXT:    ret4190  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04191  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4192  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp4193  ret <vscale x 2 x i1> %14194}4195 4196define <vscale x 2 x i1> @fcmps_une_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4197; CHECK-LABEL: fcmps_une_fv_nxv2f32:4198; CHECK:       # %bb.0:4199; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4200; CHECK-NEXT:    vmfle.vf v9, v8, fa04201; CHECK-NEXT:    vmfge.vf v8, v8, fa04202; CHECK-NEXT:    vmnand.mm v0, v8, v94203; CHECK-NEXT:    ret4204  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04205  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4206  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp4207  ret <vscale x 2 x i1> %14208}4209 4210define <vscale x 2 x i1> @fcmps_uno_vv_nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb) nounwind strictfp {4211; CHECK-LABEL: fcmps_uno_vv_nxv2f32:4212; CHECK:       # %bb.0:4213; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4214; CHECK-NEXT:    vmfle.vv v9, v9, v94215; CHECK-NEXT:    vmfle.vv v8, v8, v84216; CHECK-NEXT:    vmnot.m v8, v84217; CHECK-NEXT:    vmorn.mm v0, v8, v94218; CHECK-NEXT:    ret4219  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp4220  ret <vscale x 2 x i1> %14221}4222 4223define <vscale x 2 x i1> @fcmps_uno_vf_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4224; CHECK-LABEL: fcmps_uno_vf_nxv2f32:4225; CHECK:       # %bb.0:4226; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4227; CHECK-NEXT:    vfmv.v.f v9, fa04228; CHECK-NEXT:    vmfle.vv v8, v8, v84229; CHECK-NEXT:    vmfle.vf v9, v9, fa04230; CHECK-NEXT:    vmnot.m v8, v84231; CHECK-NEXT:    vmorn.mm v0, v8, v94232; CHECK-NEXT:    ret4233  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04234  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4235  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp4236  ret <vscale x 2 x i1> %14237}4238 4239define <vscale x 2 x i1> @fcmps_uno_fv_nxv2f32(<vscale x 2 x float> %va, float %b) nounwind strictfp {4240; CHECK-LABEL: fcmps_uno_fv_nxv2f32:4241; CHECK:       # %bb.0:4242; CHECK-NEXT:    vsetvli a0, zero, e32, m1, ta, ma4243; CHECK-NEXT:    vfmv.v.f v9, fa04244; CHECK-NEXT:    vmfle.vf v9, v9, fa04245; CHECK-NEXT:    vmnot.m v9, v94246; CHECK-NEXT:    vmfle.vv v8, v8, v84247; CHECK-NEXT:    vmorn.mm v0, v9, v84248; CHECK-NEXT:    ret4249  %head = insertelement <vscale x 2 x float> poison, float %b, i32 04250  %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer4251  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f32(<vscale x 2 x float> %splat, <vscale x 2 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp4252  ret <vscale x 2 x i1> %14253}4254 4255define <vscale x 4 x i1> @fcmps_oeq_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4256; CHECK-LABEL: fcmps_oeq_vv_nxv4f32:4257; CHECK:       # %bb.0:4258; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4259; CHECK-NEXT:    vmfle.vv v12, v10, v84260; CHECK-NEXT:    vmfle.vv v13, v8, v104261; CHECK-NEXT:    vmand.mm v0, v13, v124262; CHECK-NEXT:    ret4263  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp4264  ret <vscale x 4 x i1> %14265}4266 4267define <vscale x 4 x i1> @fcmps_oeq_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4268; CHECK-LABEL: fcmps_oeq_vf_nxv4f32:4269; CHECK:       # %bb.0:4270; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4271; CHECK-NEXT:    vmfge.vf v10, v8, fa04272; CHECK-NEXT:    vmfle.vf v11, v8, fa04273; CHECK-NEXT:    vmand.mm v0, v11, v104274; CHECK-NEXT:    ret4275  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04276  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4277  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp4278  ret <vscale x 4 x i1> %14279}4280 4281define <vscale x 4 x i1> @fcmps_oeq_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4282; CHECK-LABEL: fcmps_oeq_fv_nxv4f32:4283; CHECK:       # %bb.0:4284; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4285; CHECK-NEXT:    vmfle.vf v10, v8, fa04286; CHECK-NEXT:    vmfge.vf v11, v8, fa04287; CHECK-NEXT:    vmand.mm v0, v11, v104288; CHECK-NEXT:    ret4289  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04290  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4291  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp4292  ret <vscale x 4 x i1> %14293}4294 4295define <vscale x 4 x i1> @fcmps_ogt_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4296; CHECK-LABEL: fcmps_ogt_vv_nxv4f32:4297; CHECK:       # %bb.0:4298; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4299; CHECK-NEXT:    vmflt.vv v0, v10, v84300; CHECK-NEXT:    ret4301  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp4302  ret <vscale x 4 x i1> %14303}4304 4305define <vscale x 4 x i1> @fcmps_ogt_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4306; CHECK-LABEL: fcmps_ogt_vf_nxv4f32:4307; CHECK:       # %bb.0:4308; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4309; CHECK-NEXT:    vmfgt.vf v0, v8, fa04310; CHECK-NEXT:    ret4311  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04312  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4313  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp4314  ret <vscale x 4 x i1> %14315}4316 4317define <vscale x 4 x i1> @fcmps_ogt_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4318; CHECK-LABEL: fcmps_ogt_fv_nxv4f32:4319; CHECK:       # %bb.0:4320; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4321; CHECK-NEXT:    vmflt.vf v0, v8, fa04322; CHECK-NEXT:    ret4323  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04324  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4325  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp4326  ret <vscale x 4 x i1> %14327}4328 4329define <vscale x 4 x i1> @fcmps_oge_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4330; CHECK-LABEL: fcmps_oge_vv_nxv4f32:4331; CHECK:       # %bb.0:4332; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4333; CHECK-NEXT:    vmfle.vv v0, v10, v84334; CHECK-NEXT:    ret4335  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp4336  ret <vscale x 4 x i1> %14337}4338 4339define <vscale x 4 x i1> @fcmps_oge_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4340; CHECK-LABEL: fcmps_oge_vf_nxv4f32:4341; CHECK:       # %bb.0:4342; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4343; CHECK-NEXT:    vmfge.vf v0, v8, fa04344; CHECK-NEXT:    ret4345  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04346  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4347  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp4348  ret <vscale x 4 x i1> %14349}4350 4351define <vscale x 4 x i1> @fcmps_oge_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4352; CHECK-LABEL: fcmps_oge_fv_nxv4f32:4353; CHECK:       # %bb.0:4354; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4355; CHECK-NEXT:    vmfle.vf v0, v8, fa04356; CHECK-NEXT:    ret4357  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04358  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4359  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp4360  ret <vscale x 4 x i1> %14361}4362 4363define <vscale x 4 x i1> @fcmps_olt_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4364; CHECK-LABEL: fcmps_olt_vv_nxv4f32:4365; CHECK:       # %bb.0:4366; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4367; CHECK-NEXT:    vmflt.vv v0, v8, v104368; CHECK-NEXT:    ret4369  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp4370  ret <vscale x 4 x i1> %14371}4372 4373define <vscale x 4 x i1> @fcmps_olt_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4374; CHECK-LABEL: fcmps_olt_vf_nxv4f32:4375; CHECK:       # %bb.0:4376; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4377; CHECK-NEXT:    vmflt.vf v0, v8, fa04378; CHECK-NEXT:    ret4379  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04380  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4381  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp4382  ret <vscale x 4 x i1> %14383}4384 4385define <vscale x 4 x i1> @fcmps_olt_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4386; CHECK-LABEL: fcmps_olt_fv_nxv4f32:4387; CHECK:       # %bb.0:4388; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4389; CHECK-NEXT:    vmfgt.vf v0, v8, fa04390; CHECK-NEXT:    ret4391  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04392  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4393  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp4394  ret <vscale x 4 x i1> %14395}4396 4397define <vscale x 4 x i1> @fcmps_ole_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4398; CHECK-LABEL: fcmps_ole_vv_nxv4f32:4399; CHECK:       # %bb.0:4400; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4401; CHECK-NEXT:    vmfle.vv v0, v8, v104402; CHECK-NEXT:    ret4403  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp4404  ret <vscale x 4 x i1> %14405}4406 4407define <vscale x 4 x i1> @fcmps_ole_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4408; CHECK-LABEL: fcmps_ole_vf_nxv4f32:4409; CHECK:       # %bb.0:4410; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4411; CHECK-NEXT:    vmfle.vf v0, v8, fa04412; CHECK-NEXT:    ret4413  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04414  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4415  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp4416  ret <vscale x 4 x i1> %14417}4418 4419define <vscale x 4 x i1> @fcmps_ole_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4420; CHECK-LABEL: fcmps_ole_fv_nxv4f32:4421; CHECK:       # %bb.0:4422; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4423; CHECK-NEXT:    vmfge.vf v0, v8, fa04424; CHECK-NEXT:    ret4425  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04426  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4427  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp4428  ret <vscale x 4 x i1> %14429}4430 4431define <vscale x 4 x i1> @fcmps_one_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4432; CHECK-LABEL: fcmps_one_vv_nxv4f32:4433; CHECK:       # %bb.0:4434; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4435; CHECK-NEXT:    vmflt.vv v12, v8, v104436; CHECK-NEXT:    vmflt.vv v13, v10, v84437; CHECK-NEXT:    vmor.mm v0, v13, v124438; CHECK-NEXT:    ret4439  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp4440  ret <vscale x 4 x i1> %14441}4442 4443define <vscale x 4 x i1> @fcmps_one_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4444; CHECK-LABEL: fcmps_one_vf_nxv4f32:4445; CHECK:       # %bb.0:4446; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4447; CHECK-NEXT:    vmflt.vf v10, v8, fa04448; CHECK-NEXT:    vmfgt.vf v11, v8, fa04449; CHECK-NEXT:    vmor.mm v0, v11, v104450; CHECK-NEXT:    ret4451  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04452  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4453  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp4454  ret <vscale x 4 x i1> %14455}4456 4457define <vscale x 4 x i1> @fcmps_one_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4458; CHECK-LABEL: fcmps_one_fv_nxv4f32:4459; CHECK:       # %bb.0:4460; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4461; CHECK-NEXT:    vmfgt.vf v10, v8, fa04462; CHECK-NEXT:    vmflt.vf v11, v8, fa04463; CHECK-NEXT:    vmor.mm v0, v11, v104464; CHECK-NEXT:    ret4465  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04466  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4467  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp4468  ret <vscale x 4 x i1> %14469}4470 4471define <vscale x 4 x i1> @fcmps_ord_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4472; CHECK-LABEL: fcmps_ord_vv_nxv4f32:4473; CHECK:       # %bb.0:4474; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4475; CHECK-NEXT:    vmfle.vv v12, v10, v104476; CHECK-NEXT:    vmfle.vv v10, v8, v84477; CHECK-NEXT:    vmand.mm v0, v10, v124478; CHECK-NEXT:    ret4479  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp4480  ret <vscale x 4 x i1> %14481}4482 4483define <vscale x 4 x i1> @fcmps_ord_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4484; CHECK-LABEL: fcmps_ord_vf_nxv4f32:4485; CHECK:       # %bb.0:4486; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4487; CHECK-NEXT:    vfmv.v.f v10, fa04488; CHECK-NEXT:    vmfle.vf v12, v10, fa04489; CHECK-NEXT:    vmfle.vv v10, v8, v84490; CHECK-NEXT:    vmand.mm v0, v10, v124491; CHECK-NEXT:    ret4492  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04493  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4494  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp4495  ret <vscale x 4 x i1> %14496}4497 4498define <vscale x 4 x i1> @fcmps_ord_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4499; CHECK-LABEL: fcmps_ord_fv_nxv4f32:4500; CHECK:       # %bb.0:4501; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4502; CHECK-NEXT:    vfmv.v.f v10, fa04503; CHECK-NEXT:    vmfle.vf v12, v10, fa04504; CHECK-NEXT:    vmfle.vv v10, v8, v84505; CHECK-NEXT:    vmand.mm v0, v12, v104506; CHECK-NEXT:    ret4507  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04508  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4509  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp4510  ret <vscale x 4 x i1> %14511}4512 4513define <vscale x 4 x i1> @fcmps_ueq_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4514; CHECK-LABEL: fcmps_ueq_vv_nxv4f32:4515; CHECK:       # %bb.0:4516; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4517; CHECK-NEXT:    vmflt.vv v12, v8, v104518; CHECK-NEXT:    vmflt.vv v13, v10, v84519; CHECK-NEXT:    vmnor.mm v0, v13, v124520; CHECK-NEXT:    ret4521  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp4522  ret <vscale x 4 x i1> %14523}4524 4525define <vscale x 4 x i1> @fcmps_ueq_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4526; CHECK-LABEL: fcmps_ueq_vf_nxv4f32:4527; CHECK:       # %bb.0:4528; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4529; CHECK-NEXT:    vmflt.vf v10, v8, fa04530; CHECK-NEXT:    vmfgt.vf v11, v8, fa04531; CHECK-NEXT:    vmnor.mm v0, v11, v104532; CHECK-NEXT:    ret4533  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04534  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4535  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp4536  ret <vscale x 4 x i1> %14537}4538 4539define <vscale x 4 x i1> @fcmps_ueq_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4540; CHECK-LABEL: fcmps_ueq_fv_nxv4f32:4541; CHECK:       # %bb.0:4542; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4543; CHECK-NEXT:    vmfgt.vf v10, v8, fa04544; CHECK-NEXT:    vmflt.vf v11, v8, fa04545; CHECK-NEXT:    vmnor.mm v0, v11, v104546; CHECK-NEXT:    ret4547  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04548  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4549  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp4550  ret <vscale x 4 x i1> %14551}4552 4553define <vscale x 4 x i1> @fcmps_ugt_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4554; CHECK-LABEL: fcmps_ugt_vv_nxv4f32:4555; CHECK:       # %bb.0:4556; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4557; CHECK-NEXT:    vmfle.vv v12, v8, v104558; CHECK-NEXT:    vmnot.m v0, v124559; CHECK-NEXT:    ret4560  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp4561  ret <vscale x 4 x i1> %14562}4563 4564define <vscale x 4 x i1> @fcmps_ugt_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4565; CHECK-LABEL: fcmps_ugt_vf_nxv4f32:4566; CHECK:       # %bb.0:4567; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4568; CHECK-NEXT:    vmfle.vf v10, v8, fa04569; CHECK-NEXT:    vmnot.m v0, v104570; CHECK-NEXT:    ret4571  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04572  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4573  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp4574  ret <vscale x 4 x i1> %14575}4576 4577define <vscale x 4 x i1> @fcmps_ugt_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4578; CHECK-LABEL: fcmps_ugt_fv_nxv4f32:4579; CHECK:       # %bb.0:4580; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4581; CHECK-NEXT:    vmfge.vf v10, v8, fa04582; CHECK-NEXT:    vmnot.m v0, v104583; CHECK-NEXT:    ret4584  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04585  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4586  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp4587  ret <vscale x 4 x i1> %14588}4589 4590define <vscale x 4 x i1> @fcmps_uge_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4591; CHECK-LABEL: fcmps_uge_vv_nxv4f32:4592; CHECK:       # %bb.0:4593; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4594; CHECK-NEXT:    vmflt.vv v12, v8, v104595; CHECK-NEXT:    vmnot.m v0, v124596; CHECK-NEXT:    ret4597  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp4598  ret <vscale x 4 x i1> %14599}4600 4601define <vscale x 4 x i1> @fcmps_uge_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4602; CHECK-LABEL: fcmps_uge_vf_nxv4f32:4603; CHECK:       # %bb.0:4604; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4605; CHECK-NEXT:    vmflt.vf v10, v8, fa04606; CHECK-NEXT:    vmnot.m v0, v104607; CHECK-NEXT:    ret4608  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04609  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4610  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp4611  ret <vscale x 4 x i1> %14612}4613 4614define <vscale x 4 x i1> @fcmps_uge_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4615; CHECK-LABEL: fcmps_uge_fv_nxv4f32:4616; CHECK:       # %bb.0:4617; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4618; CHECK-NEXT:    vmfgt.vf v10, v8, fa04619; CHECK-NEXT:    vmnot.m v0, v104620; CHECK-NEXT:    ret4621  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04622  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4623  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp4624  ret <vscale x 4 x i1> %14625}4626 4627define <vscale x 4 x i1> @fcmps_ult_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4628; CHECK-LABEL: fcmps_ult_vv_nxv4f32:4629; CHECK:       # %bb.0:4630; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4631; CHECK-NEXT:    vmfle.vv v12, v10, v84632; CHECK-NEXT:    vmnot.m v0, v124633; CHECK-NEXT:    ret4634  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp4635  ret <vscale x 4 x i1> %14636}4637 4638define <vscale x 4 x i1> @fcmps_ult_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4639; CHECK-LABEL: fcmps_ult_vf_nxv4f32:4640; CHECK:       # %bb.0:4641; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4642; CHECK-NEXT:    vmfge.vf v10, v8, fa04643; CHECK-NEXT:    vmnot.m v0, v104644; CHECK-NEXT:    ret4645  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04646  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4647  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp4648  ret <vscale x 4 x i1> %14649}4650 4651define <vscale x 4 x i1> @fcmps_ult_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4652; CHECK-LABEL: fcmps_ult_fv_nxv4f32:4653; CHECK:       # %bb.0:4654; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4655; CHECK-NEXT:    vmfle.vf v10, v8, fa04656; CHECK-NEXT:    vmnot.m v0, v104657; CHECK-NEXT:    ret4658  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04659  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4660  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp4661  ret <vscale x 4 x i1> %14662}4663 4664define <vscale x 4 x i1> @fcmps_ule_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4665; CHECK-LABEL: fcmps_ule_vv_nxv4f32:4666; CHECK:       # %bb.0:4667; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4668; CHECK-NEXT:    vmflt.vv v12, v10, v84669; CHECK-NEXT:    vmnot.m v0, v124670; CHECK-NEXT:    ret4671  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp4672  ret <vscale x 4 x i1> %14673}4674 4675define <vscale x 4 x i1> @fcmps_ule_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4676; CHECK-LABEL: fcmps_ule_vf_nxv4f32:4677; CHECK:       # %bb.0:4678; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4679; CHECK-NEXT:    vmfgt.vf v10, v8, fa04680; CHECK-NEXT:    vmnot.m v0, v104681; CHECK-NEXT:    ret4682  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04683  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4684  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp4685  ret <vscale x 4 x i1> %14686}4687 4688define <vscale x 4 x i1> @fcmps_ule_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4689; CHECK-LABEL: fcmps_ule_fv_nxv4f32:4690; CHECK:       # %bb.0:4691; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4692; CHECK-NEXT:    vmflt.vf v10, v8, fa04693; CHECK-NEXT:    vmnot.m v0, v104694; CHECK-NEXT:    ret4695  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04696  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4697  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp4698  ret <vscale x 4 x i1> %14699}4700 4701define <vscale x 4 x i1> @fcmps_une_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4702; CHECK-LABEL: fcmps_une_vv_nxv4f32:4703; CHECK:       # %bb.0:4704; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4705; CHECK-NEXT:    vmfle.vv v12, v10, v84706; CHECK-NEXT:    vmfle.vv v13, v8, v104707; CHECK-NEXT:    vmnand.mm v0, v13, v124708; CHECK-NEXT:    ret4709  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp4710  ret <vscale x 4 x i1> %14711}4712 4713define <vscale x 4 x i1> @fcmps_une_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4714; CHECK-LABEL: fcmps_une_vf_nxv4f32:4715; CHECK:       # %bb.0:4716; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4717; CHECK-NEXT:    vmfge.vf v10, v8, fa04718; CHECK-NEXT:    vmfle.vf v11, v8, fa04719; CHECK-NEXT:    vmnand.mm v0, v11, v104720; CHECK-NEXT:    ret4721  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04722  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4723  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp4724  ret <vscale x 4 x i1> %14725}4726 4727define <vscale x 4 x i1> @fcmps_une_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4728; CHECK-LABEL: fcmps_une_fv_nxv4f32:4729; CHECK:       # %bb.0:4730; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4731; CHECK-NEXT:    vmfle.vf v10, v8, fa04732; CHECK-NEXT:    vmfge.vf v11, v8, fa04733; CHECK-NEXT:    vmnand.mm v0, v11, v104734; CHECK-NEXT:    ret4735  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04736  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4737  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp4738  ret <vscale x 4 x i1> %14739}4740 4741define <vscale x 4 x i1> @fcmps_uno_vv_nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb) nounwind strictfp {4742; CHECK-LABEL: fcmps_uno_vv_nxv4f32:4743; CHECK:       # %bb.0:4744; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4745; CHECK-NEXT:    vmfle.vv v12, v10, v104746; CHECK-NEXT:    vmfle.vv v10, v8, v84747; CHECK-NEXT:    vmnot.m v8, v104748; CHECK-NEXT:    vmorn.mm v0, v8, v124749; CHECK-NEXT:    ret4750  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp4751  ret <vscale x 4 x i1> %14752}4753 4754define <vscale x 4 x i1> @fcmps_uno_vf_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4755; CHECK-LABEL: fcmps_uno_vf_nxv4f32:4756; CHECK:       # %bb.0:4757; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4758; CHECK-NEXT:    vfmv.v.f v10, fa04759; CHECK-NEXT:    vmfle.vv v12, v8, v84760; CHECK-NEXT:    vmfle.vf v8, v10, fa04761; CHECK-NEXT:    vmnot.m v9, v124762; CHECK-NEXT:    vmorn.mm v0, v9, v84763; CHECK-NEXT:    ret4764  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04765  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4766  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp4767  ret <vscale x 4 x i1> %14768}4769 4770define <vscale x 4 x i1> @fcmps_uno_fv_nxv4f32(<vscale x 4 x float> %va, float %b) nounwind strictfp {4771; CHECK-LABEL: fcmps_uno_fv_nxv4f32:4772; CHECK:       # %bb.0:4773; CHECK-NEXT:    vsetvli a0, zero, e32, m2, ta, ma4774; CHECK-NEXT:    vfmv.v.f v10, fa04775; CHECK-NEXT:    vmfle.vf v12, v10, fa04776; CHECK-NEXT:    vmnot.m v10, v124777; CHECK-NEXT:    vmfle.vv v11, v8, v84778; CHECK-NEXT:    vmorn.mm v0, v10, v114779; CHECK-NEXT:    ret4780  %head = insertelement <vscale x 4 x float> poison, float %b, i32 04781  %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer4782  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f32(<vscale x 4 x float> %splat, <vscale x 4 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp4783  ret <vscale x 4 x i1> %14784}4785 4786define <vscale x 8 x i1> @fcmps_oeq_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {4787; CHECK-LABEL: fcmps_oeq_vv_nxv8f32:4788; CHECK:       # %bb.0:4789; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4790; CHECK-NEXT:    vmfle.vv v16, v12, v84791; CHECK-NEXT:    vmfle.vv v17, v8, v124792; CHECK-NEXT:    vmand.mm v0, v17, v164793; CHECK-NEXT:    ret4794  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp4795  ret <vscale x 8 x i1> %14796}4797 4798define <vscale x 8 x i1> @fcmps_oeq_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4799; CHECK-LABEL: fcmps_oeq_vf_nxv8f32:4800; CHECK:       # %bb.0:4801; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4802; CHECK-NEXT:    vmfge.vf v12, v8, fa04803; CHECK-NEXT:    vmfle.vf v13, v8, fa04804; CHECK-NEXT:    vmand.mm v0, v13, v124805; CHECK-NEXT:    ret4806  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04807  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4808  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp4809  ret <vscale x 8 x i1> %14810}4811 4812define <vscale x 8 x i1> @fcmps_oeq_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4813; CHECK-LABEL: fcmps_oeq_fv_nxv8f32:4814; CHECK:       # %bb.0:4815; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4816; CHECK-NEXT:    vmfle.vf v12, v8, fa04817; CHECK-NEXT:    vmfge.vf v13, v8, fa04818; CHECK-NEXT:    vmand.mm v0, v13, v124819; CHECK-NEXT:    ret4820  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04821  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4822  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp4823  ret <vscale x 8 x i1> %14824}4825 4826define <vscale x 8 x i1> @fcmps_ogt_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {4827; CHECK-LABEL: fcmps_ogt_vv_nxv8f32:4828; CHECK:       # %bb.0:4829; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4830; CHECK-NEXT:    vmflt.vv v0, v12, v84831; CHECK-NEXT:    ret4832  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp4833  ret <vscale x 8 x i1> %14834}4835 4836define <vscale x 8 x i1> @fcmps_ogt_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4837; CHECK-LABEL: fcmps_ogt_vf_nxv8f32:4838; CHECK:       # %bb.0:4839; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4840; CHECK-NEXT:    vmfgt.vf v0, v8, fa04841; CHECK-NEXT:    ret4842  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04843  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4844  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp4845  ret <vscale x 8 x i1> %14846}4847 4848define <vscale x 8 x i1> @fcmps_ogt_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4849; CHECK-LABEL: fcmps_ogt_fv_nxv8f32:4850; CHECK:       # %bb.0:4851; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4852; CHECK-NEXT:    vmflt.vf v0, v8, fa04853; CHECK-NEXT:    ret4854  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04855  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4856  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp4857  ret <vscale x 8 x i1> %14858}4859 4860define <vscale x 8 x i1> @fcmps_oge_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {4861; CHECK-LABEL: fcmps_oge_vv_nxv8f32:4862; CHECK:       # %bb.0:4863; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4864; CHECK-NEXT:    vmfle.vv v0, v12, v84865; CHECK-NEXT:    ret4866  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp4867  ret <vscale x 8 x i1> %14868}4869 4870define <vscale x 8 x i1> @fcmps_oge_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4871; CHECK-LABEL: fcmps_oge_vf_nxv8f32:4872; CHECK:       # %bb.0:4873; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4874; CHECK-NEXT:    vmfge.vf v0, v8, fa04875; CHECK-NEXT:    ret4876  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04877  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4878  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp4879  ret <vscale x 8 x i1> %14880}4881 4882define <vscale x 8 x i1> @fcmps_oge_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4883; CHECK-LABEL: fcmps_oge_fv_nxv8f32:4884; CHECK:       # %bb.0:4885; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4886; CHECK-NEXT:    vmfle.vf v0, v8, fa04887; CHECK-NEXT:    ret4888  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04889  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4890  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp4891  ret <vscale x 8 x i1> %14892}4893 4894define <vscale x 8 x i1> @fcmps_olt_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {4895; CHECK-LABEL: fcmps_olt_vv_nxv8f32:4896; CHECK:       # %bb.0:4897; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4898; CHECK-NEXT:    vmflt.vv v0, v8, v124899; CHECK-NEXT:    ret4900  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp4901  ret <vscale x 8 x i1> %14902}4903 4904define <vscale x 8 x i1> @fcmps_olt_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4905; CHECK-LABEL: fcmps_olt_vf_nxv8f32:4906; CHECK:       # %bb.0:4907; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4908; CHECK-NEXT:    vmflt.vf v0, v8, fa04909; CHECK-NEXT:    ret4910  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04911  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4912  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp4913  ret <vscale x 8 x i1> %14914}4915 4916define <vscale x 8 x i1> @fcmps_olt_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4917; CHECK-LABEL: fcmps_olt_fv_nxv8f32:4918; CHECK:       # %bb.0:4919; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4920; CHECK-NEXT:    vmfgt.vf v0, v8, fa04921; CHECK-NEXT:    ret4922  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04923  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4924  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp4925  ret <vscale x 8 x i1> %14926}4927 4928define <vscale x 8 x i1> @fcmps_ole_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {4929; CHECK-LABEL: fcmps_ole_vv_nxv8f32:4930; CHECK:       # %bb.0:4931; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4932; CHECK-NEXT:    vmfle.vv v0, v8, v124933; CHECK-NEXT:    ret4934  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp4935  ret <vscale x 8 x i1> %14936}4937 4938define <vscale x 8 x i1> @fcmps_ole_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4939; CHECK-LABEL: fcmps_ole_vf_nxv8f32:4940; CHECK:       # %bb.0:4941; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4942; CHECK-NEXT:    vmfle.vf v0, v8, fa04943; CHECK-NEXT:    ret4944  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04945  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4946  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp4947  ret <vscale x 8 x i1> %14948}4949 4950define <vscale x 8 x i1> @fcmps_ole_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4951; CHECK-LABEL: fcmps_ole_fv_nxv8f32:4952; CHECK:       # %bb.0:4953; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4954; CHECK-NEXT:    vmfge.vf v0, v8, fa04955; CHECK-NEXT:    ret4956  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04957  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4958  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp4959  ret <vscale x 8 x i1> %14960}4961 4962define <vscale x 8 x i1> @fcmps_one_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {4963; CHECK-LABEL: fcmps_one_vv_nxv8f32:4964; CHECK:       # %bb.0:4965; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4966; CHECK-NEXT:    vmflt.vv v16, v8, v124967; CHECK-NEXT:    vmflt.vv v17, v12, v84968; CHECK-NEXT:    vmor.mm v0, v17, v164969; CHECK-NEXT:    ret4970  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp4971  ret <vscale x 8 x i1> %14972}4973 4974define <vscale x 8 x i1> @fcmps_one_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4975; CHECK-LABEL: fcmps_one_vf_nxv8f32:4976; CHECK:       # %bb.0:4977; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4978; CHECK-NEXT:    vmflt.vf v12, v8, fa04979; CHECK-NEXT:    vmfgt.vf v13, v8, fa04980; CHECK-NEXT:    vmor.mm v0, v13, v124981; CHECK-NEXT:    ret4982  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04983  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4984  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp4985  ret <vscale x 8 x i1> %14986}4987 4988define <vscale x 8 x i1> @fcmps_one_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {4989; CHECK-LABEL: fcmps_one_fv_nxv8f32:4990; CHECK:       # %bb.0:4991; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma4992; CHECK-NEXT:    vmfgt.vf v12, v8, fa04993; CHECK-NEXT:    vmflt.vf v13, v8, fa04994; CHECK-NEXT:    vmor.mm v0, v13, v124995; CHECK-NEXT:    ret4996  %head = insertelement <vscale x 8 x float> poison, float %b, i32 04997  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer4998  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp4999  ret <vscale x 8 x i1> %15000}5001 5002define <vscale x 8 x i1> @fcmps_ord_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5003; CHECK-LABEL: fcmps_ord_vv_nxv8f32:5004; CHECK:       # %bb.0:5005; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5006; CHECK-NEXT:    vmfle.vv v16, v12, v125007; CHECK-NEXT:    vmfle.vv v12, v8, v85008; CHECK-NEXT:    vmand.mm v0, v12, v165009; CHECK-NEXT:    ret5010  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp5011  ret <vscale x 8 x i1> %15012}5013 5014define <vscale x 8 x i1> @fcmps_ord_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5015; CHECK-LABEL: fcmps_ord_vf_nxv8f32:5016; CHECK:       # %bb.0:5017; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5018; CHECK-NEXT:    vfmv.v.f v12, fa05019; CHECK-NEXT:    vmfle.vf v16, v12, fa05020; CHECK-NEXT:    vmfle.vv v12, v8, v85021; CHECK-NEXT:    vmand.mm v0, v12, v165022; CHECK-NEXT:    ret5023  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05024  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5025  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp5026  ret <vscale x 8 x i1> %15027}5028 5029define <vscale x 8 x i1> @fcmps_ord_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5030; CHECK-LABEL: fcmps_ord_fv_nxv8f32:5031; CHECK:       # %bb.0:5032; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5033; CHECK-NEXT:    vfmv.v.f v12, fa05034; CHECK-NEXT:    vmfle.vf v16, v12, fa05035; CHECK-NEXT:    vmfle.vv v12, v8, v85036; CHECK-NEXT:    vmand.mm v0, v16, v125037; CHECK-NEXT:    ret5038  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05039  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5040  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp5041  ret <vscale x 8 x i1> %15042}5043 5044define <vscale x 8 x i1> @fcmps_ueq_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5045; CHECK-LABEL: fcmps_ueq_vv_nxv8f32:5046; CHECK:       # %bb.0:5047; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5048; CHECK-NEXT:    vmflt.vv v16, v8, v125049; CHECK-NEXT:    vmflt.vv v17, v12, v85050; CHECK-NEXT:    vmnor.mm v0, v17, v165051; CHECK-NEXT:    ret5052  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp5053  ret <vscale x 8 x i1> %15054}5055 5056define <vscale x 8 x i1> @fcmps_ueq_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5057; CHECK-LABEL: fcmps_ueq_vf_nxv8f32:5058; CHECK:       # %bb.0:5059; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5060; CHECK-NEXT:    vmflt.vf v12, v8, fa05061; CHECK-NEXT:    vmfgt.vf v13, v8, fa05062; CHECK-NEXT:    vmnor.mm v0, v13, v125063; CHECK-NEXT:    ret5064  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05065  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5066  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp5067  ret <vscale x 8 x i1> %15068}5069 5070define <vscale x 8 x i1> @fcmps_ueq_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5071; CHECK-LABEL: fcmps_ueq_fv_nxv8f32:5072; CHECK:       # %bb.0:5073; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5074; CHECK-NEXT:    vmfgt.vf v12, v8, fa05075; CHECK-NEXT:    vmflt.vf v13, v8, fa05076; CHECK-NEXT:    vmnor.mm v0, v13, v125077; CHECK-NEXT:    ret5078  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05079  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5080  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp5081  ret <vscale x 8 x i1> %15082}5083 5084define <vscale x 8 x i1> @fcmps_ugt_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5085; CHECK-LABEL: fcmps_ugt_vv_nxv8f32:5086; CHECK:       # %bb.0:5087; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5088; CHECK-NEXT:    vmfle.vv v16, v8, v125089; CHECK-NEXT:    vmnot.m v0, v165090; CHECK-NEXT:    ret5091  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp5092  ret <vscale x 8 x i1> %15093}5094 5095define <vscale x 8 x i1> @fcmps_ugt_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5096; CHECK-LABEL: fcmps_ugt_vf_nxv8f32:5097; CHECK:       # %bb.0:5098; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5099; CHECK-NEXT:    vmfle.vf v12, v8, fa05100; CHECK-NEXT:    vmnot.m v0, v125101; CHECK-NEXT:    ret5102  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05103  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5104  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp5105  ret <vscale x 8 x i1> %15106}5107 5108define <vscale x 8 x i1> @fcmps_ugt_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5109; CHECK-LABEL: fcmps_ugt_fv_nxv8f32:5110; CHECK:       # %bb.0:5111; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5112; CHECK-NEXT:    vmfge.vf v12, v8, fa05113; CHECK-NEXT:    vmnot.m v0, v125114; CHECK-NEXT:    ret5115  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05116  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5117  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp5118  ret <vscale x 8 x i1> %15119}5120 5121define <vscale x 8 x i1> @fcmps_uge_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5122; CHECK-LABEL: fcmps_uge_vv_nxv8f32:5123; CHECK:       # %bb.0:5124; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5125; CHECK-NEXT:    vmflt.vv v16, v8, v125126; CHECK-NEXT:    vmnot.m v0, v165127; CHECK-NEXT:    ret5128  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp5129  ret <vscale x 8 x i1> %15130}5131 5132define <vscale x 8 x i1> @fcmps_uge_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5133; CHECK-LABEL: fcmps_uge_vf_nxv8f32:5134; CHECK:       # %bb.0:5135; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5136; CHECK-NEXT:    vmflt.vf v12, v8, fa05137; CHECK-NEXT:    vmnot.m v0, v125138; CHECK-NEXT:    ret5139  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05140  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5141  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp5142  ret <vscale x 8 x i1> %15143}5144 5145define <vscale x 8 x i1> @fcmps_uge_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5146; CHECK-LABEL: fcmps_uge_fv_nxv8f32:5147; CHECK:       # %bb.0:5148; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5149; CHECK-NEXT:    vmfgt.vf v12, v8, fa05150; CHECK-NEXT:    vmnot.m v0, v125151; CHECK-NEXT:    ret5152  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05153  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5154  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp5155  ret <vscale x 8 x i1> %15156}5157 5158define <vscale x 8 x i1> @fcmps_ult_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5159; CHECK-LABEL: fcmps_ult_vv_nxv8f32:5160; CHECK:       # %bb.0:5161; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5162; CHECK-NEXT:    vmfle.vv v16, v12, v85163; CHECK-NEXT:    vmnot.m v0, v165164; CHECK-NEXT:    ret5165  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp5166  ret <vscale x 8 x i1> %15167}5168 5169define <vscale x 8 x i1> @fcmps_ult_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5170; CHECK-LABEL: fcmps_ult_vf_nxv8f32:5171; CHECK:       # %bb.0:5172; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5173; CHECK-NEXT:    vmfge.vf v12, v8, fa05174; CHECK-NEXT:    vmnot.m v0, v125175; CHECK-NEXT:    ret5176  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05177  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5178  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp5179  ret <vscale x 8 x i1> %15180}5181 5182define <vscale x 8 x i1> @fcmps_ult_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5183; CHECK-LABEL: fcmps_ult_fv_nxv8f32:5184; CHECK:       # %bb.0:5185; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5186; CHECK-NEXT:    vmfle.vf v12, v8, fa05187; CHECK-NEXT:    vmnot.m v0, v125188; CHECK-NEXT:    ret5189  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05190  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5191  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp5192  ret <vscale x 8 x i1> %15193}5194 5195define <vscale x 8 x i1> @fcmps_ule_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5196; CHECK-LABEL: fcmps_ule_vv_nxv8f32:5197; CHECK:       # %bb.0:5198; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5199; CHECK-NEXT:    vmflt.vv v16, v12, v85200; CHECK-NEXT:    vmnot.m v0, v165201; CHECK-NEXT:    ret5202  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp5203  ret <vscale x 8 x i1> %15204}5205 5206define <vscale x 8 x i1> @fcmps_ule_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5207; CHECK-LABEL: fcmps_ule_vf_nxv8f32:5208; CHECK:       # %bb.0:5209; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5210; CHECK-NEXT:    vmfgt.vf v12, v8, fa05211; CHECK-NEXT:    vmnot.m v0, v125212; CHECK-NEXT:    ret5213  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05214  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5215  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp5216  ret <vscale x 8 x i1> %15217}5218 5219define <vscale x 8 x i1> @fcmps_ule_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5220; CHECK-LABEL: fcmps_ule_fv_nxv8f32:5221; CHECK:       # %bb.0:5222; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5223; CHECK-NEXT:    vmflt.vf v12, v8, fa05224; CHECK-NEXT:    vmnot.m v0, v125225; CHECK-NEXT:    ret5226  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05227  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5228  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp5229  ret <vscale x 8 x i1> %15230}5231 5232define <vscale x 8 x i1> @fcmps_une_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5233; CHECK-LABEL: fcmps_une_vv_nxv8f32:5234; CHECK:       # %bb.0:5235; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5236; CHECK-NEXT:    vmfle.vv v16, v12, v85237; CHECK-NEXT:    vmfle.vv v17, v8, v125238; CHECK-NEXT:    vmnand.mm v0, v17, v165239; CHECK-NEXT:    ret5240  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp5241  ret <vscale x 8 x i1> %15242}5243 5244define <vscale x 8 x i1> @fcmps_une_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5245; CHECK-LABEL: fcmps_une_vf_nxv8f32:5246; CHECK:       # %bb.0:5247; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5248; CHECK-NEXT:    vmfge.vf v12, v8, fa05249; CHECK-NEXT:    vmfle.vf v13, v8, fa05250; CHECK-NEXT:    vmnand.mm v0, v13, v125251; CHECK-NEXT:    ret5252  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05253  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5254  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp5255  ret <vscale x 8 x i1> %15256}5257 5258define <vscale x 8 x i1> @fcmps_une_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5259; CHECK-LABEL: fcmps_une_fv_nxv8f32:5260; CHECK:       # %bb.0:5261; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5262; CHECK-NEXT:    vmfle.vf v12, v8, fa05263; CHECK-NEXT:    vmfge.vf v13, v8, fa05264; CHECK-NEXT:    vmnand.mm v0, v13, v125265; CHECK-NEXT:    ret5266  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05267  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5268  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp5269  ret <vscale x 8 x i1> %15270}5271 5272define <vscale x 8 x i1> @fcmps_uno_vv_nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb) nounwind strictfp {5273; CHECK-LABEL: fcmps_uno_vv_nxv8f32:5274; CHECK:       # %bb.0:5275; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5276; CHECK-NEXT:    vmfle.vv v16, v12, v125277; CHECK-NEXT:    vmfle.vv v12, v8, v85278; CHECK-NEXT:    vmnot.m v8, v125279; CHECK-NEXT:    vmorn.mm v0, v8, v165280; CHECK-NEXT:    ret5281  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp5282  ret <vscale x 8 x i1> %15283}5284 5285define <vscale x 8 x i1> @fcmps_uno_vf_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5286; CHECK-LABEL: fcmps_uno_vf_nxv8f32:5287; CHECK:       # %bb.0:5288; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5289; CHECK-NEXT:    vfmv.v.f v12, fa05290; CHECK-NEXT:    vmfle.vv v16, v8, v85291; CHECK-NEXT:    vmfle.vf v8, v12, fa05292; CHECK-NEXT:    vmnot.m v9, v165293; CHECK-NEXT:    vmorn.mm v0, v9, v85294; CHECK-NEXT:    ret5295  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05296  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5297  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp5298  ret <vscale x 8 x i1> %15299}5300 5301define <vscale x 8 x i1> @fcmps_uno_fv_nxv8f32(<vscale x 8 x float> %va, float %b) nounwind strictfp {5302; CHECK-LABEL: fcmps_uno_fv_nxv8f32:5303; CHECK:       # %bb.0:5304; CHECK-NEXT:    vsetvli a0, zero, e32, m4, ta, ma5305; CHECK-NEXT:    vfmv.v.f v12, fa05306; CHECK-NEXT:    vmfle.vf v16, v12, fa05307; CHECK-NEXT:    vmnot.m v12, v165308; CHECK-NEXT:    vmfle.vv v13, v8, v85309; CHECK-NEXT:    vmorn.mm v0, v12, v135310; CHECK-NEXT:    ret5311  %head = insertelement <vscale x 8 x float> poison, float %b, i32 05312  %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer5313  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f32(<vscale x 8 x float> %splat, <vscale x 8 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp5314  ret <vscale x 8 x i1> %15315}5316 5317define <vscale x 16 x i1> @fcmps_oeq_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5318; CHECK-LABEL: fcmps_oeq_vv_nxv16f32:5319; CHECK:       # %bb.0:5320; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5321; CHECK-NEXT:    vmfle.vv v24, v16, v85322; CHECK-NEXT:    vmfle.vv v25, v8, v165323; CHECK-NEXT:    vmand.mm v0, v25, v245324; CHECK-NEXT:    ret5325  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp5326  ret <vscale x 16 x i1> %15327}5328 5329define <vscale x 16 x i1> @fcmps_oeq_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5330; CHECK-LABEL: fcmps_oeq_vf_nxv16f32:5331; CHECK:       # %bb.0:5332; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5333; CHECK-NEXT:    vmfge.vf v16, v8, fa05334; CHECK-NEXT:    vmfle.vf v17, v8, fa05335; CHECK-NEXT:    vmand.mm v0, v17, v165336; CHECK-NEXT:    ret5337  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05338  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5339  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp5340  ret <vscale x 16 x i1> %15341}5342 5343define <vscale x 16 x i1> @fcmps_oeq_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5344; CHECK-LABEL: fcmps_oeq_fv_nxv16f32:5345; CHECK:       # %bb.0:5346; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5347; CHECK-NEXT:    vmfle.vf v16, v8, fa05348; CHECK-NEXT:    vmfge.vf v17, v8, fa05349; CHECK-NEXT:    vmand.mm v0, v17, v165350; CHECK-NEXT:    ret5351  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05352  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5353  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp5354  ret <vscale x 16 x i1> %15355}5356 5357define <vscale x 16 x i1> @fcmps_ogt_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5358; CHECK-LABEL: fcmps_ogt_vv_nxv16f32:5359; CHECK:       # %bb.0:5360; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5361; CHECK-NEXT:    vmflt.vv v0, v16, v85362; CHECK-NEXT:    ret5363  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp5364  ret <vscale x 16 x i1> %15365}5366 5367define <vscale x 16 x i1> @fcmps_ogt_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5368; CHECK-LABEL: fcmps_ogt_vf_nxv16f32:5369; CHECK:       # %bb.0:5370; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5371; CHECK-NEXT:    vmfgt.vf v0, v8, fa05372; CHECK-NEXT:    ret5373  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05374  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5375  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp5376  ret <vscale x 16 x i1> %15377}5378 5379define <vscale x 16 x i1> @fcmps_ogt_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5380; CHECK-LABEL: fcmps_ogt_fv_nxv16f32:5381; CHECK:       # %bb.0:5382; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5383; CHECK-NEXT:    vmflt.vf v0, v8, fa05384; CHECK-NEXT:    ret5385  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05386  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5387  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp5388  ret <vscale x 16 x i1> %15389}5390 5391define <vscale x 16 x i1> @fcmps_oge_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5392; CHECK-LABEL: fcmps_oge_vv_nxv16f32:5393; CHECK:       # %bb.0:5394; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5395; CHECK-NEXT:    vmfle.vv v0, v16, v85396; CHECK-NEXT:    ret5397  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp5398  ret <vscale x 16 x i1> %15399}5400 5401define <vscale x 16 x i1> @fcmps_oge_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5402; CHECK-LABEL: fcmps_oge_vf_nxv16f32:5403; CHECK:       # %bb.0:5404; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5405; CHECK-NEXT:    vmfge.vf v0, v8, fa05406; CHECK-NEXT:    ret5407  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05408  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5409  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp5410  ret <vscale x 16 x i1> %15411}5412 5413define <vscale x 16 x i1> @fcmps_oge_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5414; CHECK-LABEL: fcmps_oge_fv_nxv16f32:5415; CHECK:       # %bb.0:5416; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5417; CHECK-NEXT:    vmfle.vf v0, v8, fa05418; CHECK-NEXT:    ret5419  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05420  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5421  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp5422  ret <vscale x 16 x i1> %15423}5424 5425define <vscale x 16 x i1> @fcmps_olt_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5426; CHECK-LABEL: fcmps_olt_vv_nxv16f32:5427; CHECK:       # %bb.0:5428; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5429; CHECK-NEXT:    vmflt.vv v0, v8, v165430; CHECK-NEXT:    ret5431  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp5432  ret <vscale x 16 x i1> %15433}5434 5435define <vscale x 16 x i1> @fcmps_olt_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5436; CHECK-LABEL: fcmps_olt_vf_nxv16f32:5437; CHECK:       # %bb.0:5438; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5439; CHECK-NEXT:    vmflt.vf v0, v8, fa05440; CHECK-NEXT:    ret5441  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05442  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5443  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp5444  ret <vscale x 16 x i1> %15445}5446 5447define <vscale x 16 x i1> @fcmps_olt_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5448; CHECK-LABEL: fcmps_olt_fv_nxv16f32:5449; CHECK:       # %bb.0:5450; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5451; CHECK-NEXT:    vmfgt.vf v0, v8, fa05452; CHECK-NEXT:    ret5453  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05454  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5455  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp5456  ret <vscale x 16 x i1> %15457}5458 5459define <vscale x 16 x i1> @fcmps_ole_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5460; CHECK-LABEL: fcmps_ole_vv_nxv16f32:5461; CHECK:       # %bb.0:5462; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5463; CHECK-NEXT:    vmfle.vv v0, v8, v165464; CHECK-NEXT:    ret5465  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp5466  ret <vscale x 16 x i1> %15467}5468 5469define <vscale x 16 x i1> @fcmps_ole_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5470; CHECK-LABEL: fcmps_ole_vf_nxv16f32:5471; CHECK:       # %bb.0:5472; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5473; CHECK-NEXT:    vmfle.vf v0, v8, fa05474; CHECK-NEXT:    ret5475  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05476  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5477  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp5478  ret <vscale x 16 x i1> %15479}5480 5481define <vscale x 16 x i1> @fcmps_ole_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5482; CHECK-LABEL: fcmps_ole_fv_nxv16f32:5483; CHECK:       # %bb.0:5484; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5485; CHECK-NEXT:    vmfge.vf v0, v8, fa05486; CHECK-NEXT:    ret5487  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05488  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5489  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp5490  ret <vscale x 16 x i1> %15491}5492 5493define <vscale x 16 x i1> @fcmps_one_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5494; CHECK-LABEL: fcmps_one_vv_nxv16f32:5495; CHECK:       # %bb.0:5496; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5497; CHECK-NEXT:    vmflt.vv v24, v8, v165498; CHECK-NEXT:    vmflt.vv v25, v16, v85499; CHECK-NEXT:    vmor.mm v0, v25, v245500; CHECK-NEXT:    ret5501  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp5502  ret <vscale x 16 x i1> %15503}5504 5505define <vscale x 16 x i1> @fcmps_one_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5506; CHECK-LABEL: fcmps_one_vf_nxv16f32:5507; CHECK:       # %bb.0:5508; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5509; CHECK-NEXT:    vmflt.vf v16, v8, fa05510; CHECK-NEXT:    vmfgt.vf v17, v8, fa05511; CHECK-NEXT:    vmor.mm v0, v17, v165512; CHECK-NEXT:    ret5513  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05514  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5515  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp5516  ret <vscale x 16 x i1> %15517}5518 5519define <vscale x 16 x i1> @fcmps_one_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5520; CHECK-LABEL: fcmps_one_fv_nxv16f32:5521; CHECK:       # %bb.0:5522; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5523; CHECK-NEXT:    vmfgt.vf v16, v8, fa05524; CHECK-NEXT:    vmflt.vf v17, v8, fa05525; CHECK-NEXT:    vmor.mm v0, v17, v165526; CHECK-NEXT:    ret5527  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05528  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5529  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp5530  ret <vscale x 16 x i1> %15531}5532 5533define <vscale x 16 x i1> @fcmps_ord_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5534; CHECK-LABEL: fcmps_ord_vv_nxv16f32:5535; CHECK:       # %bb.0:5536; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5537; CHECK-NEXT:    vmfle.vv v24, v16, v165538; CHECK-NEXT:    vmfle.vv v16, v8, v85539; CHECK-NEXT:    vmand.mm v0, v16, v245540; CHECK-NEXT:    ret5541  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp5542  ret <vscale x 16 x i1> %15543}5544 5545define <vscale x 16 x i1> @fcmps_ord_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5546; CHECK-LABEL: fcmps_ord_vf_nxv16f32:5547; CHECK:       # %bb.0:5548; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5549; CHECK-NEXT:    vfmv.v.f v16, fa05550; CHECK-NEXT:    vmfle.vf v24, v16, fa05551; CHECK-NEXT:    vmfle.vv v16, v8, v85552; CHECK-NEXT:    vmand.mm v0, v16, v245553; CHECK-NEXT:    ret5554  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05555  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5556  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp5557  ret <vscale x 16 x i1> %15558}5559 5560define <vscale x 16 x i1> @fcmps_ord_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5561; CHECK-LABEL: fcmps_ord_fv_nxv16f32:5562; CHECK:       # %bb.0:5563; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5564; CHECK-NEXT:    vfmv.v.f v16, fa05565; CHECK-NEXT:    vmfle.vf v24, v16, fa05566; CHECK-NEXT:    vmfle.vv v16, v8, v85567; CHECK-NEXT:    vmand.mm v0, v24, v165568; CHECK-NEXT:    ret5569  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05570  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5571  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp5572  ret <vscale x 16 x i1> %15573}5574 5575define <vscale x 16 x i1> @fcmps_ueq_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5576; CHECK-LABEL: fcmps_ueq_vv_nxv16f32:5577; CHECK:       # %bb.0:5578; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5579; CHECK-NEXT:    vmflt.vv v24, v8, v165580; CHECK-NEXT:    vmflt.vv v25, v16, v85581; CHECK-NEXT:    vmnor.mm v0, v25, v245582; CHECK-NEXT:    ret5583  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp5584  ret <vscale x 16 x i1> %15585}5586 5587define <vscale x 16 x i1> @fcmps_ueq_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5588; CHECK-LABEL: fcmps_ueq_vf_nxv16f32:5589; CHECK:       # %bb.0:5590; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5591; CHECK-NEXT:    vmflt.vf v16, v8, fa05592; CHECK-NEXT:    vmfgt.vf v17, v8, fa05593; CHECK-NEXT:    vmnor.mm v0, v17, v165594; CHECK-NEXT:    ret5595  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05596  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5597  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp5598  ret <vscale x 16 x i1> %15599}5600 5601define <vscale x 16 x i1> @fcmps_ueq_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5602; CHECK-LABEL: fcmps_ueq_fv_nxv16f32:5603; CHECK:       # %bb.0:5604; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5605; CHECK-NEXT:    vmfgt.vf v16, v8, fa05606; CHECK-NEXT:    vmflt.vf v17, v8, fa05607; CHECK-NEXT:    vmnor.mm v0, v17, v165608; CHECK-NEXT:    ret5609  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05610  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5611  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp5612  ret <vscale x 16 x i1> %15613}5614 5615define <vscale x 16 x i1> @fcmps_ugt_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5616; CHECK-LABEL: fcmps_ugt_vv_nxv16f32:5617; CHECK:       # %bb.0:5618; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5619; CHECK-NEXT:    vmfle.vv v24, v8, v165620; CHECK-NEXT:    vmnot.m v0, v245621; CHECK-NEXT:    ret5622  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp5623  ret <vscale x 16 x i1> %15624}5625 5626define <vscale x 16 x i1> @fcmps_ugt_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5627; CHECK-LABEL: fcmps_ugt_vf_nxv16f32:5628; CHECK:       # %bb.0:5629; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5630; CHECK-NEXT:    vmfle.vf v16, v8, fa05631; CHECK-NEXT:    vmnot.m v0, v165632; CHECK-NEXT:    ret5633  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05634  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5635  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp5636  ret <vscale x 16 x i1> %15637}5638 5639define <vscale x 16 x i1> @fcmps_ugt_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5640; CHECK-LABEL: fcmps_ugt_fv_nxv16f32:5641; CHECK:       # %bb.0:5642; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5643; CHECK-NEXT:    vmfge.vf v16, v8, fa05644; CHECK-NEXT:    vmnot.m v0, v165645; CHECK-NEXT:    ret5646  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05647  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5648  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp5649  ret <vscale x 16 x i1> %15650}5651 5652define <vscale x 16 x i1> @fcmps_uge_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5653; CHECK-LABEL: fcmps_uge_vv_nxv16f32:5654; CHECK:       # %bb.0:5655; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5656; CHECK-NEXT:    vmflt.vv v24, v8, v165657; CHECK-NEXT:    vmnot.m v0, v245658; CHECK-NEXT:    ret5659  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp5660  ret <vscale x 16 x i1> %15661}5662 5663define <vscale x 16 x i1> @fcmps_uge_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5664; CHECK-LABEL: fcmps_uge_vf_nxv16f32:5665; CHECK:       # %bb.0:5666; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5667; CHECK-NEXT:    vmflt.vf v16, v8, fa05668; CHECK-NEXT:    vmnot.m v0, v165669; CHECK-NEXT:    ret5670  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05671  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5672  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp5673  ret <vscale x 16 x i1> %15674}5675 5676define <vscale x 16 x i1> @fcmps_uge_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5677; CHECK-LABEL: fcmps_uge_fv_nxv16f32:5678; CHECK:       # %bb.0:5679; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5680; CHECK-NEXT:    vmfgt.vf v16, v8, fa05681; CHECK-NEXT:    vmnot.m v0, v165682; CHECK-NEXT:    ret5683  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05684  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5685  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp5686  ret <vscale x 16 x i1> %15687}5688 5689define <vscale x 16 x i1> @fcmps_ult_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5690; CHECK-LABEL: fcmps_ult_vv_nxv16f32:5691; CHECK:       # %bb.0:5692; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5693; CHECK-NEXT:    vmfle.vv v24, v16, v85694; CHECK-NEXT:    vmnot.m v0, v245695; CHECK-NEXT:    ret5696  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp5697  ret <vscale x 16 x i1> %15698}5699 5700define <vscale x 16 x i1> @fcmps_ult_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5701; CHECK-LABEL: fcmps_ult_vf_nxv16f32:5702; CHECK:       # %bb.0:5703; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5704; CHECK-NEXT:    vmfge.vf v16, v8, fa05705; CHECK-NEXT:    vmnot.m v0, v165706; CHECK-NEXT:    ret5707  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05708  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5709  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp5710  ret <vscale x 16 x i1> %15711}5712 5713define <vscale x 16 x i1> @fcmps_ult_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5714; CHECK-LABEL: fcmps_ult_fv_nxv16f32:5715; CHECK:       # %bb.0:5716; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5717; CHECK-NEXT:    vmfle.vf v16, v8, fa05718; CHECK-NEXT:    vmnot.m v0, v165719; CHECK-NEXT:    ret5720  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05721  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5722  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp5723  ret <vscale x 16 x i1> %15724}5725 5726define <vscale x 16 x i1> @fcmps_ule_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5727; CHECK-LABEL: fcmps_ule_vv_nxv16f32:5728; CHECK:       # %bb.0:5729; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5730; CHECK-NEXT:    vmflt.vv v24, v16, v85731; CHECK-NEXT:    vmnot.m v0, v245732; CHECK-NEXT:    ret5733  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp5734  ret <vscale x 16 x i1> %15735}5736 5737define <vscale x 16 x i1> @fcmps_ule_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5738; CHECK-LABEL: fcmps_ule_vf_nxv16f32:5739; CHECK:       # %bb.0:5740; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5741; CHECK-NEXT:    vmfgt.vf v16, v8, fa05742; CHECK-NEXT:    vmnot.m v0, v165743; CHECK-NEXT:    ret5744  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05745  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5746  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp5747  ret <vscale x 16 x i1> %15748}5749 5750define <vscale x 16 x i1> @fcmps_ule_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5751; CHECK-LABEL: fcmps_ule_fv_nxv16f32:5752; CHECK:       # %bb.0:5753; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5754; CHECK-NEXT:    vmflt.vf v16, v8, fa05755; CHECK-NEXT:    vmnot.m v0, v165756; CHECK-NEXT:    ret5757  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05758  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5759  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp5760  ret <vscale x 16 x i1> %15761}5762 5763define <vscale x 16 x i1> @fcmps_une_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5764; CHECK-LABEL: fcmps_une_vv_nxv16f32:5765; CHECK:       # %bb.0:5766; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5767; CHECK-NEXT:    vmfle.vv v24, v16, v85768; CHECK-NEXT:    vmfle.vv v25, v8, v165769; CHECK-NEXT:    vmnand.mm v0, v25, v245770; CHECK-NEXT:    ret5771  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp5772  ret <vscale x 16 x i1> %15773}5774 5775define <vscale x 16 x i1> @fcmps_une_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5776; CHECK-LABEL: fcmps_une_vf_nxv16f32:5777; CHECK:       # %bb.0:5778; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5779; CHECK-NEXT:    vmfge.vf v16, v8, fa05780; CHECK-NEXT:    vmfle.vf v17, v8, fa05781; CHECK-NEXT:    vmnand.mm v0, v17, v165782; CHECK-NEXT:    ret5783  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05784  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5785  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp5786  ret <vscale x 16 x i1> %15787}5788 5789define <vscale x 16 x i1> @fcmps_une_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5790; CHECK-LABEL: fcmps_une_fv_nxv16f32:5791; CHECK:       # %bb.0:5792; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5793; CHECK-NEXT:    vmfle.vf v16, v8, fa05794; CHECK-NEXT:    vmfge.vf v17, v8, fa05795; CHECK-NEXT:    vmnand.mm v0, v17, v165796; CHECK-NEXT:    ret5797  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05798  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5799  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp5800  ret <vscale x 16 x i1> %15801}5802 5803define <vscale x 16 x i1> @fcmps_uno_vv_nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb) nounwind strictfp {5804; CHECK-LABEL: fcmps_uno_vv_nxv16f32:5805; CHECK:       # %bb.0:5806; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5807; CHECK-NEXT:    vmfle.vv v24, v16, v165808; CHECK-NEXT:    vmfle.vv v16, v8, v85809; CHECK-NEXT:    vmnot.m v8, v165810; CHECK-NEXT:    vmorn.mm v0, v8, v245811; CHECK-NEXT:    ret5812  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp5813  ret <vscale x 16 x i1> %15814}5815 5816define <vscale x 16 x i1> @fcmps_uno_vf_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5817; CHECK-LABEL: fcmps_uno_vf_nxv16f32:5818; CHECK:       # %bb.0:5819; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5820; CHECK-NEXT:    vfmv.v.f v16, fa05821; CHECK-NEXT:    vmfle.vv v24, v8, v85822; CHECK-NEXT:    vmfle.vf v8, v16, fa05823; CHECK-NEXT:    vmnot.m v9, v245824; CHECK-NEXT:    vmorn.mm v0, v9, v85825; CHECK-NEXT:    ret5826  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05827  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5828  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %va, <vscale x 16 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp5829  ret <vscale x 16 x i1> %15830}5831 5832define <vscale x 16 x i1> @fcmps_uno_fv_nxv16f32(<vscale x 16 x float> %va, float %b) nounwind strictfp {5833; CHECK-LABEL: fcmps_uno_fv_nxv16f32:5834; CHECK:       # %bb.0:5835; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma5836; CHECK-NEXT:    vfmv.v.f v16, fa05837; CHECK-NEXT:    vmfle.vf v24, v16, fa05838; CHECK-NEXT:    vmnot.m v16, v245839; CHECK-NEXT:    vmfle.vv v17, v8, v85840; CHECK-NEXT:    vmorn.mm v0, v16, v175841; CHECK-NEXT:    ret5842  %head = insertelement <vscale x 16 x float> poison, float %b, i32 05843  %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer5844  %1 = call <vscale x 16 x i1> @llvm.experimental.constrained.fcmps.nxv16f32(<vscale x 16 x float> %splat, <vscale x 16 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp5845  ret <vscale x 16 x i1> %15846}5847 5848define <vscale x 1 x i1> @fcmps_oeq_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {5849; CHECK-LABEL: fcmps_oeq_vv_nxv1f64:5850; CHECK:       # %bb.0:5851; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5852; CHECK-NEXT:    vmfle.vv v10, v9, v85853; CHECK-NEXT:    vmfle.vv v8, v8, v95854; CHECK-NEXT:    vmand.mm v0, v8, v105855; CHECK-NEXT:    ret5856  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp5857  ret <vscale x 1 x i1> %15858}5859 5860define <vscale x 1 x i1> @fcmps_oeq_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5861; CHECK-LABEL: fcmps_oeq_vf_nxv1f64:5862; CHECK:       # %bb.0:5863; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5864; CHECK-NEXT:    vmfge.vf v9, v8, fa05865; CHECK-NEXT:    vmfle.vf v8, v8, fa05866; CHECK-NEXT:    vmand.mm v0, v8, v95867; CHECK-NEXT:    ret5868  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05869  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5870  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp5871  ret <vscale x 1 x i1> %15872}5873 5874define <vscale x 1 x i1> @fcmps_oeq_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5875; CHECK-LABEL: fcmps_oeq_fv_nxv1f64:5876; CHECK:       # %bb.0:5877; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5878; CHECK-NEXT:    vmfle.vf v9, v8, fa05879; CHECK-NEXT:    vmfge.vf v8, v8, fa05880; CHECK-NEXT:    vmand.mm v0, v8, v95881; CHECK-NEXT:    ret5882  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05883  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5884  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp5885  ret <vscale x 1 x i1> %15886}5887 5888define <vscale x 1 x i1> @fcmps_ogt_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {5889; CHECK-LABEL: fcmps_ogt_vv_nxv1f64:5890; CHECK:       # %bb.0:5891; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5892; CHECK-NEXT:    vmflt.vv v0, v9, v85893; CHECK-NEXT:    ret5894  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp5895  ret <vscale x 1 x i1> %15896}5897 5898define <vscale x 1 x i1> @fcmps_ogt_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5899; CHECK-LABEL: fcmps_ogt_vf_nxv1f64:5900; CHECK:       # %bb.0:5901; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5902; CHECK-NEXT:    vmfgt.vf v0, v8, fa05903; CHECK-NEXT:    ret5904  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05905  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5906  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp5907  ret <vscale x 1 x i1> %15908}5909 5910define <vscale x 1 x i1> @fcmps_ogt_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5911; CHECK-LABEL: fcmps_ogt_fv_nxv1f64:5912; CHECK:       # %bb.0:5913; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5914; CHECK-NEXT:    vmflt.vf v0, v8, fa05915; CHECK-NEXT:    ret5916  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05917  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5918  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp5919  ret <vscale x 1 x i1> %15920}5921 5922define <vscale x 1 x i1> @fcmps_oge_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {5923; CHECK-LABEL: fcmps_oge_vv_nxv1f64:5924; CHECK:       # %bb.0:5925; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5926; CHECK-NEXT:    vmfle.vv v0, v9, v85927; CHECK-NEXT:    ret5928  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp5929  ret <vscale x 1 x i1> %15930}5931 5932define <vscale x 1 x i1> @fcmps_oge_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5933; CHECK-LABEL: fcmps_oge_vf_nxv1f64:5934; CHECK:       # %bb.0:5935; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5936; CHECK-NEXT:    vmfge.vf v0, v8, fa05937; CHECK-NEXT:    ret5938  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05939  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5940  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp5941  ret <vscale x 1 x i1> %15942}5943 5944define <vscale x 1 x i1> @fcmps_oge_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5945; CHECK-LABEL: fcmps_oge_fv_nxv1f64:5946; CHECK:       # %bb.0:5947; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5948; CHECK-NEXT:    vmfle.vf v0, v8, fa05949; CHECK-NEXT:    ret5950  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05951  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5952  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp5953  ret <vscale x 1 x i1> %15954}5955 5956define <vscale x 1 x i1> @fcmps_olt_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {5957; CHECK-LABEL: fcmps_olt_vv_nxv1f64:5958; CHECK:       # %bb.0:5959; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5960; CHECK-NEXT:    vmflt.vv v0, v8, v95961; CHECK-NEXT:    ret5962  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp5963  ret <vscale x 1 x i1> %15964}5965 5966define <vscale x 1 x i1> @fcmps_olt_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5967; CHECK-LABEL: fcmps_olt_vf_nxv1f64:5968; CHECK:       # %bb.0:5969; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5970; CHECK-NEXT:    vmflt.vf v0, v8, fa05971; CHECK-NEXT:    ret5972  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05973  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5974  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp5975  ret <vscale x 1 x i1> %15976}5977 5978define <vscale x 1 x i1> @fcmps_olt_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {5979; CHECK-LABEL: fcmps_olt_fv_nxv1f64:5980; CHECK:       # %bb.0:5981; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5982; CHECK-NEXT:    vmfgt.vf v0, v8, fa05983; CHECK-NEXT:    ret5984  %head = insertelement <vscale x 1 x double> poison, double %b, i32 05985  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer5986  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp5987  ret <vscale x 1 x i1> %15988}5989 5990define <vscale x 1 x i1> @fcmps_ole_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {5991; CHECK-LABEL: fcmps_ole_vv_nxv1f64:5992; CHECK:       # %bb.0:5993; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma5994; CHECK-NEXT:    vmfle.vv v0, v8, v95995; CHECK-NEXT:    ret5996  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp5997  ret <vscale x 1 x i1> %15998}5999 6000define <vscale x 1 x i1> @fcmps_ole_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6001; CHECK-LABEL: fcmps_ole_vf_nxv1f64:6002; CHECK:       # %bb.0:6003; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6004; CHECK-NEXT:    vmfle.vf v0, v8, fa06005; CHECK-NEXT:    ret6006  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06007  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6008  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp6009  ret <vscale x 1 x i1> %16010}6011 6012define <vscale x 1 x i1> @fcmps_ole_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6013; CHECK-LABEL: fcmps_ole_fv_nxv1f64:6014; CHECK:       # %bb.0:6015; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6016; CHECK-NEXT:    vmfge.vf v0, v8, fa06017; CHECK-NEXT:    ret6018  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06019  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6020  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp6021  ret <vscale x 1 x i1> %16022}6023 6024define <vscale x 1 x i1> @fcmps_one_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6025; CHECK-LABEL: fcmps_one_vv_nxv1f64:6026; CHECK:       # %bb.0:6027; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6028; CHECK-NEXT:    vmflt.vv v10, v8, v96029; CHECK-NEXT:    vmflt.vv v8, v9, v86030; CHECK-NEXT:    vmor.mm v0, v8, v106031; CHECK-NEXT:    ret6032  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp6033  ret <vscale x 1 x i1> %16034}6035 6036define <vscale x 1 x i1> @fcmps_one_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6037; CHECK-LABEL: fcmps_one_vf_nxv1f64:6038; CHECK:       # %bb.0:6039; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6040; CHECK-NEXT:    vmflt.vf v9, v8, fa06041; CHECK-NEXT:    vmfgt.vf v8, v8, fa06042; CHECK-NEXT:    vmor.mm v0, v8, v96043; CHECK-NEXT:    ret6044  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06045  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6046  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp6047  ret <vscale x 1 x i1> %16048}6049 6050define <vscale x 1 x i1> @fcmps_one_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6051; CHECK-LABEL: fcmps_one_fv_nxv1f64:6052; CHECK:       # %bb.0:6053; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6054; CHECK-NEXT:    vmfgt.vf v9, v8, fa06055; CHECK-NEXT:    vmflt.vf v8, v8, fa06056; CHECK-NEXT:    vmor.mm v0, v8, v96057; CHECK-NEXT:    ret6058  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06059  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6060  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp6061  ret <vscale x 1 x i1> %16062}6063 6064define <vscale x 1 x i1> @fcmps_ord_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6065; CHECK-LABEL: fcmps_ord_vv_nxv1f64:6066; CHECK:       # %bb.0:6067; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6068; CHECK-NEXT:    vmfle.vv v9, v9, v96069; CHECK-NEXT:    vmfle.vv v8, v8, v86070; CHECK-NEXT:    vmand.mm v0, v8, v96071; CHECK-NEXT:    ret6072  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp6073  ret <vscale x 1 x i1> %16074}6075 6076define <vscale x 1 x i1> @fcmps_ord_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6077; CHECK-LABEL: fcmps_ord_vf_nxv1f64:6078; CHECK:       # %bb.0:6079; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6080; CHECK-NEXT:    vfmv.v.f v9, fa06081; CHECK-NEXT:    vmfle.vf v9, v9, fa06082; CHECK-NEXT:    vmfle.vv v8, v8, v86083; CHECK-NEXT:    vmand.mm v0, v8, v96084; CHECK-NEXT:    ret6085  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06086  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6087  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp6088  ret <vscale x 1 x i1> %16089}6090 6091define <vscale x 1 x i1> @fcmps_ord_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6092; CHECK-LABEL: fcmps_ord_fv_nxv1f64:6093; CHECK:       # %bb.0:6094; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6095; CHECK-NEXT:    vfmv.v.f v9, fa06096; CHECK-NEXT:    vmfle.vf v9, v9, fa06097; CHECK-NEXT:    vmfle.vv v8, v8, v86098; CHECK-NEXT:    vmand.mm v0, v9, v86099; CHECK-NEXT:    ret6100  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06101  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6102  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp6103  ret <vscale x 1 x i1> %16104}6105 6106define <vscale x 1 x i1> @fcmps_ueq_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6107; CHECK-LABEL: fcmps_ueq_vv_nxv1f64:6108; CHECK:       # %bb.0:6109; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6110; CHECK-NEXT:    vmflt.vv v10, v8, v96111; CHECK-NEXT:    vmflt.vv v8, v9, v86112; CHECK-NEXT:    vmnor.mm v0, v8, v106113; CHECK-NEXT:    ret6114  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp6115  ret <vscale x 1 x i1> %16116}6117 6118define <vscale x 1 x i1> @fcmps_ueq_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6119; CHECK-LABEL: fcmps_ueq_vf_nxv1f64:6120; CHECK:       # %bb.0:6121; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6122; CHECK-NEXT:    vmflt.vf v9, v8, fa06123; CHECK-NEXT:    vmfgt.vf v8, v8, fa06124; CHECK-NEXT:    vmnor.mm v0, v8, v96125; CHECK-NEXT:    ret6126  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06127  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6128  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp6129  ret <vscale x 1 x i1> %16130}6131 6132define <vscale x 1 x i1> @fcmps_ueq_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6133; CHECK-LABEL: fcmps_ueq_fv_nxv1f64:6134; CHECK:       # %bb.0:6135; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6136; CHECK-NEXT:    vmfgt.vf v9, v8, fa06137; CHECK-NEXT:    vmflt.vf v8, v8, fa06138; CHECK-NEXT:    vmnor.mm v0, v8, v96139; CHECK-NEXT:    ret6140  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06141  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6142  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp6143  ret <vscale x 1 x i1> %16144}6145 6146define <vscale x 1 x i1> @fcmps_ugt_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6147; CHECK-LABEL: fcmps_ugt_vv_nxv1f64:6148; CHECK:       # %bb.0:6149; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6150; CHECK-NEXT:    vmfle.vv v8, v8, v96151; CHECK-NEXT:    vmnot.m v0, v86152; CHECK-NEXT:    ret6153  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp6154  ret <vscale x 1 x i1> %16155}6156 6157define <vscale x 1 x i1> @fcmps_ugt_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6158; CHECK-LABEL: fcmps_ugt_vf_nxv1f64:6159; CHECK:       # %bb.0:6160; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6161; CHECK-NEXT:    vmfle.vf v8, v8, fa06162; CHECK-NEXT:    vmnot.m v0, v86163; CHECK-NEXT:    ret6164  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06165  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6166  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp6167  ret <vscale x 1 x i1> %16168}6169 6170define <vscale x 1 x i1> @fcmps_ugt_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6171; CHECK-LABEL: fcmps_ugt_fv_nxv1f64:6172; CHECK:       # %bb.0:6173; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6174; CHECK-NEXT:    vmfge.vf v8, v8, fa06175; CHECK-NEXT:    vmnot.m v0, v86176; CHECK-NEXT:    ret6177  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06178  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6179  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp6180  ret <vscale x 1 x i1> %16181}6182 6183define <vscale x 1 x i1> @fcmps_uge_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6184; CHECK-LABEL: fcmps_uge_vv_nxv1f64:6185; CHECK:       # %bb.0:6186; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6187; CHECK-NEXT:    vmflt.vv v8, v8, v96188; CHECK-NEXT:    vmnot.m v0, v86189; CHECK-NEXT:    ret6190  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp6191  ret <vscale x 1 x i1> %16192}6193 6194define <vscale x 1 x i1> @fcmps_uge_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6195; CHECK-LABEL: fcmps_uge_vf_nxv1f64:6196; CHECK:       # %bb.0:6197; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6198; CHECK-NEXT:    vmflt.vf v8, v8, fa06199; CHECK-NEXT:    vmnot.m v0, v86200; CHECK-NEXT:    ret6201  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06202  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6203  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp6204  ret <vscale x 1 x i1> %16205}6206 6207define <vscale x 1 x i1> @fcmps_uge_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6208; CHECK-LABEL: fcmps_uge_fv_nxv1f64:6209; CHECK:       # %bb.0:6210; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6211; CHECK-NEXT:    vmfgt.vf v8, v8, fa06212; CHECK-NEXT:    vmnot.m v0, v86213; CHECK-NEXT:    ret6214  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06215  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6216  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp6217  ret <vscale x 1 x i1> %16218}6219 6220define <vscale x 1 x i1> @fcmps_ult_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6221; CHECK-LABEL: fcmps_ult_vv_nxv1f64:6222; CHECK:       # %bb.0:6223; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6224; CHECK-NEXT:    vmfle.vv v8, v9, v86225; CHECK-NEXT:    vmnot.m v0, v86226; CHECK-NEXT:    ret6227  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp6228  ret <vscale x 1 x i1> %16229}6230 6231define <vscale x 1 x i1> @fcmps_ult_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6232; CHECK-LABEL: fcmps_ult_vf_nxv1f64:6233; CHECK:       # %bb.0:6234; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6235; CHECK-NEXT:    vmfge.vf v8, v8, fa06236; CHECK-NEXT:    vmnot.m v0, v86237; CHECK-NEXT:    ret6238  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06239  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6240  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp6241  ret <vscale x 1 x i1> %16242}6243 6244define <vscale x 1 x i1> @fcmps_ult_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6245; CHECK-LABEL: fcmps_ult_fv_nxv1f64:6246; CHECK:       # %bb.0:6247; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6248; CHECK-NEXT:    vmfle.vf v8, v8, fa06249; CHECK-NEXT:    vmnot.m v0, v86250; CHECK-NEXT:    ret6251  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06252  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6253  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp6254  ret <vscale x 1 x i1> %16255}6256 6257define <vscale x 1 x i1> @fcmps_ule_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6258; CHECK-LABEL: fcmps_ule_vv_nxv1f64:6259; CHECK:       # %bb.0:6260; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6261; CHECK-NEXT:    vmflt.vv v8, v9, v86262; CHECK-NEXT:    vmnot.m v0, v86263; CHECK-NEXT:    ret6264  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp6265  ret <vscale x 1 x i1> %16266}6267 6268define <vscale x 1 x i1> @fcmps_ule_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6269; CHECK-LABEL: fcmps_ule_vf_nxv1f64:6270; CHECK:       # %bb.0:6271; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6272; CHECK-NEXT:    vmfgt.vf v8, v8, fa06273; CHECK-NEXT:    vmnot.m v0, v86274; CHECK-NEXT:    ret6275  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06276  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6277  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp6278  ret <vscale x 1 x i1> %16279}6280 6281define <vscale x 1 x i1> @fcmps_ule_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6282; CHECK-LABEL: fcmps_ule_fv_nxv1f64:6283; CHECK:       # %bb.0:6284; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6285; CHECK-NEXT:    vmflt.vf v8, v8, fa06286; CHECK-NEXT:    vmnot.m v0, v86287; CHECK-NEXT:    ret6288  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06289  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6290  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp6291  ret <vscale x 1 x i1> %16292}6293 6294define <vscale x 1 x i1> @fcmps_une_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6295; CHECK-LABEL: fcmps_une_vv_nxv1f64:6296; CHECK:       # %bb.0:6297; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6298; CHECK-NEXT:    vmfle.vv v10, v9, v86299; CHECK-NEXT:    vmfle.vv v8, v8, v96300; CHECK-NEXT:    vmnand.mm v0, v8, v106301; CHECK-NEXT:    ret6302  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp6303  ret <vscale x 1 x i1> %16304}6305 6306define <vscale x 1 x i1> @fcmps_une_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6307; CHECK-LABEL: fcmps_une_vf_nxv1f64:6308; CHECK:       # %bb.0:6309; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6310; CHECK-NEXT:    vmfge.vf v9, v8, fa06311; CHECK-NEXT:    vmfle.vf v8, v8, fa06312; CHECK-NEXT:    vmnand.mm v0, v8, v96313; CHECK-NEXT:    ret6314  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06315  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6316  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp6317  ret <vscale x 1 x i1> %16318}6319 6320define <vscale x 1 x i1> @fcmps_une_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6321; CHECK-LABEL: fcmps_une_fv_nxv1f64:6322; CHECK:       # %bb.0:6323; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6324; CHECK-NEXT:    vmfle.vf v9, v8, fa06325; CHECK-NEXT:    vmfge.vf v8, v8, fa06326; CHECK-NEXT:    vmnand.mm v0, v8, v96327; CHECK-NEXT:    ret6328  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06329  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6330  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp6331  ret <vscale x 1 x i1> %16332}6333 6334define <vscale x 1 x i1> @fcmps_uno_vv_nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb) nounwind strictfp {6335; CHECK-LABEL: fcmps_uno_vv_nxv1f64:6336; CHECK:       # %bb.0:6337; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6338; CHECK-NEXT:    vmfle.vv v9, v9, v96339; CHECK-NEXT:    vmfle.vv v8, v8, v86340; CHECK-NEXT:    vmnot.m v8, v86341; CHECK-NEXT:    vmorn.mm v0, v8, v96342; CHECK-NEXT:    ret6343  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp6344  ret <vscale x 1 x i1> %16345}6346 6347define <vscale x 1 x i1> @fcmps_uno_vf_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6348; CHECK-LABEL: fcmps_uno_vf_nxv1f64:6349; CHECK:       # %bb.0:6350; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6351; CHECK-NEXT:    vfmv.v.f v9, fa06352; CHECK-NEXT:    vmfle.vv v8, v8, v86353; CHECK-NEXT:    vmfle.vf v9, v9, fa06354; CHECK-NEXT:    vmnot.m v8, v86355; CHECK-NEXT:    vmorn.mm v0, v8, v96356; CHECK-NEXT:    ret6357  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06358  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6359  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp6360  ret <vscale x 1 x i1> %16361}6362 6363define <vscale x 1 x i1> @fcmps_uno_fv_nxv1f64(<vscale x 1 x double> %va, double %b) nounwind strictfp {6364; CHECK-LABEL: fcmps_uno_fv_nxv1f64:6365; CHECK:       # %bb.0:6366; CHECK-NEXT:    vsetvli a0, zero, e64, m1, ta, ma6367; CHECK-NEXT:    vfmv.v.f v9, fa06368; CHECK-NEXT:    vmfle.vf v9, v9, fa06369; CHECK-NEXT:    vmnot.m v9, v96370; CHECK-NEXT:    vmfle.vv v8, v8, v86371; CHECK-NEXT:    vmorn.mm v0, v9, v86372; CHECK-NEXT:    ret6373  %head = insertelement <vscale x 1 x double> poison, double %b, i32 06374  %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer6375  %1 = call <vscale x 1 x i1> @llvm.experimental.constrained.fcmps.nxv1f64(<vscale x 1 x double> %splat, <vscale x 1 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp6376  ret <vscale x 1 x i1> %16377}6378 6379define <vscale x 2 x i1> @fcmps_oeq_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6380; CHECK-LABEL: fcmps_oeq_vv_nxv2f64:6381; CHECK:       # %bb.0:6382; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6383; CHECK-NEXT:    vmfle.vv v12, v10, v86384; CHECK-NEXT:    vmfle.vv v13, v8, v106385; CHECK-NEXT:    vmand.mm v0, v13, v126386; CHECK-NEXT:    ret6387  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp6388  ret <vscale x 2 x i1> %16389}6390 6391define <vscale x 2 x i1> @fcmps_oeq_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6392; CHECK-LABEL: fcmps_oeq_vf_nxv2f64:6393; CHECK:       # %bb.0:6394; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6395; CHECK-NEXT:    vmfge.vf v10, v8, fa06396; CHECK-NEXT:    vmfle.vf v11, v8, fa06397; CHECK-NEXT:    vmand.mm v0, v11, v106398; CHECK-NEXT:    ret6399  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06400  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6401  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp6402  ret <vscale x 2 x i1> %16403}6404 6405define <vscale x 2 x i1> @fcmps_oeq_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6406; CHECK-LABEL: fcmps_oeq_fv_nxv2f64:6407; CHECK:       # %bb.0:6408; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6409; CHECK-NEXT:    vmfle.vf v10, v8, fa06410; CHECK-NEXT:    vmfge.vf v11, v8, fa06411; CHECK-NEXT:    vmand.mm v0, v11, v106412; CHECK-NEXT:    ret6413  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06414  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6415  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp6416  ret <vscale x 2 x i1> %16417}6418 6419define <vscale x 2 x i1> @fcmps_ogt_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6420; CHECK-LABEL: fcmps_ogt_vv_nxv2f64:6421; CHECK:       # %bb.0:6422; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6423; CHECK-NEXT:    vmflt.vv v0, v10, v86424; CHECK-NEXT:    ret6425  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp6426  ret <vscale x 2 x i1> %16427}6428 6429define <vscale x 2 x i1> @fcmps_ogt_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6430; CHECK-LABEL: fcmps_ogt_vf_nxv2f64:6431; CHECK:       # %bb.0:6432; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6433; CHECK-NEXT:    vmfgt.vf v0, v8, fa06434; CHECK-NEXT:    ret6435  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06436  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6437  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp6438  ret <vscale x 2 x i1> %16439}6440 6441define <vscale x 2 x i1> @fcmps_ogt_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6442; CHECK-LABEL: fcmps_ogt_fv_nxv2f64:6443; CHECK:       # %bb.0:6444; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6445; CHECK-NEXT:    vmflt.vf v0, v8, fa06446; CHECK-NEXT:    ret6447  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06448  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6449  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp6450  ret <vscale x 2 x i1> %16451}6452 6453define <vscale x 2 x i1> @fcmps_oge_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6454; CHECK-LABEL: fcmps_oge_vv_nxv2f64:6455; CHECK:       # %bb.0:6456; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6457; CHECK-NEXT:    vmfle.vv v0, v10, v86458; CHECK-NEXT:    ret6459  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp6460  ret <vscale x 2 x i1> %16461}6462 6463define <vscale x 2 x i1> @fcmps_oge_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6464; CHECK-LABEL: fcmps_oge_vf_nxv2f64:6465; CHECK:       # %bb.0:6466; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6467; CHECK-NEXT:    vmfge.vf v0, v8, fa06468; CHECK-NEXT:    ret6469  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06470  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6471  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp6472  ret <vscale x 2 x i1> %16473}6474 6475define <vscale x 2 x i1> @fcmps_oge_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6476; CHECK-LABEL: fcmps_oge_fv_nxv2f64:6477; CHECK:       # %bb.0:6478; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6479; CHECK-NEXT:    vmfle.vf v0, v8, fa06480; CHECK-NEXT:    ret6481  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06482  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6483  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp6484  ret <vscale x 2 x i1> %16485}6486 6487define <vscale x 2 x i1> @fcmps_olt_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6488; CHECK-LABEL: fcmps_olt_vv_nxv2f64:6489; CHECK:       # %bb.0:6490; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6491; CHECK-NEXT:    vmflt.vv v0, v8, v106492; CHECK-NEXT:    ret6493  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp6494  ret <vscale x 2 x i1> %16495}6496 6497define <vscale x 2 x i1> @fcmps_olt_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6498; CHECK-LABEL: fcmps_olt_vf_nxv2f64:6499; CHECK:       # %bb.0:6500; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6501; CHECK-NEXT:    vmflt.vf v0, v8, fa06502; CHECK-NEXT:    ret6503  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06504  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6505  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp6506  ret <vscale x 2 x i1> %16507}6508 6509define <vscale x 2 x i1> @fcmps_olt_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6510; CHECK-LABEL: fcmps_olt_fv_nxv2f64:6511; CHECK:       # %bb.0:6512; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6513; CHECK-NEXT:    vmfgt.vf v0, v8, fa06514; CHECK-NEXT:    ret6515  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06516  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6517  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp6518  ret <vscale x 2 x i1> %16519}6520 6521define <vscale x 2 x i1> @fcmps_ole_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6522; CHECK-LABEL: fcmps_ole_vv_nxv2f64:6523; CHECK:       # %bb.0:6524; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6525; CHECK-NEXT:    vmfle.vv v0, v8, v106526; CHECK-NEXT:    ret6527  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp6528  ret <vscale x 2 x i1> %16529}6530 6531define <vscale x 2 x i1> @fcmps_ole_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6532; CHECK-LABEL: fcmps_ole_vf_nxv2f64:6533; CHECK:       # %bb.0:6534; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6535; CHECK-NEXT:    vmfle.vf v0, v8, fa06536; CHECK-NEXT:    ret6537  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06538  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6539  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp6540  ret <vscale x 2 x i1> %16541}6542 6543define <vscale x 2 x i1> @fcmps_ole_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6544; CHECK-LABEL: fcmps_ole_fv_nxv2f64:6545; CHECK:       # %bb.0:6546; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6547; CHECK-NEXT:    vmfge.vf v0, v8, fa06548; CHECK-NEXT:    ret6549  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06550  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6551  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp6552  ret <vscale x 2 x i1> %16553}6554 6555define <vscale x 2 x i1> @fcmps_one_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6556; CHECK-LABEL: fcmps_one_vv_nxv2f64:6557; CHECK:       # %bb.0:6558; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6559; CHECK-NEXT:    vmflt.vv v12, v8, v106560; CHECK-NEXT:    vmflt.vv v13, v10, v86561; CHECK-NEXT:    vmor.mm v0, v13, v126562; CHECK-NEXT:    ret6563  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp6564  ret <vscale x 2 x i1> %16565}6566 6567define <vscale x 2 x i1> @fcmps_one_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6568; CHECK-LABEL: fcmps_one_vf_nxv2f64:6569; CHECK:       # %bb.0:6570; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6571; CHECK-NEXT:    vmflt.vf v10, v8, fa06572; CHECK-NEXT:    vmfgt.vf v11, v8, fa06573; CHECK-NEXT:    vmor.mm v0, v11, v106574; CHECK-NEXT:    ret6575  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06576  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6577  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp6578  ret <vscale x 2 x i1> %16579}6580 6581define <vscale x 2 x i1> @fcmps_one_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6582; CHECK-LABEL: fcmps_one_fv_nxv2f64:6583; CHECK:       # %bb.0:6584; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6585; CHECK-NEXT:    vmfgt.vf v10, v8, fa06586; CHECK-NEXT:    vmflt.vf v11, v8, fa06587; CHECK-NEXT:    vmor.mm v0, v11, v106588; CHECK-NEXT:    ret6589  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06590  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6591  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp6592  ret <vscale x 2 x i1> %16593}6594 6595define <vscale x 2 x i1> @fcmps_ord_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6596; CHECK-LABEL: fcmps_ord_vv_nxv2f64:6597; CHECK:       # %bb.0:6598; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6599; CHECK-NEXT:    vmfle.vv v12, v10, v106600; CHECK-NEXT:    vmfle.vv v10, v8, v86601; CHECK-NEXT:    vmand.mm v0, v10, v126602; CHECK-NEXT:    ret6603  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp6604  ret <vscale x 2 x i1> %16605}6606 6607define <vscale x 2 x i1> @fcmps_ord_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6608; CHECK-LABEL: fcmps_ord_vf_nxv2f64:6609; CHECK:       # %bb.0:6610; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6611; CHECK-NEXT:    vfmv.v.f v10, fa06612; CHECK-NEXT:    vmfle.vf v12, v10, fa06613; CHECK-NEXT:    vmfle.vv v10, v8, v86614; CHECK-NEXT:    vmand.mm v0, v10, v126615; CHECK-NEXT:    ret6616  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06617  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6618  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp6619  ret <vscale x 2 x i1> %16620}6621 6622define <vscale x 2 x i1> @fcmps_ord_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6623; CHECK-LABEL: fcmps_ord_fv_nxv2f64:6624; CHECK:       # %bb.0:6625; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6626; CHECK-NEXT:    vfmv.v.f v10, fa06627; CHECK-NEXT:    vmfle.vf v12, v10, fa06628; CHECK-NEXT:    vmfle.vv v10, v8, v86629; CHECK-NEXT:    vmand.mm v0, v12, v106630; CHECK-NEXT:    ret6631  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06632  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6633  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp6634  ret <vscale x 2 x i1> %16635}6636 6637define <vscale x 2 x i1> @fcmps_ueq_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6638; CHECK-LABEL: fcmps_ueq_vv_nxv2f64:6639; CHECK:       # %bb.0:6640; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6641; CHECK-NEXT:    vmflt.vv v12, v8, v106642; CHECK-NEXT:    vmflt.vv v13, v10, v86643; CHECK-NEXT:    vmnor.mm v0, v13, v126644; CHECK-NEXT:    ret6645  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp6646  ret <vscale x 2 x i1> %16647}6648 6649define <vscale x 2 x i1> @fcmps_ueq_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6650; CHECK-LABEL: fcmps_ueq_vf_nxv2f64:6651; CHECK:       # %bb.0:6652; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6653; CHECK-NEXT:    vmflt.vf v10, v8, fa06654; CHECK-NEXT:    vmfgt.vf v11, v8, fa06655; CHECK-NEXT:    vmnor.mm v0, v11, v106656; CHECK-NEXT:    ret6657  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06658  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6659  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp6660  ret <vscale x 2 x i1> %16661}6662 6663define <vscale x 2 x i1> @fcmps_ueq_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6664; CHECK-LABEL: fcmps_ueq_fv_nxv2f64:6665; CHECK:       # %bb.0:6666; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6667; CHECK-NEXT:    vmfgt.vf v10, v8, fa06668; CHECK-NEXT:    vmflt.vf v11, v8, fa06669; CHECK-NEXT:    vmnor.mm v0, v11, v106670; CHECK-NEXT:    ret6671  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06672  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6673  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp6674  ret <vscale x 2 x i1> %16675}6676 6677define <vscale x 2 x i1> @fcmps_ugt_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6678; CHECK-LABEL: fcmps_ugt_vv_nxv2f64:6679; CHECK:       # %bb.0:6680; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6681; CHECK-NEXT:    vmfle.vv v12, v8, v106682; CHECK-NEXT:    vmnot.m v0, v126683; CHECK-NEXT:    ret6684  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp6685  ret <vscale x 2 x i1> %16686}6687 6688define <vscale x 2 x i1> @fcmps_ugt_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6689; CHECK-LABEL: fcmps_ugt_vf_nxv2f64:6690; CHECK:       # %bb.0:6691; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6692; CHECK-NEXT:    vmfle.vf v10, v8, fa06693; CHECK-NEXT:    vmnot.m v0, v106694; CHECK-NEXT:    ret6695  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06696  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6697  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp6698  ret <vscale x 2 x i1> %16699}6700 6701define <vscale x 2 x i1> @fcmps_ugt_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6702; CHECK-LABEL: fcmps_ugt_fv_nxv2f64:6703; CHECK:       # %bb.0:6704; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6705; CHECK-NEXT:    vmfge.vf v10, v8, fa06706; CHECK-NEXT:    vmnot.m v0, v106707; CHECK-NEXT:    ret6708  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06709  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6710  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp6711  ret <vscale x 2 x i1> %16712}6713 6714define <vscale x 2 x i1> @fcmps_uge_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6715; CHECK-LABEL: fcmps_uge_vv_nxv2f64:6716; CHECK:       # %bb.0:6717; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6718; CHECK-NEXT:    vmflt.vv v12, v8, v106719; CHECK-NEXT:    vmnot.m v0, v126720; CHECK-NEXT:    ret6721  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp6722  ret <vscale x 2 x i1> %16723}6724 6725define <vscale x 2 x i1> @fcmps_uge_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6726; CHECK-LABEL: fcmps_uge_vf_nxv2f64:6727; CHECK:       # %bb.0:6728; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6729; CHECK-NEXT:    vmflt.vf v10, v8, fa06730; CHECK-NEXT:    vmnot.m v0, v106731; CHECK-NEXT:    ret6732  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06733  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6734  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp6735  ret <vscale x 2 x i1> %16736}6737 6738define <vscale x 2 x i1> @fcmps_uge_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6739; CHECK-LABEL: fcmps_uge_fv_nxv2f64:6740; CHECK:       # %bb.0:6741; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6742; CHECK-NEXT:    vmfgt.vf v10, v8, fa06743; CHECK-NEXT:    vmnot.m v0, v106744; CHECK-NEXT:    ret6745  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06746  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6747  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp6748  ret <vscale x 2 x i1> %16749}6750 6751define <vscale x 2 x i1> @fcmps_ult_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6752; CHECK-LABEL: fcmps_ult_vv_nxv2f64:6753; CHECK:       # %bb.0:6754; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6755; CHECK-NEXT:    vmfle.vv v12, v10, v86756; CHECK-NEXT:    vmnot.m v0, v126757; CHECK-NEXT:    ret6758  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp6759  ret <vscale x 2 x i1> %16760}6761 6762define <vscale x 2 x i1> @fcmps_ult_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6763; CHECK-LABEL: fcmps_ult_vf_nxv2f64:6764; CHECK:       # %bb.0:6765; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6766; CHECK-NEXT:    vmfge.vf v10, v8, fa06767; CHECK-NEXT:    vmnot.m v0, v106768; CHECK-NEXT:    ret6769  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06770  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6771  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp6772  ret <vscale x 2 x i1> %16773}6774 6775define <vscale x 2 x i1> @fcmps_ult_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6776; CHECK-LABEL: fcmps_ult_fv_nxv2f64:6777; CHECK:       # %bb.0:6778; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6779; CHECK-NEXT:    vmfle.vf v10, v8, fa06780; CHECK-NEXT:    vmnot.m v0, v106781; CHECK-NEXT:    ret6782  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06783  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6784  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp6785  ret <vscale x 2 x i1> %16786}6787 6788define <vscale x 2 x i1> @fcmps_ule_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6789; CHECK-LABEL: fcmps_ule_vv_nxv2f64:6790; CHECK:       # %bb.0:6791; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6792; CHECK-NEXT:    vmflt.vv v12, v10, v86793; CHECK-NEXT:    vmnot.m v0, v126794; CHECK-NEXT:    ret6795  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp6796  ret <vscale x 2 x i1> %16797}6798 6799define <vscale x 2 x i1> @fcmps_ule_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6800; CHECK-LABEL: fcmps_ule_vf_nxv2f64:6801; CHECK:       # %bb.0:6802; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6803; CHECK-NEXT:    vmfgt.vf v10, v8, fa06804; CHECK-NEXT:    vmnot.m v0, v106805; CHECK-NEXT:    ret6806  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06807  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6808  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp6809  ret <vscale x 2 x i1> %16810}6811 6812define <vscale x 2 x i1> @fcmps_ule_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6813; CHECK-LABEL: fcmps_ule_fv_nxv2f64:6814; CHECK:       # %bb.0:6815; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6816; CHECK-NEXT:    vmflt.vf v10, v8, fa06817; CHECK-NEXT:    vmnot.m v0, v106818; CHECK-NEXT:    ret6819  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06820  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6821  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp6822  ret <vscale x 2 x i1> %16823}6824 6825define <vscale x 2 x i1> @fcmps_une_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6826; CHECK-LABEL: fcmps_une_vv_nxv2f64:6827; CHECK:       # %bb.0:6828; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6829; CHECK-NEXT:    vmfle.vv v12, v10, v86830; CHECK-NEXT:    vmfle.vv v13, v8, v106831; CHECK-NEXT:    vmnand.mm v0, v13, v126832; CHECK-NEXT:    ret6833  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp6834  ret <vscale x 2 x i1> %16835}6836 6837define <vscale x 2 x i1> @fcmps_une_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6838; CHECK-LABEL: fcmps_une_vf_nxv2f64:6839; CHECK:       # %bb.0:6840; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6841; CHECK-NEXT:    vmfge.vf v10, v8, fa06842; CHECK-NEXT:    vmfle.vf v11, v8, fa06843; CHECK-NEXT:    vmnand.mm v0, v11, v106844; CHECK-NEXT:    ret6845  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06846  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6847  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp6848  ret <vscale x 2 x i1> %16849}6850 6851define <vscale x 2 x i1> @fcmps_une_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6852; CHECK-LABEL: fcmps_une_fv_nxv2f64:6853; CHECK:       # %bb.0:6854; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6855; CHECK-NEXT:    vmfle.vf v10, v8, fa06856; CHECK-NEXT:    vmfge.vf v11, v8, fa06857; CHECK-NEXT:    vmnand.mm v0, v11, v106858; CHECK-NEXT:    ret6859  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06860  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6861  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp6862  ret <vscale x 2 x i1> %16863}6864 6865define <vscale x 2 x i1> @fcmps_uno_vv_nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb) nounwind strictfp {6866; CHECK-LABEL: fcmps_uno_vv_nxv2f64:6867; CHECK:       # %bb.0:6868; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6869; CHECK-NEXT:    vmfle.vv v12, v10, v106870; CHECK-NEXT:    vmfle.vv v10, v8, v86871; CHECK-NEXT:    vmnot.m v8, v106872; CHECK-NEXT:    vmorn.mm v0, v8, v126873; CHECK-NEXT:    ret6874  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp6875  ret <vscale x 2 x i1> %16876}6877 6878define <vscale x 2 x i1> @fcmps_uno_vf_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6879; CHECK-LABEL: fcmps_uno_vf_nxv2f64:6880; CHECK:       # %bb.0:6881; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6882; CHECK-NEXT:    vfmv.v.f v10, fa06883; CHECK-NEXT:    vmfle.vv v12, v8, v86884; CHECK-NEXT:    vmfle.vf v8, v10, fa06885; CHECK-NEXT:    vmnot.m v9, v126886; CHECK-NEXT:    vmorn.mm v0, v9, v86887; CHECK-NEXT:    ret6888  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06889  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6890  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp6891  ret <vscale x 2 x i1> %16892}6893 6894define <vscale x 2 x i1> @fcmps_uno_fv_nxv2f64(<vscale x 2 x double> %va, double %b) nounwind strictfp {6895; CHECK-LABEL: fcmps_uno_fv_nxv2f64:6896; CHECK:       # %bb.0:6897; CHECK-NEXT:    vsetvli a0, zero, e64, m2, ta, ma6898; CHECK-NEXT:    vfmv.v.f v10, fa06899; CHECK-NEXT:    vmfle.vf v12, v10, fa06900; CHECK-NEXT:    vmnot.m v10, v126901; CHECK-NEXT:    vmfle.vv v11, v8, v86902; CHECK-NEXT:    vmorn.mm v0, v10, v116903; CHECK-NEXT:    ret6904  %head = insertelement <vscale x 2 x double> poison, double %b, i32 06905  %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer6906  %1 = call <vscale x 2 x i1> @llvm.experimental.constrained.fcmps.nxv2f64(<vscale x 2 x double> %splat, <vscale x 2 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp6907  ret <vscale x 2 x i1> %16908}6909 6910define <vscale x 4 x i1> @fcmps_oeq_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {6911; CHECK-LABEL: fcmps_oeq_vv_nxv4f64:6912; CHECK:       # %bb.0:6913; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6914; CHECK-NEXT:    vmfle.vv v16, v12, v86915; CHECK-NEXT:    vmfle.vv v17, v8, v126916; CHECK-NEXT:    vmand.mm v0, v17, v166917; CHECK-NEXT:    ret6918  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp6919  ret <vscale x 4 x i1> %16920}6921 6922define <vscale x 4 x i1> @fcmps_oeq_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {6923; CHECK-LABEL: fcmps_oeq_vf_nxv4f64:6924; CHECK:       # %bb.0:6925; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6926; CHECK-NEXT:    vmfge.vf v12, v8, fa06927; CHECK-NEXT:    vmfle.vf v13, v8, fa06928; CHECK-NEXT:    vmand.mm v0, v13, v126929; CHECK-NEXT:    ret6930  %head = insertelement <vscale x 4 x double> poison, double %b, i32 06931  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer6932  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp6933  ret <vscale x 4 x i1> %16934}6935 6936define <vscale x 4 x i1> @fcmps_oeq_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {6937; CHECK-LABEL: fcmps_oeq_fv_nxv4f64:6938; CHECK:       # %bb.0:6939; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6940; CHECK-NEXT:    vmfle.vf v12, v8, fa06941; CHECK-NEXT:    vmfge.vf v13, v8, fa06942; CHECK-NEXT:    vmand.mm v0, v13, v126943; CHECK-NEXT:    ret6944  %head = insertelement <vscale x 4 x double> poison, double %b, i32 06945  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer6946  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp6947  ret <vscale x 4 x i1> %16948}6949 6950define <vscale x 4 x i1> @fcmps_ogt_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {6951; CHECK-LABEL: fcmps_ogt_vv_nxv4f64:6952; CHECK:       # %bb.0:6953; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6954; CHECK-NEXT:    vmflt.vv v0, v12, v86955; CHECK-NEXT:    ret6956  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp6957  ret <vscale x 4 x i1> %16958}6959 6960define <vscale x 4 x i1> @fcmps_ogt_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {6961; CHECK-LABEL: fcmps_ogt_vf_nxv4f64:6962; CHECK:       # %bb.0:6963; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6964; CHECK-NEXT:    vmfgt.vf v0, v8, fa06965; CHECK-NEXT:    ret6966  %head = insertelement <vscale x 4 x double> poison, double %b, i32 06967  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer6968  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp6969  ret <vscale x 4 x i1> %16970}6971 6972define <vscale x 4 x i1> @fcmps_ogt_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {6973; CHECK-LABEL: fcmps_ogt_fv_nxv4f64:6974; CHECK:       # %bb.0:6975; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6976; CHECK-NEXT:    vmflt.vf v0, v8, fa06977; CHECK-NEXT:    ret6978  %head = insertelement <vscale x 4 x double> poison, double %b, i32 06979  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer6980  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp6981  ret <vscale x 4 x i1> %16982}6983 6984define <vscale x 4 x i1> @fcmps_oge_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {6985; CHECK-LABEL: fcmps_oge_vv_nxv4f64:6986; CHECK:       # %bb.0:6987; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6988; CHECK-NEXT:    vmfle.vv v0, v12, v86989; CHECK-NEXT:    ret6990  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp6991  ret <vscale x 4 x i1> %16992}6993 6994define <vscale x 4 x i1> @fcmps_oge_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {6995; CHECK-LABEL: fcmps_oge_vf_nxv4f64:6996; CHECK:       # %bb.0:6997; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma6998; CHECK-NEXT:    vmfge.vf v0, v8, fa06999; CHECK-NEXT:    ret7000  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07001  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7002  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp7003  ret <vscale x 4 x i1> %17004}7005 7006define <vscale x 4 x i1> @fcmps_oge_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7007; CHECK-LABEL: fcmps_oge_fv_nxv4f64:7008; CHECK:       # %bb.0:7009; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7010; CHECK-NEXT:    vmfle.vf v0, v8, fa07011; CHECK-NEXT:    ret7012  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07013  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7014  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp7015  ret <vscale x 4 x i1> %17016}7017 7018define <vscale x 4 x i1> @fcmps_olt_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7019; CHECK-LABEL: fcmps_olt_vv_nxv4f64:7020; CHECK:       # %bb.0:7021; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7022; CHECK-NEXT:    vmflt.vv v0, v8, v127023; CHECK-NEXT:    ret7024  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp7025  ret <vscale x 4 x i1> %17026}7027 7028define <vscale x 4 x i1> @fcmps_olt_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7029; CHECK-LABEL: fcmps_olt_vf_nxv4f64:7030; CHECK:       # %bb.0:7031; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7032; CHECK-NEXT:    vmflt.vf v0, v8, fa07033; CHECK-NEXT:    ret7034  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07035  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7036  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp7037  ret <vscale x 4 x i1> %17038}7039 7040define <vscale x 4 x i1> @fcmps_olt_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7041; CHECK-LABEL: fcmps_olt_fv_nxv4f64:7042; CHECK:       # %bb.0:7043; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7044; CHECK-NEXT:    vmfgt.vf v0, v8, fa07045; CHECK-NEXT:    ret7046  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07047  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7048  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp7049  ret <vscale x 4 x i1> %17050}7051 7052define <vscale x 4 x i1> @fcmps_ole_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7053; CHECK-LABEL: fcmps_ole_vv_nxv4f64:7054; CHECK:       # %bb.0:7055; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7056; CHECK-NEXT:    vmfle.vv v0, v8, v127057; CHECK-NEXT:    ret7058  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp7059  ret <vscale x 4 x i1> %17060}7061 7062define <vscale x 4 x i1> @fcmps_ole_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7063; CHECK-LABEL: fcmps_ole_vf_nxv4f64:7064; CHECK:       # %bb.0:7065; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7066; CHECK-NEXT:    vmfle.vf v0, v8, fa07067; CHECK-NEXT:    ret7068  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07069  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7070  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp7071  ret <vscale x 4 x i1> %17072}7073 7074define <vscale x 4 x i1> @fcmps_ole_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7075; CHECK-LABEL: fcmps_ole_fv_nxv4f64:7076; CHECK:       # %bb.0:7077; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7078; CHECK-NEXT:    vmfge.vf v0, v8, fa07079; CHECK-NEXT:    ret7080  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07081  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7082  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp7083  ret <vscale x 4 x i1> %17084}7085 7086define <vscale x 4 x i1> @fcmps_one_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7087; CHECK-LABEL: fcmps_one_vv_nxv4f64:7088; CHECK:       # %bb.0:7089; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7090; CHECK-NEXT:    vmflt.vv v16, v8, v127091; CHECK-NEXT:    vmflt.vv v17, v12, v87092; CHECK-NEXT:    vmor.mm v0, v17, v167093; CHECK-NEXT:    ret7094  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp7095  ret <vscale x 4 x i1> %17096}7097 7098define <vscale x 4 x i1> @fcmps_one_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7099; CHECK-LABEL: fcmps_one_vf_nxv4f64:7100; CHECK:       # %bb.0:7101; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7102; CHECK-NEXT:    vmflt.vf v12, v8, fa07103; CHECK-NEXT:    vmfgt.vf v13, v8, fa07104; CHECK-NEXT:    vmor.mm v0, v13, v127105; CHECK-NEXT:    ret7106  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07107  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7108  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp7109  ret <vscale x 4 x i1> %17110}7111 7112define <vscale x 4 x i1> @fcmps_one_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7113; CHECK-LABEL: fcmps_one_fv_nxv4f64:7114; CHECK:       # %bb.0:7115; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7116; CHECK-NEXT:    vmfgt.vf v12, v8, fa07117; CHECK-NEXT:    vmflt.vf v13, v8, fa07118; CHECK-NEXT:    vmor.mm v0, v13, v127119; CHECK-NEXT:    ret7120  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07121  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7122  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp7123  ret <vscale x 4 x i1> %17124}7125 7126define <vscale x 4 x i1> @fcmps_ord_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7127; CHECK-LABEL: fcmps_ord_vv_nxv4f64:7128; CHECK:       # %bb.0:7129; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7130; CHECK-NEXT:    vmfle.vv v16, v12, v127131; CHECK-NEXT:    vmfle.vv v12, v8, v87132; CHECK-NEXT:    vmand.mm v0, v12, v167133; CHECK-NEXT:    ret7134  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp7135  ret <vscale x 4 x i1> %17136}7137 7138define <vscale x 4 x i1> @fcmps_ord_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7139; CHECK-LABEL: fcmps_ord_vf_nxv4f64:7140; CHECK:       # %bb.0:7141; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7142; CHECK-NEXT:    vfmv.v.f v12, fa07143; CHECK-NEXT:    vmfle.vf v16, v12, fa07144; CHECK-NEXT:    vmfle.vv v12, v8, v87145; CHECK-NEXT:    vmand.mm v0, v12, v167146; CHECK-NEXT:    ret7147  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07148  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7149  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp7150  ret <vscale x 4 x i1> %17151}7152 7153define <vscale x 4 x i1> @fcmps_ord_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7154; CHECK-LABEL: fcmps_ord_fv_nxv4f64:7155; CHECK:       # %bb.0:7156; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7157; CHECK-NEXT:    vfmv.v.f v12, fa07158; CHECK-NEXT:    vmfle.vf v16, v12, fa07159; CHECK-NEXT:    vmfle.vv v12, v8, v87160; CHECK-NEXT:    vmand.mm v0, v16, v127161; CHECK-NEXT:    ret7162  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07163  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7164  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp7165  ret <vscale x 4 x i1> %17166}7167 7168define <vscale x 4 x i1> @fcmps_ueq_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7169; CHECK-LABEL: fcmps_ueq_vv_nxv4f64:7170; CHECK:       # %bb.0:7171; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7172; CHECK-NEXT:    vmflt.vv v16, v8, v127173; CHECK-NEXT:    vmflt.vv v17, v12, v87174; CHECK-NEXT:    vmnor.mm v0, v17, v167175; CHECK-NEXT:    ret7176  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp7177  ret <vscale x 4 x i1> %17178}7179 7180define <vscale x 4 x i1> @fcmps_ueq_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7181; CHECK-LABEL: fcmps_ueq_vf_nxv4f64:7182; CHECK:       # %bb.0:7183; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7184; CHECK-NEXT:    vmflt.vf v12, v8, fa07185; CHECK-NEXT:    vmfgt.vf v13, v8, fa07186; CHECK-NEXT:    vmnor.mm v0, v13, v127187; CHECK-NEXT:    ret7188  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07189  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7190  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp7191  ret <vscale x 4 x i1> %17192}7193 7194define <vscale x 4 x i1> @fcmps_ueq_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7195; CHECK-LABEL: fcmps_ueq_fv_nxv4f64:7196; CHECK:       # %bb.0:7197; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7198; CHECK-NEXT:    vmfgt.vf v12, v8, fa07199; CHECK-NEXT:    vmflt.vf v13, v8, fa07200; CHECK-NEXT:    vmnor.mm v0, v13, v127201; CHECK-NEXT:    ret7202  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07203  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7204  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp7205  ret <vscale x 4 x i1> %17206}7207 7208define <vscale x 4 x i1> @fcmps_ugt_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7209; CHECK-LABEL: fcmps_ugt_vv_nxv4f64:7210; CHECK:       # %bb.0:7211; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7212; CHECK-NEXT:    vmfle.vv v16, v8, v127213; CHECK-NEXT:    vmnot.m v0, v167214; CHECK-NEXT:    ret7215  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp7216  ret <vscale x 4 x i1> %17217}7218 7219define <vscale x 4 x i1> @fcmps_ugt_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7220; CHECK-LABEL: fcmps_ugt_vf_nxv4f64:7221; CHECK:       # %bb.0:7222; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7223; CHECK-NEXT:    vmfle.vf v12, v8, fa07224; CHECK-NEXT:    vmnot.m v0, v127225; CHECK-NEXT:    ret7226  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07227  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7228  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp7229  ret <vscale x 4 x i1> %17230}7231 7232define <vscale x 4 x i1> @fcmps_ugt_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7233; CHECK-LABEL: fcmps_ugt_fv_nxv4f64:7234; CHECK:       # %bb.0:7235; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7236; CHECK-NEXT:    vmfge.vf v12, v8, fa07237; CHECK-NEXT:    vmnot.m v0, v127238; CHECK-NEXT:    ret7239  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07240  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7241  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp7242  ret <vscale x 4 x i1> %17243}7244 7245define <vscale x 4 x i1> @fcmps_uge_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7246; CHECK-LABEL: fcmps_uge_vv_nxv4f64:7247; CHECK:       # %bb.0:7248; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7249; CHECK-NEXT:    vmflt.vv v16, v8, v127250; CHECK-NEXT:    vmnot.m v0, v167251; CHECK-NEXT:    ret7252  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp7253  ret <vscale x 4 x i1> %17254}7255 7256define <vscale x 4 x i1> @fcmps_uge_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7257; CHECK-LABEL: fcmps_uge_vf_nxv4f64:7258; CHECK:       # %bb.0:7259; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7260; CHECK-NEXT:    vmflt.vf v12, v8, fa07261; CHECK-NEXT:    vmnot.m v0, v127262; CHECK-NEXT:    ret7263  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07264  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7265  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp7266  ret <vscale x 4 x i1> %17267}7268 7269define <vscale x 4 x i1> @fcmps_uge_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7270; CHECK-LABEL: fcmps_uge_fv_nxv4f64:7271; CHECK:       # %bb.0:7272; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7273; CHECK-NEXT:    vmfgt.vf v12, v8, fa07274; CHECK-NEXT:    vmnot.m v0, v127275; CHECK-NEXT:    ret7276  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07277  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7278  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp7279  ret <vscale x 4 x i1> %17280}7281 7282define <vscale x 4 x i1> @fcmps_ult_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7283; CHECK-LABEL: fcmps_ult_vv_nxv4f64:7284; CHECK:       # %bb.0:7285; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7286; CHECK-NEXT:    vmfle.vv v16, v12, v87287; CHECK-NEXT:    vmnot.m v0, v167288; CHECK-NEXT:    ret7289  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp7290  ret <vscale x 4 x i1> %17291}7292 7293define <vscale x 4 x i1> @fcmps_ult_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7294; CHECK-LABEL: fcmps_ult_vf_nxv4f64:7295; CHECK:       # %bb.0:7296; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7297; CHECK-NEXT:    vmfge.vf v12, v8, fa07298; CHECK-NEXT:    vmnot.m v0, v127299; CHECK-NEXT:    ret7300  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07301  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7302  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp7303  ret <vscale x 4 x i1> %17304}7305 7306define <vscale x 4 x i1> @fcmps_ult_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7307; CHECK-LABEL: fcmps_ult_fv_nxv4f64:7308; CHECK:       # %bb.0:7309; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7310; CHECK-NEXT:    vmfle.vf v12, v8, fa07311; CHECK-NEXT:    vmnot.m v0, v127312; CHECK-NEXT:    ret7313  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07314  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7315  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp7316  ret <vscale x 4 x i1> %17317}7318 7319define <vscale x 4 x i1> @fcmps_ule_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7320; CHECK-LABEL: fcmps_ule_vv_nxv4f64:7321; CHECK:       # %bb.0:7322; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7323; CHECK-NEXT:    vmflt.vv v16, v12, v87324; CHECK-NEXT:    vmnot.m v0, v167325; CHECK-NEXT:    ret7326  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp7327  ret <vscale x 4 x i1> %17328}7329 7330define <vscale x 4 x i1> @fcmps_ule_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7331; CHECK-LABEL: fcmps_ule_vf_nxv4f64:7332; CHECK:       # %bb.0:7333; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7334; CHECK-NEXT:    vmfgt.vf v12, v8, fa07335; CHECK-NEXT:    vmnot.m v0, v127336; CHECK-NEXT:    ret7337  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07338  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7339  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp7340  ret <vscale x 4 x i1> %17341}7342 7343define <vscale x 4 x i1> @fcmps_ule_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7344; CHECK-LABEL: fcmps_ule_fv_nxv4f64:7345; CHECK:       # %bb.0:7346; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7347; CHECK-NEXT:    vmflt.vf v12, v8, fa07348; CHECK-NEXT:    vmnot.m v0, v127349; CHECK-NEXT:    ret7350  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07351  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7352  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp7353  ret <vscale x 4 x i1> %17354}7355 7356define <vscale x 4 x i1> @fcmps_une_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7357; CHECK-LABEL: fcmps_une_vv_nxv4f64:7358; CHECK:       # %bb.0:7359; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7360; CHECK-NEXT:    vmfle.vv v16, v12, v87361; CHECK-NEXT:    vmfle.vv v17, v8, v127362; CHECK-NEXT:    vmnand.mm v0, v17, v167363; CHECK-NEXT:    ret7364  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp7365  ret <vscale x 4 x i1> %17366}7367 7368define <vscale x 4 x i1> @fcmps_une_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7369; CHECK-LABEL: fcmps_une_vf_nxv4f64:7370; CHECK:       # %bb.0:7371; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7372; CHECK-NEXT:    vmfge.vf v12, v8, fa07373; CHECK-NEXT:    vmfle.vf v13, v8, fa07374; CHECK-NEXT:    vmnand.mm v0, v13, v127375; CHECK-NEXT:    ret7376  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07377  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7378  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp7379  ret <vscale x 4 x i1> %17380}7381 7382define <vscale x 4 x i1> @fcmps_une_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7383; CHECK-LABEL: fcmps_une_fv_nxv4f64:7384; CHECK:       # %bb.0:7385; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7386; CHECK-NEXT:    vmfle.vf v12, v8, fa07387; CHECK-NEXT:    vmfge.vf v13, v8, fa07388; CHECK-NEXT:    vmnand.mm v0, v13, v127389; CHECK-NEXT:    ret7390  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07391  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7392  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp7393  ret <vscale x 4 x i1> %17394}7395 7396define <vscale x 4 x i1> @fcmps_uno_vv_nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb) nounwind strictfp {7397; CHECK-LABEL: fcmps_uno_vv_nxv4f64:7398; CHECK:       # %bb.0:7399; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7400; CHECK-NEXT:    vmfle.vv v16, v12, v127401; CHECK-NEXT:    vmfle.vv v12, v8, v87402; CHECK-NEXT:    vmnot.m v8, v127403; CHECK-NEXT:    vmorn.mm v0, v8, v167404; CHECK-NEXT:    ret7405  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp7406  ret <vscale x 4 x i1> %17407}7408 7409define <vscale x 4 x i1> @fcmps_uno_vf_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7410; CHECK-LABEL: fcmps_uno_vf_nxv4f64:7411; CHECK:       # %bb.0:7412; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7413; CHECK-NEXT:    vfmv.v.f v12, fa07414; CHECK-NEXT:    vmfle.vv v16, v8, v87415; CHECK-NEXT:    vmfle.vf v8, v12, fa07416; CHECK-NEXT:    vmnot.m v9, v167417; CHECK-NEXT:    vmorn.mm v0, v9, v87418; CHECK-NEXT:    ret7419  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07420  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7421  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp7422  ret <vscale x 4 x i1> %17423}7424 7425define <vscale x 4 x i1> @fcmps_uno_fv_nxv4f64(<vscale x 4 x double> %va, double %b) nounwind strictfp {7426; CHECK-LABEL: fcmps_uno_fv_nxv4f64:7427; CHECK:       # %bb.0:7428; CHECK-NEXT:    vsetvli a0, zero, e64, m4, ta, ma7429; CHECK-NEXT:    vfmv.v.f v12, fa07430; CHECK-NEXT:    vmfle.vf v16, v12, fa07431; CHECK-NEXT:    vmnot.m v12, v167432; CHECK-NEXT:    vmfle.vv v13, v8, v87433; CHECK-NEXT:    vmorn.mm v0, v12, v137434; CHECK-NEXT:    ret7435  %head = insertelement <vscale x 4 x double> poison, double %b, i32 07436  %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer7437  %1 = call <vscale x 4 x i1> @llvm.experimental.constrained.fcmps.nxv4f64(<vscale x 4 x double> %splat, <vscale x 4 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp7438  ret <vscale x 4 x i1> %17439}7440 7441define <vscale x 8 x i1> @fcmps_oeq_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7442; CHECK-LABEL: fcmps_oeq_vv_nxv8f64:7443; CHECK:       # %bb.0:7444; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7445; CHECK-NEXT:    vmfle.vv v24, v16, v87446; CHECK-NEXT:    vmfle.vv v25, v8, v167447; CHECK-NEXT:    vmand.mm v0, v25, v247448; CHECK-NEXT:    ret7449  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp7450  ret <vscale x 8 x i1> %17451}7452 7453define <vscale x 8 x i1> @fcmps_oeq_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7454; CHECK-LABEL: fcmps_oeq_vf_nxv8f64:7455; CHECK:       # %bb.0:7456; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7457; CHECK-NEXT:    vmfge.vf v16, v8, fa07458; CHECK-NEXT:    vmfle.vf v17, v8, fa07459; CHECK-NEXT:    vmand.mm v0, v17, v167460; CHECK-NEXT:    ret7461  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07462  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7463  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp7464  ret <vscale x 8 x i1> %17465}7466 7467define <vscale x 8 x i1> @fcmps_oeq_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7468; CHECK-LABEL: fcmps_oeq_fv_nxv8f64:7469; CHECK:       # %bb.0:7470; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7471; CHECK-NEXT:    vmfle.vf v16, v8, fa07472; CHECK-NEXT:    vmfge.vf v17, v8, fa07473; CHECK-NEXT:    vmand.mm v0, v17, v167474; CHECK-NEXT:    ret7475  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07476  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7477  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp7478  ret <vscale x 8 x i1> %17479}7480 7481define <vscale x 8 x i1> @fcmps_ogt_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7482; CHECK-LABEL: fcmps_ogt_vv_nxv8f64:7483; CHECK:       # %bb.0:7484; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7485; CHECK-NEXT:    vmflt.vv v0, v16, v87486; CHECK-NEXT:    ret7487  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp7488  ret <vscale x 8 x i1> %17489}7490 7491define <vscale x 8 x i1> @fcmps_ogt_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7492; CHECK-LABEL: fcmps_ogt_vf_nxv8f64:7493; CHECK:       # %bb.0:7494; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7495; CHECK-NEXT:    vmfgt.vf v0, v8, fa07496; CHECK-NEXT:    ret7497  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07498  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7499  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp7500  ret <vscale x 8 x i1> %17501}7502 7503define <vscale x 8 x i1> @fcmps_ogt_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7504; CHECK-LABEL: fcmps_ogt_fv_nxv8f64:7505; CHECK:       # %bb.0:7506; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7507; CHECK-NEXT:    vmflt.vf v0, v8, fa07508; CHECK-NEXT:    ret7509  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07510  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7511  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp7512  ret <vscale x 8 x i1> %17513}7514 7515define <vscale x 8 x i1> @fcmps_oge_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7516; CHECK-LABEL: fcmps_oge_vv_nxv8f64:7517; CHECK:       # %bb.0:7518; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7519; CHECK-NEXT:    vmfle.vv v0, v16, v87520; CHECK-NEXT:    ret7521  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp7522  ret <vscale x 8 x i1> %17523}7524 7525define <vscale x 8 x i1> @fcmps_oge_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7526; CHECK-LABEL: fcmps_oge_vf_nxv8f64:7527; CHECK:       # %bb.0:7528; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7529; CHECK-NEXT:    vmfge.vf v0, v8, fa07530; CHECK-NEXT:    ret7531  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07532  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7533  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp7534  ret <vscale x 8 x i1> %17535}7536 7537define <vscale x 8 x i1> @fcmps_oge_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7538; CHECK-LABEL: fcmps_oge_fv_nxv8f64:7539; CHECK:       # %bb.0:7540; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7541; CHECK-NEXT:    vmfle.vf v0, v8, fa07542; CHECK-NEXT:    ret7543  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07544  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7545  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp7546  ret <vscale x 8 x i1> %17547}7548 7549define <vscale x 8 x i1> @fcmps_olt_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7550; CHECK-LABEL: fcmps_olt_vv_nxv8f64:7551; CHECK:       # %bb.0:7552; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7553; CHECK-NEXT:    vmflt.vv v0, v8, v167554; CHECK-NEXT:    ret7555  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp7556  ret <vscale x 8 x i1> %17557}7558 7559define <vscale x 8 x i1> @fcmps_olt_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7560; CHECK-LABEL: fcmps_olt_vf_nxv8f64:7561; CHECK:       # %bb.0:7562; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7563; CHECK-NEXT:    vmflt.vf v0, v8, fa07564; CHECK-NEXT:    ret7565  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07566  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7567  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp7568  ret <vscale x 8 x i1> %17569}7570 7571define <vscale x 8 x i1> @fcmps_olt_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7572; CHECK-LABEL: fcmps_olt_fv_nxv8f64:7573; CHECK:       # %bb.0:7574; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7575; CHECK-NEXT:    vmfgt.vf v0, v8, fa07576; CHECK-NEXT:    ret7577  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07578  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7579  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp7580  ret <vscale x 8 x i1> %17581}7582 7583define <vscale x 8 x i1> @fcmps_ole_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7584; CHECK-LABEL: fcmps_ole_vv_nxv8f64:7585; CHECK:       # %bb.0:7586; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7587; CHECK-NEXT:    vmfle.vv v0, v8, v167588; CHECK-NEXT:    ret7589  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp7590  ret <vscale x 8 x i1> %17591}7592 7593define <vscale x 8 x i1> @fcmps_ole_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7594; CHECK-LABEL: fcmps_ole_vf_nxv8f64:7595; CHECK:       # %bb.0:7596; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7597; CHECK-NEXT:    vmfle.vf v0, v8, fa07598; CHECK-NEXT:    ret7599  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07600  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7601  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp7602  ret <vscale x 8 x i1> %17603}7604 7605define <vscale x 8 x i1> @fcmps_ole_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7606; CHECK-LABEL: fcmps_ole_fv_nxv8f64:7607; CHECK:       # %bb.0:7608; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7609; CHECK-NEXT:    vmfge.vf v0, v8, fa07610; CHECK-NEXT:    ret7611  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07612  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7613  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp7614  ret <vscale x 8 x i1> %17615}7616 7617define <vscale x 8 x i1> @fcmps_one_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7618; CHECK-LABEL: fcmps_one_vv_nxv8f64:7619; CHECK:       # %bb.0:7620; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7621; CHECK-NEXT:    vmflt.vv v24, v8, v167622; CHECK-NEXT:    vmflt.vv v25, v16, v87623; CHECK-NEXT:    vmor.mm v0, v25, v247624; CHECK-NEXT:    ret7625  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp7626  ret <vscale x 8 x i1> %17627}7628 7629define <vscale x 8 x i1> @fcmps_one_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7630; CHECK-LABEL: fcmps_one_vf_nxv8f64:7631; CHECK:       # %bb.0:7632; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7633; CHECK-NEXT:    vmflt.vf v16, v8, fa07634; CHECK-NEXT:    vmfgt.vf v17, v8, fa07635; CHECK-NEXT:    vmor.mm v0, v17, v167636; CHECK-NEXT:    ret7637  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07638  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7639  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp7640  ret <vscale x 8 x i1> %17641}7642 7643define <vscale x 8 x i1> @fcmps_one_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7644; CHECK-LABEL: fcmps_one_fv_nxv8f64:7645; CHECK:       # %bb.0:7646; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7647; CHECK-NEXT:    vmfgt.vf v16, v8, fa07648; CHECK-NEXT:    vmflt.vf v17, v8, fa07649; CHECK-NEXT:    vmor.mm v0, v17, v167650; CHECK-NEXT:    ret7651  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07652  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7653  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp7654  ret <vscale x 8 x i1> %17655}7656 7657define <vscale x 8 x i1> @fcmps_ord_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7658; CHECK-LABEL: fcmps_ord_vv_nxv8f64:7659; CHECK:       # %bb.0:7660; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7661; CHECK-NEXT:    vmfle.vv v24, v16, v167662; CHECK-NEXT:    vmfle.vv v16, v8, v87663; CHECK-NEXT:    vmand.mm v0, v16, v247664; CHECK-NEXT:    ret7665  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp7666  ret <vscale x 8 x i1> %17667}7668 7669define <vscale x 8 x i1> @fcmps_ord_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7670; CHECK-LABEL: fcmps_ord_vf_nxv8f64:7671; CHECK:       # %bb.0:7672; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7673; CHECK-NEXT:    vfmv.v.f v16, fa07674; CHECK-NEXT:    vmfle.vf v24, v16, fa07675; CHECK-NEXT:    vmfle.vv v16, v8, v87676; CHECK-NEXT:    vmand.mm v0, v16, v247677; CHECK-NEXT:    ret7678  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07679  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7680  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp7681  ret <vscale x 8 x i1> %17682}7683 7684define <vscale x 8 x i1> @fcmps_ord_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7685; CHECK-LABEL: fcmps_ord_fv_nxv8f64:7686; CHECK:       # %bb.0:7687; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7688; CHECK-NEXT:    vfmv.v.f v16, fa07689; CHECK-NEXT:    vmfle.vf v24, v16, fa07690; CHECK-NEXT:    vmfle.vv v16, v8, v87691; CHECK-NEXT:    vmand.mm v0, v24, v167692; CHECK-NEXT:    ret7693  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07694  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7695  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp7696  ret <vscale x 8 x i1> %17697}7698 7699define <vscale x 8 x i1> @fcmps_ueq_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7700; CHECK-LABEL: fcmps_ueq_vv_nxv8f64:7701; CHECK:       # %bb.0:7702; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7703; CHECK-NEXT:    vmflt.vv v24, v8, v167704; CHECK-NEXT:    vmflt.vv v25, v16, v87705; CHECK-NEXT:    vmnor.mm v0, v25, v247706; CHECK-NEXT:    ret7707  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp7708  ret <vscale x 8 x i1> %17709}7710 7711define <vscale x 8 x i1> @fcmps_ueq_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7712; CHECK-LABEL: fcmps_ueq_vf_nxv8f64:7713; CHECK:       # %bb.0:7714; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7715; CHECK-NEXT:    vmflt.vf v16, v8, fa07716; CHECK-NEXT:    vmfgt.vf v17, v8, fa07717; CHECK-NEXT:    vmnor.mm v0, v17, v167718; CHECK-NEXT:    ret7719  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07720  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7721  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp7722  ret <vscale x 8 x i1> %17723}7724 7725define <vscale x 8 x i1> @fcmps_ueq_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7726; CHECK-LABEL: fcmps_ueq_fv_nxv8f64:7727; CHECK:       # %bb.0:7728; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7729; CHECK-NEXT:    vmfgt.vf v16, v8, fa07730; CHECK-NEXT:    vmflt.vf v17, v8, fa07731; CHECK-NEXT:    vmnor.mm v0, v17, v167732; CHECK-NEXT:    ret7733  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07734  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7735  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp7736  ret <vscale x 8 x i1> %17737}7738 7739define <vscale x 8 x i1> @fcmps_ugt_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7740; CHECK-LABEL: fcmps_ugt_vv_nxv8f64:7741; CHECK:       # %bb.0:7742; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7743; CHECK-NEXT:    vmfle.vv v24, v8, v167744; CHECK-NEXT:    vmnot.m v0, v247745; CHECK-NEXT:    ret7746  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp7747  ret <vscale x 8 x i1> %17748}7749 7750define <vscale x 8 x i1> @fcmps_ugt_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7751; CHECK-LABEL: fcmps_ugt_vf_nxv8f64:7752; CHECK:       # %bb.0:7753; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7754; CHECK-NEXT:    vmfle.vf v16, v8, fa07755; CHECK-NEXT:    vmnot.m v0, v167756; CHECK-NEXT:    ret7757  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07758  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7759  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp7760  ret <vscale x 8 x i1> %17761}7762 7763define <vscale x 8 x i1> @fcmps_ugt_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7764; CHECK-LABEL: fcmps_ugt_fv_nxv8f64:7765; CHECK:       # %bb.0:7766; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7767; CHECK-NEXT:    vmfge.vf v16, v8, fa07768; CHECK-NEXT:    vmnot.m v0, v167769; CHECK-NEXT:    ret7770  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07771  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7772  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp7773  ret <vscale x 8 x i1> %17774}7775 7776define <vscale x 8 x i1> @fcmps_uge_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7777; CHECK-LABEL: fcmps_uge_vv_nxv8f64:7778; CHECK:       # %bb.0:7779; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7780; CHECK-NEXT:    vmflt.vv v24, v8, v167781; CHECK-NEXT:    vmnot.m v0, v247782; CHECK-NEXT:    ret7783  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp7784  ret <vscale x 8 x i1> %17785}7786 7787define <vscale x 8 x i1> @fcmps_uge_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7788; CHECK-LABEL: fcmps_uge_vf_nxv8f64:7789; CHECK:       # %bb.0:7790; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7791; CHECK-NEXT:    vmflt.vf v16, v8, fa07792; CHECK-NEXT:    vmnot.m v0, v167793; CHECK-NEXT:    ret7794  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07795  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7796  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp7797  ret <vscale x 8 x i1> %17798}7799 7800define <vscale x 8 x i1> @fcmps_uge_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7801; CHECK-LABEL: fcmps_uge_fv_nxv8f64:7802; CHECK:       # %bb.0:7803; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7804; CHECK-NEXT:    vmfgt.vf v16, v8, fa07805; CHECK-NEXT:    vmnot.m v0, v167806; CHECK-NEXT:    ret7807  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07808  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7809  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp7810  ret <vscale x 8 x i1> %17811}7812 7813define <vscale x 8 x i1> @fcmps_ult_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7814; CHECK-LABEL: fcmps_ult_vv_nxv8f64:7815; CHECK:       # %bb.0:7816; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7817; CHECK-NEXT:    vmfle.vv v24, v16, v87818; CHECK-NEXT:    vmnot.m v0, v247819; CHECK-NEXT:    ret7820  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp7821  ret <vscale x 8 x i1> %17822}7823 7824define <vscale x 8 x i1> @fcmps_ult_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7825; CHECK-LABEL: fcmps_ult_vf_nxv8f64:7826; CHECK:       # %bb.0:7827; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7828; CHECK-NEXT:    vmfge.vf v16, v8, fa07829; CHECK-NEXT:    vmnot.m v0, v167830; CHECK-NEXT:    ret7831  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07832  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7833  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp7834  ret <vscale x 8 x i1> %17835}7836 7837define <vscale x 8 x i1> @fcmps_ult_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7838; CHECK-LABEL: fcmps_ult_fv_nxv8f64:7839; CHECK:       # %bb.0:7840; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7841; CHECK-NEXT:    vmfle.vf v16, v8, fa07842; CHECK-NEXT:    vmnot.m v0, v167843; CHECK-NEXT:    ret7844  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07845  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7846  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp7847  ret <vscale x 8 x i1> %17848}7849 7850define <vscale x 8 x i1> @fcmps_ule_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7851; CHECK-LABEL: fcmps_ule_vv_nxv8f64:7852; CHECK:       # %bb.0:7853; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7854; CHECK-NEXT:    vmflt.vv v24, v16, v87855; CHECK-NEXT:    vmnot.m v0, v247856; CHECK-NEXT:    ret7857  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp7858  ret <vscale x 8 x i1> %17859}7860 7861define <vscale x 8 x i1> @fcmps_ule_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7862; CHECK-LABEL: fcmps_ule_vf_nxv8f64:7863; CHECK:       # %bb.0:7864; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7865; CHECK-NEXT:    vmfgt.vf v16, v8, fa07866; CHECK-NEXT:    vmnot.m v0, v167867; CHECK-NEXT:    ret7868  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07869  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7870  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp7871  ret <vscale x 8 x i1> %17872}7873 7874define <vscale x 8 x i1> @fcmps_ule_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7875; CHECK-LABEL: fcmps_ule_fv_nxv8f64:7876; CHECK:       # %bb.0:7877; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7878; CHECK-NEXT:    vmflt.vf v16, v8, fa07879; CHECK-NEXT:    vmnot.m v0, v167880; CHECK-NEXT:    ret7881  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07882  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7883  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp7884  ret <vscale x 8 x i1> %17885}7886 7887define <vscale x 8 x i1> @fcmps_une_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7888; CHECK-LABEL: fcmps_une_vv_nxv8f64:7889; CHECK:       # %bb.0:7890; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7891; CHECK-NEXT:    vmfle.vv v24, v16, v87892; CHECK-NEXT:    vmfle.vv v25, v8, v167893; CHECK-NEXT:    vmnand.mm v0, v25, v247894; CHECK-NEXT:    ret7895  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp7896  ret <vscale x 8 x i1> %17897}7898 7899define <vscale x 8 x i1> @fcmps_une_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7900; CHECK-LABEL: fcmps_une_vf_nxv8f64:7901; CHECK:       # %bb.0:7902; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7903; CHECK-NEXT:    vmfge.vf v16, v8, fa07904; CHECK-NEXT:    vmfle.vf v17, v8, fa07905; CHECK-NEXT:    vmnand.mm v0, v17, v167906; CHECK-NEXT:    ret7907  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07908  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7909  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp7910  ret <vscale x 8 x i1> %17911}7912 7913define <vscale x 8 x i1> @fcmps_une_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7914; CHECK-LABEL: fcmps_une_fv_nxv8f64:7915; CHECK:       # %bb.0:7916; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7917; CHECK-NEXT:    vmfle.vf v16, v8, fa07918; CHECK-NEXT:    vmfge.vf v17, v8, fa07919; CHECK-NEXT:    vmnand.mm v0, v17, v167920; CHECK-NEXT:    ret7921  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07922  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7923  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp7924  ret <vscale x 8 x i1> %17925}7926 7927define <vscale x 8 x i1> @fcmps_uno_vv_nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb) nounwind strictfp {7928; CHECK-LABEL: fcmps_uno_vv_nxv8f64:7929; CHECK:       # %bb.0:7930; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7931; CHECK-NEXT:    vmfle.vv v24, v16, v167932; CHECK-NEXT:    vmfle.vv v16, v8, v87933; CHECK-NEXT:    vmnot.m v8, v167934; CHECK-NEXT:    vmorn.mm v0, v8, v247935; CHECK-NEXT:    ret7936  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp7937  ret <vscale x 8 x i1> %17938}7939 7940define <vscale x 8 x i1> @fcmps_uno_vf_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7941; CHECK-LABEL: fcmps_uno_vf_nxv8f64:7942; CHECK:       # %bb.0:7943; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7944; CHECK-NEXT:    vfmv.v.f v16, fa07945; CHECK-NEXT:    vmfle.vv v24, v8, v87946; CHECK-NEXT:    vmfle.vf v8, v16, fa07947; CHECK-NEXT:    vmnot.m v9, v247948; CHECK-NEXT:    vmorn.mm v0, v9, v87949; CHECK-NEXT:    ret7950  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07951  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7952  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp7953  ret <vscale x 8 x i1> %17954}7955 7956define <vscale x 8 x i1> @fcmps_uno_fv_nxv8f64(<vscale x 8 x double> %va, double %b) nounwind strictfp {7957; CHECK-LABEL: fcmps_uno_fv_nxv8f64:7958; CHECK:       # %bb.0:7959; CHECK-NEXT:    vsetvli a0, zero, e64, m8, ta, ma7960; CHECK-NEXT:    vfmv.v.f v16, fa07961; CHECK-NEXT:    vmfle.vf v24, v16, fa07962; CHECK-NEXT:    vmnot.m v16, v247963; CHECK-NEXT:    vmfle.vv v17, v8, v87964; CHECK-NEXT:    vmorn.mm v0, v16, v177965; CHECK-NEXT:    ret7966  %head = insertelement <vscale x 8 x double> poison, double %b, i32 07967  %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer7968  %1 = call <vscale x 8 x i1> @llvm.experimental.constrained.fcmps.nxv8f64(<vscale x 8 x double> %splat, <vscale x 8 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp7969  ret <vscale x 8 x i1> %17970}7971