brintos

brintos / llvm-project-archived public Read only

0
0
Text · 79.5 KiB · 4795e86 Raw
2481 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \3; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,RV324; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \5; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,RV646 7define <vscale x 1 x i1> @intrinsic_vmsgeu_vv_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {8; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv1i8_nxv1i8:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma11; CHECK-NEXT:    vmsleu.vv v0, v9, v812; CHECK-NEXT:    ret13entry:14  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i8(15    <vscale x 1 x i8> %0,16    <vscale x 1 x i8> %1,17    iXLen %2)18 19  ret <vscale x 1 x i1> %a20}21 22define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vv_nxv1i8_nxv1i8(<vscale x 1 x i1> %0, <vscale x 1 x i8> %1, <vscale x 1 x i8> %2, <vscale x 1 x i8> %3, iXLen %4) nounwind {23; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv1i8_nxv1i8:24; CHECK:       # %bb.0: # %entry25; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, mu26; CHECK-NEXT:    vmv1r.v v11, v027; CHECK-NEXT:    vmsleu.vv v0, v9, v828; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t29; CHECK-NEXT:    vmv1r.v v0, v1130; CHECK-NEXT:    ret31entry:32  %mask = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i8(33    <vscale x 1 x i8> %1,34    <vscale x 1 x i8> %2,35    iXLen %4)36  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i8(37    <vscale x 1 x i1> %0,38    <vscale x 1 x i8> %2,39    <vscale x 1 x i8> %3,40    <vscale x 1 x i1> %mask,41    iXLen %4)42 43  ret <vscale x 1 x i1> %a44}45 46define <vscale x 2 x i1> @intrinsic_vmsgeu_vv_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {47; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv2i8_nxv2i8:48; CHECK:       # %bb.0: # %entry49; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma50; CHECK-NEXT:    vmsleu.vv v0, v9, v851; CHECK-NEXT:    ret52entry:53  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i8(54    <vscale x 2 x i8> %0,55    <vscale x 2 x i8> %1,56    iXLen %2)57 58  ret <vscale x 2 x i1> %a59}60 61define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vv_nxv2i8_nxv2i8(<vscale x 2 x i1> %0, <vscale x 2 x i8> %1, <vscale x 2 x i8> %2, <vscale x 2 x i8> %3, iXLen %4) nounwind {62; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv2i8_nxv2i8:63; CHECK:       # %bb.0: # %entry64; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, mu65; CHECK-NEXT:    vmv1r.v v11, v066; CHECK-NEXT:    vmsleu.vv v0, v9, v867; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t68; CHECK-NEXT:    vmv1r.v v0, v1169; CHECK-NEXT:    ret70entry:71  %mask = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i8(72    <vscale x 2 x i8> %1,73    <vscale x 2 x i8> %2,74    iXLen %4)75  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i8(76    <vscale x 2 x i1> %0,77    <vscale x 2 x i8> %2,78    <vscale x 2 x i8> %3,79    <vscale x 2 x i1> %mask,80    iXLen %4)81 82  ret <vscale x 2 x i1> %a83}84 85define <vscale x 4 x i1> @intrinsic_vmsgeu_vv_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {86; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv4i8_nxv4i8:87; CHECK:       # %bb.0: # %entry88; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma89; CHECK-NEXT:    vmsleu.vv v0, v9, v890; CHECK-NEXT:    ret91entry:92  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i8(93    <vscale x 4 x i8> %0,94    <vscale x 4 x i8> %1,95    iXLen %2)96 97  ret <vscale x 4 x i1> %a98}99 100define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vv_nxv4i8_nxv4i8(<vscale x 4 x i1> %0, <vscale x 4 x i8> %1, <vscale x 4 x i8> %2, <vscale x 4 x i8> %3, iXLen %4) nounwind {101; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv4i8_nxv4i8:102; CHECK:       # %bb.0: # %entry103; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu104; CHECK-NEXT:    vmv1r.v v11, v0105; CHECK-NEXT:    vmsleu.vv v0, v9, v8106; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t107; CHECK-NEXT:    vmv1r.v v0, v11108; CHECK-NEXT:    ret109entry:110  %mask = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i8(111    <vscale x 4 x i8> %1,112    <vscale x 4 x i8> %2,113    iXLen %4)114  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i8(115    <vscale x 4 x i1> %0,116    <vscale x 4 x i8> %2,117    <vscale x 4 x i8> %3,118    <vscale x 4 x i1> %mask,119    iXLen %4)120 121  ret <vscale x 4 x i1> %a122}123 124define <vscale x 8 x i1> @intrinsic_vmsgeu_vv_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {125; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv8i8_nxv8i8:126; CHECK:       # %bb.0: # %entry127; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma128; CHECK-NEXT:    vmsleu.vv v0, v9, v8129; CHECK-NEXT:    ret130entry:131  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i8(132    <vscale x 8 x i8> %0,133    <vscale x 8 x i8> %1,134    iXLen %2)135 136  ret <vscale x 8 x i1> %a137}138 139define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vv_nxv8i8_nxv8i8(<vscale x 8 x i1> %0, <vscale x 8 x i8> %1, <vscale x 8 x i8> %2, <vscale x 8 x i8> %3, iXLen %4) nounwind {140; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv8i8_nxv8i8:141; CHECK:       # %bb.0: # %entry142; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, mu143; CHECK-NEXT:    vmv1r.v v11, v0144; CHECK-NEXT:    vmsleu.vv v0, v9, v8145; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t146; CHECK-NEXT:    vmv.v.v v0, v11147; CHECK-NEXT:    ret148entry:149  %mask = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i8(150    <vscale x 8 x i8> %1,151    <vscale x 8 x i8> %2,152    iXLen %4)153  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i8(154    <vscale x 8 x i1> %0,155    <vscale x 8 x i8> %2,156    <vscale x 8 x i8> %3,157    <vscale x 8 x i1> %mask,158    iXLen %4)159 160  ret <vscale x 8 x i1> %a161}162 163define <vscale x 16 x i1> @intrinsic_vmsgeu_vv_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {164; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv16i8_nxv16i8:165; CHECK:       # %bb.0: # %entry166; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma167; CHECK-NEXT:    vmsleu.vv v0, v10, v8168; CHECK-NEXT:    ret169entry:170  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i8(171    <vscale x 16 x i8> %0,172    <vscale x 16 x i8> %1,173    iXLen %2)174 175  ret <vscale x 16 x i1> %a176}177 178define <vscale x 16 x i1> @intrinsic_vmsgeu_mask_vv_nxv16i8_nxv16i8(<vscale x 16 x i1> %0, <vscale x 16 x i8> %1, <vscale x 16 x i8> %2, <vscale x 16 x i8> %3, iXLen %4) nounwind {179; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv16i8_nxv16i8:180; CHECK:       # %bb.0: # %entry181; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, mu182; CHECK-NEXT:    vmv1r.v v14, v0183; CHECK-NEXT:    vmsleu.vv v0, v10, v8184; CHECK-NEXT:    vmsleu.vv v14, v12, v10, v0.t185; CHECK-NEXT:    vmv1r.v v0, v14186; CHECK-NEXT:    ret187entry:188  %mask = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i8(189    <vscale x 16 x i8> %1,190    <vscale x 16 x i8> %2,191    iXLen %4)192  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i8(193    <vscale x 16 x i1> %0,194    <vscale x 16 x i8> %2,195    <vscale x 16 x i8> %3,196    <vscale x 16 x i1> %mask,197    iXLen %4)198 199  ret <vscale x 16 x i1> %a200}201 202define <vscale x 32 x i1> @intrinsic_vmsgeu_vv_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {203; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv32i8_nxv32i8:204; CHECK:       # %bb.0: # %entry205; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma206; CHECK-NEXT:    vmsleu.vv v0, v12, v8207; CHECK-NEXT:    ret208entry:209  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.nxv32i8(210    <vscale x 32 x i8> %0,211    <vscale x 32 x i8> %1,212    iXLen %2)213 214  ret <vscale x 32 x i1> %a215}216 217define <vscale x 32 x i1> @intrinsic_vmsgeu_mask_vv_nxv32i8_nxv32i8(<vscale x 32 x i1> %0, <vscale x 32 x i8> %1, <vscale x 32 x i8> %2, <vscale x 32 x i8> %3, iXLen %4) nounwind {218; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv32i8_nxv32i8:219; CHECK:       # %bb.0: # %entry220; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, mu221; CHECK-NEXT:    vmv1r.v v20, v0222; CHECK-NEXT:    vmsleu.vv v0, v12, v8223; CHECK-NEXT:    vmsleu.vv v20, v16, v12, v0.t224; CHECK-NEXT:    vmv1r.v v0, v20225; CHECK-NEXT:    ret226entry:227  %mask = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.nxv32i8(228    <vscale x 32 x i8> %1,229    <vscale x 32 x i8> %2,230    iXLen %4)231  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.mask.nxv32i8(232    <vscale x 32 x i1> %0,233    <vscale x 32 x i8> %2,234    <vscale x 32 x i8> %3,235    <vscale x 32 x i1> %mask,236    iXLen %4)237 238  ret <vscale x 32 x i1> %a239}240 241define <vscale x 1 x i1> @intrinsic_vmsgeu_vv_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {242; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv1i16_nxv1i16:243; CHECK:       # %bb.0: # %entry244; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma245; CHECK-NEXT:    vmsleu.vv v0, v9, v8246; CHECK-NEXT:    ret247entry:248  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i16(249    <vscale x 1 x i16> %0,250    <vscale x 1 x i16> %1,251    iXLen %2)252 253  ret <vscale x 1 x i1> %a254}255 256define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vv_nxv1i16_nxv1i16(<vscale x 1 x i1> %0, <vscale x 1 x i16> %1, <vscale x 1 x i16> %2, <vscale x 1 x i16> %3, iXLen %4) nounwind {257; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv1i16_nxv1i16:258; CHECK:       # %bb.0: # %entry259; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, mu260; CHECK-NEXT:    vmv1r.v v11, v0261; CHECK-NEXT:    vmsleu.vv v0, v9, v8262; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t263; CHECK-NEXT:    vmv1r.v v0, v11264; CHECK-NEXT:    ret265entry:266  %mask = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i16(267    <vscale x 1 x i16> %1,268    <vscale x 1 x i16> %2,269    iXLen %4)270  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i16(271    <vscale x 1 x i1> %0,272    <vscale x 1 x i16> %2,273    <vscale x 1 x i16> %3,274    <vscale x 1 x i1> %mask,275    iXLen %4)276 277  ret <vscale x 1 x i1> %a278}279 280define <vscale x 2 x i1> @intrinsic_vmsgeu_vv_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {281; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv2i16_nxv2i16:282; CHECK:       # %bb.0: # %entry283; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma284; CHECK-NEXT:    vmsleu.vv v0, v9, v8285; CHECK-NEXT:    ret286entry:287  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i16(288    <vscale x 2 x i16> %0,289    <vscale x 2 x i16> %1,290    iXLen %2)291 292  ret <vscale x 2 x i1> %a293}294 295define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vv_nxv2i16_nxv2i16(<vscale x 2 x i1> %0, <vscale x 2 x i16> %1, <vscale x 2 x i16> %2, <vscale x 2 x i16> %3, iXLen %4) nounwind {296; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv2i16_nxv2i16:297; CHECK:       # %bb.0: # %entry298; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, mu299; CHECK-NEXT:    vmv1r.v v11, v0300; CHECK-NEXT:    vmsleu.vv v0, v9, v8301; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t302; CHECK-NEXT:    vmv1r.v v0, v11303; CHECK-NEXT:    ret304entry:305  %mask = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i16(306    <vscale x 2 x i16> %1,307    <vscale x 2 x i16> %2,308    iXLen %4)309  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i16(310    <vscale x 2 x i1> %0,311    <vscale x 2 x i16> %2,312    <vscale x 2 x i16> %3,313    <vscale x 2 x i1> %mask,314    iXLen %4)315 316  ret <vscale x 2 x i1> %a317}318 319define <vscale x 4 x i1> @intrinsic_vmsgeu_vv_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {320; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv4i16_nxv4i16:321; CHECK:       # %bb.0: # %entry322; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma323; CHECK-NEXT:    vmsleu.vv v0, v9, v8324; CHECK-NEXT:    ret325entry:326  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i16(327    <vscale x 4 x i16> %0,328    <vscale x 4 x i16> %1,329    iXLen %2)330 331  ret <vscale x 4 x i1> %a332}333 334define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vv_nxv4i16_nxv4i16(<vscale x 4 x i1> %0, <vscale x 4 x i16> %1, <vscale x 4 x i16> %2, <vscale x 4 x i16> %3, iXLen %4) nounwind {335; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv4i16_nxv4i16:336; CHECK:       # %bb.0: # %entry337; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, mu338; CHECK-NEXT:    vmv1r.v v11, v0339; CHECK-NEXT:    vmsleu.vv v0, v9, v8340; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t341; CHECK-NEXT:    vmv.v.v v0, v11342; CHECK-NEXT:    ret343entry:344  %mask = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i16(345    <vscale x 4 x i16> %1,346    <vscale x 4 x i16> %2,347    iXLen %4)348  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i16(349    <vscale x 4 x i1> %0,350    <vscale x 4 x i16> %2,351    <vscale x 4 x i16> %3,352    <vscale x 4 x i1> %mask,353    iXLen %4)354 355  ret <vscale x 4 x i1> %a356}357 358define <vscale x 8 x i1> @intrinsic_vmsgeu_vv_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {359; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv8i16_nxv8i16:360; CHECK:       # %bb.0: # %entry361; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma362; CHECK-NEXT:    vmsleu.vv v0, v10, v8363; CHECK-NEXT:    ret364entry:365  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i16(366    <vscale x 8 x i16> %0,367    <vscale x 8 x i16> %1,368    iXLen %2)369 370  ret <vscale x 8 x i1> %a371}372 373define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vv_nxv8i16_nxv8i16(<vscale x 8 x i1> %0, <vscale x 8 x i16> %1, <vscale x 8 x i16> %2, <vscale x 8 x i16> %3, iXLen %4) nounwind {374; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv8i16_nxv8i16:375; CHECK:       # %bb.0: # %entry376; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, mu377; CHECK-NEXT:    vmv1r.v v14, v0378; CHECK-NEXT:    vmsleu.vv v0, v10, v8379; CHECK-NEXT:    vmsleu.vv v14, v12, v10, v0.t380; CHECK-NEXT:    vmv1r.v v0, v14381; CHECK-NEXT:    ret382entry:383  %mask = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i16(384    <vscale x 8 x i16> %1,385    <vscale x 8 x i16> %2,386    iXLen %4)387  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i16(388    <vscale x 8 x i1> %0,389    <vscale x 8 x i16> %2,390    <vscale x 8 x i16> %3,391    <vscale x 8 x i1> %mask,392    iXLen %4)393 394  ret <vscale x 8 x i1> %a395}396 397define <vscale x 16 x i1> @intrinsic_vmsgeu_vv_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {398; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv16i16_nxv16i16:399; CHECK:       # %bb.0: # %entry400; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma401; CHECK-NEXT:    vmsleu.vv v0, v12, v8402; CHECK-NEXT:    ret403entry:404  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i16(405    <vscale x 16 x i16> %0,406    <vscale x 16 x i16> %1,407    iXLen %2)408 409  ret <vscale x 16 x i1> %a410}411 412define <vscale x 16 x i1> @intrinsic_vmsgeu_mask_vv_nxv16i16_nxv16i16(<vscale x 16 x i1> %0, <vscale x 16 x i16> %1, <vscale x 16 x i16> %2, <vscale x 16 x i16> %3, iXLen %4) nounwind {413; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv16i16_nxv16i16:414; CHECK:       # %bb.0: # %entry415; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, mu416; CHECK-NEXT:    vmv1r.v v20, v0417; CHECK-NEXT:    vmsleu.vv v0, v12, v8418; CHECK-NEXT:    vmsleu.vv v20, v16, v12, v0.t419; CHECK-NEXT:    vmv1r.v v0, v20420; CHECK-NEXT:    ret421entry:422  %mask = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i16(423    <vscale x 16 x i16> %1,424    <vscale x 16 x i16> %2,425    iXLen %4)426  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i16(427    <vscale x 16 x i1> %0,428    <vscale x 16 x i16> %2,429    <vscale x 16 x i16> %3,430    <vscale x 16 x i1> %mask,431    iXLen %4)432 433  ret <vscale x 16 x i1> %a434}435 436define <vscale x 1 x i1> @intrinsic_vmsgeu_vv_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {437; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv1i32_nxv1i32:438; CHECK:       # %bb.0: # %entry439; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma440; CHECK-NEXT:    vmsleu.vv v0, v9, v8441; CHECK-NEXT:    ret442entry:443  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i32(444    <vscale x 1 x i32> %0,445    <vscale x 1 x i32> %1,446    iXLen %2)447 448  ret <vscale x 1 x i1> %a449}450 451define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vv_nxv1i32_nxv1i32(<vscale x 1 x i1> %0, <vscale x 1 x i32> %1, <vscale x 1 x i32> %2, <vscale x 1 x i32> %3, iXLen %4) nounwind {452; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv1i32_nxv1i32:453; CHECK:       # %bb.0: # %entry454; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, mu455; CHECK-NEXT:    vmv1r.v v11, v0456; CHECK-NEXT:    vmsleu.vv v0, v9, v8457; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t458; CHECK-NEXT:    vmv1r.v v0, v11459; CHECK-NEXT:    ret460entry:461  %mask = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i32(462    <vscale x 1 x i32> %1,463    <vscale x 1 x i32> %2,464    iXLen %4)465  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i32(466    <vscale x 1 x i1> %0,467    <vscale x 1 x i32> %2,468    <vscale x 1 x i32> %3,469    <vscale x 1 x i1> %mask,470    iXLen %4)471 472  ret <vscale x 1 x i1> %a473}474 475define <vscale x 2 x i1> @intrinsic_vmsgeu_vv_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {476; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv2i32_nxv2i32:477; CHECK:       # %bb.0: # %entry478; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma479; CHECK-NEXT:    vmsleu.vv v0, v9, v8480; CHECK-NEXT:    ret481entry:482  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i32(483    <vscale x 2 x i32> %0,484    <vscale x 2 x i32> %1,485    iXLen %2)486 487  ret <vscale x 2 x i1> %a488}489 490define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vv_nxv2i32_nxv2i32(<vscale x 2 x i1> %0, <vscale x 2 x i32> %1, <vscale x 2 x i32> %2, <vscale x 2 x i32> %3, iXLen %4) nounwind {491; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv2i32_nxv2i32:492; CHECK:       # %bb.0: # %entry493; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, mu494; CHECK-NEXT:    vmv1r.v v11, v0495; CHECK-NEXT:    vmsleu.vv v0, v9, v8496; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t497; CHECK-NEXT:    vmv.v.v v0, v11498; CHECK-NEXT:    ret499entry:500  %mask = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i32(501    <vscale x 2 x i32> %1,502    <vscale x 2 x i32> %2,503    iXLen %4)504  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i32(505    <vscale x 2 x i1> %0,506    <vscale x 2 x i32> %2,507    <vscale x 2 x i32> %3,508    <vscale x 2 x i1> %mask,509    iXLen %4)510 511  ret <vscale x 2 x i1> %a512}513 514define <vscale x 4 x i1> @intrinsic_vmsgeu_vv_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {515; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv4i32_nxv4i32:516; CHECK:       # %bb.0: # %entry517; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma518; CHECK-NEXT:    vmsleu.vv v0, v10, v8519; CHECK-NEXT:    ret520entry:521  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i32(522    <vscale x 4 x i32> %0,523    <vscale x 4 x i32> %1,524    iXLen %2)525 526  ret <vscale x 4 x i1> %a527}528 529define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vv_nxv4i32_nxv4i32(<vscale x 4 x i1> %0, <vscale x 4 x i32> %1, <vscale x 4 x i32> %2, <vscale x 4 x i32> %3, iXLen %4) nounwind {530; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv4i32_nxv4i32:531; CHECK:       # %bb.0: # %entry532; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, mu533; CHECK-NEXT:    vmv1r.v v14, v0534; CHECK-NEXT:    vmsleu.vv v0, v10, v8535; CHECK-NEXT:    vmsleu.vv v14, v12, v10, v0.t536; CHECK-NEXT:    vmv1r.v v0, v14537; CHECK-NEXT:    ret538entry:539  %mask = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i32(540    <vscale x 4 x i32> %1,541    <vscale x 4 x i32> %2,542    iXLen %4)543  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i32(544    <vscale x 4 x i1> %0,545    <vscale x 4 x i32> %2,546    <vscale x 4 x i32> %3,547    <vscale x 4 x i1> %mask,548    iXLen %4)549 550  ret <vscale x 4 x i1> %a551}552 553define <vscale x 8 x i1> @intrinsic_vmsgeu_vv_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {554; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv8i32_nxv8i32:555; CHECK:       # %bb.0: # %entry556; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma557; CHECK-NEXT:    vmsleu.vv v0, v12, v8558; CHECK-NEXT:    ret559entry:560  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i32(561    <vscale x 8 x i32> %0,562    <vscale x 8 x i32> %1,563    iXLen %2)564 565  ret <vscale x 8 x i1> %a566}567 568define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vv_nxv8i32_nxv8i32(<vscale x 8 x i1> %0, <vscale x 8 x i32> %1, <vscale x 8 x i32> %2, <vscale x 8 x i32> %3, iXLen %4) nounwind {569; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv8i32_nxv8i32:570; CHECK:       # %bb.0: # %entry571; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, mu572; CHECK-NEXT:    vmv1r.v v20, v0573; CHECK-NEXT:    vmsleu.vv v0, v12, v8574; CHECK-NEXT:    vmsleu.vv v20, v16, v12, v0.t575; CHECK-NEXT:    vmv1r.v v0, v20576; CHECK-NEXT:    ret577entry:578  %mask = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i32(579    <vscale x 8 x i32> %1,580    <vscale x 8 x i32> %2,581    iXLen %4)582  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i32(583    <vscale x 8 x i1> %0,584    <vscale x 8 x i32> %2,585    <vscale x 8 x i32> %3,586    <vscale x 8 x i1> %mask,587    iXLen %4)588 589  ret <vscale x 8 x i1> %a590}591 592define <vscale x 1 x i1> @intrinsic_vmsgeu_vv_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2) nounwind {593; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv1i64_nxv1i64:594; CHECK:       # %bb.0: # %entry595; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma596; CHECK-NEXT:    vmsleu.vv v0, v9, v8597; CHECK-NEXT:    ret598entry:599  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i64(600    <vscale x 1 x i64> %0,601    <vscale x 1 x i64> %1,602    iXLen %2)603 604  ret <vscale x 1 x i1> %a605}606 607define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vv_nxv1i64_nxv1i64(<vscale x 1 x i1> %0, <vscale x 1 x i64> %1, <vscale x 1 x i64> %2, <vscale x 1 x i64> %3, iXLen %4) nounwind {608; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv1i64_nxv1i64:609; CHECK:       # %bb.0: # %entry610; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, mu611; CHECK-NEXT:    vmv1r.v v11, v0612; CHECK-NEXT:    vmsleu.vv v0, v9, v8613; CHECK-NEXT:    vmsleu.vv v11, v10, v9, v0.t614; CHECK-NEXT:    vmv.v.v v0, v11615; CHECK-NEXT:    ret616entry:617  %mask = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i64(618    <vscale x 1 x i64> %1,619    <vscale x 1 x i64> %2,620    iXLen %4)621  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i64(622    <vscale x 1 x i1> %0,623    <vscale x 1 x i64> %2,624    <vscale x 1 x i64> %3,625    <vscale x 1 x i1> %mask,626    iXLen %4)627 628  ret <vscale x 1 x i1> %a629}630 631define <vscale x 2 x i1> @intrinsic_vmsgeu_vv_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2) nounwind {632; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv2i64_nxv2i64:633; CHECK:       # %bb.0: # %entry634; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma635; CHECK-NEXT:    vmsleu.vv v0, v10, v8636; CHECK-NEXT:    ret637entry:638  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i64(639    <vscale x 2 x i64> %0,640    <vscale x 2 x i64> %1,641    iXLen %2)642 643  ret <vscale x 2 x i1> %a644}645 646define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vv_nxv2i64_nxv2i64(<vscale x 2 x i1> %0, <vscale x 2 x i64> %1, <vscale x 2 x i64> %2, <vscale x 2 x i64> %3, iXLen %4) nounwind {647; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv2i64_nxv2i64:648; CHECK:       # %bb.0: # %entry649; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, mu650; CHECK-NEXT:    vmv1r.v v14, v0651; CHECK-NEXT:    vmsleu.vv v0, v10, v8652; CHECK-NEXT:    vmsleu.vv v14, v12, v10, v0.t653; CHECK-NEXT:    vmv1r.v v0, v14654; CHECK-NEXT:    ret655entry:656  %mask = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i64(657    <vscale x 2 x i64> %1,658    <vscale x 2 x i64> %2,659    iXLen %4)660  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i64(661    <vscale x 2 x i1> %0,662    <vscale x 2 x i64> %2,663    <vscale x 2 x i64> %3,664    <vscale x 2 x i1> %mask,665    iXLen %4)666 667  ret <vscale x 2 x i1> %a668}669 670define <vscale x 4 x i1> @intrinsic_vmsgeu_vv_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2) nounwind {671; CHECK-LABEL: intrinsic_vmsgeu_vv_nxv4i64_nxv4i64:672; CHECK:       # %bb.0: # %entry673; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma674; CHECK-NEXT:    vmsleu.vv v0, v12, v8675; CHECK-NEXT:    ret676entry:677  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i64(678    <vscale x 4 x i64> %0,679    <vscale x 4 x i64> %1,680    iXLen %2)681 682  ret <vscale x 4 x i1> %a683}684 685define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vv_nxv4i64_nxv4i64(<vscale x 4 x i1> %0, <vscale x 4 x i64> %1, <vscale x 4 x i64> %2, <vscale x 4 x i64> %3, iXLen %4) nounwind {686; CHECK-LABEL: intrinsic_vmsgeu_mask_vv_nxv4i64_nxv4i64:687; CHECK:       # %bb.0: # %entry688; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, mu689; CHECK-NEXT:    vmv1r.v v20, v0690; CHECK-NEXT:    vmsleu.vv v0, v12, v8691; CHECK-NEXT:    vmsleu.vv v20, v16, v12, v0.t692; CHECK-NEXT:    vmv1r.v v0, v20693; CHECK-NEXT:    ret694entry:695  %mask = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i64(696    <vscale x 4 x i64> %1,697    <vscale x 4 x i64> %2,698    iXLen %4)699  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i64(700    <vscale x 4 x i1> %0,701    <vscale x 4 x i64> %2,702    <vscale x 4 x i64> %3,703    <vscale x 4 x i1> %mask,704    iXLen %4)705 706  ret <vscale x 4 x i1> %a707}708 709define <vscale x 1 x i1> @intrinsic_vmsgeu_vx_nxv1i8_i8(<vscale x 1 x i8> %0, i8 %1, iXLen %2) nounwind {710; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv1i8_i8:711; CHECK:       # %bb.0: # %entry712; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma713; CHECK-NEXT:    vmsltu.vx v8, v8, a0714; CHECK-NEXT:    vmnot.m v0, v8715; CHECK-NEXT:    ret716entry:717  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i8.i8(718    <vscale x 1 x i8> %0,719    i8 %1,720    iXLen %2)721 722  ret <vscale x 1 x i1> %a723}724 725define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vx_nxv1i8_i8(<vscale x 1 x i1> %0, <vscale x 1 x i8> %1, i8 %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {726; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv1i8_i8:727; CHECK:       # %bb.0: # %entry728; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu729; CHECK-NEXT:    vmv1r.v v10, v0730; CHECK-NEXT:    vmv1r.v v0, v9731; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t732; CHECK-NEXT:    vmxor.mm v0, v10, v9733; CHECK-NEXT:    ret734entry:735  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i8.i8(736    <vscale x 1 x i1> %0,737    <vscale x 1 x i8> %1,738    i8 %2,739    <vscale x 1 x i1> %3,740    iXLen %4)741 742  ret <vscale x 1 x i1> %a743}744 745define <vscale x 2 x i1> @intrinsic_vmsgeu_vx_nxv2i8_i8(<vscale x 2 x i8> %0, i8 %1, iXLen %2) nounwind {746; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv2i8_i8:747; CHECK:       # %bb.0: # %entry748; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma749; CHECK-NEXT:    vmsltu.vx v8, v8, a0750; CHECK-NEXT:    vmnot.m v0, v8751; CHECK-NEXT:    ret752entry:753  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i8.i8(754    <vscale x 2 x i8> %0,755    i8 %1,756    iXLen %2)757 758  ret <vscale x 2 x i1> %a759}760 761define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vx_nxv2i8_i8(<vscale x 2 x i1> %0, <vscale x 2 x i8> %1, i8 %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {762; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv2i8_i8:763; CHECK:       # %bb.0: # %entry764; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu765; CHECK-NEXT:    vmv1r.v v10, v0766; CHECK-NEXT:    vmv1r.v v0, v9767; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t768; CHECK-NEXT:    vmxor.mm v0, v10, v9769; CHECK-NEXT:    ret770entry:771  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i8.i8(772    <vscale x 2 x i1> %0,773    <vscale x 2 x i8> %1,774    i8 %2,775    <vscale x 2 x i1> %3,776    iXLen %4)777 778  ret <vscale x 2 x i1> %a779}780 781define <vscale x 4 x i1> @intrinsic_vmsgeu_vx_nxv4i8_i8(<vscale x 4 x i8> %0, i8 %1, iXLen %2) nounwind {782; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv4i8_i8:783; CHECK:       # %bb.0: # %entry784; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma785; CHECK-NEXT:    vmsltu.vx v8, v8, a0786; CHECK-NEXT:    vmnot.m v0, v8787; CHECK-NEXT:    ret788entry:789  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i8.i8(790    <vscale x 4 x i8> %0,791    i8 %1,792    iXLen %2)793 794  ret <vscale x 4 x i1> %a795}796 797define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vx_nxv4i8_i8(<vscale x 4 x i1> %0, <vscale x 4 x i8> %1, i8 %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {798; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv4i8_i8:799; CHECK:       # %bb.0: # %entry800; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu801; CHECK-NEXT:    vmv1r.v v10, v0802; CHECK-NEXT:    vmv1r.v v0, v9803; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t804; CHECK-NEXT:    vmxor.mm v0, v10, v9805; CHECK-NEXT:    ret806entry:807  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i8.i8(808    <vscale x 4 x i1> %0,809    <vscale x 4 x i8> %1,810    i8 %2,811    <vscale x 4 x i1> %3,812    iXLen %4)813 814  ret <vscale x 4 x i1> %a815}816 817define <vscale x 8 x i1> @intrinsic_vmsgeu_vx_nxv8i8_i8(<vscale x 8 x i8> %0, i8 %1, iXLen %2) nounwind {818; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv8i8_i8:819; CHECK:       # %bb.0: # %entry820; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma821; CHECK-NEXT:    vmsltu.vx v8, v8, a0822; CHECK-NEXT:    vmnot.m v0, v8823; CHECK-NEXT:    ret824entry:825  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i8.i8(826    <vscale x 8 x i8> %0,827    i8 %1,828    iXLen %2)829 830  ret <vscale x 8 x i1> %a831}832 833define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vx_nxv8i8_i8(<vscale x 8 x i1> %0, <vscale x 8 x i8> %1, i8 %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {834; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv8i8_i8:835; CHECK:       # %bb.0: # %entry836; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu837; CHECK-NEXT:    vmv1r.v v10, v0838; CHECK-NEXT:    vmv1r.v v0, v9839; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t840; CHECK-NEXT:    vmxor.mm v0, v10, v9841; CHECK-NEXT:    ret842entry:843  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i8.i8(844    <vscale x 8 x i1> %0,845    <vscale x 8 x i8> %1,846    i8 %2,847    <vscale x 8 x i1> %3,848    iXLen %4)849 850  ret <vscale x 8 x i1> %a851}852 853define <vscale x 16 x i1> @intrinsic_vmsgeu_vx_nxv16i8_i8(<vscale x 16 x i8> %0, i8 %1, iXLen %2) nounwind {854; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv16i8_i8:855; CHECK:       # %bb.0: # %entry856; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma857; CHECK-NEXT:    vmsltu.vx v10, v8, a0858; CHECK-NEXT:    vmnot.m v0, v10859; CHECK-NEXT:    ret860entry:861  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i8.i8(862    <vscale x 16 x i8> %0,863    i8 %1,864    iXLen %2)865 866  ret <vscale x 16 x i1> %a867}868 869define <vscale x 16 x i1> @intrinsic_vmsgeu_mask_vx_nxv16i8_i8(<vscale x 16 x i1> %0, <vscale x 16 x i8> %1, i8 %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {870; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv16i8_i8:871; CHECK:       # %bb.0: # %entry872; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu873; CHECK-NEXT:    vmv1r.v v11, v0874; CHECK-NEXT:    vmv1r.v v0, v10875; CHECK-NEXT:    vmsltu.vx v11, v8, a0, v0.t876; CHECK-NEXT:    vmxor.mm v0, v11, v10877; CHECK-NEXT:    ret878entry:879  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i8.i8(880    <vscale x 16 x i1> %0,881    <vscale x 16 x i8> %1,882    i8 %2,883    <vscale x 16 x i1> %3,884    iXLen %4)885 886  ret <vscale x 16 x i1> %a887}888 889define <vscale x 32 x i1> @intrinsic_vmsgeu_vx_nxv32i8_i8(<vscale x 32 x i8> %0, i8 %1, iXLen %2) nounwind {890; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv32i8_i8:891; CHECK:       # %bb.0: # %entry892; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma893; CHECK-NEXT:    vmsltu.vx v12, v8, a0894; CHECK-NEXT:    vmnot.m v0, v12895; CHECK-NEXT:    ret896entry:897  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.nxv32i8.i8(898    <vscale x 32 x i8> %0,899    i8 %1,900    iXLen %2)901 902  ret <vscale x 32 x i1> %a903}904 905define <vscale x 32 x i1> @intrinsic_vmsgeu_mask_vx_nxv32i8_i8(<vscale x 32 x i1> %0, <vscale x 32 x i8> %1, i8 %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {906; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv32i8_i8:907; CHECK:       # %bb.0: # %entry908; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, mu909; CHECK-NEXT:    vmv1r.v v13, v0910; CHECK-NEXT:    vmv1r.v v0, v12911; CHECK-NEXT:    vmsltu.vx v13, v8, a0, v0.t912; CHECK-NEXT:    vmxor.mm v0, v13, v12913; CHECK-NEXT:    ret914entry:915  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.mask.nxv32i8.i8(916    <vscale x 32 x i1> %0,917    <vscale x 32 x i8> %1,918    i8 %2,919    <vscale x 32 x i1> %3,920    iXLen %4)921 922  ret <vscale x 32 x i1> %a923}924 925define <vscale x 1 x i1> @intrinsic_vmsgeu_vx_nxv1i16_i16(<vscale x 1 x i16> %0, i16 %1, iXLen %2) nounwind {926; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv1i16_i16:927; CHECK:       # %bb.0: # %entry928; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma929; CHECK-NEXT:    vmsltu.vx v8, v8, a0930; CHECK-NEXT:    vmnot.m v0, v8931; CHECK-NEXT:    ret932entry:933  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i16.i16(934    <vscale x 1 x i16> %0,935    i16 %1,936    iXLen %2)937 938  ret <vscale x 1 x i1> %a939}940 941define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vx_nxv1i16_i16(<vscale x 1 x i1> %0, <vscale x 1 x i16> %1, i16 %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {942; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv1i16_i16:943; CHECK:       # %bb.0: # %entry944; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu945; CHECK-NEXT:    vmv1r.v v10, v0946; CHECK-NEXT:    vmv1r.v v0, v9947; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t948; CHECK-NEXT:    vmxor.mm v0, v10, v9949; CHECK-NEXT:    ret950entry:951  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i16.i16(952    <vscale x 1 x i1> %0,953    <vscale x 1 x i16> %1,954    i16 %2,955    <vscale x 1 x i1> %3,956    iXLen %4)957 958  ret <vscale x 1 x i1> %a959}960 961define <vscale x 2 x i1> @intrinsic_vmsgeu_vx_nxv2i16_i16(<vscale x 2 x i16> %0, i16 %1, iXLen %2) nounwind {962; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv2i16_i16:963; CHECK:       # %bb.0: # %entry964; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma965; CHECK-NEXT:    vmsltu.vx v8, v8, a0966; CHECK-NEXT:    vmnot.m v0, v8967; CHECK-NEXT:    ret968entry:969  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i16.i16(970    <vscale x 2 x i16> %0,971    i16 %1,972    iXLen %2)973 974  ret <vscale x 2 x i1> %a975}976 977define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vx_nxv2i16_i16(<vscale x 2 x i1> %0, <vscale x 2 x i16> %1, i16 %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {978; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv2i16_i16:979; CHECK:       # %bb.0: # %entry980; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu981; CHECK-NEXT:    vmv1r.v v10, v0982; CHECK-NEXT:    vmv1r.v v0, v9983; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t984; CHECK-NEXT:    vmxor.mm v0, v10, v9985; CHECK-NEXT:    ret986entry:987  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i16.i16(988    <vscale x 2 x i1> %0,989    <vscale x 2 x i16> %1,990    i16 %2,991    <vscale x 2 x i1> %3,992    iXLen %4)993 994  ret <vscale x 2 x i1> %a995}996 997define <vscale x 4 x i1> @intrinsic_vmsgeu_vx_nxv4i16_i16(<vscale x 4 x i16> %0, i16 %1, iXLen %2) nounwind {998; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv4i16_i16:999; CHECK:       # %bb.0: # %entry1000; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1001; CHECK-NEXT:    vmsltu.vx v8, v8, a01002; CHECK-NEXT:    vmnot.m v0, v81003; CHECK-NEXT:    ret1004entry:1005  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i16.i16(1006    <vscale x 4 x i16> %0,1007    i16 %1,1008    iXLen %2)1009 1010  ret <vscale x 4 x i1> %a1011}1012 1013define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vx_nxv4i16_i16(<vscale x 4 x i1> %0, <vscale x 4 x i16> %1, i16 %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1014; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv4i16_i16:1015; CHECK:       # %bb.0: # %entry1016; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu1017; CHECK-NEXT:    vmv1r.v v10, v01018; CHECK-NEXT:    vmv1r.v v0, v91019; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t1020; CHECK-NEXT:    vmxor.mm v0, v10, v91021; CHECK-NEXT:    ret1022entry:1023  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i16.i16(1024    <vscale x 4 x i1> %0,1025    <vscale x 4 x i16> %1,1026    i16 %2,1027    <vscale x 4 x i1> %3,1028    iXLen %4)1029 1030  ret <vscale x 4 x i1> %a1031}1032 1033define <vscale x 8 x i1> @intrinsic_vmsgeu_vx_nxv8i16_i16(<vscale x 8 x i16> %0, i16 %1, iXLen %2) nounwind {1034; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv8i16_i16:1035; CHECK:       # %bb.0: # %entry1036; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma1037; CHECK-NEXT:    vmsltu.vx v10, v8, a01038; CHECK-NEXT:    vmnot.m v0, v101039; CHECK-NEXT:    ret1040entry:1041  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i16.i16(1042    <vscale x 8 x i16> %0,1043    i16 %1,1044    iXLen %2)1045 1046  ret <vscale x 8 x i1> %a1047}1048 1049define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vx_nxv8i16_i16(<vscale x 8 x i1> %0, <vscale x 8 x i16> %1, i16 %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1050; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv8i16_i16:1051; CHECK:       # %bb.0: # %entry1052; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu1053; CHECK-NEXT:    vmv1r.v v11, v01054; CHECK-NEXT:    vmv1r.v v0, v101055; CHECK-NEXT:    vmsltu.vx v11, v8, a0, v0.t1056; CHECK-NEXT:    vmxor.mm v0, v11, v101057; CHECK-NEXT:    ret1058entry:1059  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i16.i16(1060    <vscale x 8 x i1> %0,1061    <vscale x 8 x i16> %1,1062    i16 %2,1063    <vscale x 8 x i1> %3,1064    iXLen %4)1065 1066  ret <vscale x 8 x i1> %a1067}1068 1069define <vscale x 16 x i1> @intrinsic_vmsgeu_vx_nxv16i16_i16(<vscale x 16 x i16> %0, i16 %1, iXLen %2) nounwind {1070; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv16i16_i16:1071; CHECK:       # %bb.0: # %entry1072; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma1073; CHECK-NEXT:    vmsltu.vx v12, v8, a01074; CHECK-NEXT:    vmnot.m v0, v121075; CHECK-NEXT:    ret1076entry:1077  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i16.i16(1078    <vscale x 16 x i16> %0,1079    i16 %1,1080    iXLen %2)1081 1082  ret <vscale x 16 x i1> %a1083}1084 1085define <vscale x 16 x i1> @intrinsic_vmsgeu_mask_vx_nxv16i16_i16(<vscale x 16 x i1> %0, <vscale x 16 x i16> %1, i16 %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1086; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv16i16_i16:1087; CHECK:       # %bb.0: # %entry1088; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu1089; CHECK-NEXT:    vmv1r.v v13, v01090; CHECK-NEXT:    vmv1r.v v0, v121091; CHECK-NEXT:    vmsltu.vx v13, v8, a0, v0.t1092; CHECK-NEXT:    vmxor.mm v0, v13, v121093; CHECK-NEXT:    ret1094entry:1095  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i16.i16(1096    <vscale x 16 x i1> %0,1097    <vscale x 16 x i16> %1,1098    i16 %2,1099    <vscale x 16 x i1> %3,1100    iXLen %4)1101 1102  ret <vscale x 16 x i1> %a1103}1104 1105define <vscale x 1 x i1> @intrinsic_vmsgeu_vx_nxv1i32_i32(<vscale x 1 x i32> %0, i32 %1, iXLen %2) nounwind {1106; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv1i32_i32:1107; CHECK:       # %bb.0: # %entry1108; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1109; CHECK-NEXT:    vmsltu.vx v8, v8, a01110; CHECK-NEXT:    vmnot.m v0, v81111; CHECK-NEXT:    ret1112entry:1113  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i32.i32(1114    <vscale x 1 x i32> %0,1115    i32 %1,1116    iXLen %2)1117 1118  ret <vscale x 1 x i1> %a1119}1120 1121define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vx_nxv1i32_i32(<vscale x 1 x i1> %0, <vscale x 1 x i32> %1, i32 %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1122; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv1i32_i32:1123; CHECK:       # %bb.0: # %entry1124; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu1125; CHECK-NEXT:    vmv1r.v v10, v01126; CHECK-NEXT:    vmv1r.v v0, v91127; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t1128; CHECK-NEXT:    vmxor.mm v0, v10, v91129; CHECK-NEXT:    ret1130entry:1131  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i32.i32(1132    <vscale x 1 x i1> %0,1133    <vscale x 1 x i32> %1,1134    i32 %2,1135    <vscale x 1 x i1> %3,1136    iXLen %4)1137 1138  ret <vscale x 1 x i1> %a1139}1140 1141define <vscale x 2 x i1> @intrinsic_vmsgeu_vx_nxv2i32_i32(<vscale x 2 x i32> %0, i32 %1, iXLen %2) nounwind {1142; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv2i32_i32:1143; CHECK:       # %bb.0: # %entry1144; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1145; CHECK-NEXT:    vmsltu.vx v8, v8, a01146; CHECK-NEXT:    vmnot.m v0, v81147; CHECK-NEXT:    ret1148entry:1149  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i32.i32(1150    <vscale x 2 x i32> %0,1151    i32 %1,1152    iXLen %2)1153 1154  ret <vscale x 2 x i1> %a1155}1156 1157define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vx_nxv2i32_i32(<vscale x 2 x i1> %0, <vscale x 2 x i32> %1, i32 %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1158; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv2i32_i32:1159; CHECK:       # %bb.0: # %entry1160; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu1161; CHECK-NEXT:    vmv1r.v v10, v01162; CHECK-NEXT:    vmv1r.v v0, v91163; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t1164; CHECK-NEXT:    vmxor.mm v0, v10, v91165; CHECK-NEXT:    ret1166entry:1167  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i32.i32(1168    <vscale x 2 x i1> %0,1169    <vscale x 2 x i32> %1,1170    i32 %2,1171    <vscale x 2 x i1> %3,1172    iXLen %4)1173 1174  ret <vscale x 2 x i1> %a1175}1176 1177define <vscale x 4 x i1> @intrinsic_vmsgeu_vx_nxv4i32_i32(<vscale x 4 x i32> %0, i32 %1, iXLen %2) nounwind {1178; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv4i32_i32:1179; CHECK:       # %bb.0: # %entry1180; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1181; CHECK-NEXT:    vmsltu.vx v10, v8, a01182; CHECK-NEXT:    vmnot.m v0, v101183; CHECK-NEXT:    ret1184entry:1185  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i32.i32(1186    <vscale x 4 x i32> %0,1187    i32 %1,1188    iXLen %2)1189 1190  ret <vscale x 4 x i1> %a1191}1192 1193define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vx_nxv4i32_i32(<vscale x 4 x i1> %0, <vscale x 4 x i32> %1, i32 %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1194; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv4i32_i32:1195; CHECK:       # %bb.0: # %entry1196; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu1197; CHECK-NEXT:    vmv1r.v v11, v01198; CHECK-NEXT:    vmv1r.v v0, v101199; CHECK-NEXT:    vmsltu.vx v11, v8, a0, v0.t1200; CHECK-NEXT:    vmxor.mm v0, v11, v101201; CHECK-NEXT:    ret1202entry:1203  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i32.i32(1204    <vscale x 4 x i1> %0,1205    <vscale x 4 x i32> %1,1206    i32 %2,1207    <vscale x 4 x i1> %3,1208    iXLen %4)1209 1210  ret <vscale x 4 x i1> %a1211}1212 1213define <vscale x 8 x i1> @intrinsic_vmsgeu_vx_nxv8i32_i32(<vscale x 8 x i32> %0, i32 %1, iXLen %2) nounwind {1214; CHECK-LABEL: intrinsic_vmsgeu_vx_nxv8i32_i32:1215; CHECK:       # %bb.0: # %entry1216; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma1217; CHECK-NEXT:    vmsltu.vx v12, v8, a01218; CHECK-NEXT:    vmnot.m v0, v121219; CHECK-NEXT:    ret1220entry:1221  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i32.i32(1222    <vscale x 8 x i32> %0,1223    i32 %1,1224    iXLen %2)1225 1226  ret <vscale x 8 x i1> %a1227}1228 1229define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vx_nxv8i32_i32(<vscale x 8 x i1> %0, <vscale x 8 x i32> %1, i32 %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1230; CHECK-LABEL: intrinsic_vmsgeu_mask_vx_nxv8i32_i32:1231; CHECK:       # %bb.0: # %entry1232; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu1233; CHECK-NEXT:    vmv1r.v v13, v01234; CHECK-NEXT:    vmv1r.v v0, v121235; CHECK-NEXT:    vmsltu.vx v13, v8, a0, v0.t1236; CHECK-NEXT:    vmxor.mm v0, v13, v121237; CHECK-NEXT:    ret1238entry:1239  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i32.i32(1240    <vscale x 8 x i1> %0,1241    <vscale x 8 x i32> %1,1242    i32 %2,1243    <vscale x 8 x i1> %3,1244    iXLen %4)1245 1246  ret <vscale x 8 x i1> %a1247}1248 1249define <vscale x 1 x i1> @intrinsic_vmsgeu_vx_nxv1i64_i64(<vscale x 1 x i64> %0, i64 %1, iXLen %2) nounwind {1250; RV32-LABEL: intrinsic_vmsgeu_vx_nxv1i64_i64:1251; RV32:       # %bb.0: # %entry1252; RV32-NEXT:    addi sp, sp, -161253; RV32-NEXT:    sw a0, 8(sp)1254; RV32-NEXT:    sw a1, 12(sp)1255; RV32-NEXT:    addi a0, sp, 81256; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1257; RV32-NEXT:    vlse64.v v9, (a0), zero1258; RV32-NEXT:    vmsleu.vv v0, v9, v81259; RV32-NEXT:    addi sp, sp, 161260; RV32-NEXT:    ret1261;1262; RV64-LABEL: intrinsic_vmsgeu_vx_nxv1i64_i64:1263; RV64:       # %bb.0: # %entry1264; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1265; RV64-NEXT:    vmsltu.vx v8, v8, a01266; RV64-NEXT:    vmnot.m v0, v81267; RV64-NEXT:    ret1268entry:1269  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i64.i64(1270    <vscale x 1 x i64> %0,1271    i64 %1,1272    iXLen %2)1273 1274  ret <vscale x 1 x i1> %a1275}1276 1277define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vx_nxv1i64_i64(<vscale x 1 x i1> %0, <vscale x 1 x i64> %1, i64 %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1278; RV32-LABEL: intrinsic_vmsgeu_mask_vx_nxv1i64_i64:1279; RV32:       # %bb.0: # %entry1280; RV32-NEXT:    addi sp, sp, -161281; RV32-NEXT:    sw a0, 8(sp)1282; RV32-NEXT:    sw a1, 12(sp)1283; RV32-NEXT:    addi a0, sp, 81284; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, mu1285; RV32-NEXT:    vlse64.v v11, (a0), zero1286; RV32-NEXT:    vmv1r.v v10, v01287; RV32-NEXT:    vmv1r.v v0, v91288; RV32-NEXT:    vmsleu.vv v10, v11, v8, v0.t1289; RV32-NEXT:    vmv.v.v v0, v101290; RV32-NEXT:    addi sp, sp, 161291; RV32-NEXT:    ret1292;1293; RV64-LABEL: intrinsic_vmsgeu_mask_vx_nxv1i64_i64:1294; RV64:       # %bb.0: # %entry1295; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, mu1296; RV64-NEXT:    vmv1r.v v10, v01297; RV64-NEXT:    vmv1r.v v0, v91298; RV64-NEXT:    vmsltu.vx v10, v8, a0, v0.t1299; RV64-NEXT:    vmxor.mm v0, v10, v91300; RV64-NEXT:    ret1301entry:1302  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i64.i64(1303    <vscale x 1 x i1> %0,1304    <vscale x 1 x i64> %1,1305    i64 %2,1306    <vscale x 1 x i1> %3,1307    iXLen %4)1308 1309  ret <vscale x 1 x i1> %a1310}1311 1312define <vscale x 2 x i1> @intrinsic_vmsgeu_vx_nxv2i64_i64(<vscale x 2 x i64> %0, i64 %1, iXLen %2) nounwind {1313; RV32-LABEL: intrinsic_vmsgeu_vx_nxv2i64_i64:1314; RV32:       # %bb.0: # %entry1315; RV32-NEXT:    addi sp, sp, -161316; RV32-NEXT:    sw a0, 8(sp)1317; RV32-NEXT:    sw a1, 12(sp)1318; RV32-NEXT:    addi a0, sp, 81319; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1320; RV32-NEXT:    vlse64.v v10, (a0), zero1321; RV32-NEXT:    vmsleu.vv v0, v10, v81322; RV32-NEXT:    addi sp, sp, 161323; RV32-NEXT:    ret1324;1325; RV64-LABEL: intrinsic_vmsgeu_vx_nxv2i64_i64:1326; RV64:       # %bb.0: # %entry1327; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1328; RV64-NEXT:    vmsltu.vx v10, v8, a01329; RV64-NEXT:    vmnot.m v0, v101330; RV64-NEXT:    ret1331entry:1332  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i64.i64(1333    <vscale x 2 x i64> %0,1334    i64 %1,1335    iXLen %2)1336 1337  ret <vscale x 2 x i1> %a1338}1339 1340define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vx_nxv2i64_i64(<vscale x 2 x i1> %0, <vscale x 2 x i64> %1, i64 %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1341; RV32-LABEL: intrinsic_vmsgeu_mask_vx_nxv2i64_i64:1342; RV32:       # %bb.0: # %entry1343; RV32-NEXT:    addi sp, sp, -161344; RV32-NEXT:    sw a0, 8(sp)1345; RV32-NEXT:    sw a1, 12(sp)1346; RV32-NEXT:    addi a0, sp, 81347; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, mu1348; RV32-NEXT:    vlse64.v v12, (a0), zero1349; RV32-NEXT:    vmv1r.v v11, v01350; RV32-NEXT:    vmv1r.v v0, v101351; RV32-NEXT:    vmsleu.vv v11, v12, v8, v0.t1352; RV32-NEXT:    vmv1r.v v0, v111353; RV32-NEXT:    addi sp, sp, 161354; RV32-NEXT:    ret1355;1356; RV64-LABEL: intrinsic_vmsgeu_mask_vx_nxv2i64_i64:1357; RV64:       # %bb.0: # %entry1358; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, mu1359; RV64-NEXT:    vmv1r.v v11, v01360; RV64-NEXT:    vmv1r.v v0, v101361; RV64-NEXT:    vmsltu.vx v11, v8, a0, v0.t1362; RV64-NEXT:    vmxor.mm v0, v11, v101363; RV64-NEXT:    ret1364entry:1365  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i64.i64(1366    <vscale x 2 x i1> %0,1367    <vscale x 2 x i64> %1,1368    i64 %2,1369    <vscale x 2 x i1> %3,1370    iXLen %4)1371 1372  ret <vscale x 2 x i1> %a1373}1374 1375define <vscale x 4 x i1> @intrinsic_vmsgeu_vx_nxv4i64_i64(<vscale x 4 x i64> %0, i64 %1, iXLen %2) nounwind {1376; RV32-LABEL: intrinsic_vmsgeu_vx_nxv4i64_i64:1377; RV32:       # %bb.0: # %entry1378; RV32-NEXT:    addi sp, sp, -161379; RV32-NEXT:    sw a0, 8(sp)1380; RV32-NEXT:    sw a1, 12(sp)1381; RV32-NEXT:    addi a0, sp, 81382; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1383; RV32-NEXT:    vlse64.v v12, (a0), zero1384; RV32-NEXT:    vmsleu.vv v0, v12, v81385; RV32-NEXT:    addi sp, sp, 161386; RV32-NEXT:    ret1387;1388; RV64-LABEL: intrinsic_vmsgeu_vx_nxv4i64_i64:1389; RV64:       # %bb.0: # %entry1390; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1391; RV64-NEXT:    vmsltu.vx v12, v8, a01392; RV64-NEXT:    vmnot.m v0, v121393; RV64-NEXT:    ret1394entry:1395  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i64.i64(1396    <vscale x 4 x i64> %0,1397    i64 %1,1398    iXLen %2)1399 1400  ret <vscale x 4 x i1> %a1401}1402 1403define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vx_nxv4i64_i64(<vscale x 4 x i1> %0, <vscale x 4 x i64> %1, i64 %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1404; RV32-LABEL: intrinsic_vmsgeu_mask_vx_nxv4i64_i64:1405; RV32:       # %bb.0: # %entry1406; RV32-NEXT:    addi sp, sp, -161407; RV32-NEXT:    sw a0, 8(sp)1408; RV32-NEXT:    sw a1, 12(sp)1409; RV32-NEXT:    addi a0, sp, 81410; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, mu1411; RV32-NEXT:    vlse64.v v16, (a0), zero1412; RV32-NEXT:    vmv1r.v v13, v01413; RV32-NEXT:    vmv1r.v v0, v121414; RV32-NEXT:    vmsleu.vv v13, v16, v8, v0.t1415; RV32-NEXT:    vmv1r.v v0, v131416; RV32-NEXT:    addi sp, sp, 161417; RV32-NEXT:    ret1418;1419; RV64-LABEL: intrinsic_vmsgeu_mask_vx_nxv4i64_i64:1420; RV64:       # %bb.0: # %entry1421; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, mu1422; RV64-NEXT:    vmv1r.v v13, v01423; RV64-NEXT:    vmv1r.v v0, v121424; RV64-NEXT:    vmsltu.vx v13, v8, a0, v0.t1425; RV64-NEXT:    vmxor.mm v0, v13, v121426; RV64-NEXT:    ret1427entry:1428  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i64.i64(1429    <vscale x 4 x i1> %0,1430    <vscale x 4 x i64> %1,1431    i64 %2,1432    <vscale x 4 x i1> %3,1433    iXLen %4)1434 1435  ret <vscale x 4 x i1> %a1436}1437 1438define <vscale x 1 x i1> @intrinsic_vmsgeu_vi_nxv1i8_i8(<vscale x 1 x i8> %0, iXLen %1) nounwind {1439; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv1i8_i8:1440; CHECK:       # %bb.0: # %entry1441; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma1442; CHECK-NEXT:    vmsgtu.vi v0, v8, -161443; CHECK-NEXT:    ret1444entry:1445  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i8.i8(1446    <vscale x 1 x i8> %0,1447    i8 -15,1448    iXLen %1)1449 1450  ret <vscale x 1 x i1> %a1451}1452 1453define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vi_nxv1i8_i8(<vscale x 1 x i1> %0, <vscale x 1 x i8> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1454; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv1i8_i8:1455; CHECK:       # %bb.0: # %entry1456; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, mu1457; CHECK-NEXT:    vmv1r.v v10, v01458; CHECK-NEXT:    vmv1r.v v0, v91459; CHECK-NEXT:    vmsgtu.vi v10, v8, -15, v0.t1460; CHECK-NEXT:    vmv1r.v v0, v101461; CHECK-NEXT:    ret1462entry:1463  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i8.i8(1464    <vscale x 1 x i1> %0,1465    <vscale x 1 x i8> %1,1466    i8 -14,1467    <vscale x 1 x i1> %2,1468    iXLen %3)1469 1470  ret <vscale x 1 x i1> %a1471}1472 1473define <vscale x 2 x i1> @intrinsic_vmsgeu_vi_nxv2i8_i8(<vscale x 2 x i8> %0, iXLen %1) nounwind {1474; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv2i8_i8:1475; CHECK:       # %bb.0: # %entry1476; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma1477; CHECK-NEXT:    vmsgtu.vi v0, v8, -141478; CHECK-NEXT:    ret1479entry:1480  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i8.i8(1481    <vscale x 2 x i8> %0,1482    i8 -13,1483    iXLen %1)1484 1485  ret <vscale x 2 x i1> %a1486}1487 1488define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vi_nxv2i8_i8(<vscale x 2 x i1> %0, <vscale x 2 x i8> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {1489; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv2i8_i8:1490; CHECK:       # %bb.0: # %entry1491; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, mu1492; CHECK-NEXT:    vmv1r.v v10, v01493; CHECK-NEXT:    vmv1r.v v0, v91494; CHECK-NEXT:    vmsgtu.vi v10, v8, -13, v0.t1495; CHECK-NEXT:    vmv1r.v v0, v101496; CHECK-NEXT:    ret1497entry:1498  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i8.i8(1499    <vscale x 2 x i1> %0,1500    <vscale x 2 x i8> %1,1501    i8 -12,1502    <vscale x 2 x i1> %2,1503    iXLen %3)1504 1505  ret <vscale x 2 x i1> %a1506}1507 1508define <vscale x 4 x i1> @intrinsic_vmsgeu_vi_nxv4i8_i8(<vscale x 4 x i8> %0, iXLen %1) nounwind {1509; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv4i8_i8:1510; CHECK:       # %bb.0: # %entry1511; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma1512; CHECK-NEXT:    vmsgtu.vi v0, v8, -121513; CHECK-NEXT:    ret1514entry:1515  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i8.i8(1516    <vscale x 4 x i8> %0,1517    i8 -11,1518    iXLen %1)1519 1520  ret <vscale x 4 x i1> %a1521}1522 1523define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vi_nxv4i8_i8(<vscale x 4 x i1> %0, <vscale x 4 x i8> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {1524; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv4i8_i8:1525; CHECK:       # %bb.0: # %entry1526; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu1527; CHECK-NEXT:    vmv1r.v v10, v01528; CHECK-NEXT:    vmv1r.v v0, v91529; CHECK-NEXT:    vmsgtu.vi v10, v8, -11, v0.t1530; CHECK-NEXT:    vmv1r.v v0, v101531; CHECK-NEXT:    ret1532entry:1533  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i8.i8(1534    <vscale x 4 x i1> %0,1535    <vscale x 4 x i8> %1,1536    i8 -10,1537    <vscale x 4 x i1> %2,1538    iXLen %3)1539 1540  ret <vscale x 4 x i1> %a1541}1542 1543define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vi_nxv4i8_i8_1(<vscale x 4 x i1> %0, <vscale x 4 x i8> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {1544; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv4i8_i8_1:1545; CHECK:       # %bb.0: # %entry1546; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu1547; CHECK-NEXT:    vmv1r.v v10, v01548; CHECK-NEXT:    li a0, 991549; CHECK-NEXT:    vmv1r.v v0, v91550; CHECK-NEXT:    vmsgtu.vx v10, v8, a0, v0.t1551; CHECK-NEXT:    vmv1r.v v0, v101552; CHECK-NEXT:    ret1553entry:1554  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i8.i8(1555    <vscale x 4 x i1> %0,1556    <vscale x 4 x i8> %1,1557    i8 100,1558    <vscale x 4 x i1> %2,1559    iXLen %3)1560 1561  ret <vscale x 4 x i1> %a1562}1563 1564define <vscale x 8 x i1> @intrinsic_vmsgeu_vi_nxv8i8_i8(<vscale x 8 x i8> %0, iXLen %1) nounwind {1565; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv8i8_i8:1566; CHECK:       # %bb.0: # %entry1567; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma1568; CHECK-NEXT:    vmsgtu.vi v0, v8, -101569; CHECK-NEXT:    ret1570entry:1571  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i8.i8(1572    <vscale x 8 x i8> %0,1573    i8 -9,1574    iXLen %1)1575 1576  ret <vscale x 8 x i1> %a1577}1578 1579define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vi_nxv8i8_i8(<vscale x 8 x i1> %0, <vscale x 8 x i8> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {1580; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv8i8_i8:1581; CHECK:       # %bb.0: # %entry1582; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, mu1583; CHECK-NEXT:    vmv1r.v v10, v01584; CHECK-NEXT:    vmv1r.v v0, v91585; CHECK-NEXT:    vmsgtu.vi v10, v8, -9, v0.t1586; CHECK-NEXT:    vmv.v.v v0, v101587; CHECK-NEXT:    ret1588entry:1589  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i8.i8(1590    <vscale x 8 x i1> %0,1591    <vscale x 8 x i8> %1,1592    i8 -8,1593    <vscale x 8 x i1> %2,1594    iXLen %3)1595 1596  ret <vscale x 8 x i1> %a1597}1598 1599define <vscale x 16 x i1> @intrinsic_vmsgeu_vi_nxv16i8_i8(<vscale x 16 x i8> %0, iXLen %1) nounwind {1600; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv16i8_i8:1601; CHECK:       # %bb.0: # %entry1602; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma1603; CHECK-NEXT:    vmsgtu.vi v0, v8, -81604; CHECK-NEXT:    ret1605entry:1606  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i8.i8(1607    <vscale x 16 x i8> %0,1608    i8 -7,1609    iXLen %1)1610 1611  ret <vscale x 16 x i1> %a1612}1613 1614define <vscale x 16 x i1> @intrinsic_vmsgeu_mask_vi_nxv16i8_i8(<vscale x 16 x i1> %0, <vscale x 16 x i8> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {1615; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv16i8_i8:1616; CHECK:       # %bb.0: # %entry1617; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, mu1618; CHECK-NEXT:    vmv1r.v v11, v01619; CHECK-NEXT:    vmv1r.v v0, v101620; CHECK-NEXT:    vmsgtu.vi v11, v8, -7, v0.t1621; CHECK-NEXT:    vmv1r.v v0, v111622; CHECK-NEXT:    ret1623entry:1624  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i8.i8(1625    <vscale x 16 x i1> %0,1626    <vscale x 16 x i8> %1,1627    i8 -6,1628    <vscale x 16 x i1> %2,1629    iXLen %3)1630 1631  ret <vscale x 16 x i1> %a1632}1633 1634define <vscale x 32 x i1> @intrinsic_vmsgeu_vi_nxv32i8_i8(<vscale x 32 x i8> %0, iXLen %1) nounwind {1635; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv32i8_i8:1636; CHECK:       # %bb.0: # %entry1637; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma1638; CHECK-NEXT:    vmsgtu.vi v0, v8, -61639; CHECK-NEXT:    ret1640entry:1641  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.nxv32i8.i8(1642    <vscale x 32 x i8> %0,1643    i8 -5,1644    iXLen %1)1645 1646  ret <vscale x 32 x i1> %a1647}1648 1649define <vscale x 32 x i1> @intrinsic_vmsgeu_mask_vi_nxv32i8_i8(<vscale x 32 x i1> %0, <vscale x 32 x i8> %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {1650; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv32i8_i8:1651; CHECK:       # %bb.0: # %entry1652; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, mu1653; CHECK-NEXT:    vmv1r.v v13, v01654; CHECK-NEXT:    vmv1r.v v0, v121655; CHECK-NEXT:    vmsgtu.vi v13, v8, -5, v0.t1656; CHECK-NEXT:    vmv1r.v v0, v131657; CHECK-NEXT:    ret1658entry:1659  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.mask.nxv32i8.i8(1660    <vscale x 32 x i1> %0,1661    <vscale x 32 x i8> %1,1662    i8 -4,1663    <vscale x 32 x i1> %2,1664    iXLen %3)1665 1666  ret <vscale x 32 x i1> %a1667}1668 1669define <vscale x 1 x i1> @intrinsic_vmsgeu_vi_nxv1i16_i16(<vscale x 1 x i16> %0, iXLen %1) nounwind {1670; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv1i16_i16:1671; CHECK:       # %bb.0: # %entry1672; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma1673; CHECK-NEXT:    vmsgtu.vi v0, v8, -41674; CHECK-NEXT:    ret1675entry:1676  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i16.i16(1677    <vscale x 1 x i16> %0,1678    i16 -3,1679    iXLen %1)1680 1681  ret <vscale x 1 x i1> %a1682}1683 1684define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vi_nxv1i16_i16(<vscale x 1 x i1> %0, <vscale x 1 x i16> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1685; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv1i16_i16:1686; CHECK:       # %bb.0: # %entry1687; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, mu1688; CHECK-NEXT:    vmv1r.v v10, v01689; CHECK-NEXT:    vmv1r.v v0, v91690; CHECK-NEXT:    vmsgtu.vi v10, v8, -3, v0.t1691; CHECK-NEXT:    vmv1r.v v0, v101692; CHECK-NEXT:    ret1693entry:1694  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i16.i16(1695    <vscale x 1 x i1> %0,1696    <vscale x 1 x i16> %1,1697    i16 -2,1698    <vscale x 1 x i1> %2,1699    iXLen %3)1700 1701  ret <vscale x 1 x i1> %a1702}1703 1704define <vscale x 2 x i1> @intrinsic_vmsgeu_vi_nxv2i16_i16(<vscale x 2 x i16> %0, iXLen %1) nounwind {1705; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv2i16_i16:1706; CHECK:       # %bb.0: # %entry1707; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma1708; CHECK-NEXT:    vmsgtu.vi v0, v8, -21709; CHECK-NEXT:    ret1710entry:1711  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i16.i16(1712    <vscale x 2 x i16> %0,1713    i16 -1,1714    iXLen %1)1715 1716  ret <vscale x 2 x i1> %a1717}1718 1719define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vi_nxv2i16_i16(<vscale x 2 x i1> %0, <vscale x 2 x i16> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {1720; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv2i16_i16:1721; CHECK:       # %bb.0: # %entry1722; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma1723; CHECK-NEXT:    vmor.mm v0, v9, v01724; CHECK-NEXT:    ret1725entry:1726  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i16.i16(1727    <vscale x 2 x i1> %0,1728    <vscale x 2 x i16> %1,1729    i16 0,1730    <vscale x 2 x i1> %2,1731    iXLen %3)1732 1733  ret <vscale x 2 x i1> %a1734}1735 1736define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vi_nxv2i16_i16_same_mask_maskedoff(<vscale x 2 x i1> %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1737; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv2i16_i16_same_mask_maskedoff:1738; CHECK:       # %bb.0: # %entry1739; CHECK-NEXT:    ret1740entry:1741  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i16.i16(1742    <vscale x 2 x i1> %0,1743    <vscale x 2 x i16> %1,1744    i16 0,1745    <vscale x 2 x i1> %0,1746    iXLen %2)1747 1748  ret <vscale x 2 x i1> %a1749}1750 1751define <vscale x 4 x i1> @intrinsic_vmsgeu_vi_nxv4i16_i16(<vscale x 4 x i16> %0, iXLen %1) nounwind {1752; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv4i16_i16:1753; CHECK:       # %bb.0: # %entry1754; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma1755; CHECK-NEXT:    vmset.m v01756; CHECK-NEXT:    ret1757entry:1758  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i16.i16(1759    <vscale x 4 x i16> %0,1760    i16 0,1761    iXLen %1)1762 1763  ret <vscale x 4 x i1> %a1764}1765 1766define <vscale x 4 x i1> @intrinsic_vmsgeu_vi_nxv4i16_i16_1(<vscale x 4 x i16> %0, iXLen %1) nounwind {1767; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv4i16_i16_1:1768; CHECK:       # %bb.0: # %entry1769; CHECK-NEXT:    li a1, 991770; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma1771; CHECK-NEXT:    vmsgtu.vx v0, v8, a11772; CHECK-NEXT:    ret1773entry:1774  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i16.i16(1775    <vscale x 4 x i16> %0,1776    i16 100,1777    iXLen %1)1778 1779  ret <vscale x 4 x i1> %a1780}1781 1782define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vi_nxv4i16_i16(<vscale x 4 x i1> %0, <vscale x 4 x i16> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {1783; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv4i16_i16:1784; CHECK:       # %bb.0: # %entry1785; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, mu1786; CHECK-NEXT:    vmv1r.v v10, v01787; CHECK-NEXT:    vmv1r.v v0, v91788; CHECK-NEXT:    vmsgtu.vi v10, v8, 0, v0.t1789; CHECK-NEXT:    vmv.v.v v0, v101790; CHECK-NEXT:    ret1791entry:1792  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i16.i16(1793    <vscale x 4 x i1> %0,1794    <vscale x 4 x i16> %1,1795    i16 1,1796    <vscale x 4 x i1> %2,1797    iXLen %3)1798 1799  ret <vscale x 4 x i1> %a1800}1801 1802define <vscale x 8 x i1> @intrinsic_vmsgeu_vi_nxv8i16_i16(<vscale x 8 x i16> %0, iXLen %1) nounwind {1803; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv8i16_i16:1804; CHECK:       # %bb.0: # %entry1805; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1806; CHECK-NEXT:    vmsgtu.vi v0, v8, 11807; CHECK-NEXT:    ret1808entry:1809  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i16.i16(1810    <vscale x 8 x i16> %0,1811    i16 2,1812    iXLen %1)1813 1814  ret <vscale x 8 x i1> %a1815}1816 1817define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vi_nxv8i16_i16(<vscale x 8 x i1> %0, <vscale x 8 x i16> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {1818; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv8i16_i16:1819; CHECK:       # %bb.0: # %entry1820; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, mu1821; CHECK-NEXT:    vmv1r.v v11, v01822; CHECK-NEXT:    vmv1r.v v0, v101823; CHECK-NEXT:    vmsgtu.vi v11, v8, 2, v0.t1824; CHECK-NEXT:    vmv1r.v v0, v111825; CHECK-NEXT:    ret1826entry:1827  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i16.i16(1828    <vscale x 8 x i1> %0,1829    <vscale x 8 x i16> %1,1830    i16 3,1831    <vscale x 8 x i1> %2,1832    iXLen %3)1833 1834  ret <vscale x 8 x i1> %a1835}1836 1837define <vscale x 16 x i1> @intrinsic_vmsgeu_vi_nxv16i16_i16(<vscale x 16 x i16> %0, iXLen %1) nounwind {1838; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv16i16_i16:1839; CHECK:       # %bb.0: # %entry1840; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1841; CHECK-NEXT:    vmsgtu.vi v0, v8, 31842; CHECK-NEXT:    ret1843entry:1844  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.nxv16i16.i16(1845    <vscale x 16 x i16> %0,1846    i16 4,1847    iXLen %1)1848 1849  ret <vscale x 16 x i1> %a1850}1851 1852define <vscale x 16 x i1> @intrinsic_vmsgeu_mask_vi_nxv16i16_i16(<vscale x 16 x i1> %0, <vscale x 16 x i16> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {1853; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv16i16_i16:1854; CHECK:       # %bb.0: # %entry1855; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, mu1856; CHECK-NEXT:    vmv1r.v v13, v01857; CHECK-NEXT:    vmv1r.v v0, v121858; CHECK-NEXT:    vmsgtu.vi v13, v8, 4, v0.t1859; CHECK-NEXT:    vmv1r.v v0, v131860; CHECK-NEXT:    ret1861entry:1862  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i16.i16(1863    <vscale x 16 x i1> %0,1864    <vscale x 16 x i16> %1,1865    i16 5,1866    <vscale x 16 x i1> %2,1867    iXLen %3)1868 1869  ret <vscale x 16 x i1> %a1870}1871 1872define <vscale x 1 x i1> @intrinsic_vmsgeu_vi_nxv1i32_i32(<vscale x 1 x i32> %0, iXLen %1) nounwind {1873; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv1i32_i32:1874; CHECK:       # %bb.0: # %entry1875; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1876; CHECK-NEXT:    vmsgtu.vi v0, v8, 51877; CHECK-NEXT:    ret1878entry:1879  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i32.i32(1880    <vscale x 1 x i32> %0,1881    i32 6,1882    iXLen %1)1883 1884  ret <vscale x 1 x i1> %a1885}1886 1887define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vi_nxv1i32_i32(<vscale x 1 x i1> %0, <vscale x 1 x i32> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1888; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv1i32_i32:1889; CHECK:       # %bb.0: # %entry1890; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, mu1891; CHECK-NEXT:    vmv1r.v v10, v01892; CHECK-NEXT:    vmv1r.v v0, v91893; CHECK-NEXT:    vmsgtu.vi v10, v8, 6, v0.t1894; CHECK-NEXT:    vmv1r.v v0, v101895; CHECK-NEXT:    ret1896entry:1897  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i32.i32(1898    <vscale x 1 x i1> %0,1899    <vscale x 1 x i32> %1,1900    i32 7,1901    <vscale x 1 x i1> %2,1902    iXLen %3)1903 1904  ret <vscale x 1 x i1> %a1905}1906 1907define <vscale x 2 x i1> @intrinsic_vmsgeu_vi_nxv2i32_i32(<vscale x 2 x i32> %0, iXLen %1) nounwind {1908; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv2i32_i32:1909; CHECK:       # %bb.0: # %entry1910; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1911; CHECK-NEXT:    vmsgtu.vi v0, v8, 71912; CHECK-NEXT:    ret1913entry:1914  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i32.i32(1915    <vscale x 2 x i32> %0,1916    i32 8,1917    iXLen %1)1918 1919  ret <vscale x 2 x i1> %a1920}1921 1922define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vi_nxv2i32_i32(<vscale x 2 x i1> %0, <vscale x 2 x i32> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {1923; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv2i32_i32:1924; CHECK:       # %bb.0: # %entry1925; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, mu1926; CHECK-NEXT:    vmv1r.v v10, v01927; CHECK-NEXT:    vmv1r.v v0, v91928; CHECK-NEXT:    vmsgtu.vi v10, v8, 8, v0.t1929; CHECK-NEXT:    vmv.v.v v0, v101930; CHECK-NEXT:    ret1931entry:1932  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i32.i32(1933    <vscale x 2 x i1> %0,1934    <vscale x 2 x i32> %1,1935    i32 9,1936    <vscale x 2 x i1> %2,1937    iXLen %3)1938 1939  ret <vscale x 2 x i1> %a1940}1941 1942define <vscale x 4 x i1> @intrinsic_vmsgeu_vi_nxv4i32_i32(<vscale x 4 x i32> %0, iXLen %1) nounwind {1943; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv4i32_i32:1944; CHECK:       # %bb.0: # %entry1945; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1946; CHECK-NEXT:    vmsgtu.vi v0, v8, 91947; CHECK-NEXT:    ret1948entry:1949  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i32.i32(1950    <vscale x 4 x i32> %0,1951    i32 10,1952    iXLen %1)1953 1954  ret <vscale x 4 x i1> %a1955}1956 1957define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vi_nxv4i32_i32(<vscale x 4 x i1> %0, <vscale x 4 x i32> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {1958; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv4i32_i32:1959; CHECK:       # %bb.0: # %entry1960; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, mu1961; CHECK-NEXT:    vmv1r.v v11, v01962; CHECK-NEXT:    vmv1r.v v0, v101963; CHECK-NEXT:    vmsgtu.vi v11, v8, 10, v0.t1964; CHECK-NEXT:    vmv1r.v v0, v111965; CHECK-NEXT:    ret1966entry:1967  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i32.i32(1968    <vscale x 4 x i1> %0,1969    <vscale x 4 x i32> %1,1970    i32 11,1971    <vscale x 4 x i1> %2,1972    iXLen %3)1973 1974  ret <vscale x 4 x i1> %a1975}1976 1977define <vscale x 8 x i1> @intrinsic_vmsgeu_vi_nxv8i32_i32(<vscale x 8 x i32> %0, iXLen %1) nounwind {1978; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv8i32_i32:1979; CHECK:       # %bb.0: # %entry1980; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1981; CHECK-NEXT:    vmsgtu.vi v0, v8, 111982; CHECK-NEXT:    ret1983entry:1984  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.nxv8i32.i32(1985    <vscale x 8 x i32> %0,1986    i32 12,1987    iXLen %1)1988 1989  ret <vscale x 8 x i1> %a1990}1991 1992define <vscale x 8 x i1> @intrinsic_vmsgeu_mask_vi_nxv8i32_i32(<vscale x 8 x i1> %0, <vscale x 8 x i32> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {1993; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv8i32_i32:1994; CHECK:       # %bb.0: # %entry1995; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, mu1996; CHECK-NEXT:    vmv1r.v v13, v01997; CHECK-NEXT:    vmv1r.v v0, v121998; CHECK-NEXT:    vmsgtu.vi v13, v8, 12, v0.t1999; CHECK-NEXT:    vmv1r.v v0, v132000; CHECK-NEXT:    ret2001entry:2002  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i32.i32(2003    <vscale x 8 x i1> %0,2004    <vscale x 8 x i32> %1,2005    i32 13,2006    <vscale x 8 x i1> %2,2007    iXLen %3)2008 2009  ret <vscale x 8 x i1> %a2010}2011 2012define <vscale x 1 x i1> @intrinsic_vmsgeu_vi_nxv1i64_i64(<vscale x 1 x i64> %0, iXLen %1) nounwind {2013; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv1i64_i64:2014; CHECK:       # %bb.0: # %entry2015; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma2016; CHECK-NEXT:    vmsgtu.vi v0, v8, 132017; CHECK-NEXT:    ret2018entry:2019  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.nxv1i64.i64(2020    <vscale x 1 x i64> %0,2021    i64 14,2022    iXLen %1)2023 2024  ret <vscale x 1 x i1> %a2025}2026 2027define <vscale x 1 x i1> @intrinsic_vmsgeu_mask_vi_nxv1i64_i64(<vscale x 1 x i1> %0, <vscale x 1 x i64> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {2028; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv1i64_i64:2029; CHECK:       # %bb.0: # %entry2030; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, mu2031; CHECK-NEXT:    vmv1r.v v10, v02032; CHECK-NEXT:    vmv1r.v v0, v92033; CHECK-NEXT:    vmsgtu.vi v10, v8, 14, v0.t2034; CHECK-NEXT:    vmv.v.v v0, v102035; CHECK-NEXT:    ret2036entry:2037  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i64.i64(2038    <vscale x 1 x i1> %0,2039    <vscale x 1 x i64> %1,2040    i64 15,2041    <vscale x 1 x i1> %2,2042    iXLen %3)2043 2044  ret <vscale x 1 x i1> %a2045}2046 2047define <vscale x 2 x i1> @intrinsic_vmsgeu_vi_nxv2i64_i64(<vscale x 2 x i64> %0, iXLen %1) nounwind {2048; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv2i64_i64:2049; CHECK:       # %bb.0: # %entry2050; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma2051; CHECK-NEXT:    vmsgtu.vi v0, v8, 152052; CHECK-NEXT:    ret2053entry:2054  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.nxv2i64.i64(2055    <vscale x 2 x i64> %0,2056    i64 16,2057    iXLen %1)2058 2059  ret <vscale x 2 x i1> %a2060}2061 2062define <vscale x 2 x i1> @intrinsic_vmsgeu_mask_vi_nxv2i64_i64(<vscale x 2 x i1> %0, <vscale x 2 x i64> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {2063; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv2i64_i64:2064; CHECK:       # %bb.0: # %entry2065; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, mu2066; CHECK-NEXT:    vmv1r.v v11, v02067; CHECK-NEXT:    vmv1r.v v0, v102068; CHECK-NEXT:    vmsgtu.vi v11, v8, -16, v0.t2069; CHECK-NEXT:    vmv1r.v v0, v112070; CHECK-NEXT:    ret2071entry:2072  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i64.i64(2073    <vscale x 2 x i1> %0,2074    <vscale x 2 x i64> %1,2075    i64 -15,2076    <vscale x 2 x i1> %2,2077    iXLen %3)2078 2079  ret <vscale x 2 x i1> %a2080}2081 2082define <vscale x 4 x i1> @intrinsic_vmsgeu_vi_nxv4i64_i64(<vscale x 4 x i64> %0, iXLen %1) nounwind {2083; CHECK-LABEL: intrinsic_vmsgeu_vi_nxv4i64_i64:2084; CHECK:       # %bb.0: # %entry2085; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma2086; CHECK-NEXT:    vmsgtu.vi v0, v8, -152087; CHECK-NEXT:    ret2088entry:2089  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.nxv4i64.i64(2090    <vscale x 4 x i64> %0,2091    i64 -14,2092    iXLen %1)2093 2094  ret <vscale x 4 x i1> %a2095}2096 2097define <vscale x 4 x i1> @intrinsic_vmsgeu_mask_vi_nxv4i64_i64(<vscale x 4 x i1> %0, <vscale x 4 x i64> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {2098; CHECK-LABEL: intrinsic_vmsgeu_mask_vi_nxv4i64_i64:2099; CHECK:       # %bb.0: # %entry2100; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, mu2101; CHECK-NEXT:    vmv1r.v v13, v02102; CHECK-NEXT:    vmv1r.v v0, v122103; CHECK-NEXT:    vmsgtu.vi v13, v8, -14, v0.t2104; CHECK-NEXT:    vmv1r.v v0, v132105; CHECK-NEXT:    ret2106entry:2107  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i64.i64(2108    <vscale x 4 x i1> %0,2109    <vscale x 4 x i64> %1,2110    i64 -13,2111    <vscale x 4 x i1> %2,2112    iXLen %3)2113 2114  ret <vscale x 4 x i1> %a2115}2116 2117; Test cases where the mask and maskedoff are the same value.2118define <vscale x 1 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i8_i8(<vscale x 1 x i1> %0, <vscale x 1 x i8> %1, i8 %2, iXLen %3) nounwind {2119; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i8_i8:2120; CHECK:       # %bb.0: # %entry2121; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma2122; CHECK-NEXT:    vmsltu.vx v8, v8, a02123; CHECK-NEXT:    vmandn.mm v0, v0, v82124; CHECK-NEXT:    ret2125entry:2126  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i8.i8(2127    <vscale x 1 x i1> %0,2128    <vscale x 1 x i8> %1,2129    i8 %2,2130    <vscale x 1 x i1> %0,2131    iXLen %3)2132 2133  ret <vscale x 1 x i1> %a2134}2135 2136define <vscale x 2 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i8_i8(<vscale x 2 x i1> %0, <vscale x 2 x i8> %1, i8 %2, iXLen %3) nounwind {2137; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i8_i8:2138; CHECK:       # %bb.0: # %entry2139; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma2140; CHECK-NEXT:    vmsltu.vx v8, v8, a02141; CHECK-NEXT:    vmandn.mm v0, v0, v82142; CHECK-NEXT:    ret2143entry:2144  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i8.i8(2145    <vscale x 2 x i1> %0,2146    <vscale x 2 x i8> %1,2147    i8 %2,2148    <vscale x 2 x i1> %0,2149    iXLen %3)2150 2151  ret <vscale x 2 x i1> %a2152}2153 2154define <vscale x 4 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i8_i8(<vscale x 4 x i1> %0, <vscale x 4 x i8> %1, i8 %2, iXLen %3) nounwind {2155; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i8_i8:2156; CHECK:       # %bb.0: # %entry2157; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma2158; CHECK-NEXT:    vmsltu.vx v8, v8, a02159; CHECK-NEXT:    vmandn.mm v0, v0, v82160; CHECK-NEXT:    ret2161entry:2162  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i8.i8(2163    <vscale x 4 x i1> %0,2164    <vscale x 4 x i8> %1,2165    i8 %2,2166    <vscale x 4 x i1> %0,2167    iXLen %3)2168 2169  ret <vscale x 4 x i1> %a2170}2171 2172define <vscale x 8 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv8i8_i8(<vscale x 8 x i1> %0, <vscale x 8 x i8> %1, i8 %2, iXLen %3) nounwind {2173; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv8i8_i8:2174; CHECK:       # %bb.0: # %entry2175; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma2176; CHECK-NEXT:    vmsltu.vx v8, v8, a02177; CHECK-NEXT:    vmandn.mm v0, v0, v82178; CHECK-NEXT:    ret2179entry:2180  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i8.i8(2181    <vscale x 8 x i1> %0,2182    <vscale x 8 x i8> %1,2183    i8 %2,2184    <vscale x 8 x i1> %0,2185    iXLen %3)2186 2187  ret <vscale x 8 x i1> %a2188}2189 2190define <vscale x 16 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv16i8_i8(<vscale x 16 x i1> %0, <vscale x 16 x i8> %1, i8 %2, iXLen %3) nounwind {2191; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv16i8_i8:2192; CHECK:       # %bb.0: # %entry2193; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma2194; CHECK-NEXT:    vmsltu.vx v10, v8, a02195; CHECK-NEXT:    vmandn.mm v0, v0, v102196; CHECK-NEXT:    ret2197entry:2198  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i8.i8(2199    <vscale x 16 x i1> %0,2200    <vscale x 16 x i8> %1,2201    i8 %2,2202    <vscale x 16 x i1> %0,2203    iXLen %3)2204 2205  ret <vscale x 16 x i1> %a2206}2207 2208define <vscale x 32 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv32i8_i8(<vscale x 32 x i1> %0, <vscale x 32 x i8> %1, i8 %2, iXLen %3) nounwind {2209; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv32i8_i8:2210; CHECK:       # %bb.0: # %entry2211; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma2212; CHECK-NEXT:    vmsltu.vx v12, v8, a02213; CHECK-NEXT:    vmandn.mm v0, v0, v122214; CHECK-NEXT:    ret2215entry:2216  %a = call <vscale x 32 x i1> @llvm.riscv.vmsgeu.mask.nxv32i8.i8(2217    <vscale x 32 x i1> %0,2218    <vscale x 32 x i8> %1,2219    i8 %2,2220    <vscale x 32 x i1> %0,2221    iXLen %3)2222 2223  ret <vscale x 32 x i1> %a2224}2225 2226define <vscale x 1 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i16_i16(<vscale x 1 x i1> %0, <vscale x 1 x i16> %1, i16 %2, iXLen %3) nounwind {2227; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i16_i16:2228; CHECK:       # %bb.0: # %entry2229; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2230; CHECK-NEXT:    vmsltu.vx v8, v8, a02231; CHECK-NEXT:    vmandn.mm v0, v0, v82232; CHECK-NEXT:    ret2233entry:2234  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i16.i16(2235    <vscale x 1 x i1> %0,2236    <vscale x 1 x i16> %1,2237    i16 %2,2238    <vscale x 1 x i1> %0,2239    iXLen %3)2240 2241  ret <vscale x 1 x i1> %a2242}2243 2244define <vscale x 2 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i16_i16(<vscale x 2 x i1> %0, <vscale x 2 x i16> %1, i16 %2, iXLen %3) nounwind {2245; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i16_i16:2246; CHECK:       # %bb.0: # %entry2247; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2248; CHECK-NEXT:    vmsltu.vx v8, v8, a02249; CHECK-NEXT:    vmandn.mm v0, v0, v82250; CHECK-NEXT:    ret2251entry:2252  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i16.i16(2253    <vscale x 2 x i1> %0,2254    <vscale x 2 x i16> %1,2255    i16 %2,2256    <vscale x 2 x i1> %0,2257    iXLen %3)2258 2259  ret <vscale x 2 x i1> %a2260}2261 2262define <vscale x 4 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i16_i16(<vscale x 4 x i1> %0, <vscale x 4 x i16> %1, i16 %2, iXLen %3) nounwind {2263; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i16_i16:2264; CHECK:       # %bb.0: # %entry2265; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2266; CHECK-NEXT:    vmsltu.vx v8, v8, a02267; CHECK-NEXT:    vmandn.mm v0, v0, v82268; CHECK-NEXT:    ret2269entry:2270  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i16.i16(2271    <vscale x 4 x i1> %0,2272    <vscale x 4 x i16> %1,2273    i16 %2,2274    <vscale x 4 x i1> %0,2275    iXLen %3)2276 2277  ret <vscale x 4 x i1> %a2278}2279 2280define <vscale x 8 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv8i16_i16(<vscale x 8 x i1> %0, <vscale x 8 x i16> %1, i16 %2, iXLen %3) nounwind {2281; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv8i16_i16:2282; CHECK:       # %bb.0: # %entry2283; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2284; CHECK-NEXT:    vmsltu.vx v10, v8, a02285; CHECK-NEXT:    vmandn.mm v0, v0, v102286; CHECK-NEXT:    ret2287entry:2288  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i16.i16(2289    <vscale x 8 x i1> %0,2290    <vscale x 8 x i16> %1,2291    i16 %2,2292    <vscale x 8 x i1> %0,2293    iXLen %3)2294 2295  ret <vscale x 8 x i1> %a2296}2297 2298define <vscale x 16 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv16i16_i16(<vscale x 16 x i1> %0, <vscale x 16 x i16> %1, i16 %2, iXLen %3) nounwind {2299; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv16i16_i16:2300; CHECK:       # %bb.0: # %entry2301; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma2302; CHECK-NEXT:    vmsltu.vx v12, v8, a02303; CHECK-NEXT:    vmandn.mm v0, v0, v122304; CHECK-NEXT:    ret2305entry:2306  %a = call <vscale x 16 x i1> @llvm.riscv.vmsgeu.mask.nxv16i16.i16(2307    <vscale x 16 x i1> %0,2308    <vscale x 16 x i16> %1,2309    i16 %2,2310    <vscale x 16 x i1> %0,2311    iXLen %3)2312 2313  ret <vscale x 16 x i1> %a2314}2315 2316define <vscale x 1 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i32_i32(<vscale x 1 x i1> %0, <vscale x 1 x i32> %1, i32 %2, iXLen %3) nounwind {2317; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i32_i32:2318; CHECK:       # %bb.0: # %entry2319; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2320; CHECK-NEXT:    vmsltu.vx v8, v8, a02321; CHECK-NEXT:    vmandn.mm v0, v0, v82322; CHECK-NEXT:    ret2323entry:2324  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i32.i32(2325    <vscale x 1 x i1> %0,2326    <vscale x 1 x i32> %1,2327    i32 %2,2328    <vscale x 1 x i1> %0,2329    iXLen %3)2330 2331  ret <vscale x 1 x i1> %a2332}2333 2334define <vscale x 2 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i32_i32(<vscale x 2 x i1> %0, <vscale x 2 x i32> %1, i32 %2, iXLen %3) nounwind {2335; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i32_i32:2336; CHECK:       # %bb.0: # %entry2337; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2338; CHECK-NEXT:    vmsltu.vx v8, v8, a02339; CHECK-NEXT:    vmandn.mm v0, v0, v82340; CHECK-NEXT:    ret2341entry:2342  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i32.i32(2343    <vscale x 2 x i1> %0,2344    <vscale x 2 x i32> %1,2345    i32 %2,2346    <vscale x 2 x i1> %0,2347    iXLen %3)2348 2349  ret <vscale x 2 x i1> %a2350}2351 2352define <vscale x 4 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i32_i32(<vscale x 4 x i1> %0, <vscale x 4 x i32> %1, i32 %2, iXLen %3) nounwind {2353; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i32_i32:2354; CHECK:       # %bb.0: # %entry2355; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2356; CHECK-NEXT:    vmsltu.vx v10, v8, a02357; CHECK-NEXT:    vmandn.mm v0, v0, v102358; CHECK-NEXT:    ret2359entry:2360  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i32.i32(2361    <vscale x 4 x i1> %0,2362    <vscale x 4 x i32> %1,2363    i32 %2,2364    <vscale x 4 x i1> %0,2365    iXLen %3)2366 2367  ret <vscale x 4 x i1> %a2368}2369 2370define <vscale x 8 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv8i32_i32(<vscale x 8 x i1> %0, <vscale x 8 x i32> %1, i32 %2, iXLen %3) nounwind {2371; CHECK-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv8i32_i32:2372; CHECK:       # %bb.0: # %entry2373; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma2374; CHECK-NEXT:    vmsltu.vx v12, v8, a02375; CHECK-NEXT:    vmandn.mm v0, v0, v122376; CHECK-NEXT:    ret2377entry:2378  %a = call <vscale x 8 x i1> @llvm.riscv.vmsgeu.mask.nxv8i32.i32(2379    <vscale x 8 x i1> %0,2380    <vscale x 8 x i32> %1,2381    i32 %2,2382    <vscale x 8 x i1> %0,2383    iXLen %3)2384 2385  ret <vscale x 8 x i1> %a2386}2387 2388define <vscale x 1 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i64_i64(<vscale x 1 x i1> %0, <vscale x 1 x i64> %1, i64 %2, iXLen %3) nounwind {2389; RV32-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i64_i64:2390; RV32:       # %bb.0: # %entry2391; RV32-NEXT:    addi sp, sp, -162392; RV32-NEXT:    sw a0, 8(sp)2393; RV32-NEXT:    sw a1, 12(sp)2394; RV32-NEXT:    addi a0, sp, 82395; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, mu2396; RV32-NEXT:    vlse64.v v9, (a0), zero2397; RV32-NEXT:    vmsleu.vv v0, v9, v8, v0.t2398; RV32-NEXT:    addi sp, sp, 162399; RV32-NEXT:    ret2400;2401; RV64-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv1i64_i64:2402; RV64:       # %bb.0: # %entry2403; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma2404; RV64-NEXT:    vmsltu.vx v8, v8, a02405; RV64-NEXT:    vmandn.mm v0, v0, v82406; RV64-NEXT:    ret2407entry:2408  %a = call <vscale x 1 x i1> @llvm.riscv.vmsgeu.mask.nxv1i64.i64(2409    <vscale x 1 x i1> %0,2410    <vscale x 1 x i64> %1,2411    i64 %2,2412    <vscale x 1 x i1> %0,2413    iXLen %3)2414 2415  ret <vscale x 1 x i1> %a2416}2417 2418define <vscale x 2 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i64_i64(<vscale x 2 x i1> %0, <vscale x 2 x i64> %1, i64 %2, iXLen %3) nounwind {2419; RV32-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i64_i64:2420; RV32:       # %bb.0: # %entry2421; RV32-NEXT:    addi sp, sp, -162422; RV32-NEXT:    sw a0, 8(sp)2423; RV32-NEXT:    sw a1, 12(sp)2424; RV32-NEXT:    addi a0, sp, 82425; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, mu2426; RV32-NEXT:    vlse64.v v12, (a0), zero2427; RV32-NEXT:    vmv1r.v v10, v02428; RV32-NEXT:    vmsleu.vv v10, v12, v8, v0.t2429; RV32-NEXT:    vmv1r.v v0, v102430; RV32-NEXT:    addi sp, sp, 162431; RV32-NEXT:    ret2432;2433; RV64-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv2i64_i64:2434; RV64:       # %bb.0: # %entry2435; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma2436; RV64-NEXT:    vmsltu.vx v10, v8, a02437; RV64-NEXT:    vmandn.mm v0, v0, v102438; RV64-NEXT:    ret2439entry:2440  %a = call <vscale x 2 x i1> @llvm.riscv.vmsgeu.mask.nxv2i64.i64(2441    <vscale x 2 x i1> %0,2442    <vscale x 2 x i64> %1,2443    i64 %2,2444    <vscale x 2 x i1> %0,2445    iXLen %3)2446 2447  ret <vscale x 2 x i1> %a2448}2449 2450define <vscale x 4 x i1> @intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i64_i64(<vscale x 4 x i1> %0, <vscale x 4 x i64> %1, i64 %2, iXLen %3) nounwind {2451; RV32-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i64_i64:2452; RV32:       # %bb.0: # %entry2453; RV32-NEXT:    addi sp, sp, -162454; RV32-NEXT:    sw a0, 8(sp)2455; RV32-NEXT:    sw a1, 12(sp)2456; RV32-NEXT:    addi a0, sp, 82457; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, mu2458; RV32-NEXT:    vlse64.v v16, (a0), zero2459; RV32-NEXT:    vmv1r.v v12, v02460; RV32-NEXT:    vmsleu.vv v12, v16, v8, v0.t2461; RV32-NEXT:    vmv1r.v v0, v122462; RV32-NEXT:    addi sp, sp, 162463; RV32-NEXT:    ret2464;2465; RV64-LABEL: intrinsic_vmsgeu_maskedoff_mask_vx_nxv4i64_i64:2466; RV64:       # %bb.0: # %entry2467; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2468; RV64-NEXT:    vmsltu.vx v12, v8, a02469; RV64-NEXT:    vmandn.mm v0, v0, v122470; RV64-NEXT:    ret2471entry:2472  %a = call <vscale x 4 x i1> @llvm.riscv.vmsgeu.mask.nxv4i64.i64(2473    <vscale x 4 x i1> %0,2474    <vscale x 4 x i64> %1,2475    i64 %2,2476    <vscale x 4 x i1> %0,2477    iXLen %3)2478 2479  ret <vscale x 4 x i1> %a2480}2481