brintos

brintos / llvm-project-archived public Read only

0
0
Text · 358.2 KiB · 218efde Raw
8013 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 <1 x i1> @fcmps_oeq_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {8; CHECK-LABEL: fcmps_oeq_vv_v1f16:9; CHECK:       # %bb.0:10; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp16  ret <1 x i1> %117}18 19define <1 x i1> @fcmps_oeq_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {20; CHECK-LABEL: fcmps_oeq_vf_v1f16:21; CHECK:       # %bb.0:22; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 028  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer29  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp30  ret <1 x i1> %131}32 33define <1 x i1> @fcmps_oeq_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {34; CHECK-LABEL: fcmps_oeq_fv_v1f16:35; CHECK:       # %bb.0:36; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 042  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer43  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp44  ret <1 x i1> %145}46 47define <1 x i1> @fcmps_ogt_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {48; CHECK-LABEL: fcmps_ogt_vv_v1f16:49; CHECK:       # %bb.0:50; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma51; CHECK-NEXT:    vmflt.vv v0, v9, v852; CHECK-NEXT:    ret53  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp54  ret <1 x i1> %155}56 57define <1 x i1> @fcmps_ogt_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {58; CHECK-LABEL: fcmps_ogt_vf_v1f16:59; CHECK:       # %bb.0:60; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma61; CHECK-NEXT:    vmfgt.vf v0, v8, fa062; CHECK-NEXT:    ret63  %head = insertelement <1 x half> poison, half %b, i32 064  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer65  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp66  ret <1 x i1> %167}68 69define <1 x i1> @fcmps_ogt_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {70; CHECK-LABEL: fcmps_ogt_fv_v1f16:71; CHECK:       # %bb.0:72; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma73; CHECK-NEXT:    vmflt.vf v0, v8, fa074; CHECK-NEXT:    ret75  %head = insertelement <1 x half> poison, half %b, i32 076  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer77  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp78  ret <1 x i1> %179}80 81define <1 x i1> @fcmps_oge_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {82; CHECK-LABEL: fcmps_oge_vv_v1f16:83; CHECK:       # %bb.0:84; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma85; CHECK-NEXT:    vmfle.vv v0, v9, v886; CHECK-NEXT:    ret87  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp88  ret <1 x i1> %189}90 91define <1 x i1> @fcmps_oge_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {92; CHECK-LABEL: fcmps_oge_vf_v1f16:93; CHECK:       # %bb.0:94; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma95; CHECK-NEXT:    vmfge.vf v0, v8, fa096; CHECK-NEXT:    ret97  %head = insertelement <1 x half> poison, half %b, i32 098  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer99  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp100  ret <1 x i1> %1101}102 103define <1 x i1> @fcmps_oge_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {104; CHECK-LABEL: fcmps_oge_fv_v1f16:105; CHECK:       # %bb.0:106; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma107; CHECK-NEXT:    vmfle.vf v0, v8, fa0108; CHECK-NEXT:    ret109  %head = insertelement <1 x half> poison, half %b, i32 0110  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer111  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp112  ret <1 x i1> %1113}114 115define <1 x i1> @fcmps_olt_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {116; CHECK-LABEL: fcmps_olt_vv_v1f16:117; CHECK:       # %bb.0:118; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma119; CHECK-NEXT:    vmflt.vv v0, v8, v9120; CHECK-NEXT:    ret121  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp122  ret <1 x i1> %1123}124 125define <1 x i1> @fcmps_olt_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {126; CHECK-LABEL: fcmps_olt_vf_v1f16:127; CHECK:       # %bb.0:128; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma129; CHECK-NEXT:    vmflt.vf v0, v8, fa0130; CHECK-NEXT:    ret131  %head = insertelement <1 x half> poison, half %b, i32 0132  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer133  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp134  ret <1 x i1> %1135}136 137define <1 x i1> @fcmps_olt_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {138; CHECK-LABEL: fcmps_olt_fv_v1f16:139; CHECK:       # %bb.0:140; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma141; CHECK-NEXT:    vmfgt.vf v0, v8, fa0142; CHECK-NEXT:    ret143  %head = insertelement <1 x half> poison, half %b, i32 0144  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer145  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp146  ret <1 x i1> %1147}148 149define <1 x i1> @fcmps_ole_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {150; CHECK-LABEL: fcmps_ole_vv_v1f16:151; CHECK:       # %bb.0:152; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma153; CHECK-NEXT:    vmfle.vv v0, v8, v9154; CHECK-NEXT:    ret155  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp156  ret <1 x i1> %1157}158 159define <1 x i1> @fcmps_ole_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {160; CHECK-LABEL: fcmps_ole_vf_v1f16:161; CHECK:       # %bb.0:162; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma163; CHECK-NEXT:    vmfle.vf v0, v8, fa0164; CHECK-NEXT:    ret165  %head = insertelement <1 x half> poison, half %b, i32 0166  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer167  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp168  ret <1 x i1> %1169}170 171define <1 x i1> @fcmps_ole_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {172; CHECK-LABEL: fcmps_ole_fv_v1f16:173; CHECK:       # %bb.0:174; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma175; CHECK-NEXT:    vmfge.vf v0, v8, fa0176; CHECK-NEXT:    ret177  %head = insertelement <1 x half> poison, half %b, i32 0178  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer179  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp180  ret <1 x i1> %1181}182 183define <1 x i1> @fcmps_one_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {184; CHECK-LABEL: fcmps_one_vv_v1f16:185; CHECK:       # %bb.0:186; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp192  ret <1 x i1> %1193}194 195define <1 x i1> @fcmps_one_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {196; CHECK-LABEL: fcmps_one_vf_v1f16:197; CHECK:       # %bb.0:198; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 0204  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer205  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp206  ret <1 x i1> %1207}208 209define <1 x i1> @fcmps_one_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {210; CHECK-LABEL: fcmps_one_fv_v1f16:211; CHECK:       # %bb.0:212; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 0218  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer219  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp220  ret <1 x i1> %1221}222 223define <1 x i1> @fcmps_ord_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {224; CHECK-LABEL: fcmps_ord_vv_v1f16:225; CHECK:       # %bb.0:226; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp232  ret <1 x i1> %1233}234 235define <1 x i1> @fcmps_ord_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {236; CHECK-LABEL: fcmps_ord_vf_v1f16:237; CHECK:       # %bb.0:238; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma239; CHECK-NEXT:    vfmv.s.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 <1 x half> poison, half %b, i32 0245  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer246  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp247  ret <1 x i1> %1248}249 250define <1 x i1> @fcmps_ord_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {251; CHECK-LABEL: fcmps_ord_fv_v1f16:252; CHECK:       # %bb.0:253; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma254; CHECK-NEXT:    vfmv.s.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 <1 x half> poison, half %b, i32 0260  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer261  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp262  ret <1 x i1> %1263}264 265define <1 x i1> @fcmps_ueq_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {266; CHECK-LABEL: fcmps_ueq_vv_v1f16:267; CHECK:       # %bb.0:268; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp274  ret <1 x i1> %1275}276 277define <1 x i1> @fcmps_ueq_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {278; CHECK-LABEL: fcmps_ueq_vf_v1f16:279; CHECK:       # %bb.0:280; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 0286  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer287  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp288  ret <1 x i1> %1289}290 291define <1 x i1> @fcmps_ueq_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {292; CHECK-LABEL: fcmps_ueq_fv_v1f16:293; CHECK:       # %bb.0:294; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 0300  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer301  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp302  ret <1 x i1> %1303}304 305define <1 x i1> @fcmps_ugt_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {306; CHECK-LABEL: fcmps_ugt_vv_v1f16:307; CHECK:       # %bb.0:308; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma309; CHECK-NEXT:    vmfle.vv v8, v8, v9310; CHECK-NEXT:    vmnot.m v0, v8311; CHECK-NEXT:    ret312  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp313  ret <1 x i1> %1314}315 316define <1 x i1> @fcmps_ugt_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {317; CHECK-LABEL: fcmps_ugt_vf_v1f16:318; CHECK:       # %bb.0:319; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma320; CHECK-NEXT:    vmfle.vf v8, v8, fa0321; CHECK-NEXT:    vmnot.m v0, v8322; CHECK-NEXT:    ret323  %head = insertelement <1 x half> poison, half %b, i32 0324  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer325  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp326  ret <1 x i1> %1327}328 329define <1 x i1> @fcmps_ugt_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {330; CHECK-LABEL: fcmps_ugt_fv_v1f16:331; CHECK:       # %bb.0:332; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma333; CHECK-NEXT:    vmfge.vf v8, v8, fa0334; CHECK-NEXT:    vmnot.m v0, v8335; CHECK-NEXT:    ret336  %head = insertelement <1 x half> poison, half %b, i32 0337  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer338  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp339  ret <1 x i1> %1340}341 342define <1 x i1> @fcmps_uge_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {343; CHECK-LABEL: fcmps_uge_vv_v1f16:344; CHECK:       # %bb.0:345; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma346; CHECK-NEXT:    vmflt.vv v8, v8, v9347; CHECK-NEXT:    vmnot.m v0, v8348; CHECK-NEXT:    ret349  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp350  ret <1 x i1> %1351}352 353define <1 x i1> @fcmps_uge_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {354; CHECK-LABEL: fcmps_uge_vf_v1f16:355; CHECK:       # %bb.0:356; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma357; CHECK-NEXT:    vmflt.vf v8, v8, fa0358; CHECK-NEXT:    vmnot.m v0, v8359; CHECK-NEXT:    ret360  %head = insertelement <1 x half> poison, half %b, i32 0361  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer362  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp363  ret <1 x i1> %1364}365 366define <1 x i1> @fcmps_uge_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {367; CHECK-LABEL: fcmps_uge_fv_v1f16:368; CHECK:       # %bb.0:369; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma370; CHECK-NEXT:    vmfgt.vf v8, v8, fa0371; CHECK-NEXT:    vmnot.m v0, v8372; CHECK-NEXT:    ret373  %head = insertelement <1 x half> poison, half %b, i32 0374  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer375  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp376  ret <1 x i1> %1377}378 379define <1 x i1> @fcmps_ult_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {380; CHECK-LABEL: fcmps_ult_vv_v1f16:381; CHECK:       # %bb.0:382; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma383; CHECK-NEXT:    vmfle.vv v8, v9, v8384; CHECK-NEXT:    vmnot.m v0, v8385; CHECK-NEXT:    ret386  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp387  ret <1 x i1> %1388}389 390define <1 x i1> @fcmps_ult_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {391; CHECK-LABEL: fcmps_ult_vf_v1f16:392; CHECK:       # %bb.0:393; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma394; CHECK-NEXT:    vmfge.vf v8, v8, fa0395; CHECK-NEXT:    vmnot.m v0, v8396; CHECK-NEXT:    ret397  %head = insertelement <1 x half> poison, half %b, i32 0398  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer399  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp400  ret <1 x i1> %1401}402 403define <1 x i1> @fcmps_ult_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {404; CHECK-LABEL: fcmps_ult_fv_v1f16:405; CHECK:       # %bb.0:406; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma407; CHECK-NEXT:    vmfle.vf v8, v8, fa0408; CHECK-NEXT:    vmnot.m v0, v8409; CHECK-NEXT:    ret410  %head = insertelement <1 x half> poison, half %b, i32 0411  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer412  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp413  ret <1 x i1> %1414}415 416define <1 x i1> @fcmps_ule_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {417; CHECK-LABEL: fcmps_ule_vv_v1f16:418; CHECK:       # %bb.0:419; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma420; CHECK-NEXT:    vmflt.vv v8, v9, v8421; CHECK-NEXT:    vmnot.m v0, v8422; CHECK-NEXT:    ret423  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp424  ret <1 x i1> %1425}426 427define <1 x i1> @fcmps_ule_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {428; CHECK-LABEL: fcmps_ule_vf_v1f16:429; CHECK:       # %bb.0:430; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma431; CHECK-NEXT:    vmfgt.vf v8, v8, fa0432; CHECK-NEXT:    vmnot.m v0, v8433; CHECK-NEXT:    ret434  %head = insertelement <1 x half> poison, half %b, i32 0435  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer436  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp437  ret <1 x i1> %1438}439 440define <1 x i1> @fcmps_ule_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {441; CHECK-LABEL: fcmps_ule_fv_v1f16:442; CHECK:       # %bb.0:443; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma444; CHECK-NEXT:    vmflt.vf v8, v8, fa0445; CHECK-NEXT:    vmnot.m v0, v8446; CHECK-NEXT:    ret447  %head = insertelement <1 x half> poison, half %b, i32 0448  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer449  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp450  ret <1 x i1> %1451}452 453define <1 x i1> @fcmps_une_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {454; CHECK-LABEL: fcmps_une_vv_v1f16:455; CHECK:       # %bb.0:456; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp462  ret <1 x i1> %1463}464 465define <1 x i1> @fcmps_une_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {466; CHECK-LABEL: fcmps_une_vf_v1f16:467; CHECK:       # %bb.0:468; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 0474  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer475  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp476  ret <1 x i1> %1477}478 479define <1 x i1> @fcmps_une_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {480; CHECK-LABEL: fcmps_une_fv_v1f16:481; CHECK:       # %bb.0:482; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x half> poison, half %b, i32 0488  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer489  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp490  ret <1 x i1> %1491}492 493define <1 x i1> @fcmps_uno_vv_v1f16(<1 x half> %va, <1 x half> %vb) nounwind strictfp {494; CHECK-LABEL: fcmps_uno_vv_v1f16:495; CHECK:       # %bb.0:496; CHECK-NEXT:    vsetivli zero, 1, 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 <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp503  ret <1 x i1> %1504}505 506define <1 x i1> @fcmps_uno_vf_v1f16(<1 x half> %va, half %b) nounwind strictfp {507; CHECK-LABEL: fcmps_uno_vf_v1f16:508; CHECK:       # %bb.0:509; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma510; CHECK-NEXT:    vfmv.s.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 <1 x half> poison, half %b, i32 0517  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer518  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %va, <1 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp519  ret <1 x i1> %1520}521 522define <1 x i1> @fcmps_uno_fv_v1f16(<1 x half> %va, half %b) nounwind strictfp {523; CHECK-LABEL: fcmps_uno_fv_v1f16:524; CHECK:       # %bb.0:525; CHECK-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma526; CHECK-NEXT:    vfmv.s.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 <1 x half> poison, half %b, i32 0533  %splat = shufflevector <1 x half> %head, <1 x half> poison, <1 x i32> zeroinitializer534  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f16(<1 x half> %splat, <1 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp535  ret <1 x i1> %1536}537 538define <2 x i1> @fcmps_oeq_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {539; CHECK-LABEL: fcmps_oeq_vv_v2f16:540; CHECK:       # %bb.0:541; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp547  ret <2 x i1> %1548}549 550define <2 x i1> @fcmps_oeq_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {551; CHECK-LABEL: fcmps_oeq_vf_v2f16:552; CHECK:       # %bb.0:553; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0559  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer560  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp561  ret <2 x i1> %1562}563 564define <2 x i1> @fcmps_oeq_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {565; CHECK-LABEL: fcmps_oeq_fv_v2f16:566; CHECK:       # %bb.0:567; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0573  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer574  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp575  ret <2 x i1> %1576}577 578define <2 x i1> @fcmps_ogt_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {579; CHECK-LABEL: fcmps_ogt_vv_v2f16:580; CHECK:       # %bb.0:581; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma582; CHECK-NEXT:    vmflt.vv v0, v9, v8583; CHECK-NEXT:    ret584  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp585  ret <2 x i1> %1586}587 588define <2 x i1> @fcmps_ogt_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {589; CHECK-LABEL: fcmps_ogt_vf_v2f16:590; CHECK:       # %bb.0:591; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma592; CHECK-NEXT:    vmfgt.vf v0, v8, fa0593; CHECK-NEXT:    ret594  %head = insertelement <2 x half> poison, half %b, i32 0595  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer596  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp597  ret <2 x i1> %1598}599 600define <2 x i1> @fcmps_ogt_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {601; CHECK-LABEL: fcmps_ogt_fv_v2f16:602; CHECK:       # %bb.0:603; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma604; CHECK-NEXT:    vmflt.vf v0, v8, fa0605; CHECK-NEXT:    ret606  %head = insertelement <2 x half> poison, half %b, i32 0607  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer608  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp609  ret <2 x i1> %1610}611 612define <2 x i1> @fcmps_oge_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {613; CHECK-LABEL: fcmps_oge_vv_v2f16:614; CHECK:       # %bb.0:615; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma616; CHECK-NEXT:    vmfle.vv v0, v9, v8617; CHECK-NEXT:    ret618  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp619  ret <2 x i1> %1620}621 622define <2 x i1> @fcmps_oge_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {623; CHECK-LABEL: fcmps_oge_vf_v2f16:624; CHECK:       # %bb.0:625; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma626; CHECK-NEXT:    vmfge.vf v0, v8, fa0627; CHECK-NEXT:    ret628  %head = insertelement <2 x half> poison, half %b, i32 0629  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer630  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp631  ret <2 x i1> %1632}633 634define <2 x i1> @fcmps_oge_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {635; CHECK-LABEL: fcmps_oge_fv_v2f16:636; CHECK:       # %bb.0:637; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma638; CHECK-NEXT:    vmfle.vf v0, v8, fa0639; CHECK-NEXT:    ret640  %head = insertelement <2 x half> poison, half %b, i32 0641  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer642  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp643  ret <2 x i1> %1644}645 646define <2 x i1> @fcmps_olt_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {647; CHECK-LABEL: fcmps_olt_vv_v2f16:648; CHECK:       # %bb.0:649; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma650; CHECK-NEXT:    vmflt.vv v0, v8, v9651; CHECK-NEXT:    ret652  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp653  ret <2 x i1> %1654}655 656define <2 x i1> @fcmps_olt_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {657; CHECK-LABEL: fcmps_olt_vf_v2f16:658; CHECK:       # %bb.0:659; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma660; CHECK-NEXT:    vmflt.vf v0, v8, fa0661; CHECK-NEXT:    ret662  %head = insertelement <2 x half> poison, half %b, i32 0663  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer664  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp665  ret <2 x i1> %1666}667 668define <2 x i1> @fcmps_olt_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {669; CHECK-LABEL: fcmps_olt_fv_v2f16:670; CHECK:       # %bb.0:671; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma672; CHECK-NEXT:    vmfgt.vf v0, v8, fa0673; CHECK-NEXT:    ret674  %head = insertelement <2 x half> poison, half %b, i32 0675  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer676  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp677  ret <2 x i1> %1678}679 680define <2 x i1> @fcmps_ole_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {681; CHECK-LABEL: fcmps_ole_vv_v2f16:682; CHECK:       # %bb.0:683; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma684; CHECK-NEXT:    vmfle.vv v0, v8, v9685; CHECK-NEXT:    ret686  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp687  ret <2 x i1> %1688}689 690define <2 x i1> @fcmps_ole_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {691; CHECK-LABEL: fcmps_ole_vf_v2f16:692; CHECK:       # %bb.0:693; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma694; CHECK-NEXT:    vmfle.vf v0, v8, fa0695; CHECK-NEXT:    ret696  %head = insertelement <2 x half> poison, half %b, i32 0697  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer698  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp699  ret <2 x i1> %1700}701 702define <2 x i1> @fcmps_ole_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {703; CHECK-LABEL: fcmps_ole_fv_v2f16:704; CHECK:       # %bb.0:705; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma706; CHECK-NEXT:    vmfge.vf v0, v8, fa0707; CHECK-NEXT:    ret708  %head = insertelement <2 x half> poison, half %b, i32 0709  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer710  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp711  ret <2 x i1> %1712}713 714define <2 x i1> @fcmps_one_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {715; CHECK-LABEL: fcmps_one_vv_v2f16:716; CHECK:       # %bb.0:717; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp723  ret <2 x i1> %1724}725 726define <2 x i1> @fcmps_one_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {727; CHECK-LABEL: fcmps_one_vf_v2f16:728; CHECK:       # %bb.0:729; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0735  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer736  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp737  ret <2 x i1> %1738}739 740define <2 x i1> @fcmps_one_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {741; CHECK-LABEL: fcmps_one_fv_v2f16:742; CHECK:       # %bb.0:743; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0749  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer750  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp751  ret <2 x i1> %1752}753 754define <2 x i1> @fcmps_ord_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {755; CHECK-LABEL: fcmps_ord_vv_v2f16:756; CHECK:       # %bb.0:757; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp763  ret <2 x i1> %1764}765 766define <2 x i1> @fcmps_ord_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {767; CHECK-LABEL: fcmps_ord_vf_v2f16:768; CHECK:       # %bb.0:769; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0776  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer777  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp778  ret <2 x i1> %1779}780 781define <2 x i1> @fcmps_ord_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {782; CHECK-LABEL: fcmps_ord_fv_v2f16:783; CHECK:       # %bb.0:784; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0791  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer792  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp793  ret <2 x i1> %1794}795 796define <2 x i1> @fcmps_ueq_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {797; CHECK-LABEL: fcmps_ueq_vv_v2f16:798; CHECK:       # %bb.0:799; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp805  ret <2 x i1> %1806}807 808define <2 x i1> @fcmps_ueq_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {809; CHECK-LABEL: fcmps_ueq_vf_v2f16:810; CHECK:       # %bb.0:811; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0817  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer818  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp819  ret <2 x i1> %1820}821 822define <2 x i1> @fcmps_ueq_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {823; CHECK-LABEL: fcmps_ueq_fv_v2f16:824; CHECK:       # %bb.0:825; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 0831  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer832  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp833  ret <2 x i1> %1834}835 836define <2 x i1> @fcmps_ugt_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {837; CHECK-LABEL: fcmps_ugt_vv_v2f16:838; CHECK:       # %bb.0:839; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma840; CHECK-NEXT:    vmfle.vv v8, v8, v9841; CHECK-NEXT:    vmnot.m v0, v8842; CHECK-NEXT:    ret843  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp844  ret <2 x i1> %1845}846 847define <2 x i1> @fcmps_ugt_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {848; CHECK-LABEL: fcmps_ugt_vf_v2f16:849; CHECK:       # %bb.0:850; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma851; CHECK-NEXT:    vmfle.vf v8, v8, fa0852; CHECK-NEXT:    vmnot.m v0, v8853; CHECK-NEXT:    ret854  %head = insertelement <2 x half> poison, half %b, i32 0855  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer856  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp857  ret <2 x i1> %1858}859 860define <2 x i1> @fcmps_ugt_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {861; CHECK-LABEL: fcmps_ugt_fv_v2f16:862; CHECK:       # %bb.0:863; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma864; CHECK-NEXT:    vmfge.vf v8, v8, fa0865; CHECK-NEXT:    vmnot.m v0, v8866; CHECK-NEXT:    ret867  %head = insertelement <2 x half> poison, half %b, i32 0868  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer869  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp870  ret <2 x i1> %1871}872 873define <2 x i1> @fcmps_uge_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {874; CHECK-LABEL: fcmps_uge_vv_v2f16:875; CHECK:       # %bb.0:876; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma877; CHECK-NEXT:    vmflt.vv v8, v8, v9878; CHECK-NEXT:    vmnot.m v0, v8879; CHECK-NEXT:    ret880  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp881  ret <2 x i1> %1882}883 884define <2 x i1> @fcmps_uge_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {885; CHECK-LABEL: fcmps_uge_vf_v2f16:886; CHECK:       # %bb.0:887; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma888; CHECK-NEXT:    vmflt.vf v8, v8, fa0889; CHECK-NEXT:    vmnot.m v0, v8890; CHECK-NEXT:    ret891  %head = insertelement <2 x half> poison, half %b, i32 0892  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer893  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp894  ret <2 x i1> %1895}896 897define <2 x i1> @fcmps_uge_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {898; CHECK-LABEL: fcmps_uge_fv_v2f16:899; CHECK:       # %bb.0:900; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma901; CHECK-NEXT:    vmfgt.vf v8, v8, fa0902; CHECK-NEXT:    vmnot.m v0, v8903; CHECK-NEXT:    ret904  %head = insertelement <2 x half> poison, half %b, i32 0905  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer906  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp907  ret <2 x i1> %1908}909 910define <2 x i1> @fcmps_ult_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {911; CHECK-LABEL: fcmps_ult_vv_v2f16:912; CHECK:       # %bb.0:913; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma914; CHECK-NEXT:    vmfle.vv v8, v9, v8915; CHECK-NEXT:    vmnot.m v0, v8916; CHECK-NEXT:    ret917  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp918  ret <2 x i1> %1919}920 921define <2 x i1> @fcmps_ult_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {922; CHECK-LABEL: fcmps_ult_vf_v2f16:923; CHECK:       # %bb.0:924; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma925; CHECK-NEXT:    vmfge.vf v8, v8, fa0926; CHECK-NEXT:    vmnot.m v0, v8927; CHECK-NEXT:    ret928  %head = insertelement <2 x half> poison, half %b, i32 0929  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer930  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp931  ret <2 x i1> %1932}933 934define <2 x i1> @fcmps_ult_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {935; CHECK-LABEL: fcmps_ult_fv_v2f16:936; CHECK:       # %bb.0:937; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma938; CHECK-NEXT:    vmfle.vf v8, v8, fa0939; CHECK-NEXT:    vmnot.m v0, v8940; CHECK-NEXT:    ret941  %head = insertelement <2 x half> poison, half %b, i32 0942  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer943  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp944  ret <2 x i1> %1945}946 947define <2 x i1> @fcmps_ule_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {948; CHECK-LABEL: fcmps_ule_vv_v2f16:949; CHECK:       # %bb.0:950; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma951; CHECK-NEXT:    vmflt.vv v8, v9, v8952; CHECK-NEXT:    vmnot.m v0, v8953; CHECK-NEXT:    ret954  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp955  ret <2 x i1> %1956}957 958define <2 x i1> @fcmps_ule_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {959; CHECK-LABEL: fcmps_ule_vf_v2f16:960; CHECK:       # %bb.0:961; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma962; CHECK-NEXT:    vmfgt.vf v8, v8, fa0963; CHECK-NEXT:    vmnot.m v0, v8964; CHECK-NEXT:    ret965  %head = insertelement <2 x half> poison, half %b, i32 0966  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer967  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp968  ret <2 x i1> %1969}970 971define <2 x i1> @fcmps_ule_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {972; CHECK-LABEL: fcmps_ule_fv_v2f16:973; CHECK:       # %bb.0:974; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma975; CHECK-NEXT:    vmflt.vf v8, v8, fa0976; CHECK-NEXT:    vmnot.m v0, v8977; CHECK-NEXT:    ret978  %head = insertelement <2 x half> poison, half %b, i32 0979  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer980  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp981  ret <2 x i1> %1982}983 984define <2 x i1> @fcmps_une_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {985; CHECK-LABEL: fcmps_une_vv_v2f16:986; CHECK:       # %bb.0:987; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp993  ret <2 x i1> %1994}995 996define <2 x i1> @fcmps_une_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {997; CHECK-LABEL: fcmps_une_vf_v2f16:998; CHECK:       # %bb.0:999; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 01005  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer1006  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp1007  ret <2 x i1> %11008}1009 1010define <2 x i1> @fcmps_une_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {1011; CHECK-LABEL: fcmps_une_fv_v2f16:1012; CHECK:       # %bb.0:1013; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 01019  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer1020  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp1021  ret <2 x i1> %11022}1023 1024define <2 x i1> @fcmps_uno_vv_v2f16(<2 x half> %va, <2 x half> %vb) nounwind strictfp {1025; CHECK-LABEL: fcmps_uno_vv_v2f16:1026; CHECK:       # %bb.0:1027; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp1034  ret <2 x i1> %11035}1036 1037define <2 x i1> @fcmps_uno_vf_v2f16(<2 x half> %va, half %b) nounwind strictfp {1038; CHECK-LABEL: fcmps_uno_vf_v2f16:1039; CHECK:       # %bb.0:1040; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 01048  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer1049  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %va, <2 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp1050  ret <2 x i1> %11051}1052 1053define <2 x i1> @fcmps_uno_fv_v2f16(<2 x half> %va, half %b) nounwind strictfp {1054; CHECK-LABEL: fcmps_uno_fv_v2f16:1055; CHECK:       # %bb.0:1056; CHECK-NEXT:    vsetivli zero, 2, e16, mf4, 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 <2 x half> poison, half %b, i32 01064  %splat = shufflevector <2 x half> %head, <2 x half> poison, <2 x i32> zeroinitializer1065  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f16(<2 x half> %splat, <2 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp1066  ret <2 x i1> %11067}1068 1069define <4 x i1> @fcmps_oeq_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1070; CHECK-LABEL: fcmps_oeq_vv_v4f16:1071; CHECK:       # %bb.0:1072; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp1078  ret <4 x i1> %11079}1080 1081define <4 x i1> @fcmps_oeq_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1082; CHECK-LABEL: fcmps_oeq_vf_v4f16:1083; CHECK:       # %bb.0:1084; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01090  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1091  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp1092  ret <4 x i1> %11093}1094 1095define <4 x i1> @fcmps_oeq_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1096; CHECK-LABEL: fcmps_oeq_fv_v4f16:1097; CHECK:       # %bb.0:1098; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01104  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1105  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp1106  ret <4 x i1> %11107}1108 1109define <4 x i1> @fcmps_ogt_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1110; CHECK-LABEL: fcmps_ogt_vv_v4f16:1111; CHECK:       # %bb.0:1112; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1113; CHECK-NEXT:    vmflt.vv v0, v9, v81114; CHECK-NEXT:    ret1115  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp1116  ret <4 x i1> %11117}1118 1119define <4 x i1> @fcmps_ogt_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1120; CHECK-LABEL: fcmps_ogt_vf_v4f16:1121; CHECK:       # %bb.0:1122; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1123; CHECK-NEXT:    vmfgt.vf v0, v8, fa01124; CHECK-NEXT:    ret1125  %head = insertelement <4 x half> poison, half %b, i32 01126  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1127  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp1128  ret <4 x i1> %11129}1130 1131define <4 x i1> @fcmps_ogt_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1132; CHECK-LABEL: fcmps_ogt_fv_v4f16:1133; CHECK:       # %bb.0:1134; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1135; CHECK-NEXT:    vmflt.vf v0, v8, fa01136; CHECK-NEXT:    ret1137  %head = insertelement <4 x half> poison, half %b, i32 01138  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1139  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp1140  ret <4 x i1> %11141}1142 1143define <4 x i1> @fcmps_oge_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1144; CHECK-LABEL: fcmps_oge_vv_v4f16:1145; CHECK:       # %bb.0:1146; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1147; CHECK-NEXT:    vmfle.vv v0, v9, v81148; CHECK-NEXT:    ret1149  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp1150  ret <4 x i1> %11151}1152 1153define <4 x i1> @fcmps_oge_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1154; CHECK-LABEL: fcmps_oge_vf_v4f16:1155; CHECK:       # %bb.0:1156; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1157; CHECK-NEXT:    vmfge.vf v0, v8, fa01158; CHECK-NEXT:    ret1159  %head = insertelement <4 x half> poison, half %b, i32 01160  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1161  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp1162  ret <4 x i1> %11163}1164 1165define <4 x i1> @fcmps_oge_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1166; CHECK-LABEL: fcmps_oge_fv_v4f16:1167; CHECK:       # %bb.0:1168; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1169; CHECK-NEXT:    vmfle.vf v0, v8, fa01170; CHECK-NEXT:    ret1171  %head = insertelement <4 x half> poison, half %b, i32 01172  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1173  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp1174  ret <4 x i1> %11175}1176 1177define <4 x i1> @fcmps_olt_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1178; CHECK-LABEL: fcmps_olt_vv_v4f16:1179; CHECK:       # %bb.0:1180; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1181; CHECK-NEXT:    vmflt.vv v0, v8, v91182; CHECK-NEXT:    ret1183  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp1184  ret <4 x i1> %11185}1186 1187define <4 x i1> @fcmps_olt_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1188; CHECK-LABEL: fcmps_olt_vf_v4f16:1189; CHECK:       # %bb.0:1190; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1191; CHECK-NEXT:    vmflt.vf v0, v8, fa01192; CHECK-NEXT:    ret1193  %head = insertelement <4 x half> poison, half %b, i32 01194  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1195  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp1196  ret <4 x i1> %11197}1198 1199define <4 x i1> @fcmps_olt_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1200; CHECK-LABEL: fcmps_olt_fv_v4f16:1201; CHECK:       # %bb.0:1202; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1203; CHECK-NEXT:    vmfgt.vf v0, v8, fa01204; CHECK-NEXT:    ret1205  %head = insertelement <4 x half> poison, half %b, i32 01206  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1207  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp1208  ret <4 x i1> %11209}1210 1211define <4 x i1> @fcmps_ole_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1212; CHECK-LABEL: fcmps_ole_vv_v4f16:1213; CHECK:       # %bb.0:1214; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1215; CHECK-NEXT:    vmfle.vv v0, v8, v91216; CHECK-NEXT:    ret1217  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp1218  ret <4 x i1> %11219}1220 1221define <4 x i1> @fcmps_ole_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1222; CHECK-LABEL: fcmps_ole_vf_v4f16:1223; CHECK:       # %bb.0:1224; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1225; CHECK-NEXT:    vmfle.vf v0, v8, fa01226; CHECK-NEXT:    ret1227  %head = insertelement <4 x half> poison, half %b, i32 01228  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1229  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp1230  ret <4 x i1> %11231}1232 1233define <4 x i1> @fcmps_ole_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1234; CHECK-LABEL: fcmps_ole_fv_v4f16:1235; CHECK:       # %bb.0:1236; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1237; CHECK-NEXT:    vmfge.vf v0, v8, fa01238; CHECK-NEXT:    ret1239  %head = insertelement <4 x half> poison, half %b, i32 01240  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1241  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp1242  ret <4 x i1> %11243}1244 1245define <4 x i1> @fcmps_one_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1246; CHECK-LABEL: fcmps_one_vv_v4f16:1247; CHECK:       # %bb.0:1248; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp1254  ret <4 x i1> %11255}1256 1257define <4 x i1> @fcmps_one_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1258; CHECK-LABEL: fcmps_one_vf_v4f16:1259; CHECK:       # %bb.0:1260; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01266  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1267  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp1268  ret <4 x i1> %11269}1270 1271define <4 x i1> @fcmps_one_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1272; CHECK-LABEL: fcmps_one_fv_v4f16:1273; CHECK:       # %bb.0:1274; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01280  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1281  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp1282  ret <4 x i1> %11283}1284 1285define <4 x i1> @fcmps_ord_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1286; CHECK-LABEL: fcmps_ord_vv_v4f16:1287; CHECK:       # %bb.0:1288; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp1294  ret <4 x i1> %11295}1296 1297define <4 x i1> @fcmps_ord_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1298; CHECK-LABEL: fcmps_ord_vf_v4f16:1299; CHECK:       # %bb.0:1300; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01307  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1308  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp1309  ret <4 x i1> %11310}1311 1312define <4 x i1> @fcmps_ord_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1313; CHECK-LABEL: fcmps_ord_fv_v4f16:1314; CHECK:       # %bb.0:1315; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01322  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1323  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp1324  ret <4 x i1> %11325}1326 1327define <4 x i1> @fcmps_ueq_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1328; CHECK-LABEL: fcmps_ueq_vv_v4f16:1329; CHECK:       # %bb.0:1330; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp1336  ret <4 x i1> %11337}1338 1339define <4 x i1> @fcmps_ueq_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1340; CHECK-LABEL: fcmps_ueq_vf_v4f16:1341; CHECK:       # %bb.0:1342; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01348  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1349  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp1350  ret <4 x i1> %11351}1352 1353define <4 x i1> @fcmps_ueq_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1354; CHECK-LABEL: fcmps_ueq_fv_v4f16:1355; CHECK:       # %bb.0:1356; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01362  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1363  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp1364  ret <4 x i1> %11365}1366 1367define <4 x i1> @fcmps_ugt_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1368; CHECK-LABEL: fcmps_ugt_vv_v4f16:1369; CHECK:       # %bb.0:1370; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1371; CHECK-NEXT:    vmfle.vv v8, v8, v91372; CHECK-NEXT:    vmnot.m v0, v81373; CHECK-NEXT:    ret1374  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp1375  ret <4 x i1> %11376}1377 1378define <4 x i1> @fcmps_ugt_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1379; CHECK-LABEL: fcmps_ugt_vf_v4f16:1380; CHECK:       # %bb.0:1381; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1382; CHECK-NEXT:    vmfle.vf v8, v8, fa01383; CHECK-NEXT:    vmnot.m v0, v81384; CHECK-NEXT:    ret1385  %head = insertelement <4 x half> poison, half %b, i32 01386  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1387  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp1388  ret <4 x i1> %11389}1390 1391define <4 x i1> @fcmps_ugt_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1392; CHECK-LABEL: fcmps_ugt_fv_v4f16:1393; CHECK:       # %bb.0:1394; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1395; CHECK-NEXT:    vmfge.vf v8, v8, fa01396; CHECK-NEXT:    vmnot.m v0, v81397; CHECK-NEXT:    ret1398  %head = insertelement <4 x half> poison, half %b, i32 01399  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1400  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp1401  ret <4 x i1> %11402}1403 1404define <4 x i1> @fcmps_uge_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1405; CHECK-LABEL: fcmps_uge_vv_v4f16:1406; CHECK:       # %bb.0:1407; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1408; CHECK-NEXT:    vmflt.vv v8, v8, v91409; CHECK-NEXT:    vmnot.m v0, v81410; CHECK-NEXT:    ret1411  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp1412  ret <4 x i1> %11413}1414 1415define <4 x i1> @fcmps_uge_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1416; CHECK-LABEL: fcmps_uge_vf_v4f16:1417; CHECK:       # %bb.0:1418; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1419; CHECK-NEXT:    vmflt.vf v8, v8, fa01420; CHECK-NEXT:    vmnot.m v0, v81421; CHECK-NEXT:    ret1422  %head = insertelement <4 x half> poison, half %b, i32 01423  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1424  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp1425  ret <4 x i1> %11426}1427 1428define <4 x i1> @fcmps_uge_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1429; CHECK-LABEL: fcmps_uge_fv_v4f16:1430; CHECK:       # %bb.0:1431; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1432; CHECK-NEXT:    vmfgt.vf v8, v8, fa01433; CHECK-NEXT:    vmnot.m v0, v81434; CHECK-NEXT:    ret1435  %head = insertelement <4 x half> poison, half %b, i32 01436  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1437  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp1438  ret <4 x i1> %11439}1440 1441define <4 x i1> @fcmps_ult_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1442; CHECK-LABEL: fcmps_ult_vv_v4f16:1443; CHECK:       # %bb.0:1444; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1445; CHECK-NEXT:    vmfle.vv v8, v9, v81446; CHECK-NEXT:    vmnot.m v0, v81447; CHECK-NEXT:    ret1448  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp1449  ret <4 x i1> %11450}1451 1452define <4 x i1> @fcmps_ult_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1453; CHECK-LABEL: fcmps_ult_vf_v4f16:1454; CHECK:       # %bb.0:1455; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1456; CHECK-NEXT:    vmfge.vf v8, v8, fa01457; CHECK-NEXT:    vmnot.m v0, v81458; CHECK-NEXT:    ret1459  %head = insertelement <4 x half> poison, half %b, i32 01460  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1461  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp1462  ret <4 x i1> %11463}1464 1465define <4 x i1> @fcmps_ult_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1466; CHECK-LABEL: fcmps_ult_fv_v4f16:1467; CHECK:       # %bb.0:1468; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1469; CHECK-NEXT:    vmfle.vf v8, v8, fa01470; CHECK-NEXT:    vmnot.m v0, v81471; CHECK-NEXT:    ret1472  %head = insertelement <4 x half> poison, half %b, i32 01473  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1474  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp1475  ret <4 x i1> %11476}1477 1478define <4 x i1> @fcmps_ule_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1479; CHECK-LABEL: fcmps_ule_vv_v4f16:1480; CHECK:       # %bb.0:1481; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1482; CHECK-NEXT:    vmflt.vv v8, v9, v81483; CHECK-NEXT:    vmnot.m v0, v81484; CHECK-NEXT:    ret1485  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp1486  ret <4 x i1> %11487}1488 1489define <4 x i1> @fcmps_ule_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1490; CHECK-LABEL: fcmps_ule_vf_v4f16:1491; CHECK:       # %bb.0:1492; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1493; CHECK-NEXT:    vmfgt.vf v8, v8, fa01494; CHECK-NEXT:    vmnot.m v0, v81495; CHECK-NEXT:    ret1496  %head = insertelement <4 x half> poison, half %b, i32 01497  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1498  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp1499  ret <4 x i1> %11500}1501 1502define <4 x i1> @fcmps_ule_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1503; CHECK-LABEL: fcmps_ule_fv_v4f16:1504; CHECK:       # %bb.0:1505; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma1506; CHECK-NEXT:    vmflt.vf v8, v8, fa01507; CHECK-NEXT:    vmnot.m v0, v81508; CHECK-NEXT:    ret1509  %head = insertelement <4 x half> poison, half %b, i32 01510  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1511  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp1512  ret <4 x i1> %11513}1514 1515define <4 x i1> @fcmps_une_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1516; CHECK-LABEL: fcmps_une_vv_v4f16:1517; CHECK:       # %bb.0:1518; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp1524  ret <4 x i1> %11525}1526 1527define <4 x i1> @fcmps_une_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1528; CHECK-LABEL: fcmps_une_vf_v4f16:1529; CHECK:       # %bb.0:1530; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01536  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1537  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp1538  ret <4 x i1> %11539}1540 1541define <4 x i1> @fcmps_une_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1542; CHECK-LABEL: fcmps_une_fv_v4f16:1543; CHECK:       # %bb.0:1544; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01550  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1551  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp1552  ret <4 x i1> %11553}1554 1555define <4 x i1> @fcmps_uno_vv_v4f16(<4 x half> %va, <4 x half> %vb) nounwind strictfp {1556; CHECK-LABEL: fcmps_uno_vv_v4f16:1557; CHECK:       # %bb.0:1558; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp1565  ret <4 x i1> %11566}1567 1568define <4 x i1> @fcmps_uno_vf_v4f16(<4 x half> %va, half %b) nounwind strictfp {1569; CHECK-LABEL: fcmps_uno_vf_v4f16:1570; CHECK:       # %bb.0:1571; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01579  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1580  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %va, <4 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp1581  ret <4 x i1> %11582}1583 1584define <4 x i1> @fcmps_uno_fv_v4f16(<4 x half> %va, half %b) nounwind strictfp {1585; CHECK-LABEL: fcmps_uno_fv_v4f16:1586; CHECK:       # %bb.0:1587; CHECK-NEXT:    vsetivli zero, 4, e16, mf2, 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 <4 x half> poison, half %b, i32 01595  %splat = shufflevector <4 x half> %head, <4 x half> poison, <4 x i32> zeroinitializer1596  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f16(<4 x half> %splat, <4 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp1597  ret <4 x i1> %11598}1599 1600define <8 x i1> @fcmps_oeq_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1601; CHECK-LABEL: fcmps_oeq_vv_v8f16:1602; CHECK:       # %bb.0:1603; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1604; CHECK-NEXT:    vmfle.vv v10, v9, v81605; CHECK-NEXT:    vmfle.vv v8, v8, v91606; CHECK-NEXT:    vmand.mm v0, v8, v101607; CHECK-NEXT:    ret1608  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp1609  ret <8 x i1> %11610}1611 1612define <8 x i1> @fcmps_oeq_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1613; CHECK-LABEL: fcmps_oeq_vf_v8f16:1614; CHECK:       # %bb.0:1615; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1616; CHECK-NEXT:    vmfge.vf v9, v8, fa01617; CHECK-NEXT:    vmfle.vf v8, v8, fa01618; CHECK-NEXT:    vmand.mm v0, v8, v91619; CHECK-NEXT:    ret1620  %head = insertelement <8 x half> poison, half %b, i32 01621  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1622  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp1623  ret <8 x i1> %11624}1625 1626define <8 x i1> @fcmps_oeq_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1627; CHECK-LABEL: fcmps_oeq_fv_v8f16:1628; CHECK:       # %bb.0:1629; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1630; CHECK-NEXT:    vmfle.vf v9, v8, fa01631; CHECK-NEXT:    vmfge.vf v8, v8, fa01632; CHECK-NEXT:    vmand.mm v0, v8, v91633; CHECK-NEXT:    ret1634  %head = insertelement <8 x half> poison, half %b, i32 01635  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1636  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp1637  ret <8 x i1> %11638}1639 1640define <8 x i1> @fcmps_ogt_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1641; CHECK-LABEL: fcmps_ogt_vv_v8f16:1642; CHECK:       # %bb.0:1643; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1644; CHECK-NEXT:    vmflt.vv v0, v9, v81645; CHECK-NEXT:    ret1646  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp1647  ret <8 x i1> %11648}1649 1650define <8 x i1> @fcmps_ogt_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1651; CHECK-LABEL: fcmps_ogt_vf_v8f16:1652; CHECK:       # %bb.0:1653; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1654; CHECK-NEXT:    vmfgt.vf v0, v8, fa01655; CHECK-NEXT:    ret1656  %head = insertelement <8 x half> poison, half %b, i32 01657  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1658  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp1659  ret <8 x i1> %11660}1661 1662define <8 x i1> @fcmps_ogt_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1663; CHECK-LABEL: fcmps_ogt_fv_v8f16:1664; CHECK:       # %bb.0:1665; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1666; CHECK-NEXT:    vmflt.vf v0, v8, fa01667; CHECK-NEXT:    ret1668  %head = insertelement <8 x half> poison, half %b, i32 01669  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1670  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp1671  ret <8 x i1> %11672}1673 1674define <8 x i1> @fcmps_oge_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1675; CHECK-LABEL: fcmps_oge_vv_v8f16:1676; CHECK:       # %bb.0:1677; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1678; CHECK-NEXT:    vmfle.vv v0, v9, v81679; CHECK-NEXT:    ret1680  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp1681  ret <8 x i1> %11682}1683 1684define <8 x i1> @fcmps_oge_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1685; CHECK-LABEL: fcmps_oge_vf_v8f16:1686; CHECK:       # %bb.0:1687; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1688; CHECK-NEXT:    vmfge.vf v0, v8, fa01689; CHECK-NEXT:    ret1690  %head = insertelement <8 x half> poison, half %b, i32 01691  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1692  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp1693  ret <8 x i1> %11694}1695 1696define <8 x i1> @fcmps_oge_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1697; CHECK-LABEL: fcmps_oge_fv_v8f16:1698; CHECK:       # %bb.0:1699; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1700; CHECK-NEXT:    vmfle.vf v0, v8, fa01701; CHECK-NEXT:    ret1702  %head = insertelement <8 x half> poison, half %b, i32 01703  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1704  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp1705  ret <8 x i1> %11706}1707 1708define <8 x i1> @fcmps_olt_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1709; CHECK-LABEL: fcmps_olt_vv_v8f16:1710; CHECK:       # %bb.0:1711; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1712; CHECK-NEXT:    vmflt.vv v0, v8, v91713; CHECK-NEXT:    ret1714  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp1715  ret <8 x i1> %11716}1717 1718define <8 x i1> @fcmps_olt_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1719; CHECK-LABEL: fcmps_olt_vf_v8f16:1720; CHECK:       # %bb.0:1721; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1722; CHECK-NEXT:    vmflt.vf v0, v8, fa01723; CHECK-NEXT:    ret1724  %head = insertelement <8 x half> poison, half %b, i32 01725  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1726  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp1727  ret <8 x i1> %11728}1729 1730define <8 x i1> @fcmps_olt_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1731; CHECK-LABEL: fcmps_olt_fv_v8f16:1732; CHECK:       # %bb.0:1733; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1734; CHECK-NEXT:    vmfgt.vf v0, v8, fa01735; CHECK-NEXT:    ret1736  %head = insertelement <8 x half> poison, half %b, i32 01737  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1738  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp1739  ret <8 x i1> %11740}1741 1742define <8 x i1> @fcmps_ole_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1743; CHECK-LABEL: fcmps_ole_vv_v8f16:1744; CHECK:       # %bb.0:1745; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1746; CHECK-NEXT:    vmfle.vv v0, v8, v91747; CHECK-NEXT:    ret1748  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp1749  ret <8 x i1> %11750}1751 1752define <8 x i1> @fcmps_ole_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1753; CHECK-LABEL: fcmps_ole_vf_v8f16:1754; CHECK:       # %bb.0:1755; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1756; CHECK-NEXT:    vmfle.vf v0, v8, fa01757; CHECK-NEXT:    ret1758  %head = insertelement <8 x half> poison, half %b, i32 01759  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1760  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp1761  ret <8 x i1> %11762}1763 1764define <8 x i1> @fcmps_ole_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1765; CHECK-LABEL: fcmps_ole_fv_v8f16:1766; CHECK:       # %bb.0:1767; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1768; CHECK-NEXT:    vmfge.vf v0, v8, fa01769; CHECK-NEXT:    ret1770  %head = insertelement <8 x half> poison, half %b, i32 01771  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1772  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp1773  ret <8 x i1> %11774}1775 1776define <8 x i1> @fcmps_one_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1777; CHECK-LABEL: fcmps_one_vv_v8f16:1778; CHECK:       # %bb.0:1779; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1780; CHECK-NEXT:    vmflt.vv v10, v8, v91781; CHECK-NEXT:    vmflt.vv v8, v9, v81782; CHECK-NEXT:    vmor.mm v0, v8, v101783; CHECK-NEXT:    ret1784  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp1785  ret <8 x i1> %11786}1787 1788define <8 x i1> @fcmps_one_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1789; CHECK-LABEL: fcmps_one_vf_v8f16:1790; CHECK:       # %bb.0:1791; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1792; CHECK-NEXT:    vmflt.vf v9, v8, fa01793; CHECK-NEXT:    vmfgt.vf v8, v8, fa01794; CHECK-NEXT:    vmor.mm v0, v8, v91795; CHECK-NEXT:    ret1796  %head = insertelement <8 x half> poison, half %b, i32 01797  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1798  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp1799  ret <8 x i1> %11800}1801 1802define <8 x i1> @fcmps_one_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1803; CHECK-LABEL: fcmps_one_fv_v8f16:1804; CHECK:       # %bb.0:1805; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1806; CHECK-NEXT:    vmfgt.vf v9, v8, fa01807; CHECK-NEXT:    vmflt.vf v8, v8, fa01808; CHECK-NEXT:    vmor.mm v0, v8, v91809; CHECK-NEXT:    ret1810  %head = insertelement <8 x half> poison, half %b, i32 01811  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1812  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp1813  ret <8 x i1> %11814}1815 1816define <8 x i1> @fcmps_ord_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1817; CHECK-LABEL: fcmps_ord_vv_v8f16:1818; CHECK:       # %bb.0:1819; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1820; CHECK-NEXT:    vmfle.vv v9, v9, v91821; CHECK-NEXT:    vmfle.vv v8, v8, v81822; CHECK-NEXT:    vmand.mm v0, v8, v91823; CHECK-NEXT:    ret1824  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp1825  ret <8 x i1> %11826}1827 1828define <8 x i1> @fcmps_ord_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1829; CHECK-LABEL: fcmps_ord_vf_v8f16:1830; CHECK:       # %bb.0:1831; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1832; CHECK-NEXT:    vfmv.v.f v9, fa01833; CHECK-NEXT:    vmfle.vf v9, v9, fa01834; CHECK-NEXT:    vmfle.vv v8, v8, v81835; CHECK-NEXT:    vmand.mm v0, v8, v91836; CHECK-NEXT:    ret1837  %head = insertelement <8 x half> poison, half %b, i32 01838  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1839  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp1840  ret <8 x i1> %11841}1842 1843define <8 x i1> @fcmps_ord_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1844; CHECK-LABEL: fcmps_ord_fv_v8f16:1845; CHECK:       # %bb.0:1846; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1847; CHECK-NEXT:    vfmv.v.f v9, fa01848; CHECK-NEXT:    vmfle.vf v9, v9, fa01849; CHECK-NEXT:    vmfle.vv v8, v8, v81850; CHECK-NEXT:    vmand.mm v0, v9, v81851; CHECK-NEXT:    ret1852  %head = insertelement <8 x half> poison, half %b, i32 01853  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1854  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp1855  ret <8 x i1> %11856}1857 1858define <8 x i1> @fcmps_ueq_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1859; CHECK-LABEL: fcmps_ueq_vv_v8f16:1860; CHECK:       # %bb.0:1861; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1862; CHECK-NEXT:    vmflt.vv v10, v8, v91863; CHECK-NEXT:    vmflt.vv v8, v9, v81864; CHECK-NEXT:    vmnor.mm v0, v8, v101865; CHECK-NEXT:    ret1866  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp1867  ret <8 x i1> %11868}1869 1870define <8 x i1> @fcmps_ueq_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1871; CHECK-LABEL: fcmps_ueq_vf_v8f16:1872; CHECK:       # %bb.0:1873; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1874; CHECK-NEXT:    vmflt.vf v9, v8, fa01875; CHECK-NEXT:    vmfgt.vf v8, v8, fa01876; CHECK-NEXT:    vmnor.mm v0, v8, v91877; CHECK-NEXT:    ret1878  %head = insertelement <8 x half> poison, half %b, i32 01879  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1880  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp1881  ret <8 x i1> %11882}1883 1884define <8 x i1> @fcmps_ueq_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1885; CHECK-LABEL: fcmps_ueq_fv_v8f16:1886; CHECK:       # %bb.0:1887; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1888; CHECK-NEXT:    vmfgt.vf v9, v8, fa01889; CHECK-NEXT:    vmflt.vf v8, v8, fa01890; CHECK-NEXT:    vmnor.mm v0, v8, v91891; CHECK-NEXT:    ret1892  %head = insertelement <8 x half> poison, half %b, i32 01893  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1894  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp1895  ret <8 x i1> %11896}1897 1898define <8 x i1> @fcmps_ugt_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1899; CHECK-LABEL: fcmps_ugt_vv_v8f16:1900; CHECK:       # %bb.0:1901; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1902; CHECK-NEXT:    vmfle.vv v8, v8, v91903; CHECK-NEXT:    vmnot.m v0, v81904; CHECK-NEXT:    ret1905  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp1906  ret <8 x i1> %11907}1908 1909define <8 x i1> @fcmps_ugt_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1910; CHECK-LABEL: fcmps_ugt_vf_v8f16:1911; CHECK:       # %bb.0:1912; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1913; CHECK-NEXT:    vmfle.vf v8, v8, fa01914; CHECK-NEXT:    vmnot.m v0, v81915; CHECK-NEXT:    ret1916  %head = insertelement <8 x half> poison, half %b, i32 01917  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1918  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp1919  ret <8 x i1> %11920}1921 1922define <8 x i1> @fcmps_ugt_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1923; CHECK-LABEL: fcmps_ugt_fv_v8f16:1924; CHECK:       # %bb.0:1925; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1926; CHECK-NEXT:    vmfge.vf v8, v8, fa01927; CHECK-NEXT:    vmnot.m v0, v81928; CHECK-NEXT:    ret1929  %head = insertelement <8 x half> poison, half %b, i32 01930  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1931  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp1932  ret <8 x i1> %11933}1934 1935define <8 x i1> @fcmps_uge_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1936; CHECK-LABEL: fcmps_uge_vv_v8f16:1937; CHECK:       # %bb.0:1938; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1939; CHECK-NEXT:    vmflt.vv v8, v8, v91940; CHECK-NEXT:    vmnot.m v0, v81941; CHECK-NEXT:    ret1942  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp1943  ret <8 x i1> %11944}1945 1946define <8 x i1> @fcmps_uge_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1947; CHECK-LABEL: fcmps_uge_vf_v8f16:1948; CHECK:       # %bb.0:1949; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1950; CHECK-NEXT:    vmflt.vf v8, v8, fa01951; CHECK-NEXT:    vmnot.m v0, v81952; CHECK-NEXT:    ret1953  %head = insertelement <8 x half> poison, half %b, i32 01954  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1955  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp1956  ret <8 x i1> %11957}1958 1959define <8 x i1> @fcmps_uge_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1960; CHECK-LABEL: fcmps_uge_fv_v8f16:1961; CHECK:       # %bb.0:1962; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1963; CHECK-NEXT:    vmfgt.vf v8, v8, fa01964; CHECK-NEXT:    vmnot.m v0, v81965; CHECK-NEXT:    ret1966  %head = insertelement <8 x half> poison, half %b, i32 01967  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1968  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp1969  ret <8 x i1> %11970}1971 1972define <8 x i1> @fcmps_ult_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {1973; CHECK-LABEL: fcmps_ult_vv_v8f16:1974; CHECK:       # %bb.0:1975; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1976; CHECK-NEXT:    vmfle.vv v8, v9, v81977; CHECK-NEXT:    vmnot.m v0, v81978; CHECK-NEXT:    ret1979  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp1980  ret <8 x i1> %11981}1982 1983define <8 x i1> @fcmps_ult_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {1984; CHECK-LABEL: fcmps_ult_vf_v8f16:1985; CHECK:       # %bb.0:1986; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma1987; CHECK-NEXT:    vmfge.vf v8, v8, fa01988; CHECK-NEXT:    vmnot.m v0, v81989; CHECK-NEXT:    ret1990  %head = insertelement <8 x half> poison, half %b, i32 01991  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer1992  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp1993  ret <8 x i1> %11994}1995 1996define <8 x i1> @fcmps_ult_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {1997; CHECK-LABEL: fcmps_ult_fv_v8f16:1998; CHECK:       # %bb.0:1999; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2000; CHECK-NEXT:    vmfle.vf v8, v8, fa02001; CHECK-NEXT:    vmnot.m v0, v82002; CHECK-NEXT:    ret2003  %head = insertelement <8 x half> poison, half %b, i32 02004  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2005  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp2006  ret <8 x i1> %12007}2008 2009define <8 x i1> @fcmps_ule_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {2010; CHECK-LABEL: fcmps_ule_vv_v8f16:2011; CHECK:       # %bb.0:2012; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2013; CHECK-NEXT:    vmflt.vv v8, v9, v82014; CHECK-NEXT:    vmnot.m v0, v82015; CHECK-NEXT:    ret2016  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp2017  ret <8 x i1> %12018}2019 2020define <8 x i1> @fcmps_ule_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {2021; CHECK-LABEL: fcmps_ule_vf_v8f16:2022; CHECK:       # %bb.0:2023; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2024; CHECK-NEXT:    vmfgt.vf v8, v8, fa02025; CHECK-NEXT:    vmnot.m v0, v82026; CHECK-NEXT:    ret2027  %head = insertelement <8 x half> poison, half %b, i32 02028  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2029  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp2030  ret <8 x i1> %12031}2032 2033define <8 x i1> @fcmps_ule_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {2034; CHECK-LABEL: fcmps_ule_fv_v8f16:2035; CHECK:       # %bb.0:2036; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2037; CHECK-NEXT:    vmflt.vf v8, v8, fa02038; CHECK-NEXT:    vmnot.m v0, v82039; CHECK-NEXT:    ret2040  %head = insertelement <8 x half> poison, half %b, i32 02041  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2042  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp2043  ret <8 x i1> %12044}2045 2046define <8 x i1> @fcmps_une_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {2047; CHECK-LABEL: fcmps_une_vv_v8f16:2048; CHECK:       # %bb.0:2049; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2050; CHECK-NEXT:    vmfle.vv v10, v9, v82051; CHECK-NEXT:    vmfle.vv v8, v8, v92052; CHECK-NEXT:    vmnand.mm v0, v8, v102053; CHECK-NEXT:    ret2054  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp2055  ret <8 x i1> %12056}2057 2058define <8 x i1> @fcmps_une_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {2059; CHECK-LABEL: fcmps_une_vf_v8f16:2060; CHECK:       # %bb.0:2061; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2062; CHECK-NEXT:    vmfge.vf v9, v8, fa02063; CHECK-NEXT:    vmfle.vf v8, v8, fa02064; CHECK-NEXT:    vmnand.mm v0, v8, v92065; CHECK-NEXT:    ret2066  %head = insertelement <8 x half> poison, half %b, i32 02067  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2068  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp2069  ret <8 x i1> %12070}2071 2072define <8 x i1> @fcmps_une_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {2073; CHECK-LABEL: fcmps_une_fv_v8f16:2074; CHECK:       # %bb.0:2075; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2076; CHECK-NEXT:    vmfle.vf v9, v8, fa02077; CHECK-NEXT:    vmfge.vf v8, v8, fa02078; CHECK-NEXT:    vmnand.mm v0, v8, v92079; CHECK-NEXT:    ret2080  %head = insertelement <8 x half> poison, half %b, i32 02081  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2082  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp2083  ret <8 x i1> %12084}2085 2086define <8 x i1> @fcmps_uno_vv_v8f16(<8 x half> %va, <8 x half> %vb) nounwind strictfp {2087; CHECK-LABEL: fcmps_uno_vv_v8f16:2088; CHECK:       # %bb.0:2089; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2090; CHECK-NEXT:    vmfle.vv v9, v9, v92091; CHECK-NEXT:    vmfle.vv v8, v8, v82092; CHECK-NEXT:    vmnot.m v8, v82093; CHECK-NEXT:    vmorn.mm v0, v8, v92094; CHECK-NEXT:    ret2095  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp2096  ret <8 x i1> %12097}2098 2099define <8 x i1> @fcmps_uno_vf_v8f16(<8 x half> %va, half %b) nounwind strictfp {2100; CHECK-LABEL: fcmps_uno_vf_v8f16:2101; CHECK:       # %bb.0:2102; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2103; CHECK-NEXT:    vfmv.v.f v9, fa02104; CHECK-NEXT:    vmfle.vv v8, v8, v82105; CHECK-NEXT:    vmfle.vf v9, v9, fa02106; CHECK-NEXT:    vmnot.m v8, v82107; CHECK-NEXT:    vmorn.mm v0, v8, v92108; CHECK-NEXT:    ret2109  %head = insertelement <8 x half> poison, half %b, i32 02110  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2111  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %va, <8 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp2112  ret <8 x i1> %12113}2114 2115define <8 x i1> @fcmps_uno_fv_v8f16(<8 x half> %va, half %b) nounwind strictfp {2116; CHECK-LABEL: fcmps_uno_fv_v8f16:2117; CHECK:       # %bb.0:2118; CHECK-NEXT:    vsetivli zero, 8, e16, m1, ta, ma2119; CHECK-NEXT:    vfmv.v.f v9, fa02120; CHECK-NEXT:    vmfle.vf v9, v9, fa02121; CHECK-NEXT:    vmnot.m v9, v92122; CHECK-NEXT:    vmfle.vv v8, v8, v82123; CHECK-NEXT:    vmorn.mm v0, v9, v82124; CHECK-NEXT:    ret2125  %head = insertelement <8 x half> poison, half %b, i32 02126  %splat = shufflevector <8 x half> %head, <8 x half> poison, <8 x i32> zeroinitializer2127  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f16(<8 x half> %splat, <8 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp2128  ret <8 x i1> %12129}2130 2131define <16 x i1> @fcmps_oeq_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2132; CHECK-LABEL: fcmps_oeq_vv_v16f16:2133; CHECK:       # %bb.0:2134; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2135; CHECK-NEXT:    vmfle.vv v12, v10, v82136; CHECK-NEXT:    vmfle.vv v13, v8, v102137; CHECK-NEXT:    vmand.mm v0, v13, v122138; CHECK-NEXT:    ret2139  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp2140  ret <16 x i1> %12141}2142 2143define <16 x i1> @fcmps_oeq_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2144; CHECK-LABEL: fcmps_oeq_vf_v16f16:2145; CHECK:       # %bb.0:2146; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2147; CHECK-NEXT:    vmfge.vf v10, v8, fa02148; CHECK-NEXT:    vmfle.vf v11, v8, fa02149; CHECK-NEXT:    vmand.mm v0, v11, v102150; CHECK-NEXT:    ret2151  %head = insertelement <16 x half> poison, half %b, i32 02152  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2153  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp2154  ret <16 x i1> %12155}2156 2157define <16 x i1> @fcmps_oeq_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2158; CHECK-LABEL: fcmps_oeq_fv_v16f16:2159; CHECK:       # %bb.0:2160; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2161; CHECK-NEXT:    vmfle.vf v10, v8, fa02162; CHECK-NEXT:    vmfge.vf v11, v8, fa02163; CHECK-NEXT:    vmand.mm v0, v11, v102164; CHECK-NEXT:    ret2165  %head = insertelement <16 x half> poison, half %b, i32 02166  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2167  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp2168  ret <16 x i1> %12169}2170 2171define <16 x i1> @fcmps_ogt_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2172; CHECK-LABEL: fcmps_ogt_vv_v16f16:2173; CHECK:       # %bb.0:2174; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2175; CHECK-NEXT:    vmflt.vv v0, v10, v82176; CHECK-NEXT:    ret2177  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp2178  ret <16 x i1> %12179}2180 2181define <16 x i1> @fcmps_ogt_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2182; CHECK-LABEL: fcmps_ogt_vf_v16f16:2183; CHECK:       # %bb.0:2184; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2185; CHECK-NEXT:    vmfgt.vf v0, v8, fa02186; CHECK-NEXT:    ret2187  %head = insertelement <16 x half> poison, half %b, i32 02188  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2189  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp2190  ret <16 x i1> %12191}2192 2193define <16 x i1> @fcmps_ogt_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2194; CHECK-LABEL: fcmps_ogt_fv_v16f16:2195; CHECK:       # %bb.0:2196; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2197; CHECK-NEXT:    vmflt.vf v0, v8, fa02198; CHECK-NEXT:    ret2199  %head = insertelement <16 x half> poison, half %b, i32 02200  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2201  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp2202  ret <16 x i1> %12203}2204 2205define <16 x i1> @fcmps_oge_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2206; CHECK-LABEL: fcmps_oge_vv_v16f16:2207; CHECK:       # %bb.0:2208; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2209; CHECK-NEXT:    vmfle.vv v0, v10, v82210; CHECK-NEXT:    ret2211  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp2212  ret <16 x i1> %12213}2214 2215define <16 x i1> @fcmps_oge_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2216; CHECK-LABEL: fcmps_oge_vf_v16f16:2217; CHECK:       # %bb.0:2218; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2219; CHECK-NEXT:    vmfge.vf v0, v8, fa02220; CHECK-NEXT:    ret2221  %head = insertelement <16 x half> poison, half %b, i32 02222  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2223  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp2224  ret <16 x i1> %12225}2226 2227define <16 x i1> @fcmps_oge_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2228; CHECK-LABEL: fcmps_oge_fv_v16f16:2229; CHECK:       # %bb.0:2230; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2231; CHECK-NEXT:    vmfle.vf v0, v8, fa02232; CHECK-NEXT:    ret2233  %head = insertelement <16 x half> poison, half %b, i32 02234  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2235  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp2236  ret <16 x i1> %12237}2238 2239define <16 x i1> @fcmps_olt_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2240; CHECK-LABEL: fcmps_olt_vv_v16f16:2241; CHECK:       # %bb.0:2242; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2243; CHECK-NEXT:    vmflt.vv v0, v8, v102244; CHECK-NEXT:    ret2245  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp2246  ret <16 x i1> %12247}2248 2249define <16 x i1> @fcmps_olt_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2250; CHECK-LABEL: fcmps_olt_vf_v16f16:2251; CHECK:       # %bb.0:2252; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2253; CHECK-NEXT:    vmflt.vf v0, v8, fa02254; CHECK-NEXT:    ret2255  %head = insertelement <16 x half> poison, half %b, i32 02256  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2257  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp2258  ret <16 x i1> %12259}2260 2261define <16 x i1> @fcmps_olt_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2262; CHECK-LABEL: fcmps_olt_fv_v16f16:2263; CHECK:       # %bb.0:2264; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2265; CHECK-NEXT:    vmfgt.vf v0, v8, fa02266; CHECK-NEXT:    ret2267  %head = insertelement <16 x half> poison, half %b, i32 02268  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2269  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp2270  ret <16 x i1> %12271}2272 2273define <16 x i1> @fcmps_ole_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2274; CHECK-LABEL: fcmps_ole_vv_v16f16:2275; CHECK:       # %bb.0:2276; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2277; CHECK-NEXT:    vmfle.vv v0, v8, v102278; CHECK-NEXT:    ret2279  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp2280  ret <16 x i1> %12281}2282 2283define <16 x i1> @fcmps_ole_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2284; CHECK-LABEL: fcmps_ole_vf_v16f16:2285; CHECK:       # %bb.0:2286; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2287; CHECK-NEXT:    vmfle.vf v0, v8, fa02288; CHECK-NEXT:    ret2289  %head = insertelement <16 x half> poison, half %b, i32 02290  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2291  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp2292  ret <16 x i1> %12293}2294 2295define <16 x i1> @fcmps_ole_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2296; CHECK-LABEL: fcmps_ole_fv_v16f16:2297; CHECK:       # %bb.0:2298; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2299; CHECK-NEXT:    vmfge.vf v0, v8, fa02300; CHECK-NEXT:    ret2301  %head = insertelement <16 x half> poison, half %b, i32 02302  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2303  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp2304  ret <16 x i1> %12305}2306 2307define <16 x i1> @fcmps_one_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2308; CHECK-LABEL: fcmps_one_vv_v16f16:2309; CHECK:       # %bb.0:2310; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2311; CHECK-NEXT:    vmflt.vv v12, v8, v102312; CHECK-NEXT:    vmflt.vv v13, v10, v82313; CHECK-NEXT:    vmor.mm v0, v13, v122314; CHECK-NEXT:    ret2315  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp2316  ret <16 x i1> %12317}2318 2319define <16 x i1> @fcmps_one_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2320; CHECK-LABEL: fcmps_one_vf_v16f16:2321; CHECK:       # %bb.0:2322; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2323; CHECK-NEXT:    vmflt.vf v10, v8, fa02324; CHECK-NEXT:    vmfgt.vf v11, v8, fa02325; CHECK-NEXT:    vmor.mm v0, v11, v102326; CHECK-NEXT:    ret2327  %head = insertelement <16 x half> poison, half %b, i32 02328  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2329  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp2330  ret <16 x i1> %12331}2332 2333define <16 x i1> @fcmps_one_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2334; CHECK-LABEL: fcmps_one_fv_v16f16:2335; CHECK:       # %bb.0:2336; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2337; CHECK-NEXT:    vmfgt.vf v10, v8, fa02338; CHECK-NEXT:    vmflt.vf v11, v8, fa02339; CHECK-NEXT:    vmor.mm v0, v11, v102340; CHECK-NEXT:    ret2341  %head = insertelement <16 x half> poison, half %b, i32 02342  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2343  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp2344  ret <16 x i1> %12345}2346 2347define <16 x i1> @fcmps_ord_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2348; CHECK-LABEL: fcmps_ord_vv_v16f16:2349; CHECK:       # %bb.0:2350; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2351; CHECK-NEXT:    vmfle.vv v12, v10, v102352; CHECK-NEXT:    vmfle.vv v10, v8, v82353; CHECK-NEXT:    vmand.mm v0, v10, v122354; CHECK-NEXT:    ret2355  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp2356  ret <16 x i1> %12357}2358 2359define <16 x i1> @fcmps_ord_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2360; CHECK-LABEL: fcmps_ord_vf_v16f16:2361; CHECK:       # %bb.0:2362; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2363; CHECK-NEXT:    vfmv.v.f v10, fa02364; CHECK-NEXT:    vmfle.vf v12, v10, fa02365; CHECK-NEXT:    vmfle.vv v10, v8, v82366; CHECK-NEXT:    vmand.mm v0, v10, v122367; CHECK-NEXT:    ret2368  %head = insertelement <16 x half> poison, half %b, i32 02369  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2370  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp2371  ret <16 x i1> %12372}2373 2374define <16 x i1> @fcmps_ord_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2375; CHECK-LABEL: fcmps_ord_fv_v16f16:2376; CHECK:       # %bb.0:2377; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2378; CHECK-NEXT:    vfmv.v.f v10, fa02379; CHECK-NEXT:    vmfle.vf v12, v10, fa02380; CHECK-NEXT:    vmfle.vv v10, v8, v82381; CHECK-NEXT:    vmand.mm v0, v12, v102382; CHECK-NEXT:    ret2383  %head = insertelement <16 x half> poison, half %b, i32 02384  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2385  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp2386  ret <16 x i1> %12387}2388 2389define <16 x i1> @fcmps_ueq_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2390; CHECK-LABEL: fcmps_ueq_vv_v16f16:2391; CHECK:       # %bb.0:2392; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2393; CHECK-NEXT:    vmflt.vv v12, v8, v102394; CHECK-NEXT:    vmflt.vv v13, v10, v82395; CHECK-NEXT:    vmnor.mm v0, v13, v122396; CHECK-NEXT:    ret2397  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp2398  ret <16 x i1> %12399}2400 2401define <16 x i1> @fcmps_ueq_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2402; CHECK-LABEL: fcmps_ueq_vf_v16f16:2403; CHECK:       # %bb.0:2404; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2405; CHECK-NEXT:    vmflt.vf v10, v8, fa02406; CHECK-NEXT:    vmfgt.vf v11, v8, fa02407; CHECK-NEXT:    vmnor.mm v0, v11, v102408; CHECK-NEXT:    ret2409  %head = insertelement <16 x half> poison, half %b, i32 02410  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2411  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp2412  ret <16 x i1> %12413}2414 2415define <16 x i1> @fcmps_ueq_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2416; CHECK-LABEL: fcmps_ueq_fv_v16f16:2417; CHECK:       # %bb.0:2418; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2419; CHECK-NEXT:    vmfgt.vf v10, v8, fa02420; CHECK-NEXT:    vmflt.vf v11, v8, fa02421; CHECK-NEXT:    vmnor.mm v0, v11, v102422; CHECK-NEXT:    ret2423  %head = insertelement <16 x half> poison, half %b, i32 02424  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2425  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp2426  ret <16 x i1> %12427}2428 2429define <16 x i1> @fcmps_ugt_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2430; CHECK-LABEL: fcmps_ugt_vv_v16f16:2431; CHECK:       # %bb.0:2432; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2433; CHECK-NEXT:    vmfle.vv v12, v8, v102434; CHECK-NEXT:    vmnot.m v0, v122435; CHECK-NEXT:    ret2436  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp2437  ret <16 x i1> %12438}2439 2440define <16 x i1> @fcmps_ugt_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2441; CHECK-LABEL: fcmps_ugt_vf_v16f16:2442; CHECK:       # %bb.0:2443; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2444; CHECK-NEXT:    vmfle.vf v10, v8, fa02445; CHECK-NEXT:    vmnot.m v0, v102446; CHECK-NEXT:    ret2447  %head = insertelement <16 x half> poison, half %b, i32 02448  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2449  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp2450  ret <16 x i1> %12451}2452 2453define <16 x i1> @fcmps_ugt_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2454; CHECK-LABEL: fcmps_ugt_fv_v16f16:2455; CHECK:       # %bb.0:2456; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2457; CHECK-NEXT:    vmfge.vf v10, v8, fa02458; CHECK-NEXT:    vmnot.m v0, v102459; CHECK-NEXT:    ret2460  %head = insertelement <16 x half> poison, half %b, i32 02461  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2462  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp2463  ret <16 x i1> %12464}2465 2466define <16 x i1> @fcmps_uge_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2467; CHECK-LABEL: fcmps_uge_vv_v16f16:2468; CHECK:       # %bb.0:2469; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2470; CHECK-NEXT:    vmflt.vv v12, v8, v102471; CHECK-NEXT:    vmnot.m v0, v122472; CHECK-NEXT:    ret2473  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp2474  ret <16 x i1> %12475}2476 2477define <16 x i1> @fcmps_uge_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2478; CHECK-LABEL: fcmps_uge_vf_v16f16:2479; CHECK:       # %bb.0:2480; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2481; CHECK-NEXT:    vmflt.vf v10, v8, fa02482; CHECK-NEXT:    vmnot.m v0, v102483; CHECK-NEXT:    ret2484  %head = insertelement <16 x half> poison, half %b, i32 02485  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2486  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp2487  ret <16 x i1> %12488}2489 2490define <16 x i1> @fcmps_uge_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2491; CHECK-LABEL: fcmps_uge_fv_v16f16:2492; CHECK:       # %bb.0:2493; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2494; CHECK-NEXT:    vmfgt.vf v10, v8, fa02495; CHECK-NEXT:    vmnot.m v0, v102496; CHECK-NEXT:    ret2497  %head = insertelement <16 x half> poison, half %b, i32 02498  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2499  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp2500  ret <16 x i1> %12501}2502 2503define <16 x i1> @fcmps_ult_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2504; CHECK-LABEL: fcmps_ult_vv_v16f16:2505; CHECK:       # %bb.0:2506; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2507; CHECK-NEXT:    vmfle.vv v12, v10, v82508; CHECK-NEXT:    vmnot.m v0, v122509; CHECK-NEXT:    ret2510  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp2511  ret <16 x i1> %12512}2513 2514define <16 x i1> @fcmps_ult_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2515; CHECK-LABEL: fcmps_ult_vf_v16f16:2516; CHECK:       # %bb.0:2517; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2518; CHECK-NEXT:    vmfge.vf v10, v8, fa02519; CHECK-NEXT:    vmnot.m v0, v102520; CHECK-NEXT:    ret2521  %head = insertelement <16 x half> poison, half %b, i32 02522  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2523  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp2524  ret <16 x i1> %12525}2526 2527define <16 x i1> @fcmps_ult_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2528; CHECK-LABEL: fcmps_ult_fv_v16f16:2529; CHECK:       # %bb.0:2530; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2531; CHECK-NEXT:    vmfle.vf v10, v8, fa02532; CHECK-NEXT:    vmnot.m v0, v102533; CHECK-NEXT:    ret2534  %head = insertelement <16 x half> poison, half %b, i32 02535  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2536  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp2537  ret <16 x i1> %12538}2539 2540define <16 x i1> @fcmps_ule_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2541; CHECK-LABEL: fcmps_ule_vv_v16f16:2542; CHECK:       # %bb.0:2543; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2544; CHECK-NEXT:    vmflt.vv v12, v10, v82545; CHECK-NEXT:    vmnot.m v0, v122546; CHECK-NEXT:    ret2547  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp2548  ret <16 x i1> %12549}2550 2551define <16 x i1> @fcmps_ule_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2552; CHECK-LABEL: fcmps_ule_vf_v16f16:2553; CHECK:       # %bb.0:2554; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2555; CHECK-NEXT:    vmfgt.vf v10, v8, fa02556; CHECK-NEXT:    vmnot.m v0, v102557; CHECK-NEXT:    ret2558  %head = insertelement <16 x half> poison, half %b, i32 02559  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2560  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp2561  ret <16 x i1> %12562}2563 2564define <16 x i1> @fcmps_ule_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2565; CHECK-LABEL: fcmps_ule_fv_v16f16:2566; CHECK:       # %bb.0:2567; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2568; CHECK-NEXT:    vmflt.vf v10, v8, fa02569; CHECK-NEXT:    vmnot.m v0, v102570; CHECK-NEXT:    ret2571  %head = insertelement <16 x half> poison, half %b, i32 02572  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2573  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp2574  ret <16 x i1> %12575}2576 2577define <16 x i1> @fcmps_une_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2578; CHECK-LABEL: fcmps_une_vv_v16f16:2579; CHECK:       # %bb.0:2580; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2581; CHECK-NEXT:    vmfle.vv v12, v10, v82582; CHECK-NEXT:    vmfle.vv v13, v8, v102583; CHECK-NEXT:    vmnand.mm v0, v13, v122584; CHECK-NEXT:    ret2585  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp2586  ret <16 x i1> %12587}2588 2589define <16 x i1> @fcmps_une_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2590; CHECK-LABEL: fcmps_une_vf_v16f16:2591; CHECK:       # %bb.0:2592; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2593; CHECK-NEXT:    vmfge.vf v10, v8, fa02594; CHECK-NEXT:    vmfle.vf v11, v8, fa02595; CHECK-NEXT:    vmnand.mm v0, v11, v102596; CHECK-NEXT:    ret2597  %head = insertelement <16 x half> poison, half %b, i32 02598  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2599  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp2600  ret <16 x i1> %12601}2602 2603define <16 x i1> @fcmps_une_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2604; CHECK-LABEL: fcmps_une_fv_v16f16:2605; CHECK:       # %bb.0:2606; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2607; CHECK-NEXT:    vmfle.vf v10, v8, fa02608; CHECK-NEXT:    vmfge.vf v11, v8, fa02609; CHECK-NEXT:    vmnand.mm v0, v11, v102610; CHECK-NEXT:    ret2611  %head = insertelement <16 x half> poison, half %b, i32 02612  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2613  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp2614  ret <16 x i1> %12615}2616 2617define <16 x i1> @fcmps_uno_vv_v16f16(<16 x half> %va, <16 x half> %vb) nounwind strictfp {2618; CHECK-LABEL: fcmps_uno_vv_v16f16:2619; CHECK:       # %bb.0:2620; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2621; CHECK-NEXT:    vmfle.vv v12, v10, v102622; CHECK-NEXT:    vmfle.vv v10, v8, v82623; CHECK-NEXT:    vmnot.m v8, v102624; CHECK-NEXT:    vmorn.mm v0, v8, v122625; CHECK-NEXT:    ret2626  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp2627  ret <16 x i1> %12628}2629 2630define <16 x i1> @fcmps_uno_vf_v16f16(<16 x half> %va, half %b) nounwind strictfp {2631; CHECK-LABEL: fcmps_uno_vf_v16f16:2632; CHECK:       # %bb.0:2633; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2634; CHECK-NEXT:    vfmv.v.f v10, fa02635; CHECK-NEXT:    vmfle.vv v12, v8, v82636; CHECK-NEXT:    vmfle.vf v8, v10, fa02637; CHECK-NEXT:    vmnot.m v9, v122638; CHECK-NEXT:    vmorn.mm v0, v9, v82639; CHECK-NEXT:    ret2640  %head = insertelement <16 x half> poison, half %b, i32 02641  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2642  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %va, <16 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp2643  ret <16 x i1> %12644}2645 2646define <16 x i1> @fcmps_uno_fv_v16f16(<16 x half> %va, half %b) nounwind strictfp {2647; CHECK-LABEL: fcmps_uno_fv_v16f16:2648; CHECK:       # %bb.0:2649; CHECK-NEXT:    vsetivli zero, 16, e16, m2, ta, ma2650; CHECK-NEXT:    vfmv.v.f v10, fa02651; CHECK-NEXT:    vmfle.vf v12, v10, fa02652; CHECK-NEXT:    vmnot.m v10, v122653; CHECK-NEXT:    vmfle.vv v11, v8, v82654; CHECK-NEXT:    vmorn.mm v0, v10, v112655; CHECK-NEXT:    ret2656  %head = insertelement <16 x half> poison, half %b, i32 02657  %splat = shufflevector <16 x half> %head, <16 x half> poison, <16 x i32> zeroinitializer2658  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f16(<16 x half> %splat, <16 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp2659  ret <16 x i1> %12660}2661 2662define <32 x i1> @fcmps_oeq_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2663; CHECK-LABEL: fcmps_oeq_vv_v32f16:2664; CHECK:       # %bb.0:2665; CHECK-NEXT:    li a0, 322666; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2667; CHECK-NEXT:    vmfle.vv v16, v12, v82668; CHECK-NEXT:    vmfle.vv v17, v8, v122669; CHECK-NEXT:    vmand.mm v0, v17, v162670; CHECK-NEXT:    ret2671  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp2672  ret <32 x i1> %12673}2674 2675define <32 x i1> @fcmps_oeq_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2676; CHECK-LABEL: fcmps_oeq_vf_v32f16:2677; CHECK:       # %bb.0:2678; CHECK-NEXT:    li a0, 322679; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2680; CHECK-NEXT:    vmfge.vf v12, v8, fa02681; CHECK-NEXT:    vmfle.vf v13, v8, fa02682; CHECK-NEXT:    vmand.mm v0, v13, v122683; CHECK-NEXT:    ret2684  %head = insertelement <32 x half> poison, half %b, i32 02685  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2686  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp2687  ret <32 x i1> %12688}2689 2690define <32 x i1> @fcmps_oeq_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2691; CHECK-LABEL: fcmps_oeq_fv_v32f16:2692; CHECK:       # %bb.0:2693; CHECK-NEXT:    li a0, 322694; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2695; CHECK-NEXT:    vmfle.vf v12, v8, fa02696; CHECK-NEXT:    vmfge.vf v13, v8, fa02697; CHECK-NEXT:    vmand.mm v0, v13, v122698; CHECK-NEXT:    ret2699  %head = insertelement <32 x half> poison, half %b, i32 02700  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2701  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp2702  ret <32 x i1> %12703}2704 2705define <32 x i1> @fcmps_ogt_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2706; CHECK-LABEL: fcmps_ogt_vv_v32f16:2707; CHECK:       # %bb.0:2708; CHECK-NEXT:    li a0, 322709; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2710; CHECK-NEXT:    vmflt.vv v0, v12, v82711; CHECK-NEXT:    ret2712  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp2713  ret <32 x i1> %12714}2715 2716define <32 x i1> @fcmps_ogt_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2717; CHECK-LABEL: fcmps_ogt_vf_v32f16:2718; CHECK:       # %bb.0:2719; CHECK-NEXT:    li a0, 322720; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2721; CHECK-NEXT:    vmfgt.vf v0, v8, fa02722; CHECK-NEXT:    ret2723  %head = insertelement <32 x half> poison, half %b, i32 02724  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2725  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp2726  ret <32 x i1> %12727}2728 2729define <32 x i1> @fcmps_ogt_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2730; CHECK-LABEL: fcmps_ogt_fv_v32f16:2731; CHECK:       # %bb.0:2732; CHECK-NEXT:    li a0, 322733; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2734; CHECK-NEXT:    vmflt.vf v0, v8, fa02735; CHECK-NEXT:    ret2736  %head = insertelement <32 x half> poison, half %b, i32 02737  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2738  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp2739  ret <32 x i1> %12740}2741 2742define <32 x i1> @fcmps_oge_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2743; CHECK-LABEL: fcmps_oge_vv_v32f16:2744; CHECK:       # %bb.0:2745; CHECK-NEXT:    li a0, 322746; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2747; CHECK-NEXT:    vmfle.vv v0, v12, v82748; CHECK-NEXT:    ret2749  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp2750  ret <32 x i1> %12751}2752 2753define <32 x i1> @fcmps_oge_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2754; CHECK-LABEL: fcmps_oge_vf_v32f16:2755; CHECK:       # %bb.0:2756; CHECK-NEXT:    li a0, 322757; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2758; CHECK-NEXT:    vmfge.vf v0, v8, fa02759; CHECK-NEXT:    ret2760  %head = insertelement <32 x half> poison, half %b, i32 02761  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2762  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp2763  ret <32 x i1> %12764}2765 2766define <32 x i1> @fcmps_oge_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2767; CHECK-LABEL: fcmps_oge_fv_v32f16:2768; CHECK:       # %bb.0:2769; CHECK-NEXT:    li a0, 322770; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2771; CHECK-NEXT:    vmfle.vf v0, v8, fa02772; CHECK-NEXT:    ret2773  %head = insertelement <32 x half> poison, half %b, i32 02774  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2775  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp2776  ret <32 x i1> %12777}2778 2779define <32 x i1> @fcmps_olt_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2780; CHECK-LABEL: fcmps_olt_vv_v32f16:2781; CHECK:       # %bb.0:2782; CHECK-NEXT:    li a0, 322783; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2784; CHECK-NEXT:    vmflt.vv v0, v8, v122785; CHECK-NEXT:    ret2786  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp2787  ret <32 x i1> %12788}2789 2790define <32 x i1> @fcmps_olt_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2791; CHECK-LABEL: fcmps_olt_vf_v32f16:2792; CHECK:       # %bb.0:2793; CHECK-NEXT:    li a0, 322794; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2795; CHECK-NEXT:    vmflt.vf v0, v8, fa02796; CHECK-NEXT:    ret2797  %head = insertelement <32 x half> poison, half %b, i32 02798  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2799  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp2800  ret <32 x i1> %12801}2802 2803define <32 x i1> @fcmps_olt_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2804; CHECK-LABEL: fcmps_olt_fv_v32f16:2805; CHECK:       # %bb.0:2806; CHECK-NEXT:    li a0, 322807; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2808; CHECK-NEXT:    vmfgt.vf v0, v8, fa02809; CHECK-NEXT:    ret2810  %head = insertelement <32 x half> poison, half %b, i32 02811  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2812  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp2813  ret <32 x i1> %12814}2815 2816define <32 x i1> @fcmps_ole_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2817; CHECK-LABEL: fcmps_ole_vv_v32f16:2818; CHECK:       # %bb.0:2819; CHECK-NEXT:    li a0, 322820; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2821; CHECK-NEXT:    vmfle.vv v0, v8, v122822; CHECK-NEXT:    ret2823  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp2824  ret <32 x i1> %12825}2826 2827define <32 x i1> @fcmps_ole_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2828; CHECK-LABEL: fcmps_ole_vf_v32f16:2829; CHECK:       # %bb.0:2830; CHECK-NEXT:    li a0, 322831; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2832; CHECK-NEXT:    vmfle.vf v0, v8, fa02833; CHECK-NEXT:    ret2834  %head = insertelement <32 x half> poison, half %b, i32 02835  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2836  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp2837  ret <32 x i1> %12838}2839 2840define <32 x i1> @fcmps_ole_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2841; CHECK-LABEL: fcmps_ole_fv_v32f16:2842; CHECK:       # %bb.0:2843; CHECK-NEXT:    li a0, 322844; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2845; CHECK-NEXT:    vmfge.vf v0, v8, fa02846; CHECK-NEXT:    ret2847  %head = insertelement <32 x half> poison, half %b, i32 02848  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2849  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp2850  ret <32 x i1> %12851}2852 2853define <32 x i1> @fcmps_one_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2854; CHECK-LABEL: fcmps_one_vv_v32f16:2855; CHECK:       # %bb.0:2856; CHECK-NEXT:    li a0, 322857; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2858; CHECK-NEXT:    vmflt.vv v16, v8, v122859; CHECK-NEXT:    vmflt.vv v17, v12, v82860; CHECK-NEXT:    vmor.mm v0, v17, v162861; CHECK-NEXT:    ret2862  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp2863  ret <32 x i1> %12864}2865 2866define <32 x i1> @fcmps_one_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2867; CHECK-LABEL: fcmps_one_vf_v32f16:2868; CHECK:       # %bb.0:2869; CHECK-NEXT:    li a0, 322870; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2871; CHECK-NEXT:    vmflt.vf v12, v8, fa02872; CHECK-NEXT:    vmfgt.vf v13, v8, fa02873; CHECK-NEXT:    vmor.mm v0, v13, v122874; CHECK-NEXT:    ret2875  %head = insertelement <32 x half> poison, half %b, i32 02876  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2877  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp2878  ret <32 x i1> %12879}2880 2881define <32 x i1> @fcmps_one_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2882; CHECK-LABEL: fcmps_one_fv_v32f16:2883; CHECK:       # %bb.0:2884; CHECK-NEXT:    li a0, 322885; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2886; CHECK-NEXT:    vmfgt.vf v12, v8, fa02887; CHECK-NEXT:    vmflt.vf v13, v8, fa02888; CHECK-NEXT:    vmor.mm v0, v13, v122889; CHECK-NEXT:    ret2890  %head = insertelement <32 x half> poison, half %b, i32 02891  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2892  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"one", metadata !"fpexcept.strict") strictfp2893  ret <32 x i1> %12894}2895 2896define <32 x i1> @fcmps_ord_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2897; CHECK-LABEL: fcmps_ord_vv_v32f16:2898; CHECK:       # %bb.0:2899; CHECK-NEXT:    li a0, 322900; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2901; CHECK-NEXT:    vmfle.vv v16, v12, v122902; CHECK-NEXT:    vmfle.vv v12, v8, v82903; CHECK-NEXT:    vmand.mm v0, v12, v162904; CHECK-NEXT:    ret2905  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp2906  ret <32 x i1> %12907}2908 2909define <32 x i1> @fcmps_ord_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2910; CHECK-LABEL: fcmps_ord_vf_v32f16:2911; CHECK:       # %bb.0:2912; CHECK-NEXT:    li a0, 322913; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2914; CHECK-NEXT:    vfmv.v.f v12, fa02915; CHECK-NEXT:    vmfle.vf v16, v12, fa02916; CHECK-NEXT:    vmfle.vv v12, v8, v82917; CHECK-NEXT:    vmand.mm v0, v12, v162918; CHECK-NEXT:    ret2919  %head = insertelement <32 x half> poison, half %b, i32 02920  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2921  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp2922  ret <32 x i1> %12923}2924 2925define <32 x i1> @fcmps_ord_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2926; CHECK-LABEL: fcmps_ord_fv_v32f16:2927; CHECK:       # %bb.0:2928; CHECK-NEXT:    li a0, 322929; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2930; CHECK-NEXT:    vfmv.v.f v12, fa02931; CHECK-NEXT:    vmfle.vf v16, v12, fa02932; CHECK-NEXT:    vmfle.vv v12, v8, v82933; CHECK-NEXT:    vmand.mm v0, v16, v122934; CHECK-NEXT:    ret2935  %head = insertelement <32 x half> poison, half %b, i32 02936  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2937  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp2938  ret <32 x i1> %12939}2940 2941define <32 x i1> @fcmps_ueq_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2942; CHECK-LABEL: fcmps_ueq_vv_v32f16:2943; CHECK:       # %bb.0:2944; CHECK-NEXT:    li a0, 322945; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2946; CHECK-NEXT:    vmflt.vv v16, v8, v122947; CHECK-NEXT:    vmflt.vv v17, v12, v82948; CHECK-NEXT:    vmnor.mm v0, v17, v162949; CHECK-NEXT:    ret2950  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp2951  ret <32 x i1> %12952}2953 2954define <32 x i1> @fcmps_ueq_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2955; CHECK-LABEL: fcmps_ueq_vf_v32f16:2956; CHECK:       # %bb.0:2957; CHECK-NEXT:    li a0, 322958; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2959; CHECK-NEXT:    vmflt.vf v12, v8, fa02960; CHECK-NEXT:    vmfgt.vf v13, v8, fa02961; CHECK-NEXT:    vmnor.mm v0, v13, v122962; CHECK-NEXT:    ret2963  %head = insertelement <32 x half> poison, half %b, i32 02964  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2965  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp2966  ret <32 x i1> %12967}2968 2969define <32 x i1> @fcmps_ueq_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {2970; CHECK-LABEL: fcmps_ueq_fv_v32f16:2971; CHECK:       # %bb.0:2972; CHECK-NEXT:    li a0, 322973; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2974; CHECK-NEXT:    vmfgt.vf v12, v8, fa02975; CHECK-NEXT:    vmflt.vf v13, v8, fa02976; CHECK-NEXT:    vmnor.mm v0, v13, v122977; CHECK-NEXT:    ret2978  %head = insertelement <32 x half> poison, half %b, i32 02979  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer2980  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp2981  ret <32 x i1> %12982}2983 2984define <32 x i1> @fcmps_ugt_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {2985; CHECK-LABEL: fcmps_ugt_vv_v32f16:2986; CHECK:       # %bb.0:2987; CHECK-NEXT:    li a0, 322988; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma2989; CHECK-NEXT:    vmfle.vv v16, v8, v122990; CHECK-NEXT:    vmnot.m v0, v162991; CHECK-NEXT:    ret2992  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp2993  ret <32 x i1> %12994}2995 2996define <32 x i1> @fcmps_ugt_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {2997; CHECK-LABEL: fcmps_ugt_vf_v32f16:2998; CHECK:       # %bb.0:2999; CHECK-NEXT:    li a0, 323000; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3001; CHECK-NEXT:    vmfle.vf v12, v8, fa03002; CHECK-NEXT:    vmnot.m v0, v123003; CHECK-NEXT:    ret3004  %head = insertelement <32 x half> poison, half %b, i32 03005  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3006  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp3007  ret <32 x i1> %13008}3009 3010define <32 x i1> @fcmps_ugt_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {3011; CHECK-LABEL: fcmps_ugt_fv_v32f16:3012; CHECK:       # %bb.0:3013; CHECK-NEXT:    li a0, 323014; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3015; CHECK-NEXT:    vmfge.vf v12, v8, fa03016; CHECK-NEXT:    vmnot.m v0, v123017; CHECK-NEXT:    ret3018  %head = insertelement <32 x half> poison, half %b, i32 03019  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3020  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp3021  ret <32 x i1> %13022}3023 3024define <32 x i1> @fcmps_uge_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {3025; CHECK-LABEL: fcmps_uge_vv_v32f16:3026; CHECK:       # %bb.0:3027; CHECK-NEXT:    li a0, 323028; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3029; CHECK-NEXT:    vmflt.vv v16, v8, v123030; CHECK-NEXT:    vmnot.m v0, v163031; CHECK-NEXT:    ret3032  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp3033  ret <32 x i1> %13034}3035 3036define <32 x i1> @fcmps_uge_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {3037; CHECK-LABEL: fcmps_uge_vf_v32f16:3038; CHECK:       # %bb.0:3039; CHECK-NEXT:    li a0, 323040; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3041; CHECK-NEXT:    vmflt.vf v12, v8, fa03042; CHECK-NEXT:    vmnot.m v0, v123043; CHECK-NEXT:    ret3044  %head = insertelement <32 x half> poison, half %b, i32 03045  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3046  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp3047  ret <32 x i1> %13048}3049 3050define <32 x i1> @fcmps_uge_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {3051; CHECK-LABEL: fcmps_uge_fv_v32f16:3052; CHECK:       # %bb.0:3053; CHECK-NEXT:    li a0, 323054; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3055; CHECK-NEXT:    vmfgt.vf v12, v8, fa03056; CHECK-NEXT:    vmnot.m v0, v123057; CHECK-NEXT:    ret3058  %head = insertelement <32 x half> poison, half %b, i32 03059  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3060  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp3061  ret <32 x i1> %13062}3063 3064define <32 x i1> @fcmps_ult_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {3065; CHECK-LABEL: fcmps_ult_vv_v32f16:3066; CHECK:       # %bb.0:3067; CHECK-NEXT:    li a0, 323068; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3069; CHECK-NEXT:    vmfle.vv v16, v12, v83070; CHECK-NEXT:    vmnot.m v0, v163071; CHECK-NEXT:    ret3072  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp3073  ret <32 x i1> %13074}3075 3076define <32 x i1> @fcmps_ult_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {3077; CHECK-LABEL: fcmps_ult_vf_v32f16:3078; CHECK:       # %bb.0:3079; CHECK-NEXT:    li a0, 323080; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3081; CHECK-NEXT:    vmfge.vf v12, v8, fa03082; CHECK-NEXT:    vmnot.m v0, v123083; CHECK-NEXT:    ret3084  %head = insertelement <32 x half> poison, half %b, i32 03085  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3086  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp3087  ret <32 x i1> %13088}3089 3090define <32 x i1> @fcmps_ult_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {3091; CHECK-LABEL: fcmps_ult_fv_v32f16:3092; CHECK:       # %bb.0:3093; CHECK-NEXT:    li a0, 323094; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3095; CHECK-NEXT:    vmfle.vf v12, v8, fa03096; CHECK-NEXT:    vmnot.m v0, v123097; CHECK-NEXT:    ret3098  %head = insertelement <32 x half> poison, half %b, i32 03099  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3100  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp3101  ret <32 x i1> %13102}3103 3104define <32 x i1> @fcmps_ule_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {3105; CHECK-LABEL: fcmps_ule_vv_v32f16:3106; CHECK:       # %bb.0:3107; CHECK-NEXT:    li a0, 323108; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3109; CHECK-NEXT:    vmflt.vv v16, v12, v83110; CHECK-NEXT:    vmnot.m v0, v163111; CHECK-NEXT:    ret3112  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp3113  ret <32 x i1> %13114}3115 3116define <32 x i1> @fcmps_ule_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {3117; CHECK-LABEL: fcmps_ule_vf_v32f16:3118; CHECK:       # %bb.0:3119; CHECK-NEXT:    li a0, 323120; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3121; CHECK-NEXT:    vmfgt.vf v12, v8, fa03122; CHECK-NEXT:    vmnot.m v0, v123123; CHECK-NEXT:    ret3124  %head = insertelement <32 x half> poison, half %b, i32 03125  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3126  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp3127  ret <32 x i1> %13128}3129 3130define <32 x i1> @fcmps_ule_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {3131; CHECK-LABEL: fcmps_ule_fv_v32f16:3132; CHECK:       # %bb.0:3133; CHECK-NEXT:    li a0, 323134; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3135; CHECK-NEXT:    vmflt.vf v12, v8, fa03136; CHECK-NEXT:    vmnot.m v0, v123137; CHECK-NEXT:    ret3138  %head = insertelement <32 x half> poison, half %b, i32 03139  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3140  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp3141  ret <32 x i1> %13142}3143 3144define <32 x i1> @fcmps_une_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {3145; CHECK-LABEL: fcmps_une_vv_v32f16:3146; CHECK:       # %bb.0:3147; CHECK-NEXT:    li a0, 323148; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3149; CHECK-NEXT:    vmfle.vv v16, v12, v83150; CHECK-NEXT:    vmfle.vv v17, v8, v123151; CHECK-NEXT:    vmnand.mm v0, v17, v163152; CHECK-NEXT:    ret3153  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp3154  ret <32 x i1> %13155}3156 3157define <32 x i1> @fcmps_une_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {3158; CHECK-LABEL: fcmps_une_vf_v32f16:3159; CHECK:       # %bb.0:3160; CHECK-NEXT:    li a0, 323161; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3162; CHECK-NEXT:    vmfge.vf v12, v8, fa03163; CHECK-NEXT:    vmfle.vf v13, v8, fa03164; CHECK-NEXT:    vmnand.mm v0, v13, v123165; CHECK-NEXT:    ret3166  %head = insertelement <32 x half> poison, half %b, i32 03167  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3168  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp3169  ret <32 x i1> %13170}3171 3172define <32 x i1> @fcmps_une_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {3173; CHECK-LABEL: fcmps_une_fv_v32f16:3174; CHECK:       # %bb.0:3175; CHECK-NEXT:    li a0, 323176; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3177; CHECK-NEXT:    vmfle.vf v12, v8, fa03178; CHECK-NEXT:    vmfge.vf v13, v8, fa03179; CHECK-NEXT:    vmnand.mm v0, v13, v123180; CHECK-NEXT:    ret3181  %head = insertelement <32 x half> poison, half %b, i32 03182  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3183  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"une", metadata !"fpexcept.strict") strictfp3184  ret <32 x i1> %13185}3186 3187define <32 x i1> @fcmps_uno_vv_v32f16(<32 x half> %va, <32 x half> %vb) nounwind strictfp {3188; CHECK-LABEL: fcmps_uno_vv_v32f16:3189; CHECK:       # %bb.0:3190; CHECK-NEXT:    li a0, 323191; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3192; CHECK-NEXT:    vmfle.vv v16, v12, v123193; CHECK-NEXT:    vmfle.vv v12, v8, v83194; CHECK-NEXT:    vmnot.m v8, v123195; CHECK-NEXT:    vmorn.mm v0, v8, v163196; CHECK-NEXT:    ret3197  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp3198  ret <32 x i1> %13199}3200 3201define <32 x i1> @fcmps_uno_vf_v32f16(<32 x half> %va, half %b) nounwind strictfp {3202; CHECK-LABEL: fcmps_uno_vf_v32f16:3203; CHECK:       # %bb.0:3204; CHECK-NEXT:    li a0, 323205; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3206; CHECK-NEXT:    vfmv.v.f v12, fa03207; CHECK-NEXT:    vmfle.vv v16, v8, v83208; CHECK-NEXT:    vmfle.vf v8, v12, fa03209; CHECK-NEXT:    vmnot.m v9, v163210; CHECK-NEXT:    vmorn.mm v0, v9, v83211; CHECK-NEXT:    ret3212  %head = insertelement <32 x half> poison, half %b, i32 03213  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3214  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %va, <32 x half> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp3215  ret <32 x i1> %13216}3217 3218define <32 x i1> @fcmps_uno_fv_v32f16(<32 x half> %va, half %b) nounwind strictfp {3219; CHECK-LABEL: fcmps_uno_fv_v32f16:3220; CHECK:       # %bb.0:3221; CHECK-NEXT:    li a0, 323222; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma3223; CHECK-NEXT:    vfmv.v.f v12, fa03224; CHECK-NEXT:    vmfle.vv v16, v8, v83225; CHECK-NEXT:    vmfle.vf v8, v12, fa03226; CHECK-NEXT:    vmnot.m v8, v83227; CHECK-NEXT:    vmorn.mm v0, v8, v163228; CHECK-NEXT:    ret3229  %head = insertelement <32 x half> poison, half %b, i32 03230  %splat = shufflevector <32 x half> %head, <32 x half> poison, <32 x i32> zeroinitializer3231  %1 = call <32 x i1> @llvm.experimental.constrained.fcmps.v32f16(<32 x half> %splat, <32 x half> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp3232  ret <32 x i1> %13233}3234 3235define <1 x i1> @fcmps_oeq_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3236; CHECK-LABEL: fcmps_oeq_vv_v1f32:3237; CHECK:       # %bb.0:3238; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3239; CHECK-NEXT:    vmfle.vv v10, v9, v83240; CHECK-NEXT:    vmfle.vv v8, v8, v93241; CHECK-NEXT:    vmand.mm v0, v8, v103242; CHECK-NEXT:    ret3243  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp3244  ret <1 x i1> %13245}3246 3247define <1 x i1> @fcmps_oeq_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3248; CHECK-LABEL: fcmps_oeq_vf_v1f32:3249; CHECK:       # %bb.0:3250; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3251; CHECK-NEXT:    vmfge.vf v9, v8, fa03252; CHECK-NEXT:    vmfle.vf v8, v8, fa03253; CHECK-NEXT:    vmand.mm v0, v8, v93254; CHECK-NEXT:    ret3255  %head = insertelement <1 x float> poison, float %b, i32 03256  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3257  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp3258  ret <1 x i1> %13259}3260 3261define <1 x i1> @fcmps_oeq_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3262; CHECK-LABEL: fcmps_oeq_fv_v1f32:3263; CHECK:       # %bb.0:3264; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3265; CHECK-NEXT:    vmfle.vf v9, v8, fa03266; CHECK-NEXT:    vmfge.vf v8, v8, fa03267; CHECK-NEXT:    vmand.mm v0, v8, v93268; CHECK-NEXT:    ret3269  %head = insertelement <1 x float> poison, float %b, i32 03270  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3271  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp3272  ret <1 x i1> %13273}3274 3275define <1 x i1> @fcmps_ogt_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3276; CHECK-LABEL: fcmps_ogt_vv_v1f32:3277; CHECK:       # %bb.0:3278; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3279; CHECK-NEXT:    vmflt.vv v0, v9, v83280; CHECK-NEXT:    ret3281  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp3282  ret <1 x i1> %13283}3284 3285define <1 x i1> @fcmps_ogt_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3286; CHECK-LABEL: fcmps_ogt_vf_v1f32:3287; CHECK:       # %bb.0:3288; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3289; CHECK-NEXT:    vmfgt.vf v0, v8, fa03290; CHECK-NEXT:    ret3291  %head = insertelement <1 x float> poison, float %b, i32 03292  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3293  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp3294  ret <1 x i1> %13295}3296 3297define <1 x i1> @fcmps_ogt_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3298; CHECK-LABEL: fcmps_ogt_fv_v1f32:3299; CHECK:       # %bb.0:3300; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3301; CHECK-NEXT:    vmflt.vf v0, v8, fa03302; CHECK-NEXT:    ret3303  %head = insertelement <1 x float> poison, float %b, i32 03304  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3305  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp3306  ret <1 x i1> %13307}3308 3309define <1 x i1> @fcmps_oge_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3310; CHECK-LABEL: fcmps_oge_vv_v1f32:3311; CHECK:       # %bb.0:3312; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3313; CHECK-NEXT:    vmfle.vv v0, v9, v83314; CHECK-NEXT:    ret3315  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp3316  ret <1 x i1> %13317}3318 3319define <1 x i1> @fcmps_oge_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3320; CHECK-LABEL: fcmps_oge_vf_v1f32:3321; CHECK:       # %bb.0:3322; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3323; CHECK-NEXT:    vmfge.vf v0, v8, fa03324; CHECK-NEXT:    ret3325  %head = insertelement <1 x float> poison, float %b, i32 03326  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3327  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp3328  ret <1 x i1> %13329}3330 3331define <1 x i1> @fcmps_oge_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3332; CHECK-LABEL: fcmps_oge_fv_v1f32:3333; CHECK:       # %bb.0:3334; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3335; CHECK-NEXT:    vmfle.vf v0, v8, fa03336; CHECK-NEXT:    ret3337  %head = insertelement <1 x float> poison, float %b, i32 03338  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3339  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp3340  ret <1 x i1> %13341}3342 3343define <1 x i1> @fcmps_olt_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3344; CHECK-LABEL: fcmps_olt_vv_v1f32:3345; CHECK:       # %bb.0:3346; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3347; CHECK-NEXT:    vmflt.vv v0, v8, v93348; CHECK-NEXT:    ret3349  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp3350  ret <1 x i1> %13351}3352 3353define <1 x i1> @fcmps_olt_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3354; CHECK-LABEL: fcmps_olt_vf_v1f32:3355; CHECK:       # %bb.0:3356; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3357; CHECK-NEXT:    vmflt.vf v0, v8, fa03358; CHECK-NEXT:    ret3359  %head = insertelement <1 x float> poison, float %b, i32 03360  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3361  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp3362  ret <1 x i1> %13363}3364 3365define <1 x i1> @fcmps_olt_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3366; CHECK-LABEL: fcmps_olt_fv_v1f32:3367; CHECK:       # %bb.0:3368; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3369; CHECK-NEXT:    vmfgt.vf v0, v8, fa03370; CHECK-NEXT:    ret3371  %head = insertelement <1 x float> poison, float %b, i32 03372  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3373  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp3374  ret <1 x i1> %13375}3376 3377define <1 x i1> @fcmps_ole_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3378; CHECK-LABEL: fcmps_ole_vv_v1f32:3379; CHECK:       # %bb.0:3380; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3381; CHECK-NEXT:    vmfle.vv v0, v8, v93382; CHECK-NEXT:    ret3383  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp3384  ret <1 x i1> %13385}3386 3387define <1 x i1> @fcmps_ole_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3388; CHECK-LABEL: fcmps_ole_vf_v1f32:3389; CHECK:       # %bb.0:3390; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3391; CHECK-NEXT:    vmfle.vf v0, v8, fa03392; CHECK-NEXT:    ret3393  %head = insertelement <1 x float> poison, float %b, i32 03394  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3395  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp3396  ret <1 x i1> %13397}3398 3399define <1 x i1> @fcmps_ole_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3400; CHECK-LABEL: fcmps_ole_fv_v1f32:3401; CHECK:       # %bb.0:3402; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3403; CHECK-NEXT:    vmfge.vf v0, v8, fa03404; CHECK-NEXT:    ret3405  %head = insertelement <1 x float> poison, float %b, i32 03406  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3407  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp3408  ret <1 x i1> %13409}3410 3411define <1 x i1> @fcmps_one_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3412; CHECK-LABEL: fcmps_one_vv_v1f32:3413; CHECK:       # %bb.0:3414; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3415; CHECK-NEXT:    vmflt.vv v10, v8, v93416; CHECK-NEXT:    vmflt.vv v8, v9, v83417; CHECK-NEXT:    vmor.mm v0, v8, v103418; CHECK-NEXT:    ret3419  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp3420  ret <1 x i1> %13421}3422 3423define <1 x i1> @fcmps_one_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3424; CHECK-LABEL: fcmps_one_vf_v1f32:3425; CHECK:       # %bb.0:3426; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3427; CHECK-NEXT:    vmflt.vf v9, v8, fa03428; CHECK-NEXT:    vmfgt.vf v8, v8, fa03429; CHECK-NEXT:    vmor.mm v0, v8, v93430; CHECK-NEXT:    ret3431  %head = insertelement <1 x float> poison, float %b, i32 03432  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3433  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp3434  ret <1 x i1> %13435}3436 3437define <1 x i1> @fcmps_one_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3438; CHECK-LABEL: fcmps_one_fv_v1f32:3439; CHECK:       # %bb.0:3440; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3441; CHECK-NEXT:    vmfgt.vf v9, v8, fa03442; CHECK-NEXT:    vmflt.vf v8, v8, fa03443; CHECK-NEXT:    vmor.mm v0, v8, v93444; CHECK-NEXT:    ret3445  %head = insertelement <1 x float> poison, float %b, i32 03446  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3447  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp3448  ret <1 x i1> %13449}3450 3451define <1 x i1> @fcmps_ord_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3452; CHECK-LABEL: fcmps_ord_vv_v1f32:3453; CHECK:       # %bb.0:3454; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3455; CHECK-NEXT:    vmfle.vv v9, v9, v93456; CHECK-NEXT:    vmfle.vv v8, v8, v83457; CHECK-NEXT:    vmand.mm v0, v8, v93458; CHECK-NEXT:    ret3459  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp3460  ret <1 x i1> %13461}3462 3463define <1 x i1> @fcmps_ord_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3464; CHECK-LABEL: fcmps_ord_vf_v1f32:3465; CHECK:       # %bb.0:3466; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3467; CHECK-NEXT:    vfmv.s.f v9, fa03468; CHECK-NEXT:    vmfle.vf v9, v9, fa03469; CHECK-NEXT:    vmfle.vv v8, v8, v83470; CHECK-NEXT:    vmand.mm v0, v8, v93471; CHECK-NEXT:    ret3472  %head = insertelement <1 x float> poison, float %b, i32 03473  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3474  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp3475  ret <1 x i1> %13476}3477 3478define <1 x i1> @fcmps_ord_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3479; CHECK-LABEL: fcmps_ord_fv_v1f32:3480; CHECK:       # %bb.0:3481; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3482; CHECK-NEXT:    vfmv.s.f v9, fa03483; CHECK-NEXT:    vmfle.vf v9, v9, fa03484; CHECK-NEXT:    vmfle.vv v8, v8, v83485; CHECK-NEXT:    vmand.mm v0, v9, v83486; CHECK-NEXT:    ret3487  %head = insertelement <1 x float> poison, float %b, i32 03488  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3489  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp3490  ret <1 x i1> %13491}3492 3493define <1 x i1> @fcmps_ueq_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3494; CHECK-LABEL: fcmps_ueq_vv_v1f32:3495; CHECK:       # %bb.0:3496; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3497; CHECK-NEXT:    vmflt.vv v10, v8, v93498; CHECK-NEXT:    vmflt.vv v8, v9, v83499; CHECK-NEXT:    vmnor.mm v0, v8, v103500; CHECK-NEXT:    ret3501  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp3502  ret <1 x i1> %13503}3504 3505define <1 x i1> @fcmps_ueq_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3506; CHECK-LABEL: fcmps_ueq_vf_v1f32:3507; CHECK:       # %bb.0:3508; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3509; CHECK-NEXT:    vmflt.vf v9, v8, fa03510; CHECK-NEXT:    vmfgt.vf v8, v8, fa03511; CHECK-NEXT:    vmnor.mm v0, v8, v93512; CHECK-NEXT:    ret3513  %head = insertelement <1 x float> poison, float %b, i32 03514  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3515  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp3516  ret <1 x i1> %13517}3518 3519define <1 x i1> @fcmps_ueq_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3520; CHECK-LABEL: fcmps_ueq_fv_v1f32:3521; CHECK:       # %bb.0:3522; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3523; CHECK-NEXT:    vmfgt.vf v9, v8, fa03524; CHECK-NEXT:    vmflt.vf v8, v8, fa03525; CHECK-NEXT:    vmnor.mm v0, v8, v93526; CHECK-NEXT:    ret3527  %head = insertelement <1 x float> poison, float %b, i32 03528  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3529  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp3530  ret <1 x i1> %13531}3532 3533define <1 x i1> @fcmps_ugt_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3534; CHECK-LABEL: fcmps_ugt_vv_v1f32:3535; CHECK:       # %bb.0:3536; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3537; CHECK-NEXT:    vmfle.vv v8, v8, v93538; CHECK-NEXT:    vmnot.m v0, v83539; CHECK-NEXT:    ret3540  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp3541  ret <1 x i1> %13542}3543 3544define <1 x i1> @fcmps_ugt_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3545; CHECK-LABEL: fcmps_ugt_vf_v1f32:3546; CHECK:       # %bb.0:3547; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3548; CHECK-NEXT:    vmfle.vf v8, v8, fa03549; CHECK-NEXT:    vmnot.m v0, v83550; CHECK-NEXT:    ret3551  %head = insertelement <1 x float> poison, float %b, i32 03552  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3553  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp3554  ret <1 x i1> %13555}3556 3557define <1 x i1> @fcmps_ugt_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3558; CHECK-LABEL: fcmps_ugt_fv_v1f32:3559; CHECK:       # %bb.0:3560; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3561; CHECK-NEXT:    vmfge.vf v8, v8, fa03562; CHECK-NEXT:    vmnot.m v0, v83563; CHECK-NEXT:    ret3564  %head = insertelement <1 x float> poison, float %b, i32 03565  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3566  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp3567  ret <1 x i1> %13568}3569 3570define <1 x i1> @fcmps_uge_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3571; CHECK-LABEL: fcmps_uge_vv_v1f32:3572; CHECK:       # %bb.0:3573; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3574; CHECK-NEXT:    vmflt.vv v8, v8, v93575; CHECK-NEXT:    vmnot.m v0, v83576; CHECK-NEXT:    ret3577  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp3578  ret <1 x i1> %13579}3580 3581define <1 x i1> @fcmps_uge_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3582; CHECK-LABEL: fcmps_uge_vf_v1f32:3583; CHECK:       # %bb.0:3584; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3585; CHECK-NEXT:    vmflt.vf v8, v8, fa03586; CHECK-NEXT:    vmnot.m v0, v83587; CHECK-NEXT:    ret3588  %head = insertelement <1 x float> poison, float %b, i32 03589  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3590  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp3591  ret <1 x i1> %13592}3593 3594define <1 x i1> @fcmps_uge_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3595; CHECK-LABEL: fcmps_uge_fv_v1f32:3596; CHECK:       # %bb.0:3597; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3598; CHECK-NEXT:    vmfgt.vf v8, v8, fa03599; CHECK-NEXT:    vmnot.m v0, v83600; CHECK-NEXT:    ret3601  %head = insertelement <1 x float> poison, float %b, i32 03602  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3603  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp3604  ret <1 x i1> %13605}3606 3607define <1 x i1> @fcmps_ult_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3608; CHECK-LABEL: fcmps_ult_vv_v1f32:3609; CHECK:       # %bb.0:3610; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3611; CHECK-NEXT:    vmfle.vv v8, v9, v83612; CHECK-NEXT:    vmnot.m v0, v83613; CHECK-NEXT:    ret3614  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp3615  ret <1 x i1> %13616}3617 3618define <1 x i1> @fcmps_ult_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3619; CHECK-LABEL: fcmps_ult_vf_v1f32:3620; CHECK:       # %bb.0:3621; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3622; CHECK-NEXT:    vmfge.vf v8, v8, fa03623; CHECK-NEXT:    vmnot.m v0, v83624; CHECK-NEXT:    ret3625  %head = insertelement <1 x float> poison, float %b, i32 03626  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3627  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp3628  ret <1 x i1> %13629}3630 3631define <1 x i1> @fcmps_ult_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3632; CHECK-LABEL: fcmps_ult_fv_v1f32:3633; CHECK:       # %bb.0:3634; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3635; CHECK-NEXT:    vmfle.vf v8, v8, fa03636; CHECK-NEXT:    vmnot.m v0, v83637; CHECK-NEXT:    ret3638  %head = insertelement <1 x float> poison, float %b, i32 03639  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3640  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp3641  ret <1 x i1> %13642}3643 3644define <1 x i1> @fcmps_ule_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3645; CHECK-LABEL: fcmps_ule_vv_v1f32:3646; CHECK:       # %bb.0:3647; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3648; CHECK-NEXT:    vmflt.vv v8, v9, v83649; CHECK-NEXT:    vmnot.m v0, v83650; CHECK-NEXT:    ret3651  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp3652  ret <1 x i1> %13653}3654 3655define <1 x i1> @fcmps_ule_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3656; CHECK-LABEL: fcmps_ule_vf_v1f32:3657; CHECK:       # %bb.0:3658; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3659; CHECK-NEXT:    vmfgt.vf v8, v8, fa03660; CHECK-NEXT:    vmnot.m v0, v83661; CHECK-NEXT:    ret3662  %head = insertelement <1 x float> poison, float %b, i32 03663  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3664  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp3665  ret <1 x i1> %13666}3667 3668define <1 x i1> @fcmps_ule_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3669; CHECK-LABEL: fcmps_ule_fv_v1f32:3670; CHECK:       # %bb.0:3671; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3672; CHECK-NEXT:    vmflt.vf v8, v8, fa03673; CHECK-NEXT:    vmnot.m v0, v83674; CHECK-NEXT:    ret3675  %head = insertelement <1 x float> poison, float %b, i32 03676  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3677  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp3678  ret <1 x i1> %13679}3680 3681define <1 x i1> @fcmps_une_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3682; CHECK-LABEL: fcmps_une_vv_v1f32:3683; CHECK:       # %bb.0:3684; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3685; CHECK-NEXT:    vmfle.vv v10, v9, v83686; CHECK-NEXT:    vmfle.vv v8, v8, v93687; CHECK-NEXT:    vmnand.mm v0, v8, v103688; CHECK-NEXT:    ret3689  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp3690  ret <1 x i1> %13691}3692 3693define <1 x i1> @fcmps_une_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3694; CHECK-LABEL: fcmps_une_vf_v1f32:3695; CHECK:       # %bb.0:3696; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3697; CHECK-NEXT:    vmfge.vf v9, v8, fa03698; CHECK-NEXT:    vmfle.vf v8, v8, fa03699; CHECK-NEXT:    vmnand.mm v0, v8, v93700; CHECK-NEXT:    ret3701  %head = insertelement <1 x float> poison, float %b, i32 03702  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3703  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp3704  ret <1 x i1> %13705}3706 3707define <1 x i1> @fcmps_une_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3708; CHECK-LABEL: fcmps_une_fv_v1f32:3709; CHECK:       # %bb.0:3710; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3711; CHECK-NEXT:    vmfle.vf v9, v8, fa03712; CHECK-NEXT:    vmfge.vf v8, v8, fa03713; CHECK-NEXT:    vmnand.mm v0, v8, v93714; CHECK-NEXT:    ret3715  %head = insertelement <1 x float> poison, float %b, i32 03716  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3717  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp3718  ret <1 x i1> %13719}3720 3721define <1 x i1> @fcmps_uno_vv_v1f32(<1 x float> %va, <1 x float> %vb) nounwind strictfp {3722; CHECK-LABEL: fcmps_uno_vv_v1f32:3723; CHECK:       # %bb.0:3724; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3725; CHECK-NEXT:    vmfle.vv v9, v9, v93726; CHECK-NEXT:    vmfle.vv v8, v8, v83727; CHECK-NEXT:    vmnot.m v8, v83728; CHECK-NEXT:    vmorn.mm v0, v8, v93729; CHECK-NEXT:    ret3730  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp3731  ret <1 x i1> %13732}3733 3734define <1 x i1> @fcmps_uno_vf_v1f32(<1 x float> %va, float %b) nounwind strictfp {3735; CHECK-LABEL: fcmps_uno_vf_v1f32:3736; CHECK:       # %bb.0:3737; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3738; CHECK-NEXT:    vfmv.s.f v9, fa03739; CHECK-NEXT:    vmfle.vv v8, v8, v83740; CHECK-NEXT:    vmfle.vf v9, v9, fa03741; CHECK-NEXT:    vmnot.m v8, v83742; CHECK-NEXT:    vmorn.mm v0, v8, v93743; CHECK-NEXT:    ret3744  %head = insertelement <1 x float> poison, float %b, i32 03745  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3746  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %va, <1 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp3747  ret <1 x i1> %13748}3749 3750define <1 x i1> @fcmps_uno_fv_v1f32(<1 x float> %va, float %b) nounwind strictfp {3751; CHECK-LABEL: fcmps_uno_fv_v1f32:3752; CHECK:       # %bb.0:3753; CHECK-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma3754; CHECK-NEXT:    vfmv.s.f v9, fa03755; CHECK-NEXT:    vmfle.vf v9, v9, fa03756; CHECK-NEXT:    vmnot.m v9, v93757; CHECK-NEXT:    vmfle.vv v8, v8, v83758; CHECK-NEXT:    vmorn.mm v0, v9, v83759; CHECK-NEXT:    ret3760  %head = insertelement <1 x float> poison, float %b, i32 03761  %splat = shufflevector <1 x float> %head, <1 x float> poison, <1 x i32> zeroinitializer3762  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f32(<1 x float> %splat, <1 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp3763  ret <1 x i1> %13764}3765 3766define <2 x i1> @fcmps_oeq_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3767; CHECK-LABEL: fcmps_oeq_vv_v2f32:3768; CHECK:       # %bb.0:3769; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3770; CHECK-NEXT:    vmfle.vv v10, v9, v83771; CHECK-NEXT:    vmfle.vv v8, v8, v93772; CHECK-NEXT:    vmand.mm v0, v8, v103773; CHECK-NEXT:    ret3774  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp3775  ret <2 x i1> %13776}3777 3778define <2 x i1> @fcmps_oeq_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3779; CHECK-LABEL: fcmps_oeq_vf_v2f32:3780; CHECK:       # %bb.0:3781; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3782; CHECK-NEXT:    vmfge.vf v9, v8, fa03783; CHECK-NEXT:    vmfle.vf v8, v8, fa03784; CHECK-NEXT:    vmand.mm v0, v8, v93785; CHECK-NEXT:    ret3786  %head = insertelement <2 x float> poison, float %b, i32 03787  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3788  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp3789  ret <2 x i1> %13790}3791 3792define <2 x i1> @fcmps_oeq_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {3793; CHECK-LABEL: fcmps_oeq_fv_v2f32:3794; CHECK:       # %bb.0:3795; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3796; CHECK-NEXT:    vmfle.vf v9, v8, fa03797; CHECK-NEXT:    vmfge.vf v8, v8, fa03798; CHECK-NEXT:    vmand.mm v0, v8, v93799; CHECK-NEXT:    ret3800  %head = insertelement <2 x float> poison, float %b, i32 03801  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3802  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp3803  ret <2 x i1> %13804}3805 3806define <2 x i1> @fcmps_ogt_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3807; CHECK-LABEL: fcmps_ogt_vv_v2f32:3808; CHECK:       # %bb.0:3809; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3810; CHECK-NEXT:    vmflt.vv v0, v9, v83811; CHECK-NEXT:    ret3812  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp3813  ret <2 x i1> %13814}3815 3816define <2 x i1> @fcmps_ogt_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3817; CHECK-LABEL: fcmps_ogt_vf_v2f32:3818; CHECK:       # %bb.0:3819; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3820; CHECK-NEXT:    vmfgt.vf v0, v8, fa03821; CHECK-NEXT:    ret3822  %head = insertelement <2 x float> poison, float %b, i32 03823  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3824  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp3825  ret <2 x i1> %13826}3827 3828define <2 x i1> @fcmps_ogt_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {3829; CHECK-LABEL: fcmps_ogt_fv_v2f32:3830; CHECK:       # %bb.0:3831; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3832; CHECK-NEXT:    vmflt.vf v0, v8, fa03833; CHECK-NEXT:    ret3834  %head = insertelement <2 x float> poison, float %b, i32 03835  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3836  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp3837  ret <2 x i1> %13838}3839 3840define <2 x i1> @fcmps_oge_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3841; CHECK-LABEL: fcmps_oge_vv_v2f32:3842; CHECK:       # %bb.0:3843; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3844; CHECK-NEXT:    vmfle.vv v0, v9, v83845; CHECK-NEXT:    ret3846  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp3847  ret <2 x i1> %13848}3849 3850define <2 x i1> @fcmps_oge_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3851; CHECK-LABEL: fcmps_oge_vf_v2f32:3852; CHECK:       # %bb.0:3853; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3854; CHECK-NEXT:    vmfge.vf v0, v8, fa03855; CHECK-NEXT:    ret3856  %head = insertelement <2 x float> poison, float %b, i32 03857  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3858  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp3859  ret <2 x i1> %13860}3861 3862define <2 x i1> @fcmps_oge_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {3863; CHECK-LABEL: fcmps_oge_fv_v2f32:3864; CHECK:       # %bb.0:3865; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3866; CHECK-NEXT:    vmfle.vf v0, v8, fa03867; CHECK-NEXT:    ret3868  %head = insertelement <2 x float> poison, float %b, i32 03869  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3870  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp3871  ret <2 x i1> %13872}3873 3874define <2 x i1> @fcmps_olt_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3875; CHECK-LABEL: fcmps_olt_vv_v2f32:3876; CHECK:       # %bb.0:3877; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3878; CHECK-NEXT:    vmflt.vv v0, v8, v93879; CHECK-NEXT:    ret3880  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp3881  ret <2 x i1> %13882}3883 3884define <2 x i1> @fcmps_olt_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3885; CHECK-LABEL: fcmps_olt_vf_v2f32:3886; CHECK:       # %bb.0:3887; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3888; CHECK-NEXT:    vmflt.vf v0, v8, fa03889; CHECK-NEXT:    ret3890  %head = insertelement <2 x float> poison, float %b, i32 03891  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3892  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp3893  ret <2 x i1> %13894}3895 3896define <2 x i1> @fcmps_olt_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {3897; CHECK-LABEL: fcmps_olt_fv_v2f32:3898; CHECK:       # %bb.0:3899; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3900; CHECK-NEXT:    vmfgt.vf v0, v8, fa03901; CHECK-NEXT:    ret3902  %head = insertelement <2 x float> poison, float %b, i32 03903  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3904  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp3905  ret <2 x i1> %13906}3907 3908define <2 x i1> @fcmps_ole_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3909; CHECK-LABEL: fcmps_ole_vv_v2f32:3910; CHECK:       # %bb.0:3911; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3912; CHECK-NEXT:    vmfle.vv v0, v8, v93913; CHECK-NEXT:    ret3914  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp3915  ret <2 x i1> %13916}3917 3918define <2 x i1> @fcmps_ole_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3919; CHECK-LABEL: fcmps_ole_vf_v2f32:3920; CHECK:       # %bb.0:3921; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3922; CHECK-NEXT:    vmfle.vf v0, v8, fa03923; CHECK-NEXT:    ret3924  %head = insertelement <2 x float> poison, float %b, i32 03925  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3926  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp3927  ret <2 x i1> %13928}3929 3930define <2 x i1> @fcmps_ole_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {3931; CHECK-LABEL: fcmps_ole_fv_v2f32:3932; CHECK:       # %bb.0:3933; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3934; CHECK-NEXT:    vmfge.vf v0, v8, fa03935; CHECK-NEXT:    ret3936  %head = insertelement <2 x float> poison, float %b, i32 03937  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3938  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp3939  ret <2 x i1> %13940}3941 3942define <2 x i1> @fcmps_one_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3943; CHECK-LABEL: fcmps_one_vv_v2f32:3944; CHECK:       # %bb.0:3945; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3946; CHECK-NEXT:    vmflt.vv v10, v8, v93947; CHECK-NEXT:    vmflt.vv v8, v9, v83948; CHECK-NEXT:    vmor.mm v0, v8, v103949; CHECK-NEXT:    ret3950  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp3951  ret <2 x i1> %13952}3953 3954define <2 x i1> @fcmps_one_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3955; CHECK-LABEL: fcmps_one_vf_v2f32:3956; CHECK:       # %bb.0:3957; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3958; CHECK-NEXT:    vmflt.vf v9, v8, fa03959; CHECK-NEXT:    vmfgt.vf v8, v8, fa03960; CHECK-NEXT:    vmor.mm v0, v8, v93961; CHECK-NEXT:    ret3962  %head = insertelement <2 x float> poison, float %b, i32 03963  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3964  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp3965  ret <2 x i1> %13966}3967 3968define <2 x i1> @fcmps_one_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {3969; CHECK-LABEL: fcmps_one_fv_v2f32:3970; CHECK:       # %bb.0:3971; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3972; CHECK-NEXT:    vmfgt.vf v9, v8, fa03973; CHECK-NEXT:    vmflt.vf v8, v8, fa03974; CHECK-NEXT:    vmor.mm v0, v8, v93975; CHECK-NEXT:    ret3976  %head = insertelement <2 x float> poison, float %b, i32 03977  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer3978  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp3979  ret <2 x i1> %13980}3981 3982define <2 x i1> @fcmps_ord_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {3983; CHECK-LABEL: fcmps_ord_vv_v2f32:3984; CHECK:       # %bb.0:3985; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3986; CHECK-NEXT:    vmfle.vv v9, v9, v93987; CHECK-NEXT:    vmfle.vv v8, v8, v83988; CHECK-NEXT:    vmand.mm v0, v8, v93989; CHECK-NEXT:    ret3990  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp3991  ret <2 x i1> %13992}3993 3994define <2 x i1> @fcmps_ord_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {3995; CHECK-LABEL: fcmps_ord_vf_v2f32:3996; CHECK:       # %bb.0:3997; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma3998; CHECK-NEXT:    vfmv.v.f v9, fa03999; CHECK-NEXT:    vmfle.vf v9, v9, fa04000; CHECK-NEXT:    vmfle.vv v8, v8, v84001; CHECK-NEXT:    vmand.mm v0, v8, v94002; CHECK-NEXT:    ret4003  %head = insertelement <2 x float> poison, float %b, i32 04004  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4005  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp4006  ret <2 x i1> %14007}4008 4009define <2 x i1> @fcmps_ord_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4010; CHECK-LABEL: fcmps_ord_fv_v2f32:4011; CHECK:       # %bb.0:4012; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4013; CHECK-NEXT:    vfmv.v.f v9, fa04014; CHECK-NEXT:    vmfle.vf v9, v9, fa04015; CHECK-NEXT:    vmfle.vv v8, v8, v84016; CHECK-NEXT:    vmand.mm v0, v9, v84017; CHECK-NEXT:    ret4018  %head = insertelement <2 x float> poison, float %b, i32 04019  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4020  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp4021  ret <2 x i1> %14022}4023 4024define <2 x i1> @fcmps_ueq_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4025; CHECK-LABEL: fcmps_ueq_vv_v2f32:4026; CHECK:       # %bb.0:4027; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4028; CHECK-NEXT:    vmflt.vv v10, v8, v94029; CHECK-NEXT:    vmflt.vv v8, v9, v84030; CHECK-NEXT:    vmnor.mm v0, v8, v104031; CHECK-NEXT:    ret4032  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp4033  ret <2 x i1> %14034}4035 4036define <2 x i1> @fcmps_ueq_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4037; CHECK-LABEL: fcmps_ueq_vf_v2f32:4038; CHECK:       # %bb.0:4039; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4040; CHECK-NEXT:    vmflt.vf v9, v8, fa04041; CHECK-NEXT:    vmfgt.vf v8, v8, fa04042; CHECK-NEXT:    vmnor.mm v0, v8, v94043; CHECK-NEXT:    ret4044  %head = insertelement <2 x float> poison, float %b, i32 04045  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4046  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp4047  ret <2 x i1> %14048}4049 4050define <2 x i1> @fcmps_ueq_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4051; CHECK-LABEL: fcmps_ueq_fv_v2f32:4052; CHECK:       # %bb.0:4053; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4054; CHECK-NEXT:    vmfgt.vf v9, v8, fa04055; CHECK-NEXT:    vmflt.vf v8, v8, fa04056; CHECK-NEXT:    vmnor.mm v0, v8, v94057; CHECK-NEXT:    ret4058  %head = insertelement <2 x float> poison, float %b, i32 04059  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4060  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp4061  ret <2 x i1> %14062}4063 4064define <2 x i1> @fcmps_ugt_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4065; CHECK-LABEL: fcmps_ugt_vv_v2f32:4066; CHECK:       # %bb.0:4067; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4068; CHECK-NEXT:    vmfle.vv v8, v8, v94069; CHECK-NEXT:    vmnot.m v0, v84070; CHECK-NEXT:    ret4071  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp4072  ret <2 x i1> %14073}4074 4075define <2 x i1> @fcmps_ugt_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4076; CHECK-LABEL: fcmps_ugt_vf_v2f32:4077; CHECK:       # %bb.0:4078; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4079; CHECK-NEXT:    vmfle.vf v8, v8, fa04080; CHECK-NEXT:    vmnot.m v0, v84081; CHECK-NEXT:    ret4082  %head = insertelement <2 x float> poison, float %b, i32 04083  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4084  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp4085  ret <2 x i1> %14086}4087 4088define <2 x i1> @fcmps_ugt_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4089; CHECK-LABEL: fcmps_ugt_fv_v2f32:4090; CHECK:       # %bb.0:4091; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4092; CHECK-NEXT:    vmfge.vf v8, v8, fa04093; CHECK-NEXT:    vmnot.m v0, v84094; CHECK-NEXT:    ret4095  %head = insertelement <2 x float> poison, float %b, i32 04096  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4097  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp4098  ret <2 x i1> %14099}4100 4101define <2 x i1> @fcmps_uge_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4102; CHECK-LABEL: fcmps_uge_vv_v2f32:4103; CHECK:       # %bb.0:4104; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4105; CHECK-NEXT:    vmflt.vv v8, v8, v94106; CHECK-NEXT:    vmnot.m v0, v84107; CHECK-NEXT:    ret4108  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp4109  ret <2 x i1> %14110}4111 4112define <2 x i1> @fcmps_uge_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4113; CHECK-LABEL: fcmps_uge_vf_v2f32:4114; CHECK:       # %bb.0:4115; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4116; CHECK-NEXT:    vmflt.vf v8, v8, fa04117; CHECK-NEXT:    vmnot.m v0, v84118; CHECK-NEXT:    ret4119  %head = insertelement <2 x float> poison, float %b, i32 04120  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4121  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp4122  ret <2 x i1> %14123}4124 4125define <2 x i1> @fcmps_uge_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4126; CHECK-LABEL: fcmps_uge_fv_v2f32:4127; CHECK:       # %bb.0:4128; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4129; CHECK-NEXT:    vmfgt.vf v8, v8, fa04130; CHECK-NEXT:    vmnot.m v0, v84131; CHECK-NEXT:    ret4132  %head = insertelement <2 x float> poison, float %b, i32 04133  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4134  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp4135  ret <2 x i1> %14136}4137 4138define <2 x i1> @fcmps_ult_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4139; CHECK-LABEL: fcmps_ult_vv_v2f32:4140; CHECK:       # %bb.0:4141; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4142; CHECK-NEXT:    vmfle.vv v8, v9, v84143; CHECK-NEXT:    vmnot.m v0, v84144; CHECK-NEXT:    ret4145  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp4146  ret <2 x i1> %14147}4148 4149define <2 x i1> @fcmps_ult_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4150; CHECK-LABEL: fcmps_ult_vf_v2f32:4151; CHECK:       # %bb.0:4152; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4153; CHECK-NEXT:    vmfge.vf v8, v8, fa04154; CHECK-NEXT:    vmnot.m v0, v84155; CHECK-NEXT:    ret4156  %head = insertelement <2 x float> poison, float %b, i32 04157  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4158  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp4159  ret <2 x i1> %14160}4161 4162define <2 x i1> @fcmps_ult_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4163; CHECK-LABEL: fcmps_ult_fv_v2f32:4164; CHECK:       # %bb.0:4165; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4166; CHECK-NEXT:    vmfle.vf v8, v8, fa04167; CHECK-NEXT:    vmnot.m v0, v84168; CHECK-NEXT:    ret4169  %head = insertelement <2 x float> poison, float %b, i32 04170  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4171  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp4172  ret <2 x i1> %14173}4174 4175define <2 x i1> @fcmps_ule_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4176; CHECK-LABEL: fcmps_ule_vv_v2f32:4177; CHECK:       # %bb.0:4178; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4179; CHECK-NEXT:    vmflt.vv v8, v9, v84180; CHECK-NEXT:    vmnot.m v0, v84181; CHECK-NEXT:    ret4182  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp4183  ret <2 x i1> %14184}4185 4186define <2 x i1> @fcmps_ule_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4187; CHECK-LABEL: fcmps_ule_vf_v2f32:4188; CHECK:       # %bb.0:4189; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4190; CHECK-NEXT:    vmfgt.vf v8, v8, fa04191; CHECK-NEXT:    vmnot.m v0, v84192; CHECK-NEXT:    ret4193  %head = insertelement <2 x float> poison, float %b, i32 04194  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4195  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp4196  ret <2 x i1> %14197}4198 4199define <2 x i1> @fcmps_ule_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4200; CHECK-LABEL: fcmps_ule_fv_v2f32:4201; CHECK:       # %bb.0:4202; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4203; CHECK-NEXT:    vmflt.vf v8, v8, fa04204; CHECK-NEXT:    vmnot.m v0, v84205; CHECK-NEXT:    ret4206  %head = insertelement <2 x float> poison, float %b, i32 04207  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4208  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp4209  ret <2 x i1> %14210}4211 4212define <2 x i1> @fcmps_une_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4213; CHECK-LABEL: fcmps_une_vv_v2f32:4214; CHECK:       # %bb.0:4215; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4216; CHECK-NEXT:    vmfle.vv v10, v9, v84217; CHECK-NEXT:    vmfle.vv v8, v8, v94218; CHECK-NEXT:    vmnand.mm v0, v8, v104219; CHECK-NEXT:    ret4220  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp4221  ret <2 x i1> %14222}4223 4224define <2 x i1> @fcmps_une_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4225; CHECK-LABEL: fcmps_une_vf_v2f32:4226; CHECK:       # %bb.0:4227; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4228; CHECK-NEXT:    vmfge.vf v9, v8, fa04229; CHECK-NEXT:    vmfle.vf v8, v8, fa04230; CHECK-NEXT:    vmnand.mm v0, v8, v94231; CHECK-NEXT:    ret4232  %head = insertelement <2 x float> poison, float %b, i32 04233  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4234  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp4235  ret <2 x i1> %14236}4237 4238define <2 x i1> @fcmps_une_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4239; CHECK-LABEL: fcmps_une_fv_v2f32:4240; CHECK:       # %bb.0:4241; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4242; CHECK-NEXT:    vmfle.vf v9, v8, fa04243; CHECK-NEXT:    vmfge.vf v8, v8, fa04244; CHECK-NEXT:    vmnand.mm v0, v8, v94245; CHECK-NEXT:    ret4246  %head = insertelement <2 x float> poison, float %b, i32 04247  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4248  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp4249  ret <2 x i1> %14250}4251 4252define <2 x i1> @fcmps_uno_vv_v2f32(<2 x float> %va, <2 x float> %vb) nounwind strictfp {4253; CHECK-LABEL: fcmps_uno_vv_v2f32:4254; CHECK:       # %bb.0:4255; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4256; CHECK-NEXT:    vmfle.vv v9, v9, v94257; CHECK-NEXT:    vmfle.vv v8, v8, v84258; CHECK-NEXT:    vmnot.m v8, v84259; CHECK-NEXT:    vmorn.mm v0, v8, v94260; CHECK-NEXT:    ret4261  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp4262  ret <2 x i1> %14263}4264 4265define <2 x i1> @fcmps_uno_vf_v2f32(<2 x float> %va, float %b) nounwind strictfp {4266; CHECK-LABEL: fcmps_uno_vf_v2f32:4267; CHECK:       # %bb.0:4268; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4269; CHECK-NEXT:    vfmv.v.f v9, fa04270; CHECK-NEXT:    vmfle.vv v8, v8, v84271; CHECK-NEXT:    vmfle.vf v9, v9, fa04272; CHECK-NEXT:    vmnot.m v8, v84273; CHECK-NEXT:    vmorn.mm v0, v8, v94274; CHECK-NEXT:    ret4275  %head = insertelement <2 x float> poison, float %b, i32 04276  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4277  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %va, <2 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp4278  ret <2 x i1> %14279}4280 4281define <2 x i1> @fcmps_uno_fv_v2f32(<2 x float> %va, float %b) nounwind strictfp {4282; CHECK-LABEL: fcmps_uno_fv_v2f32:4283; CHECK:       # %bb.0:4284; CHECK-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma4285; CHECK-NEXT:    vfmv.v.f v9, fa04286; CHECK-NEXT:    vmfle.vf v9, v9, fa04287; CHECK-NEXT:    vmnot.m v9, v94288; CHECK-NEXT:    vmfle.vv v8, v8, v84289; CHECK-NEXT:    vmorn.mm v0, v9, v84290; CHECK-NEXT:    ret4291  %head = insertelement <2 x float> poison, float %b, i32 04292  %splat = shufflevector <2 x float> %head, <2 x float> poison, <2 x i32> zeroinitializer4293  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(<2 x float> %splat, <2 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp4294  ret <2 x i1> %14295}4296 4297define <4 x i1> @fcmps_oeq_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4298; CHECK-LABEL: fcmps_oeq_vv_v4f32:4299; CHECK:       # %bb.0:4300; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4301; CHECK-NEXT:    vmfle.vv v10, v9, v84302; CHECK-NEXT:    vmfle.vv v8, v8, v94303; CHECK-NEXT:    vmand.mm v0, v8, v104304; CHECK-NEXT:    ret4305  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp4306  ret <4 x i1> %14307}4308 4309define <4 x i1> @fcmps_oeq_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4310; CHECK-LABEL: fcmps_oeq_vf_v4f32:4311; CHECK:       # %bb.0:4312; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4313; CHECK-NEXT:    vmfge.vf v9, v8, fa04314; CHECK-NEXT:    vmfle.vf v8, v8, fa04315; CHECK-NEXT:    vmand.mm v0, v8, v94316; CHECK-NEXT:    ret4317  %head = insertelement <4 x float> poison, float %b, i32 04318  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4319  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp4320  ret <4 x i1> %14321}4322 4323define <4 x i1> @fcmps_oeq_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4324; CHECK-LABEL: fcmps_oeq_fv_v4f32:4325; CHECK:       # %bb.0:4326; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4327; CHECK-NEXT:    vmfle.vf v9, v8, fa04328; CHECK-NEXT:    vmfge.vf v8, v8, fa04329; CHECK-NEXT:    vmand.mm v0, v8, v94330; CHECK-NEXT:    ret4331  %head = insertelement <4 x float> poison, float %b, i32 04332  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4333  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp4334  ret <4 x i1> %14335}4336 4337define <4 x i1> @fcmps_ogt_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4338; CHECK-LABEL: fcmps_ogt_vv_v4f32:4339; CHECK:       # %bb.0:4340; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4341; CHECK-NEXT:    vmflt.vv v0, v9, v84342; CHECK-NEXT:    ret4343  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp4344  ret <4 x i1> %14345}4346 4347define <4 x i1> @fcmps_ogt_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4348; CHECK-LABEL: fcmps_ogt_vf_v4f32:4349; CHECK:       # %bb.0:4350; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4351; CHECK-NEXT:    vmfgt.vf v0, v8, fa04352; CHECK-NEXT:    ret4353  %head = insertelement <4 x float> poison, float %b, i32 04354  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4355  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp4356  ret <4 x i1> %14357}4358 4359define <4 x i1> @fcmps_ogt_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4360; CHECK-LABEL: fcmps_ogt_fv_v4f32:4361; CHECK:       # %bb.0:4362; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4363; CHECK-NEXT:    vmflt.vf v0, v8, fa04364; CHECK-NEXT:    ret4365  %head = insertelement <4 x float> poison, float %b, i32 04366  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4367  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp4368  ret <4 x i1> %14369}4370 4371define <4 x i1> @fcmps_oge_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4372; CHECK-LABEL: fcmps_oge_vv_v4f32:4373; CHECK:       # %bb.0:4374; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4375; CHECK-NEXT:    vmfle.vv v0, v9, v84376; CHECK-NEXT:    ret4377  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp4378  ret <4 x i1> %14379}4380 4381define <4 x i1> @fcmps_oge_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4382; CHECK-LABEL: fcmps_oge_vf_v4f32:4383; CHECK:       # %bb.0:4384; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4385; CHECK-NEXT:    vmfge.vf v0, v8, fa04386; CHECK-NEXT:    ret4387  %head = insertelement <4 x float> poison, float %b, i32 04388  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4389  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp4390  ret <4 x i1> %14391}4392 4393define <4 x i1> @fcmps_oge_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4394; CHECK-LABEL: fcmps_oge_fv_v4f32:4395; CHECK:       # %bb.0:4396; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4397; CHECK-NEXT:    vmfle.vf v0, v8, fa04398; CHECK-NEXT:    ret4399  %head = insertelement <4 x float> poison, float %b, i32 04400  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4401  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp4402  ret <4 x i1> %14403}4404 4405define <4 x i1> @fcmps_olt_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4406; CHECK-LABEL: fcmps_olt_vv_v4f32:4407; CHECK:       # %bb.0:4408; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4409; CHECK-NEXT:    vmflt.vv v0, v8, v94410; CHECK-NEXT:    ret4411  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp4412  ret <4 x i1> %14413}4414 4415define <4 x i1> @fcmps_olt_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4416; CHECK-LABEL: fcmps_olt_vf_v4f32:4417; CHECK:       # %bb.0:4418; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4419; CHECK-NEXT:    vmflt.vf v0, v8, fa04420; CHECK-NEXT:    ret4421  %head = insertelement <4 x float> poison, float %b, i32 04422  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4423  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp4424  ret <4 x i1> %14425}4426 4427define <4 x i1> @fcmps_olt_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4428; CHECK-LABEL: fcmps_olt_fv_v4f32:4429; CHECK:       # %bb.0:4430; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4431; CHECK-NEXT:    vmfgt.vf v0, v8, fa04432; CHECK-NEXT:    ret4433  %head = insertelement <4 x float> poison, float %b, i32 04434  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4435  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp4436  ret <4 x i1> %14437}4438 4439define <4 x i1> @fcmps_ole_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4440; CHECK-LABEL: fcmps_ole_vv_v4f32:4441; CHECK:       # %bb.0:4442; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4443; CHECK-NEXT:    vmfle.vv v0, v8, v94444; CHECK-NEXT:    ret4445  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp4446  ret <4 x i1> %14447}4448 4449define <4 x i1> @fcmps_ole_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4450; CHECK-LABEL: fcmps_ole_vf_v4f32:4451; CHECK:       # %bb.0:4452; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4453; CHECK-NEXT:    vmfle.vf v0, v8, fa04454; CHECK-NEXT:    ret4455  %head = insertelement <4 x float> poison, float %b, i32 04456  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4457  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp4458  ret <4 x i1> %14459}4460 4461define <4 x i1> @fcmps_ole_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4462; CHECK-LABEL: fcmps_ole_fv_v4f32:4463; CHECK:       # %bb.0:4464; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4465; CHECK-NEXT:    vmfge.vf v0, v8, fa04466; CHECK-NEXT:    ret4467  %head = insertelement <4 x float> poison, float %b, i32 04468  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4469  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp4470  ret <4 x i1> %14471}4472 4473define <4 x i1> @fcmps_one_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4474; CHECK-LABEL: fcmps_one_vv_v4f32:4475; CHECK:       # %bb.0:4476; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4477; CHECK-NEXT:    vmflt.vv v10, v8, v94478; CHECK-NEXT:    vmflt.vv v8, v9, v84479; CHECK-NEXT:    vmor.mm v0, v8, v104480; CHECK-NEXT:    ret4481  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp4482  ret <4 x i1> %14483}4484 4485define <4 x i1> @fcmps_one_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4486; CHECK-LABEL: fcmps_one_vf_v4f32:4487; CHECK:       # %bb.0:4488; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4489; CHECK-NEXT:    vmflt.vf v9, v8, fa04490; CHECK-NEXT:    vmfgt.vf v8, v8, fa04491; CHECK-NEXT:    vmor.mm v0, v8, v94492; CHECK-NEXT:    ret4493  %head = insertelement <4 x float> poison, float %b, i32 04494  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4495  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp4496  ret <4 x i1> %14497}4498 4499define <4 x i1> @fcmps_one_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4500; CHECK-LABEL: fcmps_one_fv_v4f32:4501; CHECK:       # %bb.0:4502; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4503; CHECK-NEXT:    vmfgt.vf v9, v8, fa04504; CHECK-NEXT:    vmflt.vf v8, v8, fa04505; CHECK-NEXT:    vmor.mm v0, v8, v94506; CHECK-NEXT:    ret4507  %head = insertelement <4 x float> poison, float %b, i32 04508  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4509  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp4510  ret <4 x i1> %14511}4512 4513define <4 x i1> @fcmps_ord_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4514; CHECK-LABEL: fcmps_ord_vv_v4f32:4515; CHECK:       # %bb.0:4516; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4517; CHECK-NEXT:    vmfle.vv v9, v9, v94518; CHECK-NEXT:    vmfle.vv v8, v8, v84519; CHECK-NEXT:    vmand.mm v0, v8, v94520; CHECK-NEXT:    ret4521  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp4522  ret <4 x i1> %14523}4524 4525define <4 x i1> @fcmps_ord_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4526; CHECK-LABEL: fcmps_ord_vf_v4f32:4527; CHECK:       # %bb.0:4528; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4529; CHECK-NEXT:    vfmv.v.f v9, fa04530; CHECK-NEXT:    vmfle.vf v9, v9, fa04531; CHECK-NEXT:    vmfle.vv v8, v8, v84532; CHECK-NEXT:    vmand.mm v0, v8, v94533; CHECK-NEXT:    ret4534  %head = insertelement <4 x float> poison, float %b, i32 04535  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4536  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp4537  ret <4 x i1> %14538}4539 4540define <4 x i1> @fcmps_ord_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4541; CHECK-LABEL: fcmps_ord_fv_v4f32:4542; CHECK:       # %bb.0:4543; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4544; CHECK-NEXT:    vfmv.v.f v9, fa04545; CHECK-NEXT:    vmfle.vf v9, v9, fa04546; CHECK-NEXT:    vmfle.vv v8, v8, v84547; CHECK-NEXT:    vmand.mm v0, v9, v84548; CHECK-NEXT:    ret4549  %head = insertelement <4 x float> poison, float %b, i32 04550  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4551  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp4552  ret <4 x i1> %14553}4554 4555define <4 x i1> @fcmps_ueq_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4556; CHECK-LABEL: fcmps_ueq_vv_v4f32:4557; CHECK:       # %bb.0:4558; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4559; CHECK-NEXT:    vmflt.vv v10, v8, v94560; CHECK-NEXT:    vmflt.vv v8, v9, v84561; CHECK-NEXT:    vmnor.mm v0, v8, v104562; CHECK-NEXT:    ret4563  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp4564  ret <4 x i1> %14565}4566 4567define <4 x i1> @fcmps_ueq_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4568; CHECK-LABEL: fcmps_ueq_vf_v4f32:4569; CHECK:       # %bb.0:4570; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4571; CHECK-NEXT:    vmflt.vf v9, v8, fa04572; CHECK-NEXT:    vmfgt.vf v8, v8, fa04573; CHECK-NEXT:    vmnor.mm v0, v8, v94574; CHECK-NEXT:    ret4575  %head = insertelement <4 x float> poison, float %b, i32 04576  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4577  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp4578  ret <4 x i1> %14579}4580 4581define <4 x i1> @fcmps_ueq_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4582; CHECK-LABEL: fcmps_ueq_fv_v4f32:4583; CHECK:       # %bb.0:4584; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4585; CHECK-NEXT:    vmfgt.vf v9, v8, fa04586; CHECK-NEXT:    vmflt.vf v8, v8, fa04587; CHECK-NEXT:    vmnor.mm v0, v8, v94588; CHECK-NEXT:    ret4589  %head = insertelement <4 x float> poison, float %b, i32 04590  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4591  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp4592  ret <4 x i1> %14593}4594 4595define <4 x i1> @fcmps_ugt_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4596; CHECK-LABEL: fcmps_ugt_vv_v4f32:4597; CHECK:       # %bb.0:4598; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4599; CHECK-NEXT:    vmfle.vv v8, v8, v94600; CHECK-NEXT:    vmnot.m v0, v84601; CHECK-NEXT:    ret4602  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp4603  ret <4 x i1> %14604}4605 4606define <4 x i1> @fcmps_ugt_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4607; CHECK-LABEL: fcmps_ugt_vf_v4f32:4608; CHECK:       # %bb.0:4609; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4610; CHECK-NEXT:    vmfle.vf v8, v8, fa04611; CHECK-NEXT:    vmnot.m v0, v84612; CHECK-NEXT:    ret4613  %head = insertelement <4 x float> poison, float %b, i32 04614  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4615  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp4616  ret <4 x i1> %14617}4618 4619define <4 x i1> @fcmps_ugt_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4620; CHECK-LABEL: fcmps_ugt_fv_v4f32:4621; CHECK:       # %bb.0:4622; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4623; CHECK-NEXT:    vmfge.vf v8, v8, fa04624; CHECK-NEXT:    vmnot.m v0, v84625; CHECK-NEXT:    ret4626  %head = insertelement <4 x float> poison, float %b, i32 04627  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4628  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp4629  ret <4 x i1> %14630}4631 4632define <4 x i1> @fcmps_uge_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4633; CHECK-LABEL: fcmps_uge_vv_v4f32:4634; CHECK:       # %bb.0:4635; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4636; CHECK-NEXT:    vmflt.vv v8, v8, v94637; CHECK-NEXT:    vmnot.m v0, v84638; CHECK-NEXT:    ret4639  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp4640  ret <4 x i1> %14641}4642 4643define <4 x i1> @fcmps_uge_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4644; CHECK-LABEL: fcmps_uge_vf_v4f32:4645; CHECK:       # %bb.0:4646; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4647; CHECK-NEXT:    vmflt.vf v8, v8, fa04648; CHECK-NEXT:    vmnot.m v0, v84649; CHECK-NEXT:    ret4650  %head = insertelement <4 x float> poison, float %b, i32 04651  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4652  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp4653  ret <4 x i1> %14654}4655 4656define <4 x i1> @fcmps_uge_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4657; CHECK-LABEL: fcmps_uge_fv_v4f32:4658; CHECK:       # %bb.0:4659; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4660; CHECK-NEXT:    vmfgt.vf v8, v8, fa04661; CHECK-NEXT:    vmnot.m v0, v84662; CHECK-NEXT:    ret4663  %head = insertelement <4 x float> poison, float %b, i32 04664  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4665  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp4666  ret <4 x i1> %14667}4668 4669define <4 x i1> @fcmps_ult_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4670; CHECK-LABEL: fcmps_ult_vv_v4f32:4671; CHECK:       # %bb.0:4672; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4673; CHECK-NEXT:    vmfle.vv v8, v9, v84674; CHECK-NEXT:    vmnot.m v0, v84675; CHECK-NEXT:    ret4676  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp4677  ret <4 x i1> %14678}4679 4680define <4 x i1> @fcmps_ult_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4681; CHECK-LABEL: fcmps_ult_vf_v4f32:4682; CHECK:       # %bb.0:4683; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4684; CHECK-NEXT:    vmfge.vf v8, v8, fa04685; CHECK-NEXT:    vmnot.m v0, v84686; CHECK-NEXT:    ret4687  %head = insertelement <4 x float> poison, float %b, i32 04688  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4689  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp4690  ret <4 x i1> %14691}4692 4693define <4 x i1> @fcmps_ult_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4694; CHECK-LABEL: fcmps_ult_fv_v4f32:4695; CHECK:       # %bb.0:4696; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4697; CHECK-NEXT:    vmfle.vf v8, v8, fa04698; CHECK-NEXT:    vmnot.m v0, v84699; CHECK-NEXT:    ret4700  %head = insertelement <4 x float> poison, float %b, i32 04701  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4702  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp4703  ret <4 x i1> %14704}4705 4706define <4 x i1> @fcmps_ule_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4707; CHECK-LABEL: fcmps_ule_vv_v4f32:4708; CHECK:       # %bb.0:4709; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4710; CHECK-NEXT:    vmflt.vv v8, v9, v84711; CHECK-NEXT:    vmnot.m v0, v84712; CHECK-NEXT:    ret4713  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp4714  ret <4 x i1> %14715}4716 4717define <4 x i1> @fcmps_ule_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4718; CHECK-LABEL: fcmps_ule_vf_v4f32:4719; CHECK:       # %bb.0:4720; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4721; CHECK-NEXT:    vmfgt.vf v8, v8, fa04722; CHECK-NEXT:    vmnot.m v0, v84723; CHECK-NEXT:    ret4724  %head = insertelement <4 x float> poison, float %b, i32 04725  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4726  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp4727  ret <4 x i1> %14728}4729 4730define <4 x i1> @fcmps_ule_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4731; CHECK-LABEL: fcmps_ule_fv_v4f32:4732; CHECK:       # %bb.0:4733; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4734; CHECK-NEXT:    vmflt.vf v8, v8, fa04735; CHECK-NEXT:    vmnot.m v0, v84736; CHECK-NEXT:    ret4737  %head = insertelement <4 x float> poison, float %b, i32 04738  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4739  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp4740  ret <4 x i1> %14741}4742 4743define <4 x i1> @fcmps_une_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4744; CHECK-LABEL: fcmps_une_vv_v4f32:4745; CHECK:       # %bb.0:4746; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4747; CHECK-NEXT:    vmfle.vv v10, v9, v84748; CHECK-NEXT:    vmfle.vv v8, v8, v94749; CHECK-NEXT:    vmnand.mm v0, v8, v104750; CHECK-NEXT:    ret4751  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp4752  ret <4 x i1> %14753}4754 4755define <4 x i1> @fcmps_une_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4756; CHECK-LABEL: fcmps_une_vf_v4f32:4757; CHECK:       # %bb.0:4758; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4759; CHECK-NEXT:    vmfge.vf v9, v8, fa04760; CHECK-NEXT:    vmfle.vf v8, v8, fa04761; CHECK-NEXT:    vmnand.mm v0, v8, v94762; CHECK-NEXT:    ret4763  %head = insertelement <4 x float> poison, float %b, i32 04764  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4765  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp4766  ret <4 x i1> %14767}4768 4769define <4 x i1> @fcmps_une_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4770; CHECK-LABEL: fcmps_une_fv_v4f32:4771; CHECK:       # %bb.0:4772; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4773; CHECK-NEXT:    vmfle.vf v9, v8, fa04774; CHECK-NEXT:    vmfge.vf v8, v8, fa04775; CHECK-NEXT:    vmnand.mm v0, v8, v94776; CHECK-NEXT:    ret4777  %head = insertelement <4 x float> poison, float %b, i32 04778  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4779  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp4780  ret <4 x i1> %14781}4782 4783define <4 x i1> @fcmps_uno_vv_v4f32(<4 x float> %va, <4 x float> %vb) nounwind strictfp {4784; CHECK-LABEL: fcmps_uno_vv_v4f32:4785; CHECK:       # %bb.0:4786; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4787; CHECK-NEXT:    vmfle.vv v9, v9, v94788; CHECK-NEXT:    vmfle.vv v8, v8, v84789; CHECK-NEXT:    vmnot.m v8, v84790; CHECK-NEXT:    vmorn.mm v0, v8, v94791; CHECK-NEXT:    ret4792  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp4793  ret <4 x i1> %14794}4795 4796define <4 x i1> @fcmps_uno_vf_v4f32(<4 x float> %va, float %b) nounwind strictfp {4797; CHECK-LABEL: fcmps_uno_vf_v4f32:4798; CHECK:       # %bb.0:4799; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4800; CHECK-NEXT:    vfmv.v.f v9, fa04801; CHECK-NEXT:    vmfle.vv v8, v8, v84802; CHECK-NEXT:    vmfle.vf v9, v9, fa04803; CHECK-NEXT:    vmnot.m v8, v84804; CHECK-NEXT:    vmorn.mm v0, v8, v94805; CHECK-NEXT:    ret4806  %head = insertelement <4 x float> poison, float %b, i32 04807  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4808  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %va, <4 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp4809  ret <4 x i1> %14810}4811 4812define <4 x i1> @fcmps_uno_fv_v4f32(<4 x float> %va, float %b) nounwind strictfp {4813; CHECK-LABEL: fcmps_uno_fv_v4f32:4814; CHECK:       # %bb.0:4815; CHECK-NEXT:    vsetivli zero, 4, e32, m1, ta, ma4816; CHECK-NEXT:    vfmv.v.f v9, fa04817; CHECK-NEXT:    vmfle.vf v9, v9, fa04818; CHECK-NEXT:    vmnot.m v9, v94819; CHECK-NEXT:    vmfle.vv v8, v8, v84820; CHECK-NEXT:    vmorn.mm v0, v9, v84821; CHECK-NEXT:    ret4822  %head = insertelement <4 x float> poison, float %b, i32 04823  %splat = shufflevector <4 x float> %head, <4 x float> poison, <4 x i32> zeroinitializer4824  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %splat, <4 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp4825  ret <4 x i1> %14826}4827 4828define <8 x i1> @fcmps_oeq_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {4829; CHECK-LABEL: fcmps_oeq_vv_v8f32:4830; CHECK:       # %bb.0:4831; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4832; CHECK-NEXT:    vmfle.vv v12, v10, v84833; CHECK-NEXT:    vmfle.vv v13, v8, v104834; CHECK-NEXT:    vmand.mm v0, v13, v124835; CHECK-NEXT:    ret4836  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp4837  ret <8 x i1> %14838}4839 4840define <8 x i1> @fcmps_oeq_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {4841; CHECK-LABEL: fcmps_oeq_vf_v8f32:4842; CHECK:       # %bb.0:4843; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4844; CHECK-NEXT:    vmfge.vf v10, v8, fa04845; CHECK-NEXT:    vmfle.vf v11, v8, fa04846; CHECK-NEXT:    vmand.mm v0, v11, v104847; CHECK-NEXT:    ret4848  %head = insertelement <8 x float> poison, float %b, i32 04849  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4850  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp4851  ret <8 x i1> %14852}4853 4854define <8 x i1> @fcmps_oeq_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {4855; CHECK-LABEL: fcmps_oeq_fv_v8f32:4856; CHECK:       # %bb.0:4857; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4858; CHECK-NEXT:    vmfle.vf v10, v8, fa04859; CHECK-NEXT:    vmfge.vf v11, v8, fa04860; CHECK-NEXT:    vmand.mm v0, v11, v104861; CHECK-NEXT:    ret4862  %head = insertelement <8 x float> poison, float %b, i32 04863  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4864  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp4865  ret <8 x i1> %14866}4867 4868define <8 x i1> @fcmps_ogt_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {4869; CHECK-LABEL: fcmps_ogt_vv_v8f32:4870; CHECK:       # %bb.0:4871; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4872; CHECK-NEXT:    vmflt.vv v0, v10, v84873; CHECK-NEXT:    ret4874  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp4875  ret <8 x i1> %14876}4877 4878define <8 x i1> @fcmps_ogt_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {4879; CHECK-LABEL: fcmps_ogt_vf_v8f32:4880; CHECK:       # %bb.0:4881; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4882; CHECK-NEXT:    vmfgt.vf v0, v8, fa04883; CHECK-NEXT:    ret4884  %head = insertelement <8 x float> poison, float %b, i32 04885  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4886  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp4887  ret <8 x i1> %14888}4889 4890define <8 x i1> @fcmps_ogt_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {4891; CHECK-LABEL: fcmps_ogt_fv_v8f32:4892; CHECK:       # %bb.0:4893; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4894; CHECK-NEXT:    vmflt.vf v0, v8, fa04895; CHECK-NEXT:    ret4896  %head = insertelement <8 x float> poison, float %b, i32 04897  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4898  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp4899  ret <8 x i1> %14900}4901 4902define <8 x i1> @fcmps_oge_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {4903; CHECK-LABEL: fcmps_oge_vv_v8f32:4904; CHECK:       # %bb.0:4905; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4906; CHECK-NEXT:    vmfle.vv v0, v10, v84907; CHECK-NEXT:    ret4908  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp4909  ret <8 x i1> %14910}4911 4912define <8 x i1> @fcmps_oge_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {4913; CHECK-LABEL: fcmps_oge_vf_v8f32:4914; CHECK:       # %bb.0:4915; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4916; CHECK-NEXT:    vmfge.vf v0, v8, fa04917; CHECK-NEXT:    ret4918  %head = insertelement <8 x float> poison, float %b, i32 04919  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4920  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp4921  ret <8 x i1> %14922}4923 4924define <8 x i1> @fcmps_oge_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {4925; CHECK-LABEL: fcmps_oge_fv_v8f32:4926; CHECK:       # %bb.0:4927; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4928; CHECK-NEXT:    vmfle.vf v0, v8, fa04929; CHECK-NEXT:    ret4930  %head = insertelement <8 x float> poison, float %b, i32 04931  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4932  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp4933  ret <8 x i1> %14934}4935 4936define <8 x i1> @fcmps_olt_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {4937; CHECK-LABEL: fcmps_olt_vv_v8f32:4938; CHECK:       # %bb.0:4939; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4940; CHECK-NEXT:    vmflt.vv v0, v8, v104941; CHECK-NEXT:    ret4942  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp4943  ret <8 x i1> %14944}4945 4946define <8 x i1> @fcmps_olt_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {4947; CHECK-LABEL: fcmps_olt_vf_v8f32:4948; CHECK:       # %bb.0:4949; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4950; CHECK-NEXT:    vmflt.vf v0, v8, fa04951; CHECK-NEXT:    ret4952  %head = insertelement <8 x float> poison, float %b, i32 04953  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4954  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp4955  ret <8 x i1> %14956}4957 4958define <8 x i1> @fcmps_olt_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {4959; CHECK-LABEL: fcmps_olt_fv_v8f32:4960; CHECK:       # %bb.0:4961; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4962; CHECK-NEXT:    vmfgt.vf v0, v8, fa04963; CHECK-NEXT:    ret4964  %head = insertelement <8 x float> poison, float %b, i32 04965  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4966  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp4967  ret <8 x i1> %14968}4969 4970define <8 x i1> @fcmps_ole_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {4971; CHECK-LABEL: fcmps_ole_vv_v8f32:4972; CHECK:       # %bb.0:4973; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4974; CHECK-NEXT:    vmfle.vv v0, v8, v104975; CHECK-NEXT:    ret4976  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp4977  ret <8 x i1> %14978}4979 4980define <8 x i1> @fcmps_ole_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {4981; CHECK-LABEL: fcmps_ole_vf_v8f32:4982; CHECK:       # %bb.0:4983; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4984; CHECK-NEXT:    vmfle.vf v0, v8, fa04985; CHECK-NEXT:    ret4986  %head = insertelement <8 x float> poison, float %b, i32 04987  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer4988  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp4989  ret <8 x i1> %14990}4991 4992define <8 x i1> @fcmps_ole_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {4993; CHECK-LABEL: fcmps_ole_fv_v8f32:4994; CHECK:       # %bb.0:4995; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma4996; CHECK-NEXT:    vmfge.vf v0, v8, fa04997; CHECK-NEXT:    ret4998  %head = insertelement <8 x float> poison, float %b, i32 04999  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5000  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp5001  ret <8 x i1> %15002}5003 5004define <8 x i1> @fcmps_one_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5005; CHECK-LABEL: fcmps_one_vv_v8f32:5006; CHECK:       # %bb.0:5007; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5008; CHECK-NEXT:    vmflt.vv v12, v8, v105009; CHECK-NEXT:    vmflt.vv v13, v10, v85010; CHECK-NEXT:    vmor.mm v0, v13, v125011; CHECK-NEXT:    ret5012  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp5013  ret <8 x i1> %15014}5015 5016define <8 x i1> @fcmps_one_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5017; CHECK-LABEL: fcmps_one_vf_v8f32:5018; CHECK:       # %bb.0:5019; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5020; CHECK-NEXT:    vmflt.vf v10, v8, fa05021; CHECK-NEXT:    vmfgt.vf v11, v8, fa05022; CHECK-NEXT:    vmor.mm v0, v11, v105023; CHECK-NEXT:    ret5024  %head = insertelement <8 x float> poison, float %b, i32 05025  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5026  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp5027  ret <8 x i1> %15028}5029 5030define <8 x i1> @fcmps_one_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5031; CHECK-LABEL: fcmps_one_fv_v8f32:5032; CHECK:       # %bb.0:5033; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5034; CHECK-NEXT:    vmfgt.vf v10, v8, fa05035; CHECK-NEXT:    vmflt.vf v11, v8, fa05036; CHECK-NEXT:    vmor.mm v0, v11, v105037; CHECK-NEXT:    ret5038  %head = insertelement <8 x float> poison, float %b, i32 05039  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5040  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp5041  ret <8 x i1> %15042}5043 5044define <8 x i1> @fcmps_ord_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5045; CHECK-LABEL: fcmps_ord_vv_v8f32:5046; CHECK:       # %bb.0:5047; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5048; CHECK-NEXT:    vmfle.vv v12, v10, v105049; CHECK-NEXT:    vmfle.vv v10, v8, v85050; CHECK-NEXT:    vmand.mm v0, v10, v125051; CHECK-NEXT:    ret5052  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp5053  ret <8 x i1> %15054}5055 5056define <8 x i1> @fcmps_ord_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5057; CHECK-LABEL: fcmps_ord_vf_v8f32:5058; CHECK:       # %bb.0:5059; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5060; CHECK-NEXT:    vfmv.v.f v10, fa05061; CHECK-NEXT:    vmfle.vf v12, v10, fa05062; CHECK-NEXT:    vmfle.vv v10, v8, v85063; CHECK-NEXT:    vmand.mm v0, v10, v125064; CHECK-NEXT:    ret5065  %head = insertelement <8 x float> poison, float %b, i32 05066  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5067  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp5068  ret <8 x i1> %15069}5070 5071define <8 x i1> @fcmps_ord_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5072; CHECK-LABEL: fcmps_ord_fv_v8f32:5073; CHECK:       # %bb.0:5074; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5075; CHECK-NEXT:    vfmv.v.f v10, fa05076; CHECK-NEXT:    vmfle.vf v12, v10, fa05077; CHECK-NEXT:    vmfle.vv v10, v8, v85078; CHECK-NEXT:    vmand.mm v0, v12, v105079; CHECK-NEXT:    ret5080  %head = insertelement <8 x float> poison, float %b, i32 05081  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5082  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp5083  ret <8 x i1> %15084}5085 5086define <8 x i1> @fcmps_ueq_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5087; CHECK-LABEL: fcmps_ueq_vv_v8f32:5088; CHECK:       # %bb.0:5089; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5090; CHECK-NEXT:    vmflt.vv v12, v8, v105091; CHECK-NEXT:    vmflt.vv v13, v10, v85092; CHECK-NEXT:    vmnor.mm v0, v13, v125093; CHECK-NEXT:    ret5094  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp5095  ret <8 x i1> %15096}5097 5098define <8 x i1> @fcmps_ueq_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5099; CHECK-LABEL: fcmps_ueq_vf_v8f32:5100; CHECK:       # %bb.0:5101; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5102; CHECK-NEXT:    vmflt.vf v10, v8, fa05103; CHECK-NEXT:    vmfgt.vf v11, v8, fa05104; CHECK-NEXT:    vmnor.mm v0, v11, v105105; CHECK-NEXT:    ret5106  %head = insertelement <8 x float> poison, float %b, i32 05107  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5108  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp5109  ret <8 x i1> %15110}5111 5112define <8 x i1> @fcmps_ueq_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5113; CHECK-LABEL: fcmps_ueq_fv_v8f32:5114; CHECK:       # %bb.0:5115; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5116; CHECK-NEXT:    vmfgt.vf v10, v8, fa05117; CHECK-NEXT:    vmflt.vf v11, v8, fa05118; CHECK-NEXT:    vmnor.mm v0, v11, v105119; CHECK-NEXT:    ret5120  %head = insertelement <8 x float> poison, float %b, i32 05121  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5122  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp5123  ret <8 x i1> %15124}5125 5126define <8 x i1> @fcmps_ugt_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5127; CHECK-LABEL: fcmps_ugt_vv_v8f32:5128; CHECK:       # %bb.0:5129; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5130; CHECK-NEXT:    vmfle.vv v12, v8, v105131; CHECK-NEXT:    vmnot.m v0, v125132; CHECK-NEXT:    ret5133  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp5134  ret <8 x i1> %15135}5136 5137define <8 x i1> @fcmps_ugt_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5138; CHECK-LABEL: fcmps_ugt_vf_v8f32:5139; CHECK:       # %bb.0:5140; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5141; CHECK-NEXT:    vmfle.vf v10, v8, fa05142; CHECK-NEXT:    vmnot.m v0, v105143; CHECK-NEXT:    ret5144  %head = insertelement <8 x float> poison, float %b, i32 05145  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5146  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp5147  ret <8 x i1> %15148}5149 5150define <8 x i1> @fcmps_ugt_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5151; CHECK-LABEL: fcmps_ugt_fv_v8f32:5152; CHECK:       # %bb.0:5153; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5154; CHECK-NEXT:    vmfge.vf v10, v8, fa05155; CHECK-NEXT:    vmnot.m v0, v105156; CHECK-NEXT:    ret5157  %head = insertelement <8 x float> poison, float %b, i32 05158  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5159  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp5160  ret <8 x i1> %15161}5162 5163define <8 x i1> @fcmps_uge_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5164; CHECK-LABEL: fcmps_uge_vv_v8f32:5165; CHECK:       # %bb.0:5166; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5167; CHECK-NEXT:    vmflt.vv v12, v8, v105168; CHECK-NEXT:    vmnot.m v0, v125169; CHECK-NEXT:    ret5170  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp5171  ret <8 x i1> %15172}5173 5174define <8 x i1> @fcmps_uge_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5175; CHECK-LABEL: fcmps_uge_vf_v8f32:5176; CHECK:       # %bb.0:5177; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5178; CHECK-NEXT:    vmflt.vf v10, v8, fa05179; CHECK-NEXT:    vmnot.m v0, v105180; CHECK-NEXT:    ret5181  %head = insertelement <8 x float> poison, float %b, i32 05182  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5183  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp5184  ret <8 x i1> %15185}5186 5187define <8 x i1> @fcmps_uge_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5188; CHECK-LABEL: fcmps_uge_fv_v8f32:5189; CHECK:       # %bb.0:5190; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5191; CHECK-NEXT:    vmfgt.vf v10, v8, fa05192; CHECK-NEXT:    vmnot.m v0, v105193; CHECK-NEXT:    ret5194  %head = insertelement <8 x float> poison, float %b, i32 05195  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5196  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp5197  ret <8 x i1> %15198}5199 5200define <8 x i1> @fcmps_ult_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5201; CHECK-LABEL: fcmps_ult_vv_v8f32:5202; CHECK:       # %bb.0:5203; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5204; CHECK-NEXT:    vmfle.vv v12, v10, v85205; CHECK-NEXT:    vmnot.m v0, v125206; CHECK-NEXT:    ret5207  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp5208  ret <8 x i1> %15209}5210 5211define <8 x i1> @fcmps_ult_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5212; CHECK-LABEL: fcmps_ult_vf_v8f32:5213; CHECK:       # %bb.0:5214; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5215; CHECK-NEXT:    vmfge.vf v10, v8, fa05216; CHECK-NEXT:    vmnot.m v0, v105217; CHECK-NEXT:    ret5218  %head = insertelement <8 x float> poison, float %b, i32 05219  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5220  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp5221  ret <8 x i1> %15222}5223 5224define <8 x i1> @fcmps_ult_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5225; CHECK-LABEL: fcmps_ult_fv_v8f32:5226; CHECK:       # %bb.0:5227; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5228; CHECK-NEXT:    vmfle.vf v10, v8, fa05229; CHECK-NEXT:    vmnot.m v0, v105230; CHECK-NEXT:    ret5231  %head = insertelement <8 x float> poison, float %b, i32 05232  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5233  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp5234  ret <8 x i1> %15235}5236 5237define <8 x i1> @fcmps_ule_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5238; CHECK-LABEL: fcmps_ule_vv_v8f32:5239; CHECK:       # %bb.0:5240; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5241; CHECK-NEXT:    vmflt.vv v12, v10, v85242; CHECK-NEXT:    vmnot.m v0, v125243; CHECK-NEXT:    ret5244  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp5245  ret <8 x i1> %15246}5247 5248define <8 x i1> @fcmps_ule_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5249; CHECK-LABEL: fcmps_ule_vf_v8f32:5250; CHECK:       # %bb.0:5251; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5252; CHECK-NEXT:    vmfgt.vf v10, v8, fa05253; CHECK-NEXT:    vmnot.m v0, v105254; CHECK-NEXT:    ret5255  %head = insertelement <8 x float> poison, float %b, i32 05256  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5257  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp5258  ret <8 x i1> %15259}5260 5261define <8 x i1> @fcmps_ule_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5262; CHECK-LABEL: fcmps_ule_fv_v8f32:5263; CHECK:       # %bb.0:5264; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5265; CHECK-NEXT:    vmflt.vf v10, v8, fa05266; CHECK-NEXT:    vmnot.m v0, v105267; CHECK-NEXT:    ret5268  %head = insertelement <8 x float> poison, float %b, i32 05269  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5270  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp5271  ret <8 x i1> %15272}5273 5274define <8 x i1> @fcmps_une_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5275; CHECK-LABEL: fcmps_une_vv_v8f32:5276; CHECK:       # %bb.0:5277; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5278; CHECK-NEXT:    vmfle.vv v12, v10, v85279; CHECK-NEXT:    vmfle.vv v13, v8, v105280; CHECK-NEXT:    vmnand.mm v0, v13, v125281; CHECK-NEXT:    ret5282  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp5283  ret <8 x i1> %15284}5285 5286define <8 x i1> @fcmps_une_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5287; CHECK-LABEL: fcmps_une_vf_v8f32:5288; CHECK:       # %bb.0:5289; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5290; CHECK-NEXT:    vmfge.vf v10, v8, fa05291; CHECK-NEXT:    vmfle.vf v11, v8, fa05292; CHECK-NEXT:    vmnand.mm v0, v11, v105293; CHECK-NEXT:    ret5294  %head = insertelement <8 x float> poison, float %b, i32 05295  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5296  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp5297  ret <8 x i1> %15298}5299 5300define <8 x i1> @fcmps_une_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5301; CHECK-LABEL: fcmps_une_fv_v8f32:5302; CHECK:       # %bb.0:5303; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5304; CHECK-NEXT:    vmfle.vf v10, v8, fa05305; CHECK-NEXT:    vmfge.vf v11, v8, fa05306; CHECK-NEXT:    vmnand.mm v0, v11, v105307; CHECK-NEXT:    ret5308  %head = insertelement <8 x float> poison, float %b, i32 05309  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5310  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp5311  ret <8 x i1> %15312}5313 5314define <8 x i1> @fcmps_uno_vv_v8f32(<8 x float> %va, <8 x float> %vb) nounwind strictfp {5315; CHECK-LABEL: fcmps_uno_vv_v8f32:5316; CHECK:       # %bb.0:5317; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5318; CHECK-NEXT:    vmfle.vv v12, v10, v105319; CHECK-NEXT:    vmfle.vv v10, v8, v85320; CHECK-NEXT:    vmnot.m v8, v105321; CHECK-NEXT:    vmorn.mm v0, v8, v125322; CHECK-NEXT:    ret5323  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp5324  ret <8 x i1> %15325}5326 5327define <8 x i1> @fcmps_uno_vf_v8f32(<8 x float> %va, float %b) nounwind strictfp {5328; CHECK-LABEL: fcmps_uno_vf_v8f32:5329; CHECK:       # %bb.0:5330; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5331; CHECK-NEXT:    vfmv.v.f v10, fa05332; CHECK-NEXT:    vmfle.vv v12, v8, v85333; CHECK-NEXT:    vmfle.vf v8, v10, fa05334; CHECK-NEXT:    vmnot.m v9, v125335; CHECK-NEXT:    vmorn.mm v0, v9, v85336; CHECK-NEXT:    ret5337  %head = insertelement <8 x float> poison, float %b, i32 05338  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5339  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %va, <8 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp5340  ret <8 x i1> %15341}5342 5343define <8 x i1> @fcmps_uno_fv_v8f32(<8 x float> %va, float %b) nounwind strictfp {5344; CHECK-LABEL: fcmps_uno_fv_v8f32:5345; CHECK:       # %bb.0:5346; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma5347; CHECK-NEXT:    vfmv.v.f v10, fa05348; CHECK-NEXT:    vmfle.vf v12, v10, fa05349; CHECK-NEXT:    vmnot.m v10, v125350; CHECK-NEXT:    vmfle.vv v11, v8, v85351; CHECK-NEXT:    vmorn.mm v0, v10, v115352; CHECK-NEXT:    ret5353  %head = insertelement <8 x float> poison, float %b, i32 05354  %splat = shufflevector <8 x float> %head, <8 x float> poison, <8 x i32> zeroinitializer5355  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f32(<8 x float> %splat, <8 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp5356  ret <8 x i1> %15357}5358 5359define <16 x i1> @fcmps_oeq_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5360; CHECK-LABEL: fcmps_oeq_vv_v16f32:5361; CHECK:       # %bb.0:5362; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5363; CHECK-NEXT:    vmfle.vv v16, v12, v85364; CHECK-NEXT:    vmfle.vv v17, v8, v125365; CHECK-NEXT:    vmand.mm v0, v17, v165366; CHECK-NEXT:    ret5367  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp5368  ret <16 x i1> %15369}5370 5371define <16 x i1> @fcmps_oeq_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5372; CHECK-LABEL: fcmps_oeq_vf_v16f32:5373; CHECK:       # %bb.0:5374; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5375; CHECK-NEXT:    vmfge.vf v12, v8, fa05376; CHECK-NEXT:    vmfle.vf v13, v8, fa05377; CHECK-NEXT:    vmand.mm v0, v13, v125378; CHECK-NEXT:    ret5379  %head = insertelement <16 x float> poison, float %b, i32 05380  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5381  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp5382  ret <16 x i1> %15383}5384 5385define <16 x i1> @fcmps_oeq_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5386; CHECK-LABEL: fcmps_oeq_fv_v16f32:5387; CHECK:       # %bb.0:5388; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5389; CHECK-NEXT:    vmfle.vf v12, v8, fa05390; CHECK-NEXT:    vmfge.vf v13, v8, fa05391; CHECK-NEXT:    vmand.mm v0, v13, v125392; CHECK-NEXT:    ret5393  %head = insertelement <16 x float> poison, float %b, i32 05394  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5395  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp5396  ret <16 x i1> %15397}5398 5399define <16 x i1> @fcmps_ogt_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5400; CHECK-LABEL: fcmps_ogt_vv_v16f32:5401; CHECK:       # %bb.0:5402; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5403; CHECK-NEXT:    vmflt.vv v0, v12, v85404; CHECK-NEXT:    ret5405  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp5406  ret <16 x i1> %15407}5408 5409define <16 x i1> @fcmps_ogt_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5410; CHECK-LABEL: fcmps_ogt_vf_v16f32:5411; CHECK:       # %bb.0:5412; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5413; CHECK-NEXT:    vmfgt.vf v0, v8, fa05414; CHECK-NEXT:    ret5415  %head = insertelement <16 x float> poison, float %b, i32 05416  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5417  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp5418  ret <16 x i1> %15419}5420 5421define <16 x i1> @fcmps_ogt_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5422; CHECK-LABEL: fcmps_ogt_fv_v16f32:5423; CHECK:       # %bb.0:5424; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5425; CHECK-NEXT:    vmflt.vf v0, v8, fa05426; CHECK-NEXT:    ret5427  %head = insertelement <16 x float> poison, float %b, i32 05428  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5429  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp5430  ret <16 x i1> %15431}5432 5433define <16 x i1> @fcmps_oge_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5434; CHECK-LABEL: fcmps_oge_vv_v16f32:5435; CHECK:       # %bb.0:5436; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5437; CHECK-NEXT:    vmfle.vv v0, v12, v85438; CHECK-NEXT:    ret5439  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp5440  ret <16 x i1> %15441}5442 5443define <16 x i1> @fcmps_oge_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5444; CHECK-LABEL: fcmps_oge_vf_v16f32:5445; CHECK:       # %bb.0:5446; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5447; CHECK-NEXT:    vmfge.vf v0, v8, fa05448; CHECK-NEXT:    ret5449  %head = insertelement <16 x float> poison, float %b, i32 05450  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5451  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp5452  ret <16 x i1> %15453}5454 5455define <16 x i1> @fcmps_oge_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5456; CHECK-LABEL: fcmps_oge_fv_v16f32:5457; CHECK:       # %bb.0:5458; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5459; CHECK-NEXT:    vmfle.vf v0, v8, fa05460; CHECK-NEXT:    ret5461  %head = insertelement <16 x float> poison, float %b, i32 05462  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5463  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp5464  ret <16 x i1> %15465}5466 5467define <16 x i1> @fcmps_olt_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5468; CHECK-LABEL: fcmps_olt_vv_v16f32:5469; CHECK:       # %bb.0:5470; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5471; CHECK-NEXT:    vmflt.vv v0, v8, v125472; CHECK-NEXT:    ret5473  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp5474  ret <16 x i1> %15475}5476 5477define <16 x i1> @fcmps_olt_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5478; CHECK-LABEL: fcmps_olt_vf_v16f32:5479; CHECK:       # %bb.0:5480; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5481; CHECK-NEXT:    vmflt.vf v0, v8, fa05482; CHECK-NEXT:    ret5483  %head = insertelement <16 x float> poison, float %b, i32 05484  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5485  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp5486  ret <16 x i1> %15487}5488 5489define <16 x i1> @fcmps_olt_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5490; CHECK-LABEL: fcmps_olt_fv_v16f32:5491; CHECK:       # %bb.0:5492; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5493; CHECK-NEXT:    vmfgt.vf v0, v8, fa05494; CHECK-NEXT:    ret5495  %head = insertelement <16 x float> poison, float %b, i32 05496  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5497  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp5498  ret <16 x i1> %15499}5500 5501define <16 x i1> @fcmps_ole_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5502; CHECK-LABEL: fcmps_ole_vv_v16f32:5503; CHECK:       # %bb.0:5504; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5505; CHECK-NEXT:    vmfle.vv v0, v8, v125506; CHECK-NEXT:    ret5507  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp5508  ret <16 x i1> %15509}5510 5511define <16 x i1> @fcmps_ole_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5512; CHECK-LABEL: fcmps_ole_vf_v16f32:5513; CHECK:       # %bb.0:5514; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5515; CHECK-NEXT:    vmfle.vf v0, v8, fa05516; CHECK-NEXT:    ret5517  %head = insertelement <16 x float> poison, float %b, i32 05518  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5519  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp5520  ret <16 x i1> %15521}5522 5523define <16 x i1> @fcmps_ole_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5524; CHECK-LABEL: fcmps_ole_fv_v16f32:5525; CHECK:       # %bb.0:5526; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5527; CHECK-NEXT:    vmfge.vf v0, v8, fa05528; CHECK-NEXT:    ret5529  %head = insertelement <16 x float> poison, float %b, i32 05530  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5531  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp5532  ret <16 x i1> %15533}5534 5535define <16 x i1> @fcmps_one_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5536; CHECK-LABEL: fcmps_one_vv_v16f32:5537; CHECK:       # %bb.0:5538; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5539; CHECK-NEXT:    vmflt.vv v16, v8, v125540; CHECK-NEXT:    vmflt.vv v17, v12, v85541; CHECK-NEXT:    vmor.mm v0, v17, v165542; CHECK-NEXT:    ret5543  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp5544  ret <16 x i1> %15545}5546 5547define <16 x i1> @fcmps_one_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5548; CHECK-LABEL: fcmps_one_vf_v16f32:5549; CHECK:       # %bb.0:5550; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5551; CHECK-NEXT:    vmflt.vf v12, v8, fa05552; CHECK-NEXT:    vmfgt.vf v13, v8, fa05553; CHECK-NEXT:    vmor.mm v0, v13, v125554; CHECK-NEXT:    ret5555  %head = insertelement <16 x float> poison, float %b, i32 05556  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5557  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp5558  ret <16 x i1> %15559}5560 5561define <16 x i1> @fcmps_one_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5562; CHECK-LABEL: fcmps_one_fv_v16f32:5563; CHECK:       # %bb.0:5564; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5565; CHECK-NEXT:    vmfgt.vf v12, v8, fa05566; CHECK-NEXT:    vmflt.vf v13, v8, fa05567; CHECK-NEXT:    vmor.mm v0, v13, v125568; CHECK-NEXT:    ret5569  %head = insertelement <16 x float> poison, float %b, i32 05570  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5571  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"one", metadata !"fpexcept.strict") strictfp5572  ret <16 x i1> %15573}5574 5575define <16 x i1> @fcmps_ord_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5576; CHECK-LABEL: fcmps_ord_vv_v16f32:5577; CHECK:       # %bb.0:5578; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5579; CHECK-NEXT:    vmfle.vv v16, v12, v125580; CHECK-NEXT:    vmfle.vv v12, v8, v85581; CHECK-NEXT:    vmand.mm v0, v12, v165582; CHECK-NEXT:    ret5583  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp5584  ret <16 x i1> %15585}5586 5587define <16 x i1> @fcmps_ord_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5588; CHECK-LABEL: fcmps_ord_vf_v16f32:5589; CHECK:       # %bb.0:5590; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5591; CHECK-NEXT:    vfmv.v.f v12, fa05592; CHECK-NEXT:    vmfle.vf v16, v12, fa05593; CHECK-NEXT:    vmfle.vv v12, v8, v85594; CHECK-NEXT:    vmand.mm v0, v12, v165595; CHECK-NEXT:    ret5596  %head = insertelement <16 x float> poison, float %b, i32 05597  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5598  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp5599  ret <16 x i1> %15600}5601 5602define <16 x i1> @fcmps_ord_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5603; CHECK-LABEL: fcmps_ord_fv_v16f32:5604; CHECK:       # %bb.0:5605; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5606; CHECK-NEXT:    vfmv.v.f v12, fa05607; CHECK-NEXT:    vmfle.vf v16, v12, fa05608; CHECK-NEXT:    vmfle.vv v12, v8, v85609; CHECK-NEXT:    vmand.mm v0, v16, v125610; CHECK-NEXT:    ret5611  %head = insertelement <16 x float> poison, float %b, i32 05612  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5613  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp5614  ret <16 x i1> %15615}5616 5617define <16 x i1> @fcmps_ueq_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5618; CHECK-LABEL: fcmps_ueq_vv_v16f32:5619; CHECK:       # %bb.0:5620; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5621; CHECK-NEXT:    vmflt.vv v16, v8, v125622; CHECK-NEXT:    vmflt.vv v17, v12, v85623; CHECK-NEXT:    vmnor.mm v0, v17, v165624; CHECK-NEXT:    ret5625  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp5626  ret <16 x i1> %15627}5628 5629define <16 x i1> @fcmps_ueq_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5630; CHECK-LABEL: fcmps_ueq_vf_v16f32:5631; CHECK:       # %bb.0:5632; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5633; CHECK-NEXT:    vmflt.vf v12, v8, fa05634; CHECK-NEXT:    vmfgt.vf v13, v8, fa05635; CHECK-NEXT:    vmnor.mm v0, v13, v125636; CHECK-NEXT:    ret5637  %head = insertelement <16 x float> poison, float %b, i32 05638  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5639  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp5640  ret <16 x i1> %15641}5642 5643define <16 x i1> @fcmps_ueq_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5644; CHECK-LABEL: fcmps_ueq_fv_v16f32:5645; CHECK:       # %bb.0:5646; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5647; CHECK-NEXT:    vmfgt.vf v12, v8, fa05648; CHECK-NEXT:    vmflt.vf v13, v8, fa05649; CHECK-NEXT:    vmnor.mm v0, v13, v125650; CHECK-NEXT:    ret5651  %head = insertelement <16 x float> poison, float %b, i32 05652  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5653  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp5654  ret <16 x i1> %15655}5656 5657define <16 x i1> @fcmps_ugt_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5658; CHECK-LABEL: fcmps_ugt_vv_v16f32:5659; CHECK:       # %bb.0:5660; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5661; CHECK-NEXT:    vmfle.vv v16, v8, v125662; CHECK-NEXT:    vmnot.m v0, v165663; CHECK-NEXT:    ret5664  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp5665  ret <16 x i1> %15666}5667 5668define <16 x i1> @fcmps_ugt_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5669; CHECK-LABEL: fcmps_ugt_vf_v16f32:5670; CHECK:       # %bb.0:5671; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5672; CHECK-NEXT:    vmfle.vf v12, v8, fa05673; CHECK-NEXT:    vmnot.m v0, v125674; CHECK-NEXT:    ret5675  %head = insertelement <16 x float> poison, float %b, i32 05676  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5677  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp5678  ret <16 x i1> %15679}5680 5681define <16 x i1> @fcmps_ugt_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5682; CHECK-LABEL: fcmps_ugt_fv_v16f32:5683; CHECK:       # %bb.0:5684; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5685; CHECK-NEXT:    vmfge.vf v12, v8, fa05686; CHECK-NEXT:    vmnot.m v0, v125687; CHECK-NEXT:    ret5688  %head = insertelement <16 x float> poison, float %b, i32 05689  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5690  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp5691  ret <16 x i1> %15692}5693 5694define <16 x i1> @fcmps_uge_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5695; CHECK-LABEL: fcmps_uge_vv_v16f32:5696; CHECK:       # %bb.0:5697; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5698; CHECK-NEXT:    vmflt.vv v16, v8, v125699; CHECK-NEXT:    vmnot.m v0, v165700; CHECK-NEXT:    ret5701  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp5702  ret <16 x i1> %15703}5704 5705define <16 x i1> @fcmps_uge_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5706; CHECK-LABEL: fcmps_uge_vf_v16f32:5707; CHECK:       # %bb.0:5708; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5709; CHECK-NEXT:    vmflt.vf v12, v8, fa05710; CHECK-NEXT:    vmnot.m v0, v125711; CHECK-NEXT:    ret5712  %head = insertelement <16 x float> poison, float %b, i32 05713  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5714  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp5715  ret <16 x i1> %15716}5717 5718define <16 x i1> @fcmps_uge_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5719; CHECK-LABEL: fcmps_uge_fv_v16f32:5720; CHECK:       # %bb.0:5721; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5722; CHECK-NEXT:    vmfgt.vf v12, v8, fa05723; CHECK-NEXT:    vmnot.m v0, v125724; CHECK-NEXT:    ret5725  %head = insertelement <16 x float> poison, float %b, i32 05726  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5727  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp5728  ret <16 x i1> %15729}5730 5731define <16 x i1> @fcmps_ult_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5732; CHECK-LABEL: fcmps_ult_vv_v16f32:5733; CHECK:       # %bb.0:5734; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5735; CHECK-NEXT:    vmfle.vv v16, v12, v85736; CHECK-NEXT:    vmnot.m v0, v165737; CHECK-NEXT:    ret5738  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp5739  ret <16 x i1> %15740}5741 5742define <16 x i1> @fcmps_ult_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5743; CHECK-LABEL: fcmps_ult_vf_v16f32:5744; CHECK:       # %bb.0:5745; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5746; CHECK-NEXT:    vmfge.vf v12, v8, fa05747; CHECK-NEXT:    vmnot.m v0, v125748; CHECK-NEXT:    ret5749  %head = insertelement <16 x float> poison, float %b, i32 05750  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5751  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp5752  ret <16 x i1> %15753}5754 5755define <16 x i1> @fcmps_ult_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5756; CHECK-LABEL: fcmps_ult_fv_v16f32:5757; CHECK:       # %bb.0:5758; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5759; CHECK-NEXT:    vmfle.vf v12, v8, fa05760; CHECK-NEXT:    vmnot.m v0, v125761; CHECK-NEXT:    ret5762  %head = insertelement <16 x float> poison, float %b, i32 05763  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5764  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp5765  ret <16 x i1> %15766}5767 5768define <16 x i1> @fcmps_ule_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5769; CHECK-LABEL: fcmps_ule_vv_v16f32:5770; CHECK:       # %bb.0:5771; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5772; CHECK-NEXT:    vmflt.vv v16, v12, v85773; CHECK-NEXT:    vmnot.m v0, v165774; CHECK-NEXT:    ret5775  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp5776  ret <16 x i1> %15777}5778 5779define <16 x i1> @fcmps_ule_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5780; CHECK-LABEL: fcmps_ule_vf_v16f32:5781; CHECK:       # %bb.0:5782; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5783; CHECK-NEXT:    vmfgt.vf v12, v8, fa05784; CHECK-NEXT:    vmnot.m v0, v125785; CHECK-NEXT:    ret5786  %head = insertelement <16 x float> poison, float %b, i32 05787  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5788  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp5789  ret <16 x i1> %15790}5791 5792define <16 x i1> @fcmps_ule_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5793; CHECK-LABEL: fcmps_ule_fv_v16f32:5794; CHECK:       # %bb.0:5795; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5796; CHECK-NEXT:    vmflt.vf v12, v8, fa05797; CHECK-NEXT:    vmnot.m v0, v125798; CHECK-NEXT:    ret5799  %head = insertelement <16 x float> poison, float %b, i32 05800  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5801  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp5802  ret <16 x i1> %15803}5804 5805define <16 x i1> @fcmps_une_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5806; CHECK-LABEL: fcmps_une_vv_v16f32:5807; CHECK:       # %bb.0:5808; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5809; CHECK-NEXT:    vmfle.vv v16, v12, v85810; CHECK-NEXT:    vmfle.vv v17, v8, v125811; CHECK-NEXT:    vmnand.mm v0, v17, v165812; CHECK-NEXT:    ret5813  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp5814  ret <16 x i1> %15815}5816 5817define <16 x i1> @fcmps_une_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5818; CHECK-LABEL: fcmps_une_vf_v16f32:5819; CHECK:       # %bb.0:5820; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5821; CHECK-NEXT:    vmfge.vf v12, v8, fa05822; CHECK-NEXT:    vmfle.vf v13, v8, fa05823; CHECK-NEXT:    vmnand.mm v0, v13, v125824; CHECK-NEXT:    ret5825  %head = insertelement <16 x float> poison, float %b, i32 05826  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5827  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp5828  ret <16 x i1> %15829}5830 5831define <16 x i1> @fcmps_une_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5832; CHECK-LABEL: fcmps_une_fv_v16f32:5833; CHECK:       # %bb.0:5834; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5835; CHECK-NEXT:    vmfle.vf v12, v8, fa05836; CHECK-NEXT:    vmfge.vf v13, v8, fa05837; CHECK-NEXT:    vmnand.mm v0, v13, v125838; CHECK-NEXT:    ret5839  %head = insertelement <16 x float> poison, float %b, i32 05840  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5841  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"une", metadata !"fpexcept.strict") strictfp5842  ret <16 x i1> %15843}5844 5845define <16 x i1> @fcmps_uno_vv_v16f32(<16 x float> %va, <16 x float> %vb) nounwind strictfp {5846; CHECK-LABEL: fcmps_uno_vv_v16f32:5847; CHECK:       # %bb.0:5848; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5849; CHECK-NEXT:    vmfle.vv v16, v12, v125850; CHECK-NEXT:    vmfle.vv v12, v8, v85851; CHECK-NEXT:    vmnot.m v8, v125852; CHECK-NEXT:    vmorn.mm v0, v8, v165853; CHECK-NEXT:    ret5854  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp5855  ret <16 x i1> %15856}5857 5858define <16 x i1> @fcmps_uno_vf_v16f32(<16 x float> %va, float %b) nounwind strictfp {5859; CHECK-LABEL: fcmps_uno_vf_v16f32:5860; CHECK:       # %bb.0:5861; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5862; CHECK-NEXT:    vfmv.v.f v12, fa05863; CHECK-NEXT:    vmfle.vv v16, v8, v85864; CHECK-NEXT:    vmfle.vf v8, v12, fa05865; CHECK-NEXT:    vmnot.m v9, v165866; CHECK-NEXT:    vmorn.mm v0, v9, v85867; CHECK-NEXT:    ret5868  %head = insertelement <16 x float> poison, float %b, i32 05869  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5870  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %va, <16 x float> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp5871  ret <16 x i1> %15872}5873 5874define <16 x i1> @fcmps_uno_fv_v16f32(<16 x float> %va, float %b) nounwind strictfp {5875; CHECK-LABEL: fcmps_uno_fv_v16f32:5876; CHECK:       # %bb.0:5877; CHECK-NEXT:    vsetivli zero, 16, e32, m4, ta, ma5878; CHECK-NEXT:    vfmv.v.f v12, fa05879; CHECK-NEXT:    vmfle.vf v16, v12, fa05880; CHECK-NEXT:    vmnot.m v12, v165881; CHECK-NEXT:    vmfle.vv v13, v8, v85882; CHECK-NEXT:    vmorn.mm v0, v12, v135883; CHECK-NEXT:    ret5884  %head = insertelement <16 x float> poison, float %b, i32 05885  %splat = shufflevector <16 x float> %head, <16 x float> poison, <16 x i32> zeroinitializer5886  %1 = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float> %splat, <16 x float> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp5887  ret <16 x i1> %15888}5889 5890define <1 x i1> @fcmps_oeq_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {5891; CHECK-LABEL: fcmps_oeq_vv_v1f64:5892; CHECK:       # %bb.0:5893; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5894; CHECK-NEXT:    vmfle.vv v10, v9, v85895; CHECK-NEXT:    vmfle.vv v8, v8, v95896; CHECK-NEXT:    vmand.mm v0, v8, v105897; CHECK-NEXT:    ret5898  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp5899  ret <1 x i1> %15900}5901 5902define <1 x i1> @fcmps_oeq_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {5903; CHECK-LABEL: fcmps_oeq_vf_v1f64:5904; CHECK:       # %bb.0:5905; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5906; CHECK-NEXT:    vmfge.vf v9, v8, fa05907; CHECK-NEXT:    vmfle.vf v8, v8, fa05908; CHECK-NEXT:    vmand.mm v0, v8, v95909; CHECK-NEXT:    ret5910  %head = insertelement <1 x double> poison, double %b, i32 05911  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer5912  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp5913  ret <1 x i1> %15914}5915 5916define <1 x i1> @fcmps_oeq_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {5917; CHECK-LABEL: fcmps_oeq_fv_v1f64:5918; CHECK:       # %bb.0:5919; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5920; CHECK-NEXT:    vmfle.vf v9, v8, fa05921; CHECK-NEXT:    vmfge.vf v8, v8, fa05922; CHECK-NEXT:    vmand.mm v0, v8, v95923; CHECK-NEXT:    ret5924  %head = insertelement <1 x double> poison, double %b, i32 05925  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer5926  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp5927  ret <1 x i1> %15928}5929 5930define <1 x i1> @fcmps_ogt_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {5931; CHECK-LABEL: fcmps_ogt_vv_v1f64:5932; CHECK:       # %bb.0:5933; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5934; CHECK-NEXT:    vmflt.vv v0, v9, v85935; CHECK-NEXT:    ret5936  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp5937  ret <1 x i1> %15938}5939 5940define <1 x i1> @fcmps_ogt_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {5941; CHECK-LABEL: fcmps_ogt_vf_v1f64:5942; CHECK:       # %bb.0:5943; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5944; CHECK-NEXT:    vmfgt.vf v0, v8, fa05945; CHECK-NEXT:    ret5946  %head = insertelement <1 x double> poison, double %b, i32 05947  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer5948  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp5949  ret <1 x i1> %15950}5951 5952define <1 x i1> @fcmps_ogt_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {5953; CHECK-LABEL: fcmps_ogt_fv_v1f64:5954; CHECK:       # %bb.0:5955; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5956; CHECK-NEXT:    vmflt.vf v0, v8, fa05957; CHECK-NEXT:    ret5958  %head = insertelement <1 x double> poison, double %b, i32 05959  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer5960  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp5961  ret <1 x i1> %15962}5963 5964define <1 x i1> @fcmps_oge_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {5965; CHECK-LABEL: fcmps_oge_vv_v1f64:5966; CHECK:       # %bb.0:5967; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5968; CHECK-NEXT:    vmfle.vv v0, v9, v85969; CHECK-NEXT:    ret5970  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp5971  ret <1 x i1> %15972}5973 5974define <1 x i1> @fcmps_oge_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {5975; CHECK-LABEL: fcmps_oge_vf_v1f64:5976; CHECK:       # %bb.0:5977; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5978; CHECK-NEXT:    vmfge.vf v0, v8, fa05979; CHECK-NEXT:    ret5980  %head = insertelement <1 x double> poison, double %b, i32 05981  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer5982  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp5983  ret <1 x i1> %15984}5985 5986define <1 x i1> @fcmps_oge_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {5987; CHECK-LABEL: fcmps_oge_fv_v1f64:5988; CHECK:       # %bb.0:5989; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma5990; CHECK-NEXT:    vmfle.vf v0, v8, fa05991; CHECK-NEXT:    ret5992  %head = insertelement <1 x double> poison, double %b, i32 05993  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer5994  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp5995  ret <1 x i1> %15996}5997 5998define <1 x i1> @fcmps_olt_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {5999; CHECK-LABEL: fcmps_olt_vv_v1f64:6000; CHECK:       # %bb.0:6001; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6002; CHECK-NEXT:    vmflt.vv v0, v8, v96003; CHECK-NEXT:    ret6004  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp6005  ret <1 x i1> %16006}6007 6008define <1 x i1> @fcmps_olt_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6009; CHECK-LABEL: fcmps_olt_vf_v1f64:6010; CHECK:       # %bb.0:6011; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6012; CHECK-NEXT:    vmflt.vf v0, v8, fa06013; CHECK-NEXT:    ret6014  %head = insertelement <1 x double> poison, double %b, i32 06015  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6016  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp6017  ret <1 x i1> %16018}6019 6020define <1 x i1> @fcmps_olt_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6021; CHECK-LABEL: fcmps_olt_fv_v1f64:6022; CHECK:       # %bb.0:6023; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6024; CHECK-NEXT:    vmfgt.vf v0, v8, fa06025; CHECK-NEXT:    ret6026  %head = insertelement <1 x double> poison, double %b, i32 06027  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6028  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp6029  ret <1 x i1> %16030}6031 6032define <1 x i1> @fcmps_ole_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6033; CHECK-LABEL: fcmps_ole_vv_v1f64:6034; CHECK:       # %bb.0:6035; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6036; CHECK-NEXT:    vmfle.vv v0, v8, v96037; CHECK-NEXT:    ret6038  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp6039  ret <1 x i1> %16040}6041 6042define <1 x i1> @fcmps_ole_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6043; CHECK-LABEL: fcmps_ole_vf_v1f64:6044; CHECK:       # %bb.0:6045; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6046; CHECK-NEXT:    vmfle.vf v0, v8, fa06047; CHECK-NEXT:    ret6048  %head = insertelement <1 x double> poison, double %b, i32 06049  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6050  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp6051  ret <1 x i1> %16052}6053 6054define <1 x i1> @fcmps_ole_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6055; CHECK-LABEL: fcmps_ole_fv_v1f64:6056; CHECK:       # %bb.0:6057; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6058; CHECK-NEXT:    vmfge.vf v0, v8, fa06059; CHECK-NEXT:    ret6060  %head = insertelement <1 x double> poison, double %b, i32 06061  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6062  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp6063  ret <1 x i1> %16064}6065 6066define <1 x i1> @fcmps_one_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6067; CHECK-LABEL: fcmps_one_vv_v1f64:6068; CHECK:       # %bb.0:6069; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6070; CHECK-NEXT:    vmflt.vv v10, v8, v96071; CHECK-NEXT:    vmflt.vv v8, v9, v86072; CHECK-NEXT:    vmor.mm v0, v8, v106073; CHECK-NEXT:    ret6074  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp6075  ret <1 x i1> %16076}6077 6078define <1 x i1> @fcmps_one_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6079; CHECK-LABEL: fcmps_one_vf_v1f64:6080; CHECK:       # %bb.0:6081; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6082; CHECK-NEXT:    vmflt.vf v9, v8, fa06083; CHECK-NEXT:    vmfgt.vf v8, v8, fa06084; CHECK-NEXT:    vmor.mm v0, v8, v96085; CHECK-NEXT:    ret6086  %head = insertelement <1 x double> poison, double %b, i32 06087  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6088  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp6089  ret <1 x i1> %16090}6091 6092define <1 x i1> @fcmps_one_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6093; CHECK-LABEL: fcmps_one_fv_v1f64:6094; CHECK:       # %bb.0:6095; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6096; CHECK-NEXT:    vmfgt.vf v9, v8, fa06097; CHECK-NEXT:    vmflt.vf v8, v8, fa06098; CHECK-NEXT:    vmor.mm v0, v8, v96099; CHECK-NEXT:    ret6100  %head = insertelement <1 x double> poison, double %b, i32 06101  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6102  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp6103  ret <1 x i1> %16104}6105 6106define <1 x i1> @fcmps_ord_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6107; CHECK-LABEL: fcmps_ord_vv_v1f64:6108; CHECK:       # %bb.0:6109; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6110; CHECK-NEXT:    vmfle.vv v9, v9, v96111; CHECK-NEXT:    vmfle.vv v8, v8, v86112; CHECK-NEXT:    vmand.mm v0, v8, v96113; CHECK-NEXT:    ret6114  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp6115  ret <1 x i1> %16116}6117 6118define <1 x i1> @fcmps_ord_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6119; CHECK-LABEL: fcmps_ord_vf_v1f64:6120; CHECK:       # %bb.0:6121; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6122; CHECK-NEXT:    vfmv.s.f v9, fa06123; CHECK-NEXT:    vmfle.vf v9, v9, fa06124; CHECK-NEXT:    vmfle.vv v8, v8, v86125; CHECK-NEXT:    vmand.mm v0, v8, v96126; CHECK-NEXT:    ret6127  %head = insertelement <1 x double> poison, double %b, i32 06128  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6129  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp6130  ret <1 x i1> %16131}6132 6133define <1 x i1> @fcmps_ord_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6134; CHECK-LABEL: fcmps_ord_fv_v1f64:6135; CHECK:       # %bb.0:6136; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6137; CHECK-NEXT:    vfmv.s.f v9, fa06138; CHECK-NEXT:    vmfle.vf v9, v9, fa06139; CHECK-NEXT:    vmfle.vv v8, v8, v86140; CHECK-NEXT:    vmand.mm v0, v9, v86141; CHECK-NEXT:    ret6142  %head = insertelement <1 x double> poison, double %b, i32 06143  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6144  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp6145  ret <1 x i1> %16146}6147 6148define <1 x i1> @fcmps_ueq_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6149; CHECK-LABEL: fcmps_ueq_vv_v1f64:6150; CHECK:       # %bb.0:6151; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6152; CHECK-NEXT:    vmflt.vv v10, v8, v96153; CHECK-NEXT:    vmflt.vv v8, v9, v86154; CHECK-NEXT:    vmnor.mm v0, v8, v106155; CHECK-NEXT:    ret6156  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp6157  ret <1 x i1> %16158}6159 6160define <1 x i1> @fcmps_ueq_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6161; CHECK-LABEL: fcmps_ueq_vf_v1f64:6162; CHECK:       # %bb.0:6163; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6164; CHECK-NEXT:    vmflt.vf v9, v8, fa06165; CHECK-NEXT:    vmfgt.vf v8, v8, fa06166; CHECK-NEXT:    vmnor.mm v0, v8, v96167; CHECK-NEXT:    ret6168  %head = insertelement <1 x double> poison, double %b, i32 06169  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6170  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp6171  ret <1 x i1> %16172}6173 6174define <1 x i1> @fcmps_ueq_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6175; CHECK-LABEL: fcmps_ueq_fv_v1f64:6176; CHECK:       # %bb.0:6177; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6178; CHECK-NEXT:    vmfgt.vf v9, v8, fa06179; CHECK-NEXT:    vmflt.vf v8, v8, fa06180; CHECK-NEXT:    vmnor.mm v0, v8, v96181; CHECK-NEXT:    ret6182  %head = insertelement <1 x double> poison, double %b, i32 06183  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6184  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp6185  ret <1 x i1> %16186}6187 6188define <1 x i1> @fcmps_ugt_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6189; CHECK-LABEL: fcmps_ugt_vv_v1f64:6190; CHECK:       # %bb.0:6191; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6192; CHECK-NEXT:    vmfle.vv v8, v8, v96193; CHECK-NEXT:    vmnot.m v0, v86194; CHECK-NEXT:    ret6195  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp6196  ret <1 x i1> %16197}6198 6199define <1 x i1> @fcmps_ugt_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6200; CHECK-LABEL: fcmps_ugt_vf_v1f64:6201; CHECK:       # %bb.0:6202; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6203; CHECK-NEXT:    vmfle.vf v8, v8, fa06204; CHECK-NEXT:    vmnot.m v0, v86205; CHECK-NEXT:    ret6206  %head = insertelement <1 x double> poison, double %b, i32 06207  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6208  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp6209  ret <1 x i1> %16210}6211 6212define <1 x i1> @fcmps_ugt_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6213; CHECK-LABEL: fcmps_ugt_fv_v1f64:6214; CHECK:       # %bb.0:6215; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6216; CHECK-NEXT:    vmfge.vf v8, v8, fa06217; CHECK-NEXT:    vmnot.m v0, v86218; CHECK-NEXT:    ret6219  %head = insertelement <1 x double> poison, double %b, i32 06220  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6221  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp6222  ret <1 x i1> %16223}6224 6225define <1 x i1> @fcmps_uge_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6226; CHECK-LABEL: fcmps_uge_vv_v1f64:6227; CHECK:       # %bb.0:6228; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6229; CHECK-NEXT:    vmflt.vv v8, v8, v96230; CHECK-NEXT:    vmnot.m v0, v86231; CHECK-NEXT:    ret6232  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp6233  ret <1 x i1> %16234}6235 6236define <1 x i1> @fcmps_uge_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6237; CHECK-LABEL: fcmps_uge_vf_v1f64:6238; CHECK:       # %bb.0:6239; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6240; CHECK-NEXT:    vmflt.vf v8, v8, fa06241; CHECK-NEXT:    vmnot.m v0, v86242; CHECK-NEXT:    ret6243  %head = insertelement <1 x double> poison, double %b, i32 06244  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6245  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp6246  ret <1 x i1> %16247}6248 6249define <1 x i1> @fcmps_uge_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6250; CHECK-LABEL: fcmps_uge_fv_v1f64:6251; CHECK:       # %bb.0:6252; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6253; CHECK-NEXT:    vmfgt.vf v8, v8, fa06254; CHECK-NEXT:    vmnot.m v0, v86255; CHECK-NEXT:    ret6256  %head = insertelement <1 x double> poison, double %b, i32 06257  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6258  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp6259  ret <1 x i1> %16260}6261 6262define <1 x i1> @fcmps_ult_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6263; CHECK-LABEL: fcmps_ult_vv_v1f64:6264; CHECK:       # %bb.0:6265; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6266; CHECK-NEXT:    vmfle.vv v8, v9, v86267; CHECK-NEXT:    vmnot.m v0, v86268; CHECK-NEXT:    ret6269  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp6270  ret <1 x i1> %16271}6272 6273define <1 x i1> @fcmps_ult_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6274; CHECK-LABEL: fcmps_ult_vf_v1f64:6275; CHECK:       # %bb.0:6276; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6277; CHECK-NEXT:    vmfge.vf v8, v8, fa06278; CHECK-NEXT:    vmnot.m v0, v86279; CHECK-NEXT:    ret6280  %head = insertelement <1 x double> poison, double %b, i32 06281  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6282  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp6283  ret <1 x i1> %16284}6285 6286define <1 x i1> @fcmps_ult_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6287; CHECK-LABEL: fcmps_ult_fv_v1f64:6288; CHECK:       # %bb.0:6289; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6290; CHECK-NEXT:    vmfle.vf v8, v8, fa06291; CHECK-NEXT:    vmnot.m v0, v86292; CHECK-NEXT:    ret6293  %head = insertelement <1 x double> poison, double %b, i32 06294  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6295  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp6296  ret <1 x i1> %16297}6298 6299define <1 x i1> @fcmps_ule_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6300; CHECK-LABEL: fcmps_ule_vv_v1f64:6301; CHECK:       # %bb.0:6302; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6303; CHECK-NEXT:    vmflt.vv v8, v9, v86304; CHECK-NEXT:    vmnot.m v0, v86305; CHECK-NEXT:    ret6306  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp6307  ret <1 x i1> %16308}6309 6310define <1 x i1> @fcmps_ule_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6311; CHECK-LABEL: fcmps_ule_vf_v1f64:6312; CHECK:       # %bb.0:6313; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6314; CHECK-NEXT:    vmfgt.vf v8, v8, fa06315; CHECK-NEXT:    vmnot.m v0, v86316; CHECK-NEXT:    ret6317  %head = insertelement <1 x double> poison, double %b, i32 06318  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6319  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp6320  ret <1 x i1> %16321}6322 6323define <1 x i1> @fcmps_ule_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6324; CHECK-LABEL: fcmps_ule_fv_v1f64:6325; CHECK:       # %bb.0:6326; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6327; CHECK-NEXT:    vmflt.vf v8, v8, fa06328; CHECK-NEXT:    vmnot.m v0, v86329; CHECK-NEXT:    ret6330  %head = insertelement <1 x double> poison, double %b, i32 06331  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6332  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp6333  ret <1 x i1> %16334}6335 6336define <1 x i1> @fcmps_une_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6337; CHECK-LABEL: fcmps_une_vv_v1f64:6338; CHECK:       # %bb.0:6339; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6340; CHECK-NEXT:    vmfle.vv v10, v9, v86341; CHECK-NEXT:    vmfle.vv v8, v8, v96342; CHECK-NEXT:    vmnand.mm v0, v8, v106343; CHECK-NEXT:    ret6344  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp6345  ret <1 x i1> %16346}6347 6348define <1 x i1> @fcmps_une_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6349; CHECK-LABEL: fcmps_une_vf_v1f64:6350; CHECK:       # %bb.0:6351; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6352; CHECK-NEXT:    vmfge.vf v9, v8, fa06353; CHECK-NEXT:    vmfle.vf v8, v8, fa06354; CHECK-NEXT:    vmnand.mm v0, v8, v96355; CHECK-NEXT:    ret6356  %head = insertelement <1 x double> poison, double %b, i32 06357  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6358  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp6359  ret <1 x i1> %16360}6361 6362define <1 x i1> @fcmps_une_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6363; CHECK-LABEL: fcmps_une_fv_v1f64:6364; CHECK:       # %bb.0:6365; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6366; CHECK-NEXT:    vmfle.vf v9, v8, fa06367; CHECK-NEXT:    vmfge.vf v8, v8, fa06368; CHECK-NEXT:    vmnand.mm v0, v8, v96369; CHECK-NEXT:    ret6370  %head = insertelement <1 x double> poison, double %b, i32 06371  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6372  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp6373  ret <1 x i1> %16374}6375 6376define <1 x i1> @fcmps_uno_vv_v1f64(<1 x double> %va, <1 x double> %vb) nounwind strictfp {6377; CHECK-LABEL: fcmps_uno_vv_v1f64:6378; CHECK:       # %bb.0:6379; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6380; CHECK-NEXT:    vmfle.vv v9, v9, v96381; CHECK-NEXT:    vmfle.vv v8, v8, v86382; CHECK-NEXT:    vmnot.m v8, v86383; CHECK-NEXT:    vmorn.mm v0, v8, v96384; CHECK-NEXT:    ret6385  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp6386  ret <1 x i1> %16387}6388 6389define <1 x i1> @fcmps_uno_vf_v1f64(<1 x double> %va, double %b) nounwind strictfp {6390; CHECK-LABEL: fcmps_uno_vf_v1f64:6391; CHECK:       # %bb.0:6392; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6393; CHECK-NEXT:    vfmv.s.f v9, fa06394; CHECK-NEXT:    vmfle.vv v8, v8, v86395; CHECK-NEXT:    vmfle.vf v9, v9, fa06396; CHECK-NEXT:    vmnot.m v8, v86397; CHECK-NEXT:    vmorn.mm v0, v8, v96398; CHECK-NEXT:    ret6399  %head = insertelement <1 x double> poison, double %b, i32 06400  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6401  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %va, <1 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp6402  ret <1 x i1> %16403}6404 6405define <1 x i1> @fcmps_uno_fv_v1f64(<1 x double> %va, double %b) nounwind strictfp {6406; CHECK-LABEL: fcmps_uno_fv_v1f64:6407; CHECK:       # %bb.0:6408; CHECK-NEXT:    vsetivli zero, 1, e64, m1, ta, ma6409; CHECK-NEXT:    vfmv.s.f v9, fa06410; CHECK-NEXT:    vmfle.vf v9, v9, fa06411; CHECK-NEXT:    vmnot.m v9, v96412; CHECK-NEXT:    vmfle.vv v8, v8, v86413; CHECK-NEXT:    vmorn.mm v0, v9, v86414; CHECK-NEXT:    ret6415  %head = insertelement <1 x double> poison, double %b, i32 06416  %splat = shufflevector <1 x double> %head, <1 x double> poison, <1 x i32> zeroinitializer6417  %1 = call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %splat, <1 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp6418  ret <1 x i1> %16419}6420 6421define <2 x i1> @fcmps_oeq_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6422; CHECK-LABEL: fcmps_oeq_vv_v2f64:6423; CHECK:       # %bb.0:6424; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6425; CHECK-NEXT:    vmfle.vv v10, v9, v86426; CHECK-NEXT:    vmfle.vv v8, v8, v96427; CHECK-NEXT:    vmand.mm v0, v8, v106428; CHECK-NEXT:    ret6429  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp6430  ret <2 x i1> %16431}6432 6433define <2 x i1> @fcmps_oeq_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6434; CHECK-LABEL: fcmps_oeq_vf_v2f64:6435; CHECK:       # %bb.0:6436; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6437; CHECK-NEXT:    vmfge.vf v9, v8, fa06438; CHECK-NEXT:    vmfle.vf v8, v8, fa06439; CHECK-NEXT:    vmand.mm v0, v8, v96440; CHECK-NEXT:    ret6441  %head = insertelement <2 x double> poison, double %b, i32 06442  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6443  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp6444  ret <2 x i1> %16445}6446 6447define <2 x i1> @fcmps_oeq_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6448; CHECK-LABEL: fcmps_oeq_fv_v2f64:6449; CHECK:       # %bb.0:6450; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6451; CHECK-NEXT:    vmfle.vf v9, v8, fa06452; CHECK-NEXT:    vmfge.vf v8, v8, fa06453; CHECK-NEXT:    vmand.mm v0, v8, v96454; CHECK-NEXT:    ret6455  %head = insertelement <2 x double> poison, double %b, i32 06456  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6457  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp6458  ret <2 x i1> %16459}6460 6461define <2 x i1> @fcmps_ogt_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6462; CHECK-LABEL: fcmps_ogt_vv_v2f64:6463; CHECK:       # %bb.0:6464; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6465; CHECK-NEXT:    vmflt.vv v0, v9, v86466; CHECK-NEXT:    ret6467  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp6468  ret <2 x i1> %16469}6470 6471define <2 x i1> @fcmps_ogt_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6472; CHECK-LABEL: fcmps_ogt_vf_v2f64:6473; CHECK:       # %bb.0:6474; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6475; CHECK-NEXT:    vmfgt.vf v0, v8, fa06476; CHECK-NEXT:    ret6477  %head = insertelement <2 x double> poison, double %b, i32 06478  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6479  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp6480  ret <2 x i1> %16481}6482 6483define <2 x i1> @fcmps_ogt_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6484; CHECK-LABEL: fcmps_ogt_fv_v2f64:6485; CHECK:       # %bb.0:6486; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6487; CHECK-NEXT:    vmflt.vf v0, v8, fa06488; CHECK-NEXT:    ret6489  %head = insertelement <2 x double> poison, double %b, i32 06490  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6491  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp6492  ret <2 x i1> %16493}6494 6495define <2 x i1> @fcmps_oge_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6496; CHECK-LABEL: fcmps_oge_vv_v2f64:6497; CHECK:       # %bb.0:6498; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6499; CHECK-NEXT:    vmfle.vv v0, v9, v86500; CHECK-NEXT:    ret6501  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp6502  ret <2 x i1> %16503}6504 6505define <2 x i1> @fcmps_oge_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6506; CHECK-LABEL: fcmps_oge_vf_v2f64:6507; CHECK:       # %bb.0:6508; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6509; CHECK-NEXT:    vmfge.vf v0, v8, fa06510; CHECK-NEXT:    ret6511  %head = insertelement <2 x double> poison, double %b, i32 06512  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6513  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp6514  ret <2 x i1> %16515}6516 6517define <2 x i1> @fcmps_oge_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6518; CHECK-LABEL: fcmps_oge_fv_v2f64:6519; CHECK:       # %bb.0:6520; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6521; CHECK-NEXT:    vmfle.vf v0, v8, fa06522; CHECK-NEXT:    ret6523  %head = insertelement <2 x double> poison, double %b, i32 06524  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6525  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp6526  ret <2 x i1> %16527}6528 6529define <2 x i1> @fcmps_olt_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6530; CHECK-LABEL: fcmps_olt_vv_v2f64:6531; CHECK:       # %bb.0:6532; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6533; CHECK-NEXT:    vmflt.vv v0, v8, v96534; CHECK-NEXT:    ret6535  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp6536  ret <2 x i1> %16537}6538 6539define <2 x i1> @fcmps_olt_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6540; CHECK-LABEL: fcmps_olt_vf_v2f64:6541; CHECK:       # %bb.0:6542; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6543; CHECK-NEXT:    vmflt.vf v0, v8, fa06544; CHECK-NEXT:    ret6545  %head = insertelement <2 x double> poison, double %b, i32 06546  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6547  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp6548  ret <2 x i1> %16549}6550 6551define <2 x i1> @fcmps_olt_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6552; CHECK-LABEL: fcmps_olt_fv_v2f64:6553; CHECK:       # %bb.0:6554; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6555; CHECK-NEXT:    vmfgt.vf v0, v8, fa06556; CHECK-NEXT:    ret6557  %head = insertelement <2 x double> poison, double %b, i32 06558  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6559  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp6560  ret <2 x i1> %16561}6562 6563define <2 x i1> @fcmps_ole_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6564; CHECK-LABEL: fcmps_ole_vv_v2f64:6565; CHECK:       # %bb.0:6566; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6567; CHECK-NEXT:    vmfle.vv v0, v8, v96568; CHECK-NEXT:    ret6569  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp6570  ret <2 x i1> %16571}6572 6573define <2 x i1> @fcmps_ole_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6574; CHECK-LABEL: fcmps_ole_vf_v2f64:6575; CHECK:       # %bb.0:6576; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6577; CHECK-NEXT:    vmfle.vf v0, v8, fa06578; CHECK-NEXT:    ret6579  %head = insertelement <2 x double> poison, double %b, i32 06580  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6581  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp6582  ret <2 x i1> %16583}6584 6585define <2 x i1> @fcmps_ole_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6586; CHECK-LABEL: fcmps_ole_fv_v2f64:6587; CHECK:       # %bb.0:6588; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6589; CHECK-NEXT:    vmfge.vf v0, v8, fa06590; CHECK-NEXT:    ret6591  %head = insertelement <2 x double> poison, double %b, i32 06592  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6593  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp6594  ret <2 x i1> %16595}6596 6597define <2 x i1> @fcmps_one_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6598; CHECK-LABEL: fcmps_one_vv_v2f64:6599; CHECK:       # %bb.0:6600; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6601; CHECK-NEXT:    vmflt.vv v10, v8, v96602; CHECK-NEXT:    vmflt.vv v8, v9, v86603; CHECK-NEXT:    vmor.mm v0, v8, v106604; CHECK-NEXT:    ret6605  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp6606  ret <2 x i1> %16607}6608 6609define <2 x i1> @fcmps_one_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6610; CHECK-LABEL: fcmps_one_vf_v2f64:6611; CHECK:       # %bb.0:6612; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6613; CHECK-NEXT:    vmflt.vf v9, v8, fa06614; CHECK-NEXT:    vmfgt.vf v8, v8, fa06615; CHECK-NEXT:    vmor.mm v0, v8, v96616; CHECK-NEXT:    ret6617  %head = insertelement <2 x double> poison, double %b, i32 06618  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6619  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp6620  ret <2 x i1> %16621}6622 6623define <2 x i1> @fcmps_one_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6624; CHECK-LABEL: fcmps_one_fv_v2f64:6625; CHECK:       # %bb.0:6626; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6627; CHECK-NEXT:    vmfgt.vf v9, v8, fa06628; CHECK-NEXT:    vmflt.vf v8, v8, fa06629; CHECK-NEXT:    vmor.mm v0, v8, v96630; CHECK-NEXT:    ret6631  %head = insertelement <2 x double> poison, double %b, i32 06632  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6633  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp6634  ret <2 x i1> %16635}6636 6637define <2 x i1> @fcmps_ord_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6638; CHECK-LABEL: fcmps_ord_vv_v2f64:6639; CHECK:       # %bb.0:6640; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6641; CHECK-NEXT:    vmfle.vv v9, v9, v96642; CHECK-NEXT:    vmfle.vv v8, v8, v86643; CHECK-NEXT:    vmand.mm v0, v8, v96644; CHECK-NEXT:    ret6645  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp6646  ret <2 x i1> %16647}6648 6649define <2 x i1> @fcmps_ord_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6650; CHECK-LABEL: fcmps_ord_vf_v2f64:6651; CHECK:       # %bb.0:6652; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6653; CHECK-NEXT:    vfmv.v.f v9, fa06654; CHECK-NEXT:    vmfle.vf v9, v9, fa06655; CHECK-NEXT:    vmfle.vv v8, v8, v86656; CHECK-NEXT:    vmand.mm v0, v8, v96657; CHECK-NEXT:    ret6658  %head = insertelement <2 x double> poison, double %b, i32 06659  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6660  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp6661  ret <2 x i1> %16662}6663 6664define <2 x i1> @fcmps_ord_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6665; CHECK-LABEL: fcmps_ord_fv_v2f64:6666; CHECK:       # %bb.0:6667; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6668; CHECK-NEXT:    vfmv.v.f v9, fa06669; CHECK-NEXT:    vmfle.vf v9, v9, fa06670; CHECK-NEXT:    vmfle.vv v8, v8, v86671; CHECK-NEXT:    vmand.mm v0, v9, v86672; CHECK-NEXT:    ret6673  %head = insertelement <2 x double> poison, double %b, i32 06674  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6675  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp6676  ret <2 x i1> %16677}6678 6679define <2 x i1> @fcmps_ueq_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6680; CHECK-LABEL: fcmps_ueq_vv_v2f64:6681; CHECK:       # %bb.0:6682; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6683; CHECK-NEXT:    vmflt.vv v10, v8, v96684; CHECK-NEXT:    vmflt.vv v8, v9, v86685; CHECK-NEXT:    vmnor.mm v0, v8, v106686; CHECK-NEXT:    ret6687  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp6688  ret <2 x i1> %16689}6690 6691define <2 x i1> @fcmps_ueq_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6692; CHECK-LABEL: fcmps_ueq_vf_v2f64:6693; CHECK:       # %bb.0:6694; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6695; CHECK-NEXT:    vmflt.vf v9, v8, fa06696; CHECK-NEXT:    vmfgt.vf v8, v8, fa06697; CHECK-NEXT:    vmnor.mm v0, v8, v96698; CHECK-NEXT:    ret6699  %head = insertelement <2 x double> poison, double %b, i32 06700  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6701  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp6702  ret <2 x i1> %16703}6704 6705define <2 x i1> @fcmps_ueq_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6706; CHECK-LABEL: fcmps_ueq_fv_v2f64:6707; CHECK:       # %bb.0:6708; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6709; CHECK-NEXT:    vmfgt.vf v9, v8, fa06710; CHECK-NEXT:    vmflt.vf v8, v8, fa06711; CHECK-NEXT:    vmnor.mm v0, v8, v96712; CHECK-NEXT:    ret6713  %head = insertelement <2 x double> poison, double %b, i32 06714  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6715  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp6716  ret <2 x i1> %16717}6718 6719define <2 x i1> @fcmps_ugt_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6720; CHECK-LABEL: fcmps_ugt_vv_v2f64:6721; CHECK:       # %bb.0:6722; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6723; CHECK-NEXT:    vmfle.vv v8, v8, v96724; CHECK-NEXT:    vmnot.m v0, v86725; CHECK-NEXT:    ret6726  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp6727  ret <2 x i1> %16728}6729 6730define <2 x i1> @fcmps_ugt_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6731; CHECK-LABEL: fcmps_ugt_vf_v2f64:6732; CHECK:       # %bb.0:6733; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6734; CHECK-NEXT:    vmfle.vf v8, v8, fa06735; CHECK-NEXT:    vmnot.m v0, v86736; CHECK-NEXT:    ret6737  %head = insertelement <2 x double> poison, double %b, i32 06738  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6739  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp6740  ret <2 x i1> %16741}6742 6743define <2 x i1> @fcmps_ugt_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6744; CHECK-LABEL: fcmps_ugt_fv_v2f64:6745; CHECK:       # %bb.0:6746; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6747; CHECK-NEXT:    vmfge.vf v8, v8, fa06748; CHECK-NEXT:    vmnot.m v0, v86749; CHECK-NEXT:    ret6750  %head = insertelement <2 x double> poison, double %b, i32 06751  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6752  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp6753  ret <2 x i1> %16754}6755 6756define <2 x i1> @fcmps_uge_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6757; CHECK-LABEL: fcmps_uge_vv_v2f64:6758; CHECK:       # %bb.0:6759; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6760; CHECK-NEXT:    vmflt.vv v8, v8, v96761; CHECK-NEXT:    vmnot.m v0, v86762; CHECK-NEXT:    ret6763  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp6764  ret <2 x i1> %16765}6766 6767define <2 x i1> @fcmps_uge_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6768; CHECK-LABEL: fcmps_uge_vf_v2f64:6769; CHECK:       # %bb.0:6770; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6771; CHECK-NEXT:    vmflt.vf v8, v8, fa06772; CHECK-NEXT:    vmnot.m v0, v86773; CHECK-NEXT:    ret6774  %head = insertelement <2 x double> poison, double %b, i32 06775  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6776  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp6777  ret <2 x i1> %16778}6779 6780define <2 x i1> @fcmps_uge_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6781; CHECK-LABEL: fcmps_uge_fv_v2f64:6782; CHECK:       # %bb.0:6783; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6784; CHECK-NEXT:    vmfgt.vf v8, v8, fa06785; CHECK-NEXT:    vmnot.m v0, v86786; CHECK-NEXT:    ret6787  %head = insertelement <2 x double> poison, double %b, i32 06788  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6789  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp6790  ret <2 x i1> %16791}6792 6793define <2 x i1> @fcmps_ult_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6794; CHECK-LABEL: fcmps_ult_vv_v2f64:6795; CHECK:       # %bb.0:6796; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6797; CHECK-NEXT:    vmfle.vv v8, v9, v86798; CHECK-NEXT:    vmnot.m v0, v86799; CHECK-NEXT:    ret6800  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp6801  ret <2 x i1> %16802}6803 6804define <2 x i1> @fcmps_ult_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6805; CHECK-LABEL: fcmps_ult_vf_v2f64:6806; CHECK:       # %bb.0:6807; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6808; CHECK-NEXT:    vmfge.vf v8, v8, fa06809; CHECK-NEXT:    vmnot.m v0, v86810; CHECK-NEXT:    ret6811  %head = insertelement <2 x double> poison, double %b, i32 06812  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6813  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp6814  ret <2 x i1> %16815}6816 6817define <2 x i1> @fcmps_ult_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6818; CHECK-LABEL: fcmps_ult_fv_v2f64:6819; CHECK:       # %bb.0:6820; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6821; CHECK-NEXT:    vmfle.vf v8, v8, fa06822; CHECK-NEXT:    vmnot.m v0, v86823; CHECK-NEXT:    ret6824  %head = insertelement <2 x double> poison, double %b, i32 06825  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6826  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp6827  ret <2 x i1> %16828}6829 6830define <2 x i1> @fcmps_ule_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6831; CHECK-LABEL: fcmps_ule_vv_v2f64:6832; CHECK:       # %bb.0:6833; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6834; CHECK-NEXT:    vmflt.vv v8, v9, v86835; CHECK-NEXT:    vmnot.m v0, v86836; CHECK-NEXT:    ret6837  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp6838  ret <2 x i1> %16839}6840 6841define <2 x i1> @fcmps_ule_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6842; CHECK-LABEL: fcmps_ule_vf_v2f64:6843; CHECK:       # %bb.0:6844; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6845; CHECK-NEXT:    vmfgt.vf v8, v8, fa06846; CHECK-NEXT:    vmnot.m v0, v86847; CHECK-NEXT:    ret6848  %head = insertelement <2 x double> poison, double %b, i32 06849  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6850  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp6851  ret <2 x i1> %16852}6853 6854define <2 x i1> @fcmps_ule_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6855; CHECK-LABEL: fcmps_ule_fv_v2f64:6856; CHECK:       # %bb.0:6857; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6858; CHECK-NEXT:    vmflt.vf v8, v8, fa06859; CHECK-NEXT:    vmnot.m v0, v86860; CHECK-NEXT:    ret6861  %head = insertelement <2 x double> poison, double %b, i32 06862  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6863  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp6864  ret <2 x i1> %16865}6866 6867define <2 x i1> @fcmps_une_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6868; CHECK-LABEL: fcmps_une_vv_v2f64:6869; CHECK:       # %bb.0:6870; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6871; CHECK-NEXT:    vmfle.vv v10, v9, v86872; CHECK-NEXT:    vmfle.vv v8, v8, v96873; CHECK-NEXT:    vmnand.mm v0, v8, v106874; CHECK-NEXT:    ret6875  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp6876  ret <2 x i1> %16877}6878 6879define <2 x i1> @fcmps_une_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6880; CHECK-LABEL: fcmps_une_vf_v2f64:6881; CHECK:       # %bb.0:6882; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6883; CHECK-NEXT:    vmfge.vf v9, v8, fa06884; CHECK-NEXT:    vmfle.vf v8, v8, fa06885; CHECK-NEXT:    vmnand.mm v0, v8, v96886; CHECK-NEXT:    ret6887  %head = insertelement <2 x double> poison, double %b, i32 06888  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6889  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp6890  ret <2 x i1> %16891}6892 6893define <2 x i1> @fcmps_une_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6894; CHECK-LABEL: fcmps_une_fv_v2f64:6895; CHECK:       # %bb.0:6896; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6897; CHECK-NEXT:    vmfle.vf v9, v8, fa06898; CHECK-NEXT:    vmfge.vf v8, v8, fa06899; CHECK-NEXT:    vmnand.mm v0, v8, v96900; CHECK-NEXT:    ret6901  %head = insertelement <2 x double> poison, double %b, i32 06902  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6903  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp6904  ret <2 x i1> %16905}6906 6907define <2 x i1> @fcmps_uno_vv_v2f64(<2 x double> %va, <2 x double> %vb) nounwind strictfp {6908; CHECK-LABEL: fcmps_uno_vv_v2f64:6909; CHECK:       # %bb.0:6910; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6911; CHECK-NEXT:    vmfle.vv v9, v9, v96912; CHECK-NEXT:    vmfle.vv v8, v8, v86913; CHECK-NEXT:    vmnot.m v8, v86914; CHECK-NEXT:    vmorn.mm v0, v8, v96915; CHECK-NEXT:    ret6916  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp6917  ret <2 x i1> %16918}6919 6920define <2 x i1> @fcmps_uno_vf_v2f64(<2 x double> %va, double %b) nounwind strictfp {6921; CHECK-LABEL: fcmps_uno_vf_v2f64:6922; CHECK:       # %bb.0:6923; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6924; CHECK-NEXT:    vfmv.v.f v9, fa06925; CHECK-NEXT:    vmfle.vv v8, v8, v86926; CHECK-NEXT:    vmfle.vf v9, v9, fa06927; CHECK-NEXT:    vmnot.m v8, v86928; CHECK-NEXT:    vmorn.mm v0, v8, v96929; CHECK-NEXT:    ret6930  %head = insertelement <2 x double> poison, double %b, i32 06931  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6932  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %va, <2 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp6933  ret <2 x i1> %16934}6935 6936define <2 x i1> @fcmps_uno_fv_v2f64(<2 x double> %va, double %b) nounwind strictfp {6937; CHECK-LABEL: fcmps_uno_fv_v2f64:6938; CHECK:       # %bb.0:6939; CHECK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma6940; CHECK-NEXT:    vfmv.v.f v9, fa06941; CHECK-NEXT:    vmfle.vf v9, v9, fa06942; CHECK-NEXT:    vmnot.m v9, v96943; CHECK-NEXT:    vmfle.vv v8, v8, v86944; CHECK-NEXT:    vmorn.mm v0, v9, v86945; CHECK-NEXT:    ret6946  %head = insertelement <2 x double> poison, double %b, i32 06947  %splat = shufflevector <2 x double> %head, <2 x double> poison, <2 x i32> zeroinitializer6948  %1 = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f64(<2 x double> %splat, <2 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp6949  ret <2 x i1> %16950}6951 6952define <4 x i1> @fcmps_oeq_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {6953; CHECK-LABEL: fcmps_oeq_vv_v4f64:6954; CHECK:       # %bb.0:6955; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma6956; CHECK-NEXT:    vmfle.vv v12, v10, v86957; CHECK-NEXT:    vmfle.vv v13, v8, v106958; CHECK-NEXT:    vmand.mm v0, v13, v126959; CHECK-NEXT:    ret6960  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp6961  ret <4 x i1> %16962}6963 6964define <4 x i1> @fcmps_oeq_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {6965; CHECK-LABEL: fcmps_oeq_vf_v4f64:6966; CHECK:       # %bb.0:6967; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma6968; CHECK-NEXT:    vmfge.vf v10, v8, fa06969; CHECK-NEXT:    vmfle.vf v11, v8, fa06970; CHECK-NEXT:    vmand.mm v0, v11, v106971; CHECK-NEXT:    ret6972  %head = insertelement <4 x double> poison, double %b, i32 06973  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer6974  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp6975  ret <4 x i1> %16976}6977 6978define <4 x i1> @fcmps_oeq_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {6979; CHECK-LABEL: fcmps_oeq_fv_v4f64:6980; CHECK:       # %bb.0:6981; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma6982; CHECK-NEXT:    vmfle.vf v10, v8, fa06983; CHECK-NEXT:    vmfge.vf v11, v8, fa06984; CHECK-NEXT:    vmand.mm v0, v11, v106985; CHECK-NEXT:    ret6986  %head = insertelement <4 x double> poison, double %b, i32 06987  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer6988  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp6989  ret <4 x i1> %16990}6991 6992define <4 x i1> @fcmps_ogt_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {6993; CHECK-LABEL: fcmps_ogt_vv_v4f64:6994; CHECK:       # %bb.0:6995; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma6996; CHECK-NEXT:    vmflt.vv v0, v10, v86997; CHECK-NEXT:    ret6998  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp6999  ret <4 x i1> %17000}7001 7002define <4 x i1> @fcmps_ogt_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7003; CHECK-LABEL: fcmps_ogt_vf_v4f64:7004; CHECK:       # %bb.0:7005; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7006; CHECK-NEXT:    vmfgt.vf v0, v8, fa07007; CHECK-NEXT:    ret7008  %head = insertelement <4 x double> poison, double %b, i32 07009  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7010  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp7011  ret <4 x i1> %17012}7013 7014define <4 x i1> @fcmps_ogt_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7015; CHECK-LABEL: fcmps_ogt_fv_v4f64:7016; CHECK:       # %bb.0:7017; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7018; CHECK-NEXT:    vmflt.vf v0, v8, fa07019; CHECK-NEXT:    ret7020  %head = insertelement <4 x double> poison, double %b, i32 07021  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7022  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp7023  ret <4 x i1> %17024}7025 7026define <4 x i1> @fcmps_oge_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7027; CHECK-LABEL: fcmps_oge_vv_v4f64:7028; CHECK:       # %bb.0:7029; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7030; CHECK-NEXT:    vmfle.vv v0, v10, v87031; CHECK-NEXT:    ret7032  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp7033  ret <4 x i1> %17034}7035 7036define <4 x i1> @fcmps_oge_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7037; CHECK-LABEL: fcmps_oge_vf_v4f64:7038; CHECK:       # %bb.0:7039; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7040; CHECK-NEXT:    vmfge.vf v0, v8, fa07041; CHECK-NEXT:    ret7042  %head = insertelement <4 x double> poison, double %b, i32 07043  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7044  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp7045  ret <4 x i1> %17046}7047 7048define <4 x i1> @fcmps_oge_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7049; CHECK-LABEL: fcmps_oge_fv_v4f64:7050; CHECK:       # %bb.0:7051; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7052; CHECK-NEXT:    vmfle.vf v0, v8, fa07053; CHECK-NEXT:    ret7054  %head = insertelement <4 x double> poison, double %b, i32 07055  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7056  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp7057  ret <4 x i1> %17058}7059 7060define <4 x i1> @fcmps_olt_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7061; CHECK-LABEL: fcmps_olt_vv_v4f64:7062; CHECK:       # %bb.0:7063; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7064; CHECK-NEXT:    vmflt.vv v0, v8, v107065; CHECK-NEXT:    ret7066  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp7067  ret <4 x i1> %17068}7069 7070define <4 x i1> @fcmps_olt_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7071; CHECK-LABEL: fcmps_olt_vf_v4f64:7072; CHECK:       # %bb.0:7073; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7074; CHECK-NEXT:    vmflt.vf v0, v8, fa07075; CHECK-NEXT:    ret7076  %head = insertelement <4 x double> poison, double %b, i32 07077  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7078  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp7079  ret <4 x i1> %17080}7081 7082define <4 x i1> @fcmps_olt_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7083; CHECK-LABEL: fcmps_olt_fv_v4f64:7084; CHECK:       # %bb.0:7085; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7086; CHECK-NEXT:    vmfgt.vf v0, v8, fa07087; CHECK-NEXT:    ret7088  %head = insertelement <4 x double> poison, double %b, i32 07089  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7090  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp7091  ret <4 x i1> %17092}7093 7094define <4 x i1> @fcmps_ole_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7095; CHECK-LABEL: fcmps_ole_vv_v4f64:7096; CHECK:       # %bb.0:7097; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7098; CHECK-NEXT:    vmfle.vv v0, v8, v107099; CHECK-NEXT:    ret7100  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp7101  ret <4 x i1> %17102}7103 7104define <4 x i1> @fcmps_ole_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7105; CHECK-LABEL: fcmps_ole_vf_v4f64:7106; CHECK:       # %bb.0:7107; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7108; CHECK-NEXT:    vmfle.vf v0, v8, fa07109; CHECK-NEXT:    ret7110  %head = insertelement <4 x double> poison, double %b, i32 07111  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7112  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp7113  ret <4 x i1> %17114}7115 7116define <4 x i1> @fcmps_ole_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7117; CHECK-LABEL: fcmps_ole_fv_v4f64:7118; CHECK:       # %bb.0:7119; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7120; CHECK-NEXT:    vmfge.vf v0, v8, fa07121; CHECK-NEXT:    ret7122  %head = insertelement <4 x double> poison, double %b, i32 07123  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7124  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp7125  ret <4 x i1> %17126}7127 7128define <4 x i1> @fcmps_one_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7129; CHECK-LABEL: fcmps_one_vv_v4f64:7130; CHECK:       # %bb.0:7131; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7132; CHECK-NEXT:    vmflt.vv v12, v8, v107133; CHECK-NEXT:    vmflt.vv v13, v10, v87134; CHECK-NEXT:    vmor.mm v0, v13, v127135; CHECK-NEXT:    ret7136  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp7137  ret <4 x i1> %17138}7139 7140define <4 x i1> @fcmps_one_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7141; CHECK-LABEL: fcmps_one_vf_v4f64:7142; CHECK:       # %bb.0:7143; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7144; CHECK-NEXT:    vmflt.vf v10, v8, fa07145; CHECK-NEXT:    vmfgt.vf v11, v8, fa07146; CHECK-NEXT:    vmor.mm v0, v11, v107147; CHECK-NEXT:    ret7148  %head = insertelement <4 x double> poison, double %b, i32 07149  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7150  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp7151  ret <4 x i1> %17152}7153 7154define <4 x i1> @fcmps_one_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7155; CHECK-LABEL: fcmps_one_fv_v4f64:7156; CHECK:       # %bb.0:7157; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7158; CHECK-NEXT:    vmfgt.vf v10, v8, fa07159; CHECK-NEXT:    vmflt.vf v11, v8, fa07160; CHECK-NEXT:    vmor.mm v0, v11, v107161; CHECK-NEXT:    ret7162  %head = insertelement <4 x double> poison, double %b, i32 07163  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7164  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp7165  ret <4 x i1> %17166}7167 7168define <4 x i1> @fcmps_ord_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7169; CHECK-LABEL: fcmps_ord_vv_v4f64:7170; CHECK:       # %bb.0:7171; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7172; CHECK-NEXT:    vmfle.vv v12, v10, v107173; CHECK-NEXT:    vmfle.vv v10, v8, v87174; CHECK-NEXT:    vmand.mm v0, v10, v127175; CHECK-NEXT:    ret7176  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp7177  ret <4 x i1> %17178}7179 7180define <4 x i1> @fcmps_ord_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7181; CHECK-LABEL: fcmps_ord_vf_v4f64:7182; CHECK:       # %bb.0:7183; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7184; CHECK-NEXT:    vfmv.v.f v10, fa07185; CHECK-NEXT:    vmfle.vf v12, v10, fa07186; CHECK-NEXT:    vmfle.vv v10, v8, v87187; CHECK-NEXT:    vmand.mm v0, v10, v127188; CHECK-NEXT:    ret7189  %head = insertelement <4 x double> poison, double %b, i32 07190  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7191  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp7192  ret <4 x i1> %17193}7194 7195define <4 x i1> @fcmps_ord_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7196; CHECK-LABEL: fcmps_ord_fv_v4f64:7197; CHECK:       # %bb.0:7198; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7199; CHECK-NEXT:    vfmv.v.f v10, fa07200; CHECK-NEXT:    vmfle.vf v12, v10, fa07201; CHECK-NEXT:    vmfle.vv v10, v8, v87202; CHECK-NEXT:    vmand.mm v0, v12, v107203; CHECK-NEXT:    ret7204  %head = insertelement <4 x double> poison, double %b, i32 07205  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7206  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp7207  ret <4 x i1> %17208}7209 7210define <4 x i1> @fcmps_ueq_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7211; CHECK-LABEL: fcmps_ueq_vv_v4f64:7212; CHECK:       # %bb.0:7213; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7214; CHECK-NEXT:    vmflt.vv v12, v8, v107215; CHECK-NEXT:    vmflt.vv v13, v10, v87216; CHECK-NEXT:    vmnor.mm v0, v13, v127217; CHECK-NEXT:    ret7218  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp7219  ret <4 x i1> %17220}7221 7222define <4 x i1> @fcmps_ueq_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7223; CHECK-LABEL: fcmps_ueq_vf_v4f64:7224; CHECK:       # %bb.0:7225; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7226; CHECK-NEXT:    vmflt.vf v10, v8, fa07227; CHECK-NEXT:    vmfgt.vf v11, v8, fa07228; CHECK-NEXT:    vmnor.mm v0, v11, v107229; CHECK-NEXT:    ret7230  %head = insertelement <4 x double> poison, double %b, i32 07231  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7232  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp7233  ret <4 x i1> %17234}7235 7236define <4 x i1> @fcmps_ueq_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7237; CHECK-LABEL: fcmps_ueq_fv_v4f64:7238; CHECK:       # %bb.0:7239; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7240; CHECK-NEXT:    vmfgt.vf v10, v8, fa07241; CHECK-NEXT:    vmflt.vf v11, v8, fa07242; CHECK-NEXT:    vmnor.mm v0, v11, v107243; CHECK-NEXT:    ret7244  %head = insertelement <4 x double> poison, double %b, i32 07245  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7246  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp7247  ret <4 x i1> %17248}7249 7250define <4 x i1> @fcmps_ugt_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7251; CHECK-LABEL: fcmps_ugt_vv_v4f64:7252; CHECK:       # %bb.0:7253; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7254; CHECK-NEXT:    vmfle.vv v12, v8, v107255; CHECK-NEXT:    vmnot.m v0, v127256; CHECK-NEXT:    ret7257  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp7258  ret <4 x i1> %17259}7260 7261define <4 x i1> @fcmps_ugt_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7262; CHECK-LABEL: fcmps_ugt_vf_v4f64:7263; CHECK:       # %bb.0:7264; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7265; CHECK-NEXT:    vmfle.vf v10, v8, fa07266; CHECK-NEXT:    vmnot.m v0, v107267; CHECK-NEXT:    ret7268  %head = insertelement <4 x double> poison, double %b, i32 07269  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7270  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp7271  ret <4 x i1> %17272}7273 7274define <4 x i1> @fcmps_ugt_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7275; CHECK-LABEL: fcmps_ugt_fv_v4f64:7276; CHECK:       # %bb.0:7277; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7278; CHECK-NEXT:    vmfge.vf v10, v8, fa07279; CHECK-NEXT:    vmnot.m v0, v107280; CHECK-NEXT:    ret7281  %head = insertelement <4 x double> poison, double %b, i32 07282  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7283  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp7284  ret <4 x i1> %17285}7286 7287define <4 x i1> @fcmps_uge_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7288; CHECK-LABEL: fcmps_uge_vv_v4f64:7289; CHECK:       # %bb.0:7290; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7291; CHECK-NEXT:    vmflt.vv v12, v8, v107292; CHECK-NEXT:    vmnot.m v0, v127293; CHECK-NEXT:    ret7294  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp7295  ret <4 x i1> %17296}7297 7298define <4 x i1> @fcmps_uge_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7299; CHECK-LABEL: fcmps_uge_vf_v4f64:7300; CHECK:       # %bb.0:7301; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7302; CHECK-NEXT:    vmflt.vf v10, v8, fa07303; CHECK-NEXT:    vmnot.m v0, v107304; CHECK-NEXT:    ret7305  %head = insertelement <4 x double> poison, double %b, i32 07306  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7307  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp7308  ret <4 x i1> %17309}7310 7311define <4 x i1> @fcmps_uge_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7312; CHECK-LABEL: fcmps_uge_fv_v4f64:7313; CHECK:       # %bb.0:7314; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7315; CHECK-NEXT:    vmfgt.vf v10, v8, fa07316; CHECK-NEXT:    vmnot.m v0, v107317; CHECK-NEXT:    ret7318  %head = insertelement <4 x double> poison, double %b, i32 07319  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7320  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp7321  ret <4 x i1> %17322}7323 7324define <4 x i1> @fcmps_ult_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7325; CHECK-LABEL: fcmps_ult_vv_v4f64:7326; CHECK:       # %bb.0:7327; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7328; CHECK-NEXT:    vmfle.vv v12, v10, v87329; CHECK-NEXT:    vmnot.m v0, v127330; CHECK-NEXT:    ret7331  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp7332  ret <4 x i1> %17333}7334 7335define <4 x i1> @fcmps_ult_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7336; CHECK-LABEL: fcmps_ult_vf_v4f64:7337; CHECK:       # %bb.0:7338; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7339; CHECK-NEXT:    vmfge.vf v10, v8, fa07340; CHECK-NEXT:    vmnot.m v0, v107341; CHECK-NEXT:    ret7342  %head = insertelement <4 x double> poison, double %b, i32 07343  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7344  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp7345  ret <4 x i1> %17346}7347 7348define <4 x i1> @fcmps_ult_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7349; CHECK-LABEL: fcmps_ult_fv_v4f64:7350; CHECK:       # %bb.0:7351; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7352; CHECK-NEXT:    vmfle.vf v10, v8, fa07353; CHECK-NEXT:    vmnot.m v0, v107354; CHECK-NEXT:    ret7355  %head = insertelement <4 x double> poison, double %b, i32 07356  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7357  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp7358  ret <4 x i1> %17359}7360 7361define <4 x i1> @fcmps_ule_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7362; CHECK-LABEL: fcmps_ule_vv_v4f64:7363; CHECK:       # %bb.0:7364; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7365; CHECK-NEXT:    vmflt.vv v12, v10, v87366; CHECK-NEXT:    vmnot.m v0, v127367; CHECK-NEXT:    ret7368  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp7369  ret <4 x i1> %17370}7371 7372define <4 x i1> @fcmps_ule_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7373; CHECK-LABEL: fcmps_ule_vf_v4f64:7374; CHECK:       # %bb.0:7375; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7376; CHECK-NEXT:    vmfgt.vf v10, v8, fa07377; CHECK-NEXT:    vmnot.m v0, v107378; CHECK-NEXT:    ret7379  %head = insertelement <4 x double> poison, double %b, i32 07380  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7381  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp7382  ret <4 x i1> %17383}7384 7385define <4 x i1> @fcmps_ule_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7386; CHECK-LABEL: fcmps_ule_fv_v4f64:7387; CHECK:       # %bb.0:7388; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7389; CHECK-NEXT:    vmflt.vf v10, v8, fa07390; CHECK-NEXT:    vmnot.m v0, v107391; CHECK-NEXT:    ret7392  %head = insertelement <4 x double> poison, double %b, i32 07393  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7394  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp7395  ret <4 x i1> %17396}7397 7398define <4 x i1> @fcmps_une_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7399; CHECK-LABEL: fcmps_une_vv_v4f64:7400; CHECK:       # %bb.0:7401; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7402; CHECK-NEXT:    vmfle.vv v12, v10, v87403; CHECK-NEXT:    vmfle.vv v13, v8, v107404; CHECK-NEXT:    vmnand.mm v0, v13, v127405; CHECK-NEXT:    ret7406  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp7407  ret <4 x i1> %17408}7409 7410define <4 x i1> @fcmps_une_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7411; CHECK-LABEL: fcmps_une_vf_v4f64:7412; CHECK:       # %bb.0:7413; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7414; CHECK-NEXT:    vmfge.vf v10, v8, fa07415; CHECK-NEXT:    vmfle.vf v11, v8, fa07416; CHECK-NEXT:    vmnand.mm v0, v11, v107417; CHECK-NEXT:    ret7418  %head = insertelement <4 x double> poison, double %b, i32 07419  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7420  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp7421  ret <4 x i1> %17422}7423 7424define <4 x i1> @fcmps_une_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7425; CHECK-LABEL: fcmps_une_fv_v4f64:7426; CHECK:       # %bb.0:7427; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7428; CHECK-NEXT:    vmfle.vf v10, v8, fa07429; CHECK-NEXT:    vmfge.vf v11, v8, fa07430; CHECK-NEXT:    vmnand.mm v0, v11, v107431; CHECK-NEXT:    ret7432  %head = insertelement <4 x double> poison, double %b, i32 07433  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7434  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp7435  ret <4 x i1> %17436}7437 7438define <4 x i1> @fcmps_uno_vv_v4f64(<4 x double> %va, <4 x double> %vb) nounwind strictfp {7439; CHECK-LABEL: fcmps_uno_vv_v4f64:7440; CHECK:       # %bb.0:7441; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7442; CHECK-NEXT:    vmfle.vv v12, v10, v107443; CHECK-NEXT:    vmfle.vv v10, v8, v87444; CHECK-NEXT:    vmnot.m v8, v107445; CHECK-NEXT:    vmorn.mm v0, v8, v127446; CHECK-NEXT:    ret7447  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp7448  ret <4 x i1> %17449}7450 7451define <4 x i1> @fcmps_uno_vf_v4f64(<4 x double> %va, double %b) nounwind strictfp {7452; CHECK-LABEL: fcmps_uno_vf_v4f64:7453; CHECK:       # %bb.0:7454; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7455; CHECK-NEXT:    vfmv.v.f v10, fa07456; CHECK-NEXT:    vmfle.vv v12, v8, v87457; CHECK-NEXT:    vmfle.vf v8, v10, fa07458; CHECK-NEXT:    vmnot.m v9, v127459; CHECK-NEXT:    vmorn.mm v0, v9, v87460; CHECK-NEXT:    ret7461  %head = insertelement <4 x double> poison, double %b, i32 07462  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7463  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %va, <4 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp7464  ret <4 x i1> %17465}7466 7467define <4 x i1> @fcmps_uno_fv_v4f64(<4 x double> %va, double %b) nounwind strictfp {7468; CHECK-LABEL: fcmps_uno_fv_v4f64:7469; CHECK:       # %bb.0:7470; CHECK-NEXT:    vsetivli zero, 4, e64, m2, ta, ma7471; CHECK-NEXT:    vfmv.v.f v10, fa07472; CHECK-NEXT:    vmfle.vf v12, v10, fa07473; CHECK-NEXT:    vmnot.m v10, v127474; CHECK-NEXT:    vmfle.vv v11, v8, v87475; CHECK-NEXT:    vmorn.mm v0, v10, v117476; CHECK-NEXT:    ret7477  %head = insertelement <4 x double> poison, double %b, i32 07478  %splat = shufflevector <4 x double> %head, <4 x double> poison, <4 x i32> zeroinitializer7479  %1 = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f64(<4 x double> %splat, <4 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp7480  ret <4 x i1> %17481}7482 7483define <8 x i1> @fcmps_oeq_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7484; CHECK-LABEL: fcmps_oeq_vv_v8f64:7485; CHECK:       # %bb.0:7486; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7487; CHECK-NEXT:    vmfle.vv v16, v12, v87488; CHECK-NEXT:    vmfle.vv v17, v8, v127489; CHECK-NEXT:    vmand.mm v0, v17, v167490; CHECK-NEXT:    ret7491  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"oeq", metadata !"fpexcept.strict") strictfp7492  ret <8 x i1> %17493}7494 7495define <8 x i1> @fcmps_oeq_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7496; CHECK-LABEL: fcmps_oeq_vf_v8f64:7497; CHECK:       # %bb.0:7498; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7499; CHECK-NEXT:    vmfge.vf v12, v8, fa07500; CHECK-NEXT:    vmfle.vf v13, v8, fa07501; CHECK-NEXT:    vmand.mm v0, v13, v127502; CHECK-NEXT:    ret7503  %head = insertelement <8 x double> poison, double %b, i32 07504  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7505  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"oeq", metadata !"fpexcept.strict") strictfp7506  ret <8 x i1> %17507}7508 7509define <8 x i1> @fcmps_oeq_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7510; CHECK-LABEL: fcmps_oeq_fv_v8f64:7511; CHECK:       # %bb.0:7512; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7513; CHECK-NEXT:    vmfle.vf v12, v8, fa07514; CHECK-NEXT:    vmfge.vf v13, v8, fa07515; CHECK-NEXT:    vmand.mm v0, v13, v127516; CHECK-NEXT:    ret7517  %head = insertelement <8 x double> poison, double %b, i32 07518  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7519  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"oeq", metadata !"fpexcept.strict") strictfp7520  ret <8 x i1> %17521}7522 7523define <8 x i1> @fcmps_ogt_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7524; CHECK-LABEL: fcmps_ogt_vv_v8f64:7525; CHECK:       # %bb.0:7526; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7527; CHECK-NEXT:    vmflt.vv v0, v12, v87528; CHECK-NEXT:    ret7529  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ogt", metadata !"fpexcept.strict") strictfp7530  ret <8 x i1> %17531}7532 7533define <8 x i1> @fcmps_ogt_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7534; CHECK-LABEL: fcmps_ogt_vf_v8f64:7535; CHECK:       # %bb.0:7536; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7537; CHECK-NEXT:    vmfgt.vf v0, v8, fa07538; CHECK-NEXT:    ret7539  %head = insertelement <8 x double> poison, double %b, i32 07540  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7541  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ogt", metadata !"fpexcept.strict") strictfp7542  ret <8 x i1> %17543}7544 7545define <8 x i1> @fcmps_ogt_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7546; CHECK-LABEL: fcmps_ogt_fv_v8f64:7547; CHECK:       # %bb.0:7548; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7549; CHECK-NEXT:    vmflt.vf v0, v8, fa07550; CHECK-NEXT:    ret7551  %head = insertelement <8 x double> poison, double %b, i32 07552  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7553  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ogt", metadata !"fpexcept.strict") strictfp7554  ret <8 x i1> %17555}7556 7557define <8 x i1> @fcmps_oge_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7558; CHECK-LABEL: fcmps_oge_vv_v8f64:7559; CHECK:       # %bb.0:7560; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7561; CHECK-NEXT:    vmfle.vv v0, v12, v87562; CHECK-NEXT:    ret7563  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"oge", metadata !"fpexcept.strict") strictfp7564  ret <8 x i1> %17565}7566 7567define <8 x i1> @fcmps_oge_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7568; CHECK-LABEL: fcmps_oge_vf_v8f64:7569; CHECK:       # %bb.0:7570; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7571; CHECK-NEXT:    vmfge.vf v0, v8, fa07572; CHECK-NEXT:    ret7573  %head = insertelement <8 x double> poison, double %b, i32 07574  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7575  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"oge", metadata !"fpexcept.strict") strictfp7576  ret <8 x i1> %17577}7578 7579define <8 x i1> @fcmps_oge_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7580; CHECK-LABEL: fcmps_oge_fv_v8f64:7581; CHECK:       # %bb.0:7582; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7583; CHECK-NEXT:    vmfle.vf v0, v8, fa07584; CHECK-NEXT:    ret7585  %head = insertelement <8 x double> poison, double %b, i32 07586  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7587  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"oge", metadata !"fpexcept.strict") strictfp7588  ret <8 x i1> %17589}7590 7591define <8 x i1> @fcmps_olt_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7592; CHECK-LABEL: fcmps_olt_vv_v8f64:7593; CHECK:       # %bb.0:7594; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7595; CHECK-NEXT:    vmflt.vv v0, v8, v127596; CHECK-NEXT:    ret7597  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"olt", metadata !"fpexcept.strict") strictfp7598  ret <8 x i1> %17599}7600 7601define <8 x i1> @fcmps_olt_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7602; CHECK-LABEL: fcmps_olt_vf_v8f64:7603; CHECK:       # %bb.0:7604; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7605; CHECK-NEXT:    vmflt.vf v0, v8, fa07606; CHECK-NEXT:    ret7607  %head = insertelement <8 x double> poison, double %b, i32 07608  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7609  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"olt", metadata !"fpexcept.strict") strictfp7610  ret <8 x i1> %17611}7612 7613define <8 x i1> @fcmps_olt_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7614; CHECK-LABEL: fcmps_olt_fv_v8f64:7615; CHECK:       # %bb.0:7616; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7617; CHECK-NEXT:    vmfgt.vf v0, v8, fa07618; CHECK-NEXT:    ret7619  %head = insertelement <8 x double> poison, double %b, i32 07620  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7621  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"olt", metadata !"fpexcept.strict") strictfp7622  ret <8 x i1> %17623}7624 7625define <8 x i1> @fcmps_ole_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7626; CHECK-LABEL: fcmps_ole_vv_v8f64:7627; CHECK:       # %bb.0:7628; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7629; CHECK-NEXT:    vmfle.vv v0, v8, v127630; CHECK-NEXT:    ret7631  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ole", metadata !"fpexcept.strict") strictfp7632  ret <8 x i1> %17633}7634 7635define <8 x i1> @fcmps_ole_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7636; CHECK-LABEL: fcmps_ole_vf_v8f64:7637; CHECK:       # %bb.0:7638; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7639; CHECK-NEXT:    vmfle.vf v0, v8, fa07640; CHECK-NEXT:    ret7641  %head = insertelement <8 x double> poison, double %b, i32 07642  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7643  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ole", metadata !"fpexcept.strict") strictfp7644  ret <8 x i1> %17645}7646 7647define <8 x i1> @fcmps_ole_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7648; CHECK-LABEL: fcmps_ole_fv_v8f64:7649; CHECK:       # %bb.0:7650; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7651; CHECK-NEXT:    vmfge.vf v0, v8, fa07652; CHECK-NEXT:    ret7653  %head = insertelement <8 x double> poison, double %b, i32 07654  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7655  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ole", metadata !"fpexcept.strict") strictfp7656  ret <8 x i1> %17657}7658 7659define <8 x i1> @fcmps_one_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7660; CHECK-LABEL: fcmps_one_vv_v8f64:7661; CHECK:       # %bb.0:7662; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7663; CHECK-NEXT:    vmflt.vv v16, v8, v127664; CHECK-NEXT:    vmflt.vv v17, v12, v87665; CHECK-NEXT:    vmor.mm v0, v17, v167666; CHECK-NEXT:    ret7667  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"one", metadata !"fpexcept.strict") strictfp7668  ret <8 x i1> %17669}7670 7671define <8 x i1> @fcmps_one_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7672; CHECK-LABEL: fcmps_one_vf_v8f64:7673; CHECK:       # %bb.0:7674; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7675; CHECK-NEXT:    vmflt.vf v12, v8, fa07676; CHECK-NEXT:    vmfgt.vf v13, v8, fa07677; CHECK-NEXT:    vmor.mm v0, v13, v127678; CHECK-NEXT:    ret7679  %head = insertelement <8 x double> poison, double %b, i32 07680  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7681  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"one", metadata !"fpexcept.strict") strictfp7682  ret <8 x i1> %17683}7684 7685define <8 x i1> @fcmps_one_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7686; CHECK-LABEL: fcmps_one_fv_v8f64:7687; CHECK:       # %bb.0:7688; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7689; CHECK-NEXT:    vmfgt.vf v12, v8, fa07690; CHECK-NEXT:    vmflt.vf v13, v8, fa07691; CHECK-NEXT:    vmor.mm v0, v13, v127692; CHECK-NEXT:    ret7693  %head = insertelement <8 x double> poison, double %b, i32 07694  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7695  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"one", metadata !"fpexcept.strict") strictfp7696  ret <8 x i1> %17697}7698 7699define <8 x i1> @fcmps_ord_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7700; CHECK-LABEL: fcmps_ord_vv_v8f64:7701; CHECK:       # %bb.0:7702; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7703; CHECK-NEXT:    vmfle.vv v16, v12, v127704; CHECK-NEXT:    vmfle.vv v12, v8, v87705; CHECK-NEXT:    vmand.mm v0, v12, v167706; CHECK-NEXT:    ret7707  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ord", metadata !"fpexcept.strict") strictfp7708  ret <8 x i1> %17709}7710 7711define <8 x i1> @fcmps_ord_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7712; CHECK-LABEL: fcmps_ord_vf_v8f64:7713; CHECK:       # %bb.0:7714; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7715; CHECK-NEXT:    vfmv.v.f v12, fa07716; CHECK-NEXT:    vmfle.vf v16, v12, fa07717; CHECK-NEXT:    vmfle.vv v12, v8, v87718; CHECK-NEXT:    vmand.mm v0, v12, v167719; CHECK-NEXT:    ret7720  %head = insertelement <8 x double> poison, double %b, i32 07721  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7722  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ord", metadata !"fpexcept.strict") strictfp7723  ret <8 x i1> %17724}7725 7726define <8 x i1> @fcmps_ord_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7727; CHECK-LABEL: fcmps_ord_fv_v8f64:7728; CHECK:       # %bb.0:7729; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7730; CHECK-NEXT:    vfmv.v.f v12, fa07731; CHECK-NEXT:    vmfle.vf v16, v12, fa07732; CHECK-NEXT:    vmfle.vv v12, v8, v87733; CHECK-NEXT:    vmand.mm v0, v16, v127734; CHECK-NEXT:    ret7735  %head = insertelement <8 x double> poison, double %b, i32 07736  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7737  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ord", metadata !"fpexcept.strict") strictfp7738  ret <8 x i1> %17739}7740 7741define <8 x i1> @fcmps_ueq_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7742; CHECK-LABEL: fcmps_ueq_vv_v8f64:7743; CHECK:       # %bb.0:7744; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7745; CHECK-NEXT:    vmflt.vv v16, v8, v127746; CHECK-NEXT:    vmflt.vv v17, v12, v87747; CHECK-NEXT:    vmnor.mm v0, v17, v167748; CHECK-NEXT:    ret7749  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ueq", metadata !"fpexcept.strict") strictfp7750  ret <8 x i1> %17751}7752 7753define <8 x i1> @fcmps_ueq_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7754; CHECK-LABEL: fcmps_ueq_vf_v8f64:7755; CHECK:       # %bb.0:7756; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7757; CHECK-NEXT:    vmflt.vf v12, v8, fa07758; CHECK-NEXT:    vmfgt.vf v13, v8, fa07759; CHECK-NEXT:    vmnor.mm v0, v13, v127760; CHECK-NEXT:    ret7761  %head = insertelement <8 x double> poison, double %b, i32 07762  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7763  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ueq", metadata !"fpexcept.strict") strictfp7764  ret <8 x i1> %17765}7766 7767define <8 x i1> @fcmps_ueq_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7768; CHECK-LABEL: fcmps_ueq_fv_v8f64:7769; CHECK:       # %bb.0:7770; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7771; CHECK-NEXT:    vmfgt.vf v12, v8, fa07772; CHECK-NEXT:    vmflt.vf v13, v8, fa07773; CHECK-NEXT:    vmnor.mm v0, v13, v127774; CHECK-NEXT:    ret7775  %head = insertelement <8 x double> poison, double %b, i32 07776  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7777  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ueq", metadata !"fpexcept.strict") strictfp7778  ret <8 x i1> %17779}7780 7781define <8 x i1> @fcmps_ugt_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7782; CHECK-LABEL: fcmps_ugt_vv_v8f64:7783; CHECK:       # %bb.0:7784; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7785; CHECK-NEXT:    vmfle.vv v16, v8, v127786; CHECK-NEXT:    vmnot.m v0, v167787; CHECK-NEXT:    ret7788  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ugt", metadata !"fpexcept.strict") strictfp7789  ret <8 x i1> %17790}7791 7792define <8 x i1> @fcmps_ugt_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7793; CHECK-LABEL: fcmps_ugt_vf_v8f64:7794; CHECK:       # %bb.0:7795; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7796; CHECK-NEXT:    vmfle.vf v12, v8, fa07797; CHECK-NEXT:    vmnot.m v0, v127798; CHECK-NEXT:    ret7799  %head = insertelement <8 x double> poison, double %b, i32 07800  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7801  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ugt", metadata !"fpexcept.strict") strictfp7802  ret <8 x i1> %17803}7804 7805define <8 x i1> @fcmps_ugt_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7806; CHECK-LABEL: fcmps_ugt_fv_v8f64:7807; CHECK:       # %bb.0:7808; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7809; CHECK-NEXT:    vmfge.vf v12, v8, fa07810; CHECK-NEXT:    vmnot.m v0, v127811; CHECK-NEXT:    ret7812  %head = insertelement <8 x double> poison, double %b, i32 07813  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7814  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ugt", metadata !"fpexcept.strict") strictfp7815  ret <8 x i1> %17816}7817 7818define <8 x i1> @fcmps_uge_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7819; CHECK-LABEL: fcmps_uge_vv_v8f64:7820; CHECK:       # %bb.0:7821; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7822; CHECK-NEXT:    vmflt.vv v16, v8, v127823; CHECK-NEXT:    vmnot.m v0, v167824; CHECK-NEXT:    ret7825  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"uge", metadata !"fpexcept.strict") strictfp7826  ret <8 x i1> %17827}7828 7829define <8 x i1> @fcmps_uge_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7830; CHECK-LABEL: fcmps_uge_vf_v8f64:7831; CHECK:       # %bb.0:7832; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7833; CHECK-NEXT:    vmflt.vf v12, v8, fa07834; CHECK-NEXT:    vmnot.m v0, v127835; CHECK-NEXT:    ret7836  %head = insertelement <8 x double> poison, double %b, i32 07837  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7838  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"uge", metadata !"fpexcept.strict") strictfp7839  ret <8 x i1> %17840}7841 7842define <8 x i1> @fcmps_uge_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7843; CHECK-LABEL: fcmps_uge_fv_v8f64:7844; CHECK:       # %bb.0:7845; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7846; CHECK-NEXT:    vmfgt.vf v12, v8, fa07847; CHECK-NEXT:    vmnot.m v0, v127848; CHECK-NEXT:    ret7849  %head = insertelement <8 x double> poison, double %b, i32 07850  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7851  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"uge", metadata !"fpexcept.strict") strictfp7852  ret <8 x i1> %17853}7854 7855define <8 x i1> @fcmps_ult_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7856; CHECK-LABEL: fcmps_ult_vv_v8f64:7857; CHECK:       # %bb.0:7858; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7859; CHECK-NEXT:    vmfle.vv v16, v12, v87860; CHECK-NEXT:    vmnot.m v0, v167861; CHECK-NEXT:    ret7862  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ult", metadata !"fpexcept.strict") strictfp7863  ret <8 x i1> %17864}7865 7866define <8 x i1> @fcmps_ult_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7867; CHECK-LABEL: fcmps_ult_vf_v8f64:7868; CHECK:       # %bb.0:7869; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7870; CHECK-NEXT:    vmfge.vf v12, v8, fa07871; CHECK-NEXT:    vmnot.m v0, v127872; CHECK-NEXT:    ret7873  %head = insertelement <8 x double> poison, double %b, i32 07874  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7875  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ult", metadata !"fpexcept.strict") strictfp7876  ret <8 x i1> %17877}7878 7879define <8 x i1> @fcmps_ult_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7880; CHECK-LABEL: fcmps_ult_fv_v8f64:7881; CHECK:       # %bb.0:7882; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7883; CHECK-NEXT:    vmfle.vf v12, v8, fa07884; CHECK-NEXT:    vmnot.m v0, v127885; CHECK-NEXT:    ret7886  %head = insertelement <8 x double> poison, double %b, i32 07887  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7888  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ult", metadata !"fpexcept.strict") strictfp7889  ret <8 x i1> %17890}7891 7892define <8 x i1> @fcmps_ule_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7893; CHECK-LABEL: fcmps_ule_vv_v8f64:7894; CHECK:       # %bb.0:7895; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7896; CHECK-NEXT:    vmflt.vv v16, v12, v87897; CHECK-NEXT:    vmnot.m v0, v167898; CHECK-NEXT:    ret7899  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"ule", metadata !"fpexcept.strict") strictfp7900  ret <8 x i1> %17901}7902 7903define <8 x i1> @fcmps_ule_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7904; CHECK-LABEL: fcmps_ule_vf_v8f64:7905; CHECK:       # %bb.0:7906; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7907; CHECK-NEXT:    vmfgt.vf v12, v8, fa07908; CHECK-NEXT:    vmnot.m v0, v127909; CHECK-NEXT:    ret7910  %head = insertelement <8 x double> poison, double %b, i32 07911  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7912  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"ule", metadata !"fpexcept.strict") strictfp7913  ret <8 x i1> %17914}7915 7916define <8 x i1> @fcmps_ule_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7917; CHECK-LABEL: fcmps_ule_fv_v8f64:7918; CHECK:       # %bb.0:7919; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7920; CHECK-NEXT:    vmflt.vf v12, v8, fa07921; CHECK-NEXT:    vmnot.m v0, v127922; CHECK-NEXT:    ret7923  %head = insertelement <8 x double> poison, double %b, i32 07924  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7925  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"ule", metadata !"fpexcept.strict") strictfp7926  ret <8 x i1> %17927}7928 7929define <8 x i1> @fcmps_une_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7930; CHECK-LABEL: fcmps_une_vv_v8f64:7931; CHECK:       # %bb.0:7932; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7933; CHECK-NEXT:    vmfle.vv v16, v12, v87934; CHECK-NEXT:    vmfle.vv v17, v8, v127935; CHECK-NEXT:    vmnand.mm v0, v17, v167936; CHECK-NEXT:    ret7937  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"une", metadata !"fpexcept.strict") strictfp7938  ret <8 x i1> %17939}7940 7941define <8 x i1> @fcmps_une_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7942; CHECK-LABEL: fcmps_une_vf_v8f64:7943; CHECK:       # %bb.0:7944; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7945; CHECK-NEXT:    vmfge.vf v12, v8, fa07946; CHECK-NEXT:    vmfle.vf v13, v8, fa07947; CHECK-NEXT:    vmnand.mm v0, v13, v127948; CHECK-NEXT:    ret7949  %head = insertelement <8 x double> poison, double %b, i32 07950  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7951  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"une", metadata !"fpexcept.strict") strictfp7952  ret <8 x i1> %17953}7954 7955define <8 x i1> @fcmps_une_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7956; CHECK-LABEL: fcmps_une_fv_v8f64:7957; CHECK:       # %bb.0:7958; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7959; CHECK-NEXT:    vmfle.vf v12, v8, fa07960; CHECK-NEXT:    vmfge.vf v13, v8, fa07961; CHECK-NEXT:    vmnand.mm v0, v13, v127962; CHECK-NEXT:    ret7963  %head = insertelement <8 x double> poison, double %b, i32 07964  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7965  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"une", metadata !"fpexcept.strict") strictfp7966  ret <8 x i1> %17967}7968 7969define <8 x i1> @fcmps_uno_vv_v8f64(<8 x double> %va, <8 x double> %vb) nounwind strictfp {7970; CHECK-LABEL: fcmps_uno_vv_v8f64:7971; CHECK:       # %bb.0:7972; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7973; CHECK-NEXT:    vmfle.vv v16, v12, v127974; CHECK-NEXT:    vmfle.vv v12, v8, v87975; CHECK-NEXT:    vmnot.m v8, v127976; CHECK-NEXT:    vmorn.mm v0, v8, v167977; CHECK-NEXT:    ret7978  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %vb, metadata !"uno", metadata !"fpexcept.strict") strictfp7979  ret <8 x i1> %17980}7981 7982define <8 x i1> @fcmps_uno_vf_v8f64(<8 x double> %va, double %b) nounwind strictfp {7983; CHECK-LABEL: fcmps_uno_vf_v8f64:7984; CHECK:       # %bb.0:7985; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma7986; CHECK-NEXT:    vfmv.v.f v12, fa07987; CHECK-NEXT:    vmfle.vv v16, v8, v87988; CHECK-NEXT:    vmfle.vf v8, v12, fa07989; CHECK-NEXT:    vmnot.m v9, v167990; CHECK-NEXT:    vmorn.mm v0, v9, v87991; CHECK-NEXT:    ret7992  %head = insertelement <8 x double> poison, double %b, i32 07993  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer7994  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %va, <8 x double> %splat, metadata !"uno", metadata !"fpexcept.strict") strictfp7995  ret <8 x i1> %17996}7997 7998define <8 x i1> @fcmps_uno_fv_v8f64(<8 x double> %va, double %b) nounwind strictfp {7999; CHECK-LABEL: fcmps_uno_fv_v8f64:8000; CHECK:       # %bb.0:8001; CHECK-NEXT:    vsetivli zero, 8, e64, m4, ta, ma8002; CHECK-NEXT:    vfmv.v.f v12, fa08003; CHECK-NEXT:    vmfle.vf v16, v12, fa08004; CHECK-NEXT:    vmnot.m v12, v168005; CHECK-NEXT:    vmfle.vv v13, v8, v88006; CHECK-NEXT:    vmorn.mm v0, v12, v138007; CHECK-NEXT:    ret8008  %head = insertelement <8 x double> poison, double %b, i32 08009  %splat = shufflevector <8 x double> %head, <8 x double> poison, <8 x i32> zeroinitializer8010  %1 = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double> %splat, <8 x double> %va, metadata !"uno", metadata !"fpexcept.strict") strictfp8011  ret <8 x i1> %18012}8013