brintos

brintos / llvm-project-archived public Read only

0
0
Text · 85.5 KiB · efc0f7e Raw
2160 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+v,+m -verify-machineinstrs < %s \3; RUN:   | FileCheck %s --check-prefixes=CHECK,RV324; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs < %s \5; RUN:   | FileCheck %s --check-prefixes=CHECK,RV646 7; FIXME: We're missing canonicalizations of ISD::VP_SETCC equivalent to those8; for ISD::SETCC, e.g., splats aren't moved to the RHS.9 10define <8 x i1> @icmp_eq_vv_v8i7(<8 x i7> %va, <8 x i7> %vb, <8 x i1> %m, i32 zeroext %evl) {11; CHECK-LABEL: icmp_eq_vv_v8i7:12; CHECK:       # %bb.0:13; CHECK-NEXT:    li a1, 12714; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma15; CHECK-NEXT:    vand.vx v9, v9, a116; CHECK-NEXT:    vand.vx v8, v8, a117; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma18; CHECK-NEXT:    vmseq.vv v0, v8, v9, v0.t19; CHECK-NEXT:    ret20  %v = call <8 x i1> @llvm.vp.icmp.v8i7(<8 x i7> %va, <8 x i7> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)21  ret <8 x i1> %v22}23 24define <8 x i1> @icmp_eq_vx_v8i7(<8 x i7> %va, i7 %b, <8 x i1> %m, i32 zeroext %evl) {25; CHECK-LABEL: icmp_eq_vx_v8i7:26; CHECK:       # %bb.0:27; CHECK-NEXT:    li a2, 12728; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma29; CHECK-NEXT:    vmv.v.x v9, a030; CHECK-NEXT:    vand.vx v8, v8, a231; CHECK-NEXT:    vand.vx v9, v9, a232; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma33; CHECK-NEXT:    vmseq.vv v0, v8, v9, v0.t34; CHECK-NEXT:    ret35  %elt.head = insertelement <8 x i7> poison, i7 %b, i32 036  %vb = shufflevector <8 x i7> %elt.head, <8 x i7> poison, <8 x i32> zeroinitializer37  %v = call <8 x i1> @llvm.vp.icmp.v8i7(<8 x i7> %va, <8 x i7> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)38  ret <8 x i1> %v39}40 41define <8 x i1> @icmp_eq_vx_swap_v8i7(<8 x i7> %va, i7 %b, <8 x i1> %m, i32 zeroext %evl) {42; CHECK-LABEL: icmp_eq_vx_swap_v8i7:43; CHECK:       # %bb.0:44; CHECK-NEXT:    li a2, 12745; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma46; CHECK-NEXT:    vmv.v.x v9, a047; CHECK-NEXT:    vand.vx v8, v8, a248; CHECK-NEXT:    vand.vx v9, v9, a249; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma50; CHECK-NEXT:    vmseq.vv v0, v9, v8, v0.t51; CHECK-NEXT:    ret52  %elt.head = insertelement <8 x i7> poison, i7 %b, i32 053  %vb = shufflevector <8 x i7> %elt.head, <8 x i7> poison, <8 x i32> zeroinitializer54  %v = call <8 x i1> @llvm.vp.icmp.v8i7(<8 x i7> %vb, <8 x i7> %va, metadata !"eq", <8 x i1> %m, i32 %evl)55  ret <8 x i1> %v56}57 58define <5 x i1> @icmp_eq_vv_v5i8(<5 x i8> %va, <5 x i8> %vb, <5 x i1> %m, i32 zeroext %evl) {59; CHECK-LABEL: icmp_eq_vv_v5i8:60; CHECK:       # %bb.0:61; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma62; CHECK-NEXT:    vmseq.vv v0, v8, v9, v0.t63; CHECK-NEXT:    ret64  %v = call <5 x i1> @llvm.vp.icmp.v5i8(<5 x i8> %va, <5 x i8> %vb, metadata !"eq", <5 x i1> %m, i32 %evl)65  ret <5 x i1> %v66}67 68define <5 x i1> @icmp_eq_vx_v5i8(<5 x i8> %va, i8 %b, <5 x i1> %m, i32 zeroext %evl) {69; CHECK-LABEL: icmp_eq_vx_v5i8:70; CHECK:       # %bb.0:71; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma72; CHECK-NEXT:    vmseq.vx v0, v8, a0, v0.t73; CHECK-NEXT:    ret74  %elt.head = insertelement <5 x i8> poison, i8 %b, i32 075  %vb = shufflevector <5 x i8> %elt.head, <5 x i8> poison, <5 x i32> zeroinitializer76  %v = call <5 x i1> @llvm.vp.icmp.v5i8(<5 x i8> %va, <5 x i8> %vb, metadata !"eq", <5 x i1> %m, i32 %evl)77  ret <5 x i1> %v78}79 80define <5 x i1> @icmp_eq_vx_swap_v5i8(<5 x i8> %va, i8 %b, <5 x i1> %m, i32 zeroext %evl) {81; CHECK-LABEL: icmp_eq_vx_swap_v5i8:82; CHECK:       # %bb.0:83; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma84; CHECK-NEXT:    vmseq.vx v0, v8, a0, v0.t85; CHECK-NEXT:    ret86  %elt.head = insertelement <5 x i8> poison, i8 %b, i32 087  %vb = shufflevector <5 x i8> %elt.head, <5 x i8> poison, <5 x i32> zeroinitializer88  %v = call <5 x i1> @llvm.vp.icmp.v5i8(<5 x i8> %vb, <5 x i8> %va, metadata !"eq", <5 x i1> %m, i32 %evl)89  ret <5 x i1> %v90}91 92define <8 x i1> @icmp_eq_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {93; CHECK-LABEL: icmp_eq_vv_v8i8:94; CHECK:       # %bb.0:95; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma96; CHECK-NEXT:    vmseq.vv v0, v8, v9, v0.t97; CHECK-NEXT:    ret98  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)99  ret <8 x i1> %v100}101 102define <8 x i1> @icmp_eq_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {103; CHECK-LABEL: icmp_eq_vx_v8i8:104; CHECK:       # %bb.0:105; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma106; CHECK-NEXT:    vmseq.vx v0, v8, a0, v0.t107; CHECK-NEXT:    ret108  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0109  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer110  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)111  ret <8 x i1> %v112}113 114define <8 x i1> @icmp_eq_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {115; CHECK-LABEL: icmp_eq_vx_swap_v8i8:116; CHECK:       # %bb.0:117; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma118; CHECK-NEXT:    vmseq.vx v0, v8, a0, v0.t119; CHECK-NEXT:    ret120  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0121  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer122  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"eq", <8 x i1> %m, i32 %evl)123  ret <8 x i1> %v124}125 126define <8 x i1> @icmp_eq_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {127; CHECK-LABEL: icmp_eq_vi_v8i8:128; CHECK:       # %bb.0:129; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma130; CHECK-NEXT:    vmseq.vi v0, v8, 4, v0.t131; CHECK-NEXT:    ret132  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"eq", <8 x i1> %m, i32 %evl)133  ret <8 x i1> %v134}135 136define <8 x i1> @icmp_eq_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {137; CHECK-LABEL: icmp_eq_vi_swap_v8i8:138; CHECK:       # %bb.0:139; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma140; CHECK-NEXT:    vmseq.vi v0, v8, 4, v0.t141; CHECK-NEXT:    ret142  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"eq", <8 x i1> %m, i32 %evl)143  ret <8 x i1> %v144}145 146define <8 x i1> @icmp_ne_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {147; CHECK-LABEL: icmp_ne_vv_v8i8:148; CHECK:       # %bb.0:149; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma150; CHECK-NEXT:    vmsne.vv v0, v8, v9, v0.t151; CHECK-NEXT:    ret152  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)153  ret <8 x i1> %v154}155 156define <8 x i1> @icmp_ne_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {157; CHECK-LABEL: icmp_ne_vx_v8i8:158; CHECK:       # %bb.0:159; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma160; CHECK-NEXT:    vmsne.vx v0, v8, a0, v0.t161; CHECK-NEXT:    ret162  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0163  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer164  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)165  ret <8 x i1> %v166}167 168define <8 x i1> @icmp_ne_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {169; CHECK-LABEL: icmp_ne_vx_swap_v8i8:170; CHECK:       # %bb.0:171; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma172; CHECK-NEXT:    vmsne.vx v0, v8, a0, v0.t173; CHECK-NEXT:    ret174  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0175  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer176  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"ne", <8 x i1> %m, i32 %evl)177  ret <8 x i1> %v178}179 180define <8 x i1> @icmp_ne_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {181; CHECK-LABEL: icmp_ne_vi_v8i8:182; CHECK:       # %bb.0:183; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma184; CHECK-NEXT:    vmsne.vi v0, v8, 4, v0.t185; CHECK-NEXT:    ret186  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"ne", <8 x i1> %m, i32 %evl)187  ret <8 x i1> %v188}189 190define <8 x i1> @icmp_ne_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {191; CHECK-LABEL: icmp_ne_vi_swap_v8i8:192; CHECK:       # %bb.0:193; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma194; CHECK-NEXT:    vmsne.vi v0, v8, 4, v0.t195; CHECK-NEXT:    ret196  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"ne", <8 x i1> %m, i32 %evl)197  ret <8 x i1> %v198}199 200define <8 x i1> @icmp_ugt_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {201; CHECK-LABEL: icmp_ugt_vv_v8i8:202; CHECK:       # %bb.0:203; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma204; CHECK-NEXT:    vmsltu.vv v0, v9, v8, v0.t205; CHECK-NEXT:    ret206  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)207  ret <8 x i1> %v208}209 210define <8 x i1> @icmp_ugt_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {211; CHECK-LABEL: icmp_ugt_vx_v8i8:212; CHECK:       # %bb.0:213; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma214; CHECK-NEXT:    vmsgtu.vx v0, v8, a0, v0.t215; CHECK-NEXT:    ret216  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0217  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer218  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)219  ret <8 x i1> %v220}221 222define <8 x i1> @icmp_ugt_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {223; CHECK-LABEL: icmp_ugt_vx_swap_v8i8:224; CHECK:       # %bb.0:225; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma226; CHECK-NEXT:    vmsltu.vx v0, v8, a0, v0.t227; CHECK-NEXT:    ret228  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0229  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer230  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)231  ret <8 x i1> %v232}233 234define <8 x i1> @icmp_ugt_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {235; CHECK-LABEL: icmp_ugt_vi_v8i8:236; CHECK:       # %bb.0:237; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma238; CHECK-NEXT:    vmsgtu.vi v0, v8, 4, v0.t239; CHECK-NEXT:    ret240  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"ugt", <8 x i1> %m, i32 %evl)241  ret <8 x i1> %v242}243 244define <8 x i1> @icmp_ugt_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {245; CHECK-LABEL: icmp_ugt_vi_swap_v8i8:246; CHECK:       # %bb.0:247; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma248; CHECK-NEXT:    vmsleu.vi v0, v8, 3, v0.t249; CHECK-NEXT:    ret250  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)251  ret <8 x i1> %v252}253 254define <8 x i1> @icmp_uge_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {255; CHECK-LABEL: icmp_uge_vv_v8i8:256; CHECK:       # %bb.0:257; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma258; CHECK-NEXT:    vmsleu.vv v0, v9, v8, v0.t259; CHECK-NEXT:    ret260  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)261  ret <8 x i1> %v262}263 264define <8 x i1> @icmp_uge_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {265; CHECK-LABEL: icmp_uge_vx_v8i8:266; CHECK:       # %bb.0:267; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma268; CHECK-NEXT:    vmv.v.x v9, a0269; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma270; CHECK-NEXT:    vmsleu.vv v0, v9, v8, v0.t271; CHECK-NEXT:    ret272  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0273  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer274  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)275  ret <8 x i1> %v276}277 278define <8 x i1> @icmp_uge_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {279; CHECK-LABEL: icmp_uge_vx_swap_v8i8:280; CHECK:       # %bb.0:281; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma282; CHECK-NEXT:    vmsleu.vx v0, v8, a0, v0.t283; CHECK-NEXT:    ret284  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0285  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer286  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"uge", <8 x i1> %m, i32 %evl)287  ret <8 x i1> %v288}289 290define <8 x i1> @icmp_uge_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {291; CHECK-LABEL: icmp_uge_vi_v8i8:292; CHECK:       # %bb.0:293; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma294; CHECK-NEXT:    vmsgtu.vi v0, v8, 3, v0.t295; CHECK-NEXT:    ret296  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"uge", <8 x i1> %m, i32 %evl)297  ret <8 x i1> %v298}299 300define <8 x i1> @icmp_uge_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {301; CHECK-LABEL: icmp_uge_vi_swap_v8i8:302; CHECK:       # %bb.0:303; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma304; CHECK-NEXT:    vmsleu.vi v0, v8, 4, v0.t305; CHECK-NEXT:    ret306  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"uge", <8 x i1> %m, i32 %evl)307  ret <8 x i1> %v308}309 310define <8 x i1> @icmp_ult_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {311; CHECK-LABEL: icmp_ult_vv_v8i8:312; CHECK:       # %bb.0:313; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma314; CHECK-NEXT:    vmsltu.vv v0, v8, v9, v0.t315; CHECK-NEXT:    ret316  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)317  ret <8 x i1> %v318}319 320define <8 x i1> @icmp_ult_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {321; CHECK-LABEL: icmp_ult_vx_v8i8:322; CHECK:       # %bb.0:323; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma324; CHECK-NEXT:    vmsltu.vx v0, v8, a0, v0.t325; CHECK-NEXT:    ret326  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0327  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer328  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)329  ret <8 x i1> %v330}331 332define <8 x i1> @icmp_ult_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {333; CHECK-LABEL: icmp_ult_vx_swap_v8i8:334; CHECK:       # %bb.0:335; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma336; CHECK-NEXT:    vmsgtu.vx v0, v8, a0, v0.t337; CHECK-NEXT:    ret338  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0339  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer340  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"ult", <8 x i1> %m, i32 %evl)341  ret <8 x i1> %v342}343 344define <8 x i1> @icmp_ult_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {345; CHECK-LABEL: icmp_ult_vi_v8i8:346; CHECK:       # %bb.0:347; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma348; CHECK-NEXT:    vmsleu.vi v0, v8, 3, v0.t349; CHECK-NEXT:    ret350  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"ult", <8 x i1> %m, i32 %evl)351  ret <8 x i1> %v352}353 354define <8 x i1> @icmp_ult_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {355; CHECK-LABEL: icmp_ult_vi_swap_v8i8:356; CHECK:       # %bb.0:357; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma358; CHECK-NEXT:    vmsgtu.vi v0, v8, 4, v0.t359; CHECK-NEXT:    ret360  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"ult", <8 x i1> %m, i32 %evl)361  ret <8 x i1> %v362}363 364define <8 x i1> @icmp_sgt_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {365; CHECK-LABEL: icmp_sgt_vv_v8i8:366; CHECK:       # %bb.0:367; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma368; CHECK-NEXT:    vmslt.vv v0, v9, v8, v0.t369; CHECK-NEXT:    ret370  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)371  ret <8 x i1> %v372}373 374define <8 x i1> @icmp_sgt_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {375; CHECK-LABEL: icmp_sgt_vx_v8i8:376; CHECK:       # %bb.0:377; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma378; CHECK-NEXT:    vmsgt.vx v0, v8, a0, v0.t379; CHECK-NEXT:    ret380  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0381  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer382  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)383  ret <8 x i1> %v384}385 386define <8 x i1> @icmp_sgt_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {387; CHECK-LABEL: icmp_sgt_vx_swap_v8i8:388; CHECK:       # %bb.0:389; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma390; CHECK-NEXT:    vmslt.vx v0, v8, a0, v0.t391; CHECK-NEXT:    ret392  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0393  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer394  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"sgt", <8 x i1> %m, i32 %evl)395  ret <8 x i1> %v396}397 398define <8 x i1> @icmp_sgt_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {399; CHECK-LABEL: icmp_sgt_vi_v8i8:400; CHECK:       # %bb.0:401; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma402; CHECK-NEXT:    vmsgt.vi v0, v8, 4, v0.t403; CHECK-NEXT:    ret404  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"sgt", <8 x i1> %m, i32 %evl)405  ret <8 x i1> %v406}407 408define <8 x i1> @icmp_sgt_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {409; CHECK-LABEL: icmp_sgt_vi_swap_v8i8:410; CHECK:       # %bb.0:411; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma412; CHECK-NEXT:    vmsle.vi v0, v8, 3, v0.t413; CHECK-NEXT:    ret414  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"sgt", <8 x i1> %m, i32 %evl)415  ret <8 x i1> %v416}417 418define <8 x i1> @icmp_sge_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {419; CHECK-LABEL: icmp_sge_vv_v8i8:420; CHECK:       # %bb.0:421; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma422; CHECK-NEXT:    vmsle.vv v0, v9, v8, v0.t423; CHECK-NEXT:    ret424  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)425  ret <8 x i1> %v426}427 428define <8 x i1> @icmp_sge_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {429; CHECK-LABEL: icmp_sge_vx_v8i8:430; CHECK:       # %bb.0:431; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma432; CHECK-NEXT:    vmv.v.x v9, a0433; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma434; CHECK-NEXT:    vmsle.vv v0, v9, v8, v0.t435; CHECK-NEXT:    ret436  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0437  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer438  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)439  ret <8 x i1> %v440}441 442define <8 x i1> @icmp_sge_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {443; CHECK-LABEL: icmp_sge_vx_swap_v8i8:444; CHECK:       # %bb.0:445; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma446; CHECK-NEXT:    vmsle.vx v0, v8, a0, v0.t447; CHECK-NEXT:    ret448  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0449  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer450  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"sge", <8 x i1> %m, i32 %evl)451  ret <8 x i1> %v452}453 454define <8 x i1> @icmp_sge_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {455; CHECK-LABEL: icmp_sge_vi_v8i8:456; CHECK:       # %bb.0:457; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma458; CHECK-NEXT:    vmsgt.vi v0, v8, 3, v0.t459; CHECK-NEXT:    ret460  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"sge", <8 x i1> %m, i32 %evl)461  ret <8 x i1> %v462}463 464define <8 x i1> @icmp_sge_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {465; CHECK-LABEL: icmp_sge_vi_swap_v8i8:466; CHECK:       # %bb.0:467; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma468; CHECK-NEXT:    vmsle.vi v0, v8, 4, v0.t469; CHECK-NEXT:    ret470  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"sge", <8 x i1> %m, i32 %evl)471  ret <8 x i1> %v472}473 474define <8 x i1> @icmp_slt_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {475; CHECK-LABEL: icmp_slt_vv_v8i8:476; CHECK:       # %bb.0:477; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma478; CHECK-NEXT:    vmslt.vv v0, v8, v9, v0.t479; CHECK-NEXT:    ret480  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)481  ret <8 x i1> %v482}483 484define <8 x i1> @icmp_slt_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {485; CHECK-LABEL: icmp_slt_vx_v8i8:486; CHECK:       # %bb.0:487; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma488; CHECK-NEXT:    vmslt.vx v0, v8, a0, v0.t489; CHECK-NEXT:    ret490  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0491  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer492  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)493  ret <8 x i1> %v494}495 496define <8 x i1> @icmp_slt_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {497; CHECK-LABEL: icmp_slt_vx_swap_v8i8:498; CHECK:       # %bb.0:499; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma500; CHECK-NEXT:    vmsgt.vx v0, v8, a0, v0.t501; CHECK-NEXT:    ret502  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0503  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer504  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"slt", <8 x i1> %m, i32 %evl)505  ret <8 x i1> %v506}507 508define <8 x i1> @icmp_slt_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {509; CHECK-LABEL: icmp_slt_vi_v8i8:510; CHECK:       # %bb.0:511; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma512; CHECK-NEXT:    vmsle.vi v0, v8, 3, v0.t513; CHECK-NEXT:    ret514  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"slt", <8 x i1> %m, i32 %evl)515  ret <8 x i1> %v516}517 518define <8 x i1> @icmp_slt_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {519; CHECK-LABEL: icmp_slt_vi_swap_v8i8:520; CHECK:       # %bb.0:521; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma522; CHECK-NEXT:    vmsgt.vi v0, v8, 4, v0.t523; CHECK-NEXT:    ret524  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"slt", <8 x i1> %m, i32 %evl)525  ret <8 x i1> %v526}527 528define <8 x i1> @icmp_sle_vv_v8i8(<8 x i8> %va, <8 x i8> %vb, <8 x i1> %m, i32 zeroext %evl) {529; CHECK-LABEL: icmp_sle_vv_v8i8:530; CHECK:       # %bb.0:531; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma532; CHECK-NEXT:    vmsle.vv v0, v8, v9, v0.t533; CHECK-NEXT:    ret534  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)535  ret <8 x i1> %v536}537 538define <8 x i1> @icmp_sle_vx_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {539; CHECK-LABEL: icmp_sle_vx_v8i8:540; CHECK:       # %bb.0:541; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma542; CHECK-NEXT:    vmsle.vx v0, v8, a0, v0.t543; CHECK-NEXT:    ret544  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0545  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer546  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)547  ret <8 x i1> %v548}549 550define <8 x i1> @icmp_sle_vx_swap_v8i8(<8 x i8> %va, i8 %b, <8 x i1> %m, i32 zeroext %evl) {551; CHECK-LABEL: icmp_sle_vx_swap_v8i8:552; CHECK:       # %bb.0:553; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma554; CHECK-NEXT:    vmv.v.x v9, a0555; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma556; CHECK-NEXT:    vmsle.vv v0, v9, v8, v0.t557; CHECK-NEXT:    ret558  %elt.head = insertelement <8 x i8> poison, i8 %b, i32 0559  %vb = shufflevector <8 x i8> %elt.head, <8 x i8> poison, <8 x i32> zeroinitializer560  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %vb, <8 x i8> %va, metadata !"sle", <8 x i1> %m, i32 %evl)561  ret <8 x i1> %v562}563 564define <8 x i1> @icmp_sle_vi_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {565; CHECK-LABEL: icmp_sle_vi_v8i8:566; CHECK:       # %bb.0:567; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma568; CHECK-NEXT:    vmsle.vi v0, v8, 4, v0.t569; CHECK-NEXT:    ret570  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> %va, <8 x i8> splat (i8 4), metadata !"sle", <8 x i1> %m, i32 %evl)571  ret <8 x i1> %v572}573 574define <8 x i1> @icmp_sle_vi_swap_v8i8(<8 x i8> %va, <8 x i1> %m, i32 zeroext %evl) {575; CHECK-LABEL: icmp_sle_vi_swap_v8i8:576; CHECK:       # %bb.0:577; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma578; CHECK-NEXT:    vmsgt.vi v0, v8, 3, v0.t579; CHECK-NEXT:    ret580  %v = call <8 x i1> @llvm.vp.icmp.v8i8(<8 x i8> splat (i8 4), <8 x i8> %va, metadata !"sle", <8 x i1> %m, i32 %evl)581  ret <8 x i1> %v582}583 584define <256 x i1> @icmp_eq_vv_v256i8(<256 x i8> %va, <256 x i8> %vb, <256 x i1> %m, i32 zeroext %evl) {585; CHECK-LABEL: icmp_eq_vv_v256i8:586; CHECK:       # %bb.0:587; CHECK-NEXT:    addi sp, sp, -16588; CHECK-NEXT:    .cfi_def_cfa_offset 16589; CHECK-NEXT:    csrr a1, vlenb590; CHECK-NEXT:    slli a1, a1, 3591; CHECK-NEXT:    sub sp, sp, a1592; CHECK-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb593; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma594; CHECK-NEXT:    vmv1r.v v7, v0595; CHECK-NEXT:    addi a1, sp, 16596; CHECK-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill597; CHECK-NEXT:    li a1, 128598; CHECK-NEXT:    addi a4, a0, 128599; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma600; CHECK-NEXT:    vlm.v v0, (a2)601; CHECK-NEXT:    addi a2, a3, -128602; CHECK-NEXT:    vle8.v v24, (a4)603; CHECK-NEXT:    sltu a4, a3, a2604; CHECK-NEXT:    vle8.v v8, (a0)605; CHECK-NEXT:    addi a4, a4, -1606; CHECK-NEXT:    and a2, a4, a2607; CHECK-NEXT:    vsetvli zero, a2, e8, m8, ta, ma608; CHECK-NEXT:    vmseq.vv v6, v16, v24, v0.t609; CHECK-NEXT:    bltu a3, a1, .LBB51_2610; CHECK-NEXT:  # %bb.1:611; CHECK-NEXT:    li a3, 128612; CHECK-NEXT:  .LBB51_2:613; CHECK-NEXT:    vmv1r.v v0, v7614; CHECK-NEXT:    addi a0, sp, 16615; CHECK-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload616; CHECK-NEXT:    vsetvli zero, a3, e8, m8, ta, ma617; CHECK-NEXT:    vmseq.vv v16, v24, v8, v0.t618; CHECK-NEXT:    vmv1r.v v0, v16619; CHECK-NEXT:    vmv1r.v v8, v6620; CHECK-NEXT:    csrr a0, vlenb621; CHECK-NEXT:    slli a0, a0, 3622; CHECK-NEXT:    add sp, sp, a0623; CHECK-NEXT:    .cfi_def_cfa sp, 16624; CHECK-NEXT:    addi sp, sp, 16625; CHECK-NEXT:    .cfi_def_cfa_offset 0626; CHECK-NEXT:    ret627  %v = call <256 x i1> @llvm.vp.icmp.v256i8(<256 x i8> %va, <256 x i8> %vb, metadata !"eq", <256 x i1> %m, i32 %evl)628  ret <256 x i1> %v629}630 631define <256 x i1> @icmp_eq_vx_v256i8(<256 x i8> %va, i8 %b, <256 x i1> %m, i32 zeroext %evl) {632; CHECK-LABEL: icmp_eq_vx_v256i8:633; CHECK:       # %bb.0:634; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma635; CHECK-NEXT:    vmv1r.v v24, v0636; CHECK-NEXT:    li a3, 128637; CHECK-NEXT:    vsetvli zero, a3, e8, m8, ta, ma638; CHECK-NEXT:    vlm.v v0, (a1)639; CHECK-NEXT:    addi a1, a2, -128640; CHECK-NEXT:    sltu a4, a2, a1641; CHECK-NEXT:    addi a4, a4, -1642; CHECK-NEXT:    and a1, a4, a1643; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma644; CHECK-NEXT:    vmseq.vx v25, v16, a0, v0.t645; CHECK-NEXT:    bltu a2, a3, .LBB52_2646; CHECK-NEXT:  # %bb.1:647; CHECK-NEXT:    li a2, 128648; CHECK-NEXT:  .LBB52_2:649; CHECK-NEXT:    vmv1r.v v0, v24650; CHECK-NEXT:    vsetvli zero, a2, e8, m8, ta, ma651; CHECK-NEXT:    vmseq.vx v16, v8, a0, v0.t652; CHECK-NEXT:    vmv1r.v v0, v16653; CHECK-NEXT:    vmv1r.v v8, v25654; CHECK-NEXT:    ret655  %elt.head = insertelement <256 x i8> poison, i8 %b, i32 0656  %vb = shufflevector <256 x i8> %elt.head, <256 x i8> poison, <256 x i32> zeroinitializer657  %v = call <256 x i1> @llvm.vp.icmp.v256i8(<256 x i8> %va, <256 x i8> %vb, metadata !"eq", <256 x i1> %m, i32 %evl)658  ret <256 x i1> %v659}660 661define <256 x i1> @icmp_eq_vx_swap_v256i8(<256 x i8> %va, i8 %b, <256 x i1> %m, i32 zeroext %evl) {662; CHECK-LABEL: icmp_eq_vx_swap_v256i8:663; CHECK:       # %bb.0:664; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma665; CHECK-NEXT:    vmv1r.v v24, v0666; CHECK-NEXT:    li a3, 128667; CHECK-NEXT:    vsetvli zero, a3, e8, m8, ta, ma668; CHECK-NEXT:    vlm.v v0, (a1)669; CHECK-NEXT:    addi a1, a2, -128670; CHECK-NEXT:    sltu a4, a2, a1671; CHECK-NEXT:    addi a4, a4, -1672; CHECK-NEXT:    and a1, a4, a1673; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma674; CHECK-NEXT:    vmseq.vx v25, v16, a0, v0.t675; CHECK-NEXT:    bltu a2, a3, .LBB53_2676; CHECK-NEXT:  # %bb.1:677; CHECK-NEXT:    li a2, 128678; CHECK-NEXT:  .LBB53_2:679; CHECK-NEXT:    vmv1r.v v0, v24680; CHECK-NEXT:    vsetvli zero, a2, e8, m8, ta, ma681; CHECK-NEXT:    vmseq.vx v16, v8, a0, v0.t682; CHECK-NEXT:    vmv1r.v v0, v16683; CHECK-NEXT:    vmv1r.v v8, v25684; CHECK-NEXT:    ret685  %elt.head = insertelement <256 x i8> poison, i8 %b, i32 0686  %vb = shufflevector <256 x i8> %elt.head, <256 x i8> poison, <256 x i32> zeroinitializer687  %v = call <256 x i1> @llvm.vp.icmp.v256i8(<256 x i8> %vb, <256 x i8> %va, metadata !"eq", <256 x i1> %m, i32 %evl)688  ret <256 x i1> %v689}690 691define <8 x i1> @icmp_eq_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {692; CHECK-LABEL: icmp_eq_vv_v8i32:693; CHECK:       # %bb.0:694; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma695; CHECK-NEXT:    vmseq.vv v12, v8, v10, v0.t696; CHECK-NEXT:    vmv1r.v v0, v12697; CHECK-NEXT:    ret698  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)699  ret <8 x i1> %v700}701 702define <8 x i1> @icmp_eq_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {703; CHECK-LABEL: icmp_eq_vx_v8i32:704; CHECK:       # %bb.0:705; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma706; CHECK-NEXT:    vmseq.vx v10, v8, a0, v0.t707; CHECK-NEXT:    vmv1r.v v0, v10708; CHECK-NEXT:    ret709  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0710  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer711  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)712  ret <8 x i1> %v713}714 715define <8 x i1> @icmp_eq_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {716; CHECK-LABEL: icmp_eq_vx_swap_v8i32:717; CHECK:       # %bb.0:718; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma719; CHECK-NEXT:    vmseq.vx v10, v8, a0, v0.t720; CHECK-NEXT:    vmv1r.v v0, v10721; CHECK-NEXT:    ret722  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0723  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer724  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"eq", <8 x i1> %m, i32 %evl)725  ret <8 x i1> %v726}727 728define <8 x i1> @icmp_eq_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {729; CHECK-LABEL: icmp_eq_vi_v8i32:730; CHECK:       # %bb.0:731; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma732; CHECK-NEXT:    vmseq.vi v10, v8, 4, v0.t733; CHECK-NEXT:    vmv1r.v v0, v10734; CHECK-NEXT:    ret735  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"eq", <8 x i1> %m, i32 %evl)736  ret <8 x i1> %v737}738 739define <8 x i1> @icmp_eq_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {740; CHECK-LABEL: icmp_eq_vi_swap_v8i32:741; CHECK:       # %bb.0:742; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma743; CHECK-NEXT:    vmseq.vi v10, v8, 4, v0.t744; CHECK-NEXT:    vmv1r.v v0, v10745; CHECK-NEXT:    ret746  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"eq", <8 x i1> %m, i32 %evl)747  ret <8 x i1> %v748}749 750define <8 x i1> @icmp_ne_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {751; CHECK-LABEL: icmp_ne_vv_v8i32:752; CHECK:       # %bb.0:753; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma754; CHECK-NEXT:    vmsne.vv v12, v8, v10, v0.t755; CHECK-NEXT:    vmv1r.v v0, v12756; CHECK-NEXT:    ret757  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)758  ret <8 x i1> %v759}760 761define <8 x i1> @icmp_ne_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {762; CHECK-LABEL: icmp_ne_vx_v8i32:763; CHECK:       # %bb.0:764; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma765; CHECK-NEXT:    vmsne.vx v10, v8, a0, v0.t766; CHECK-NEXT:    vmv1r.v v0, v10767; CHECK-NEXT:    ret768  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0769  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer770  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)771  ret <8 x i1> %v772}773 774define <8 x i1> @icmp_ne_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {775; CHECK-LABEL: icmp_ne_vx_swap_v8i32:776; CHECK:       # %bb.0:777; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma778; CHECK-NEXT:    vmsne.vx v10, v8, a0, v0.t779; CHECK-NEXT:    vmv1r.v v0, v10780; CHECK-NEXT:    ret781  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0782  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer783  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"ne", <8 x i1> %m, i32 %evl)784  ret <8 x i1> %v785}786 787define <8 x i1> @icmp_ne_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {788; CHECK-LABEL: icmp_ne_vi_v8i32:789; CHECK:       # %bb.0:790; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma791; CHECK-NEXT:    vmsne.vi v10, v8, 4, v0.t792; CHECK-NEXT:    vmv1r.v v0, v10793; CHECK-NEXT:    ret794  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"ne", <8 x i1> %m, i32 %evl)795  ret <8 x i1> %v796}797 798define <8 x i1> @icmp_ne_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {799; CHECK-LABEL: icmp_ne_vi_swap_v8i32:800; CHECK:       # %bb.0:801; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma802; CHECK-NEXT:    vmsne.vi v10, v8, 4, v0.t803; CHECK-NEXT:    vmv1r.v v0, v10804; CHECK-NEXT:    ret805  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"ne", <8 x i1> %m, i32 %evl)806  ret <8 x i1> %v807}808 809define <8 x i1> @icmp_ugt_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {810; CHECK-LABEL: icmp_ugt_vv_v8i32:811; CHECK:       # %bb.0:812; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma813; CHECK-NEXT:    vmsltu.vv v12, v10, v8, v0.t814; CHECK-NEXT:    vmv1r.v v0, v12815; CHECK-NEXT:    ret816  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)817  ret <8 x i1> %v818}819 820define <8 x i1> @icmp_ugt_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {821; CHECK-LABEL: icmp_ugt_vx_v8i32:822; CHECK:       # %bb.0:823; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma824; CHECK-NEXT:    vmsgtu.vx v10, v8, a0, v0.t825; CHECK-NEXT:    vmv1r.v v0, v10826; CHECK-NEXT:    ret827  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0828  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer829  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)830  ret <8 x i1> %v831}832 833define <8 x i1> @icmp_ugt_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {834; CHECK-LABEL: icmp_ugt_vx_swap_v8i32:835; CHECK:       # %bb.0:836; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma837; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t838; CHECK-NEXT:    vmv1r.v v0, v10839; CHECK-NEXT:    ret840  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0841  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer842  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)843  ret <8 x i1> %v844}845 846define <8 x i1> @icmp_ugt_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {847; CHECK-LABEL: icmp_ugt_vi_v8i32:848; CHECK:       # %bb.0:849; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma850; CHECK-NEXT:    vmsgtu.vi v10, v8, 4, v0.t851; CHECK-NEXT:    vmv1r.v v0, v10852; CHECK-NEXT:    ret853  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"ugt", <8 x i1> %m, i32 %evl)854  ret <8 x i1> %v855}856 857define <8 x i1> @icmp_ugt_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {858; CHECK-LABEL: icmp_ugt_vi_swap_v8i32:859; CHECK:       # %bb.0:860; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma861; CHECK-NEXT:    vmsleu.vi v10, v8, 3, v0.t862; CHECK-NEXT:    vmv1r.v v0, v10863; CHECK-NEXT:    ret864  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)865  ret <8 x i1> %v866}867 868define <8 x i1> @icmp_uge_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {869; CHECK-LABEL: icmp_uge_vv_v8i32:870; CHECK:       # %bb.0:871; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma872; CHECK-NEXT:    vmsleu.vv v12, v10, v8, v0.t873; CHECK-NEXT:    vmv1r.v v0, v12874; CHECK-NEXT:    ret875  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)876  ret <8 x i1> %v877}878 879define <8 x i1> @icmp_uge_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {880; CHECK-LABEL: icmp_uge_vx_v8i32:881; CHECK:       # %bb.0:882; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma883; CHECK-NEXT:    vmv.v.x v12, a0884; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma885; CHECK-NEXT:    vmsleu.vv v10, v12, v8, v0.t886; CHECK-NEXT:    vmv1r.v v0, v10887; CHECK-NEXT:    ret888  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0889  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer890  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)891  ret <8 x i1> %v892}893 894define <8 x i1> @icmp_uge_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {895; CHECK-LABEL: icmp_uge_vx_swap_v8i32:896; CHECK:       # %bb.0:897; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma898; CHECK-NEXT:    vmsleu.vx v10, v8, a0, v0.t899; CHECK-NEXT:    vmv1r.v v0, v10900; CHECK-NEXT:    ret901  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0902  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer903  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"uge", <8 x i1> %m, i32 %evl)904  ret <8 x i1> %v905}906 907define <8 x i1> @icmp_uge_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {908; CHECK-LABEL: icmp_uge_vi_v8i32:909; CHECK:       # %bb.0:910; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma911; CHECK-NEXT:    vmsgtu.vi v10, v8, 3, v0.t912; CHECK-NEXT:    vmv1r.v v0, v10913; CHECK-NEXT:    ret914  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"uge", <8 x i1> %m, i32 %evl)915  ret <8 x i1> %v916}917 918define <8 x i1> @icmp_uge_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {919; CHECK-LABEL: icmp_uge_vi_swap_v8i32:920; CHECK:       # %bb.0:921; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma922; CHECK-NEXT:    vmsleu.vi v10, v8, 4, v0.t923; CHECK-NEXT:    vmv1r.v v0, v10924; CHECK-NEXT:    ret925  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"uge", <8 x i1> %m, i32 %evl)926  ret <8 x i1> %v927}928 929define <8 x i1> @icmp_ult_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {930; CHECK-LABEL: icmp_ult_vv_v8i32:931; CHECK:       # %bb.0:932; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma933; CHECK-NEXT:    vmsltu.vv v12, v8, v10, v0.t934; CHECK-NEXT:    vmv1r.v v0, v12935; CHECK-NEXT:    ret936  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)937  ret <8 x i1> %v938}939 940define <8 x i1> @icmp_ult_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {941; CHECK-LABEL: icmp_ult_vx_v8i32:942; CHECK:       # %bb.0:943; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma944; CHECK-NEXT:    vmsltu.vx v10, v8, a0, v0.t945; CHECK-NEXT:    vmv1r.v v0, v10946; CHECK-NEXT:    ret947  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0948  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer949  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)950  ret <8 x i1> %v951}952 953define <8 x i1> @icmp_ult_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {954; CHECK-LABEL: icmp_ult_vx_swap_v8i32:955; CHECK:       # %bb.0:956; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma957; CHECK-NEXT:    vmsgtu.vx v10, v8, a0, v0.t958; CHECK-NEXT:    vmv1r.v v0, v10959; CHECK-NEXT:    ret960  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 0961  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer962  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"ult", <8 x i1> %m, i32 %evl)963  ret <8 x i1> %v964}965 966define <8 x i1> @icmp_ult_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {967; CHECK-LABEL: icmp_ult_vi_v8i32:968; CHECK:       # %bb.0:969; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma970; CHECK-NEXT:    vmsleu.vi v10, v8, 3, v0.t971; CHECK-NEXT:    vmv1r.v v0, v10972; CHECK-NEXT:    ret973  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"ult", <8 x i1> %m, i32 %evl)974  ret <8 x i1> %v975}976 977define <8 x i1> @icmp_ult_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {978; CHECK-LABEL: icmp_ult_vi_swap_v8i32:979; CHECK:       # %bb.0:980; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma981; CHECK-NEXT:    vmsgtu.vi v10, v8, 4, v0.t982; CHECK-NEXT:    vmv1r.v v0, v10983; CHECK-NEXT:    ret984  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"ult", <8 x i1> %m, i32 %evl)985  ret <8 x i1> %v986}987 988define <8 x i1> @icmp_sgt_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {989; CHECK-LABEL: icmp_sgt_vv_v8i32:990; CHECK:       # %bb.0:991; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma992; CHECK-NEXT:    vmslt.vv v12, v10, v8, v0.t993; CHECK-NEXT:    vmv1r.v v0, v12994; CHECK-NEXT:    ret995  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)996  ret <8 x i1> %v997}998 999define <8 x i1> @icmp_sgt_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1000; CHECK-LABEL: icmp_sgt_vx_v8i32:1001; CHECK:       # %bb.0:1002; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1003; CHECK-NEXT:    vmsgt.vx v10, v8, a0, v0.t1004; CHECK-NEXT:    vmv1r.v v0, v101005; CHECK-NEXT:    ret1006  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01007  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1008  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)1009  ret <8 x i1> %v1010}1011 1012define <8 x i1> @icmp_sgt_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1013; CHECK-LABEL: icmp_sgt_vx_swap_v8i32:1014; CHECK:       # %bb.0:1015; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1016; CHECK-NEXT:    vmslt.vx v10, v8, a0, v0.t1017; CHECK-NEXT:    vmv1r.v v0, v101018; CHECK-NEXT:    ret1019  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01020  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1021  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"sgt", <8 x i1> %m, i32 %evl)1022  ret <8 x i1> %v1023}1024 1025define <8 x i1> @icmp_sgt_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1026; CHECK-LABEL: icmp_sgt_vi_v8i32:1027; CHECK:       # %bb.0:1028; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1029; CHECK-NEXT:    vmsgt.vi v10, v8, 4, v0.t1030; CHECK-NEXT:    vmv1r.v v0, v101031; CHECK-NEXT:    ret1032  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"sgt", <8 x i1> %m, i32 %evl)1033  ret <8 x i1> %v1034}1035 1036define <8 x i1> @icmp_sgt_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1037; CHECK-LABEL: icmp_sgt_vi_swap_v8i32:1038; CHECK:       # %bb.0:1039; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1040; CHECK-NEXT:    vmsle.vi v10, v8, 3, v0.t1041; CHECK-NEXT:    vmv1r.v v0, v101042; CHECK-NEXT:    ret1043  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"sgt", <8 x i1> %m, i32 %evl)1044  ret <8 x i1> %v1045}1046 1047define <8 x i1> @icmp_sge_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {1048; CHECK-LABEL: icmp_sge_vv_v8i32:1049; CHECK:       # %bb.0:1050; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1051; CHECK-NEXT:    vmsle.vv v12, v10, v8, v0.t1052; CHECK-NEXT:    vmv1r.v v0, v121053; CHECK-NEXT:    ret1054  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)1055  ret <8 x i1> %v1056}1057 1058define <8 x i1> @icmp_sge_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1059; CHECK-LABEL: icmp_sge_vx_v8i32:1060; CHECK:       # %bb.0:1061; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma1062; CHECK-NEXT:    vmv.v.x v12, a01063; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1064; CHECK-NEXT:    vmsle.vv v10, v12, v8, v0.t1065; CHECK-NEXT:    vmv1r.v v0, v101066; CHECK-NEXT:    ret1067  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01068  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1069  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)1070  ret <8 x i1> %v1071}1072 1073define <8 x i1> @icmp_sge_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1074; CHECK-LABEL: icmp_sge_vx_swap_v8i32:1075; CHECK:       # %bb.0:1076; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1077; CHECK-NEXT:    vmsle.vx v10, v8, a0, v0.t1078; CHECK-NEXT:    vmv1r.v v0, v101079; CHECK-NEXT:    ret1080  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01081  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1082  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"sge", <8 x i1> %m, i32 %evl)1083  ret <8 x i1> %v1084}1085 1086define <8 x i1> @icmp_sge_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1087; CHECK-LABEL: icmp_sge_vi_v8i32:1088; CHECK:       # %bb.0:1089; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1090; CHECK-NEXT:    vmsgt.vi v10, v8, 3, v0.t1091; CHECK-NEXT:    vmv1r.v v0, v101092; CHECK-NEXT:    ret1093  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"sge", <8 x i1> %m, i32 %evl)1094  ret <8 x i1> %v1095}1096 1097define <8 x i1> @icmp_sge_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1098; CHECK-LABEL: icmp_sge_vi_swap_v8i32:1099; CHECK:       # %bb.0:1100; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1101; CHECK-NEXT:    vmsle.vi v10, v8, 4, v0.t1102; CHECK-NEXT:    vmv1r.v v0, v101103; CHECK-NEXT:    ret1104  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"sge", <8 x i1> %m, i32 %evl)1105  ret <8 x i1> %v1106}1107 1108define <8 x i1> @icmp_slt_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {1109; CHECK-LABEL: icmp_slt_vv_v8i32:1110; CHECK:       # %bb.0:1111; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1112; CHECK-NEXT:    vmslt.vv v12, v8, v10, v0.t1113; CHECK-NEXT:    vmv1r.v v0, v121114; CHECK-NEXT:    ret1115  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)1116  ret <8 x i1> %v1117}1118 1119define <8 x i1> @icmp_slt_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1120; CHECK-LABEL: icmp_slt_vx_v8i32:1121; CHECK:       # %bb.0:1122; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1123; CHECK-NEXT:    vmslt.vx v10, v8, a0, v0.t1124; CHECK-NEXT:    vmv1r.v v0, v101125; CHECK-NEXT:    ret1126  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01127  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1128  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)1129  ret <8 x i1> %v1130}1131 1132define <8 x i1> @icmp_slt_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1133; CHECK-LABEL: icmp_slt_vx_swap_v8i32:1134; CHECK:       # %bb.0:1135; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1136; CHECK-NEXT:    vmsgt.vx v10, v8, a0, v0.t1137; CHECK-NEXT:    vmv1r.v v0, v101138; CHECK-NEXT:    ret1139  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01140  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1141  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"slt", <8 x i1> %m, i32 %evl)1142  ret <8 x i1> %v1143}1144 1145define <8 x i1> @icmp_slt_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1146; CHECK-LABEL: icmp_slt_vi_v8i32:1147; CHECK:       # %bb.0:1148; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1149; CHECK-NEXT:    vmsle.vi v10, v8, 3, v0.t1150; CHECK-NEXT:    vmv1r.v v0, v101151; CHECK-NEXT:    ret1152  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"slt", <8 x i1> %m, i32 %evl)1153  ret <8 x i1> %v1154}1155 1156define <8 x i1> @icmp_slt_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1157; CHECK-LABEL: icmp_slt_vi_swap_v8i32:1158; CHECK:       # %bb.0:1159; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1160; CHECK-NEXT:    vmsgt.vi v10, v8, 4, v0.t1161; CHECK-NEXT:    vmv1r.v v0, v101162; CHECK-NEXT:    ret1163  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"slt", <8 x i1> %m, i32 %evl)1164  ret <8 x i1> %v1165}1166 1167define <8 x i1> @icmp_sle_vv_v8i32(<8 x i32> %va, <8 x i32> %vb, <8 x i1> %m, i32 zeroext %evl) {1168; CHECK-LABEL: icmp_sle_vv_v8i32:1169; CHECK:       # %bb.0:1170; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1171; CHECK-NEXT:    vmsle.vv v12, v8, v10, v0.t1172; CHECK-NEXT:    vmv1r.v v0, v121173; CHECK-NEXT:    ret1174  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)1175  ret <8 x i1> %v1176}1177 1178define <8 x i1> @icmp_sle_vx_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1179; CHECK-LABEL: icmp_sle_vx_v8i32:1180; CHECK:       # %bb.0:1181; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1182; CHECK-NEXT:    vmsle.vx v10, v8, a0, v0.t1183; CHECK-NEXT:    vmv1r.v v0, v101184; CHECK-NEXT:    ret1185  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01186  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1187  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)1188  ret <8 x i1> %v1189}1190 1191define <8 x i1> @icmp_sle_vx_swap_v8i32(<8 x i32> %va, i32 %b, <8 x i1> %m, i32 zeroext %evl) {1192; CHECK-LABEL: icmp_sle_vx_swap_v8i32:1193; CHECK:       # %bb.0:1194; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma1195; CHECK-NEXT:    vmv.v.x v12, a01196; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1197; CHECK-NEXT:    vmsle.vv v10, v12, v8, v0.t1198; CHECK-NEXT:    vmv1r.v v0, v101199; CHECK-NEXT:    ret1200  %elt.head = insertelement <8 x i32> poison, i32 %b, i32 01201  %vb = shufflevector <8 x i32> %elt.head, <8 x i32> poison, <8 x i32> zeroinitializer1202  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %vb, <8 x i32> %va, metadata !"sle", <8 x i1> %m, i32 %evl)1203  ret <8 x i1> %v1204}1205 1206define <8 x i1> @icmp_sle_vi_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1207; CHECK-LABEL: icmp_sle_vi_v8i32:1208; CHECK:       # %bb.0:1209; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1210; CHECK-NEXT:    vmsle.vi v10, v8, 4, v0.t1211; CHECK-NEXT:    vmv1r.v v0, v101212; CHECK-NEXT:    ret1213  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> %va, <8 x i32> splat (i32 4), metadata !"sle", <8 x i1> %m, i32 %evl)1214  ret <8 x i1> %v1215}1216 1217define <8 x i1> @icmp_sle_vi_swap_v8i32(<8 x i32> %va, <8 x i1> %m, i32 zeroext %evl) {1218; CHECK-LABEL: icmp_sle_vi_swap_v8i32:1219; CHECK:       # %bb.0:1220; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1221; CHECK-NEXT:    vmsgt.vi v10, v8, 3, v0.t1222; CHECK-NEXT:    vmv1r.v v0, v101223; CHECK-NEXT:    ret1224  %v = call <8 x i1> @llvm.vp.icmp.v8i32(<8 x i32> splat (i32 4), <8 x i32> %va, metadata !"sle", <8 x i1> %m, i32 %evl)1225  ret <8 x i1> %v1226}1227 1228define <64 x i1> @icmp_eq_vv_v64i32(<64 x i32> %va, <64 x i32> %vb, <64 x i1> %m, i32 zeroext %evl) {1229; CHECK-LABEL: icmp_eq_vv_v64i32:1230; CHECK:       # %bb.0:1231; CHECK-NEXT:    addi sp, sp, -161232; CHECK-NEXT:    .cfi_def_cfa_offset 161233; CHECK-NEXT:    csrr a1, vlenb1234; CHECK-NEXT:    slli a1, a1, 31235; CHECK-NEXT:    sub sp, sp, a11236; CHECK-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb1237; CHECK-NEXT:    addi a1, sp, 161238; CHECK-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill1239; CHECK-NEXT:    addi a1, a0, 1281240; CHECK-NEXT:    li a3, 321241; CHECK-NEXT:    vsetvli zero, a3, e32, m8, ta, ma1242; CHECK-NEXT:    vle32.v v16, (a1)1243; CHECK-NEXT:    vle32.v v24, (a0)1244; CHECK-NEXT:    mv a0, a21245; CHECK-NEXT:    vsetivli zero, 4, e8, mf2, ta, ma1246; CHECK-NEXT:    vslidedown.vi v7, v0, 41247; CHECK-NEXT:    bltu a2, a3, .LBB99_21248; CHECK-NEXT:  # %bb.1:1249; CHECK-NEXT:    li a0, 321250; CHECK-NEXT:  .LBB99_2:1251; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1252; CHECK-NEXT:    vmseq.vv v6, v8, v24, v0.t1253; CHECK-NEXT:    addi a0, a2, -321254; CHECK-NEXT:    sltu a1, a2, a01255; CHECK-NEXT:    addi a1, a1, -11256; CHECK-NEXT:    and a0, a1, a01257; CHECK-NEXT:    vmv1r.v v0, v71258; CHECK-NEXT:    addi a1, sp, 161259; CHECK-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload1260; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1261; CHECK-NEXT:    vmseq.vv v8, v24, v16, v0.t1262; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma1263; CHECK-NEXT:    vslideup.vi v6, v8, 41264; CHECK-NEXT:    vmv1r.v v0, v61265; CHECK-NEXT:    csrr a0, vlenb1266; CHECK-NEXT:    slli a0, a0, 31267; CHECK-NEXT:    add sp, sp, a01268; CHECK-NEXT:    .cfi_def_cfa sp, 161269; CHECK-NEXT:    addi sp, sp, 161270; CHECK-NEXT:    .cfi_def_cfa_offset 01271; CHECK-NEXT:    ret1272  %v = call <64 x i1> @llvm.vp.icmp.v64i32(<64 x i32> %va, <64 x i32> %vb, metadata !"eq", <64 x i1> %m, i32 %evl)1273  ret <64 x i1> %v1274}1275 1276define <64 x i1> @icmp_eq_vx_v64i32(<64 x i32> %va, i32 %b, <64 x i1> %m, i32 zeroext %evl) {1277; CHECK-LABEL: icmp_eq_vx_v64i32:1278; CHECK:       # %bb.0:1279; CHECK-NEXT:    li a3, 321280; CHECK-NEXT:    vsetivli zero, 4, e8, mf2, ta, ma1281; CHECK-NEXT:    vslidedown.vi v24, v0, 41282; CHECK-NEXT:    mv a2, a11283; CHECK-NEXT:    bltu a1, a3, .LBB100_21284; CHECK-NEXT:  # %bb.1:1285; CHECK-NEXT:    li a2, 321286; CHECK-NEXT:  .LBB100_2:1287; CHECK-NEXT:    vsetvli zero, a2, e32, m8, ta, ma1288; CHECK-NEXT:    vmseq.vx v25, v8, a0, v0.t1289; CHECK-NEXT:    addi a2, a1, -321290; CHECK-NEXT:    sltu a1, a1, a21291; CHECK-NEXT:    addi a1, a1, -11292; CHECK-NEXT:    and a1, a1, a21293; CHECK-NEXT:    vmv1r.v v0, v241294; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma1295; CHECK-NEXT:    vmseq.vx v8, v16, a0, v0.t1296; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma1297; CHECK-NEXT:    vslideup.vi v25, v8, 41298; CHECK-NEXT:    vmv1r.v v0, v251299; CHECK-NEXT:    ret1300  %elt.head = insertelement <64 x i32> poison, i32 %b, i32 01301  %vb = shufflevector <64 x i32> %elt.head, <64 x i32> poison, <64 x i32> zeroinitializer1302  %v = call <64 x i1> @llvm.vp.icmp.v64i32(<64 x i32> %va, <64 x i32> %vb, metadata !"eq", <64 x i1> %m, i32 %evl)1303  ret <64 x i1> %v1304}1305 1306define <64 x i1> @icmp_eq_vx_swap_v64i32(<64 x i32> %va, i32 %b, <64 x i1> %m, i32 zeroext %evl) {1307; CHECK-LABEL: icmp_eq_vx_swap_v64i32:1308; CHECK:       # %bb.0:1309; CHECK-NEXT:    li a3, 321310; CHECK-NEXT:    vsetivli zero, 4, e8, mf2, ta, ma1311; CHECK-NEXT:    vslidedown.vi v24, v0, 41312; CHECK-NEXT:    mv a2, a11313; CHECK-NEXT:    bltu a1, a3, .LBB101_21314; CHECK-NEXT:  # %bb.1:1315; CHECK-NEXT:    li a2, 321316; CHECK-NEXT:  .LBB101_2:1317; CHECK-NEXT:    vsetvli zero, a2, e32, m8, ta, ma1318; CHECK-NEXT:    vmseq.vx v25, v8, a0, v0.t1319; CHECK-NEXT:    addi a2, a1, -321320; CHECK-NEXT:    sltu a1, a1, a21321; CHECK-NEXT:    addi a1, a1, -11322; CHECK-NEXT:    and a1, a1, a21323; CHECK-NEXT:    vmv1r.v v0, v241324; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma1325; CHECK-NEXT:    vmseq.vx v8, v16, a0, v0.t1326; CHECK-NEXT:    vsetivli zero, 8, e8, mf2, ta, ma1327; CHECK-NEXT:    vslideup.vi v25, v8, 41328; CHECK-NEXT:    vmv1r.v v0, v251329; CHECK-NEXT:    ret1330  %elt.head = insertelement <64 x i32> poison, i32 %b, i32 01331  %vb = shufflevector <64 x i32> %elt.head, <64 x i32> poison, <64 x i32> zeroinitializer1332  %v = call <64 x i1> @llvm.vp.icmp.v64i32(<64 x i32> %vb, <64 x i32> %va, metadata !"eq", <64 x i1> %m, i32 %evl)1333  ret <64 x i1> %v1334}1335 1336define <8 x i1> @icmp_eq_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1337; CHECK-LABEL: icmp_eq_vv_v8i64:1338; CHECK:       # %bb.0:1339; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1340; CHECK-NEXT:    vmseq.vv v16, v8, v12, v0.t1341; CHECK-NEXT:    vmv1r.v v0, v161342; CHECK-NEXT:    ret1343  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)1344  ret <8 x i1> %v1345}1346 1347define <8 x i1> @icmp_eq_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1348; RV32-LABEL: icmp_eq_vx_v8i64:1349; RV32:       # %bb.0:1350; RV32-NEXT:    addi sp, sp, -161351; RV32-NEXT:    .cfi_def_cfa_offset 161352; RV32-NEXT:    sw a0, 8(sp)1353; RV32-NEXT:    sw a1, 12(sp)1354; RV32-NEXT:    addi a0, sp, 81355; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1356; RV32-NEXT:    vlse64.v v16, (a0), zero1357; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1358; RV32-NEXT:    vmseq.vv v12, v8, v16, v0.t1359; RV32-NEXT:    vmv1r.v v0, v121360; RV32-NEXT:    addi sp, sp, 161361; RV32-NEXT:    .cfi_def_cfa_offset 01362; RV32-NEXT:    ret1363;1364; RV64-LABEL: icmp_eq_vx_v8i64:1365; RV64:       # %bb.0:1366; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1367; RV64-NEXT:    vmseq.vx v12, v8, a0, v0.t1368; RV64-NEXT:    vmv1r.v v0, v121369; RV64-NEXT:    ret1370  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01371  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1372  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)1373  ret <8 x i1> %v1374}1375 1376define <8 x i1> @icmp_eq_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1377; RV32-LABEL: icmp_eq_vx_swap_v8i64:1378; RV32:       # %bb.0:1379; RV32-NEXT:    addi sp, sp, -161380; RV32-NEXT:    .cfi_def_cfa_offset 161381; RV32-NEXT:    sw a0, 8(sp)1382; RV32-NEXT:    sw a1, 12(sp)1383; RV32-NEXT:    addi a0, sp, 81384; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1385; RV32-NEXT:    vlse64.v v16, (a0), zero1386; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1387; RV32-NEXT:    vmseq.vv v12, v16, v8, v0.t1388; RV32-NEXT:    vmv1r.v v0, v121389; RV32-NEXT:    addi sp, sp, 161390; RV32-NEXT:    .cfi_def_cfa_offset 01391; RV32-NEXT:    ret1392;1393; RV64-LABEL: icmp_eq_vx_swap_v8i64:1394; RV64:       # %bb.0:1395; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1396; RV64-NEXT:    vmseq.vx v12, v8, a0, v0.t1397; RV64-NEXT:    vmv1r.v v0, v121398; RV64-NEXT:    ret1399  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01400  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1401  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"eq", <8 x i1> %m, i32 %evl)1402  ret <8 x i1> %v1403}1404 1405define <8 x i1> @icmp_eq_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1406; CHECK-LABEL: icmp_eq_vi_v8i64:1407; CHECK:       # %bb.0:1408; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1409; CHECK-NEXT:    vmseq.vi v12, v8, 4, v0.t1410; CHECK-NEXT:    vmv1r.v v0, v121411; CHECK-NEXT:    ret1412  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"eq", <8 x i1> %m, i32 %evl)1413  ret <8 x i1> %v1414}1415 1416define <8 x i1> @icmp_eq_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1417; CHECK-LABEL: icmp_eq_vi_swap_v8i64:1418; CHECK:       # %bb.0:1419; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1420; CHECK-NEXT:    vmseq.vi v12, v8, 4, v0.t1421; CHECK-NEXT:    vmv1r.v v0, v121422; CHECK-NEXT:    ret1423  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"eq", <8 x i1> %m, i32 %evl)1424  ret <8 x i1> %v1425}1426 1427define <8 x i1> @icmp_ne_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1428; CHECK-LABEL: icmp_ne_vv_v8i64:1429; CHECK:       # %bb.0:1430; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1431; CHECK-NEXT:    vmsne.vv v16, v8, v12, v0.t1432; CHECK-NEXT:    vmv1r.v v0, v161433; CHECK-NEXT:    ret1434  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)1435  ret <8 x i1> %v1436}1437 1438define <8 x i1> @icmp_ne_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1439; RV32-LABEL: icmp_ne_vx_v8i64:1440; RV32:       # %bb.0:1441; RV32-NEXT:    addi sp, sp, -161442; RV32-NEXT:    .cfi_def_cfa_offset 161443; RV32-NEXT:    sw a0, 8(sp)1444; RV32-NEXT:    sw a1, 12(sp)1445; RV32-NEXT:    addi a0, sp, 81446; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1447; RV32-NEXT:    vlse64.v v16, (a0), zero1448; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1449; RV32-NEXT:    vmsne.vv v12, v8, v16, v0.t1450; RV32-NEXT:    vmv1r.v v0, v121451; RV32-NEXT:    addi sp, sp, 161452; RV32-NEXT:    .cfi_def_cfa_offset 01453; RV32-NEXT:    ret1454;1455; RV64-LABEL: icmp_ne_vx_v8i64:1456; RV64:       # %bb.0:1457; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1458; RV64-NEXT:    vmsne.vx v12, v8, a0, v0.t1459; RV64-NEXT:    vmv1r.v v0, v121460; RV64-NEXT:    ret1461  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01462  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1463  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)1464  ret <8 x i1> %v1465}1466 1467define <8 x i1> @icmp_ne_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1468; RV32-LABEL: icmp_ne_vx_swap_v8i64:1469; RV32:       # %bb.0:1470; RV32-NEXT:    addi sp, sp, -161471; RV32-NEXT:    .cfi_def_cfa_offset 161472; RV32-NEXT:    sw a0, 8(sp)1473; RV32-NEXT:    sw a1, 12(sp)1474; RV32-NEXT:    addi a0, sp, 81475; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1476; RV32-NEXT:    vlse64.v v16, (a0), zero1477; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1478; RV32-NEXT:    vmsne.vv v12, v16, v8, v0.t1479; RV32-NEXT:    vmv1r.v v0, v121480; RV32-NEXT:    addi sp, sp, 161481; RV32-NEXT:    .cfi_def_cfa_offset 01482; RV32-NEXT:    ret1483;1484; RV64-LABEL: icmp_ne_vx_swap_v8i64:1485; RV64:       # %bb.0:1486; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1487; RV64-NEXT:    vmsne.vx v12, v8, a0, v0.t1488; RV64-NEXT:    vmv1r.v v0, v121489; RV64-NEXT:    ret1490  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01491  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1492  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"ne", <8 x i1> %m, i32 %evl)1493  ret <8 x i1> %v1494}1495 1496define <8 x i1> @icmp_ne_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1497; CHECK-LABEL: icmp_ne_vi_v8i64:1498; CHECK:       # %bb.0:1499; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1500; CHECK-NEXT:    vmsne.vi v12, v8, 4, v0.t1501; CHECK-NEXT:    vmv1r.v v0, v121502; CHECK-NEXT:    ret1503  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"ne", <8 x i1> %m, i32 %evl)1504  ret <8 x i1> %v1505}1506 1507define <8 x i1> @icmp_ne_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1508; CHECK-LABEL: icmp_ne_vi_swap_v8i64:1509; CHECK:       # %bb.0:1510; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1511; CHECK-NEXT:    vmsne.vi v12, v8, 4, v0.t1512; CHECK-NEXT:    vmv1r.v v0, v121513; CHECK-NEXT:    ret1514  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"ne", <8 x i1> %m, i32 %evl)1515  ret <8 x i1> %v1516}1517 1518define <8 x i1> @icmp_ugt_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1519; CHECK-LABEL: icmp_ugt_vv_v8i64:1520; CHECK:       # %bb.0:1521; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1522; CHECK-NEXT:    vmsltu.vv v16, v12, v8, v0.t1523; CHECK-NEXT:    vmv1r.v v0, v161524; CHECK-NEXT:    ret1525  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)1526  ret <8 x i1> %v1527}1528 1529define <8 x i1> @icmp_ugt_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1530; RV32-LABEL: icmp_ugt_vx_v8i64:1531; RV32:       # %bb.0:1532; RV32-NEXT:    addi sp, sp, -161533; RV32-NEXT:    .cfi_def_cfa_offset 161534; RV32-NEXT:    sw a0, 8(sp)1535; RV32-NEXT:    sw a1, 12(sp)1536; RV32-NEXT:    addi a0, sp, 81537; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1538; RV32-NEXT:    vlse64.v v16, (a0), zero1539; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1540; RV32-NEXT:    vmsltu.vv v12, v16, v8, v0.t1541; RV32-NEXT:    vmv1r.v v0, v121542; RV32-NEXT:    addi sp, sp, 161543; RV32-NEXT:    .cfi_def_cfa_offset 01544; RV32-NEXT:    ret1545;1546; RV64-LABEL: icmp_ugt_vx_v8i64:1547; RV64:       # %bb.0:1548; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1549; RV64-NEXT:    vmsgtu.vx v12, v8, a0, v0.t1550; RV64-NEXT:    vmv1r.v v0, v121551; RV64-NEXT:    ret1552  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01553  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1554  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)1555  ret <8 x i1> %v1556}1557 1558define <8 x i1> @icmp_ugt_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1559; RV32-LABEL: icmp_ugt_vx_swap_v8i64:1560; RV32:       # %bb.0:1561; RV32-NEXT:    addi sp, sp, -161562; RV32-NEXT:    .cfi_def_cfa_offset 161563; RV32-NEXT:    sw a0, 8(sp)1564; RV32-NEXT:    sw a1, 12(sp)1565; RV32-NEXT:    addi a0, sp, 81566; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1567; RV32-NEXT:    vlse64.v v16, (a0), zero1568; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1569; RV32-NEXT:    vmsltu.vv v12, v8, v16, v0.t1570; RV32-NEXT:    vmv1r.v v0, v121571; RV32-NEXT:    addi sp, sp, 161572; RV32-NEXT:    .cfi_def_cfa_offset 01573; RV32-NEXT:    ret1574;1575; RV64-LABEL: icmp_ugt_vx_swap_v8i64:1576; RV64:       # %bb.0:1577; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1578; RV64-NEXT:    vmsltu.vx v12, v8, a0, v0.t1579; RV64-NEXT:    vmv1r.v v0, v121580; RV64-NEXT:    ret1581  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01582  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1583  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)1584  ret <8 x i1> %v1585}1586 1587define <8 x i1> @icmp_ugt_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1588; CHECK-LABEL: icmp_ugt_vi_v8i64:1589; CHECK:       # %bb.0:1590; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1591; CHECK-NEXT:    vmsgtu.vi v12, v8, 4, v0.t1592; CHECK-NEXT:    vmv1r.v v0, v121593; CHECK-NEXT:    ret1594  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"ugt", <8 x i1> %m, i32 %evl)1595  ret <8 x i1> %v1596}1597 1598define <8 x i1> @icmp_ugt_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1599; CHECK-LABEL: icmp_ugt_vi_swap_v8i64:1600; CHECK:       # %bb.0:1601; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1602; CHECK-NEXT:    vmsleu.vi v12, v8, 3, v0.t1603; CHECK-NEXT:    vmv1r.v v0, v121604; CHECK-NEXT:    ret1605  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"ugt", <8 x i1> %m, i32 %evl)1606  ret <8 x i1> %v1607}1608 1609define <8 x i1> @icmp_uge_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1610; CHECK-LABEL: icmp_uge_vv_v8i64:1611; CHECK:       # %bb.0:1612; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1613; CHECK-NEXT:    vmsleu.vv v16, v12, v8, v0.t1614; CHECK-NEXT:    vmv1r.v v0, v161615; CHECK-NEXT:    ret1616  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)1617  ret <8 x i1> %v1618}1619 1620define <8 x i1> @icmp_uge_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1621; RV32-LABEL: icmp_uge_vx_v8i64:1622; RV32:       # %bb.0:1623; RV32-NEXT:    addi sp, sp, -161624; RV32-NEXT:    .cfi_def_cfa_offset 161625; RV32-NEXT:    sw a0, 8(sp)1626; RV32-NEXT:    sw a1, 12(sp)1627; RV32-NEXT:    addi a0, sp, 81628; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1629; RV32-NEXT:    vlse64.v v16, (a0), zero1630; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1631; RV32-NEXT:    vmsleu.vv v12, v16, v8, v0.t1632; RV32-NEXT:    vmv1r.v v0, v121633; RV32-NEXT:    addi sp, sp, 161634; RV32-NEXT:    .cfi_def_cfa_offset 01635; RV32-NEXT:    ret1636;1637; RV64-LABEL: icmp_uge_vx_v8i64:1638; RV64:       # %bb.0:1639; RV64-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1640; RV64-NEXT:    vmv.v.x v16, a01641; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1642; RV64-NEXT:    vmsleu.vv v12, v16, v8, v0.t1643; RV64-NEXT:    vmv1r.v v0, v121644; RV64-NEXT:    ret1645  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01646  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1647  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)1648  ret <8 x i1> %v1649}1650 1651define <8 x i1> @icmp_uge_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1652; RV32-LABEL: icmp_uge_vx_swap_v8i64:1653; RV32:       # %bb.0:1654; RV32-NEXT:    addi sp, sp, -161655; RV32-NEXT:    .cfi_def_cfa_offset 161656; RV32-NEXT:    sw a0, 8(sp)1657; RV32-NEXT:    sw a1, 12(sp)1658; RV32-NEXT:    addi a0, sp, 81659; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1660; RV32-NEXT:    vlse64.v v16, (a0), zero1661; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1662; RV32-NEXT:    vmsleu.vv v12, v8, v16, v0.t1663; RV32-NEXT:    vmv1r.v v0, v121664; RV32-NEXT:    addi sp, sp, 161665; RV32-NEXT:    .cfi_def_cfa_offset 01666; RV32-NEXT:    ret1667;1668; RV64-LABEL: icmp_uge_vx_swap_v8i64:1669; RV64:       # %bb.0:1670; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1671; RV64-NEXT:    vmsleu.vx v12, v8, a0, v0.t1672; RV64-NEXT:    vmv1r.v v0, v121673; RV64-NEXT:    ret1674  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01675  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1676  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"uge", <8 x i1> %m, i32 %evl)1677  ret <8 x i1> %v1678}1679 1680define <8 x i1> @icmp_uge_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1681; CHECK-LABEL: icmp_uge_vi_v8i64:1682; CHECK:       # %bb.0:1683; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1684; CHECK-NEXT:    vmsgtu.vi v12, v8, 3, v0.t1685; CHECK-NEXT:    vmv1r.v v0, v121686; CHECK-NEXT:    ret1687  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"uge", <8 x i1> %m, i32 %evl)1688  ret <8 x i1> %v1689}1690 1691define <8 x i1> @icmp_uge_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1692; CHECK-LABEL: icmp_uge_vi_swap_v8i64:1693; CHECK:       # %bb.0:1694; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1695; CHECK-NEXT:    vmsleu.vi v12, v8, 4, v0.t1696; CHECK-NEXT:    vmv1r.v v0, v121697; CHECK-NEXT:    ret1698  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"uge", <8 x i1> %m, i32 %evl)1699  ret <8 x i1> %v1700}1701 1702define <8 x i1> @icmp_ult_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1703; CHECK-LABEL: icmp_ult_vv_v8i64:1704; CHECK:       # %bb.0:1705; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1706; CHECK-NEXT:    vmsltu.vv v16, v8, v12, v0.t1707; CHECK-NEXT:    vmv1r.v v0, v161708; CHECK-NEXT:    ret1709  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)1710  ret <8 x i1> %v1711}1712 1713define <8 x i1> @icmp_ult_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1714; RV32-LABEL: icmp_ult_vx_v8i64:1715; RV32:       # %bb.0:1716; RV32-NEXT:    addi sp, sp, -161717; RV32-NEXT:    .cfi_def_cfa_offset 161718; RV32-NEXT:    sw a0, 8(sp)1719; RV32-NEXT:    sw a1, 12(sp)1720; RV32-NEXT:    addi a0, sp, 81721; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1722; RV32-NEXT:    vlse64.v v16, (a0), zero1723; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1724; RV32-NEXT:    vmsltu.vv v12, v8, v16, v0.t1725; RV32-NEXT:    vmv1r.v v0, v121726; RV32-NEXT:    addi sp, sp, 161727; RV32-NEXT:    .cfi_def_cfa_offset 01728; RV32-NEXT:    ret1729;1730; RV64-LABEL: icmp_ult_vx_v8i64:1731; RV64:       # %bb.0:1732; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1733; RV64-NEXT:    vmsltu.vx v12, v8, a0, v0.t1734; RV64-NEXT:    vmv1r.v v0, v121735; RV64-NEXT:    ret1736  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01737  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1738  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)1739  ret <8 x i1> %v1740}1741 1742define <8 x i1> @icmp_ult_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1743; RV32-LABEL: icmp_ult_vx_swap_v8i64:1744; RV32:       # %bb.0:1745; RV32-NEXT:    addi sp, sp, -161746; RV32-NEXT:    .cfi_def_cfa_offset 161747; RV32-NEXT:    sw a0, 8(sp)1748; RV32-NEXT:    sw a1, 12(sp)1749; RV32-NEXT:    addi a0, sp, 81750; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1751; RV32-NEXT:    vlse64.v v16, (a0), zero1752; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1753; RV32-NEXT:    vmsltu.vv v12, v16, v8, v0.t1754; RV32-NEXT:    vmv1r.v v0, v121755; RV32-NEXT:    addi sp, sp, 161756; RV32-NEXT:    .cfi_def_cfa_offset 01757; RV32-NEXT:    ret1758;1759; RV64-LABEL: icmp_ult_vx_swap_v8i64:1760; RV64:       # %bb.0:1761; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1762; RV64-NEXT:    vmsgtu.vx v12, v8, a0, v0.t1763; RV64-NEXT:    vmv1r.v v0, v121764; RV64-NEXT:    ret1765  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01766  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1767  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"ult", <8 x i1> %m, i32 %evl)1768  ret <8 x i1> %v1769}1770 1771define <8 x i1> @icmp_ult_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1772; CHECK-LABEL: icmp_ult_vi_v8i64:1773; CHECK:       # %bb.0:1774; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1775; CHECK-NEXT:    vmsleu.vi v12, v8, 3, v0.t1776; CHECK-NEXT:    vmv1r.v v0, v121777; CHECK-NEXT:    ret1778  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"ult", <8 x i1> %m, i32 %evl)1779  ret <8 x i1> %v1780}1781 1782define <8 x i1> @icmp_ult_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1783; CHECK-LABEL: icmp_ult_vi_swap_v8i64:1784; CHECK:       # %bb.0:1785; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1786; CHECK-NEXT:    vmsgtu.vi v12, v8, 4, v0.t1787; CHECK-NEXT:    vmv1r.v v0, v121788; CHECK-NEXT:    ret1789  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"ult", <8 x i1> %m, i32 %evl)1790  ret <8 x i1> %v1791}1792 1793define <8 x i1> @icmp_sgt_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1794; CHECK-LABEL: icmp_sgt_vv_v8i64:1795; CHECK:       # %bb.0:1796; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1797; CHECK-NEXT:    vmslt.vv v16, v12, v8, v0.t1798; CHECK-NEXT:    vmv1r.v v0, v161799; CHECK-NEXT:    ret1800  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)1801  ret <8 x i1> %v1802}1803 1804define <8 x i1> @icmp_sgt_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1805; RV32-LABEL: icmp_sgt_vx_v8i64:1806; RV32:       # %bb.0:1807; RV32-NEXT:    addi sp, sp, -161808; RV32-NEXT:    .cfi_def_cfa_offset 161809; RV32-NEXT:    sw a0, 8(sp)1810; RV32-NEXT:    sw a1, 12(sp)1811; RV32-NEXT:    addi a0, sp, 81812; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1813; RV32-NEXT:    vlse64.v v16, (a0), zero1814; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1815; RV32-NEXT:    vmslt.vv v12, v16, v8, v0.t1816; RV32-NEXT:    vmv1r.v v0, v121817; RV32-NEXT:    addi sp, sp, 161818; RV32-NEXT:    .cfi_def_cfa_offset 01819; RV32-NEXT:    ret1820;1821; RV64-LABEL: icmp_sgt_vx_v8i64:1822; RV64:       # %bb.0:1823; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1824; RV64-NEXT:    vmsgt.vx v12, v8, a0, v0.t1825; RV64-NEXT:    vmv1r.v v0, v121826; RV64-NEXT:    ret1827  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01828  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1829  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)1830  ret <8 x i1> %v1831}1832 1833define <8 x i1> @icmp_sgt_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1834; RV32-LABEL: icmp_sgt_vx_swap_v8i64:1835; RV32:       # %bb.0:1836; RV32-NEXT:    addi sp, sp, -161837; RV32-NEXT:    .cfi_def_cfa_offset 161838; RV32-NEXT:    sw a0, 8(sp)1839; RV32-NEXT:    sw a1, 12(sp)1840; RV32-NEXT:    addi a0, sp, 81841; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1842; RV32-NEXT:    vlse64.v v16, (a0), zero1843; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1844; RV32-NEXT:    vmslt.vv v12, v8, v16, v0.t1845; RV32-NEXT:    vmv1r.v v0, v121846; RV32-NEXT:    addi sp, sp, 161847; RV32-NEXT:    .cfi_def_cfa_offset 01848; RV32-NEXT:    ret1849;1850; RV64-LABEL: icmp_sgt_vx_swap_v8i64:1851; RV64:       # %bb.0:1852; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1853; RV64-NEXT:    vmslt.vx v12, v8, a0, v0.t1854; RV64-NEXT:    vmv1r.v v0, v121855; RV64-NEXT:    ret1856  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01857  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1858  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"sgt", <8 x i1> %m, i32 %evl)1859  ret <8 x i1> %v1860}1861 1862define <8 x i1> @icmp_sgt_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1863; CHECK-LABEL: icmp_sgt_vi_v8i64:1864; CHECK:       # %bb.0:1865; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1866; CHECK-NEXT:    vmsgt.vi v12, v8, 4, v0.t1867; CHECK-NEXT:    vmv1r.v v0, v121868; CHECK-NEXT:    ret1869  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"sgt", <8 x i1> %m, i32 %evl)1870  ret <8 x i1> %v1871}1872 1873define <8 x i1> @icmp_sgt_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1874; CHECK-LABEL: icmp_sgt_vi_swap_v8i64:1875; CHECK:       # %bb.0:1876; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1877; CHECK-NEXT:    vmsle.vi v12, v8, 3, v0.t1878; CHECK-NEXT:    vmv1r.v v0, v121879; CHECK-NEXT:    ret1880  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"sgt", <8 x i1> %m, i32 %evl)1881  ret <8 x i1> %v1882}1883 1884define <8 x i1> @icmp_sge_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1885; CHECK-LABEL: icmp_sge_vv_v8i64:1886; CHECK:       # %bb.0:1887; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1888; CHECK-NEXT:    vmsle.vv v16, v12, v8, v0.t1889; CHECK-NEXT:    vmv1r.v v0, v161890; CHECK-NEXT:    ret1891  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)1892  ret <8 x i1> %v1893}1894 1895define <8 x i1> @icmp_sge_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1896; RV32-LABEL: icmp_sge_vx_v8i64:1897; RV32:       # %bb.0:1898; RV32-NEXT:    addi sp, sp, -161899; RV32-NEXT:    .cfi_def_cfa_offset 161900; RV32-NEXT:    sw a0, 8(sp)1901; RV32-NEXT:    sw a1, 12(sp)1902; RV32-NEXT:    addi a0, sp, 81903; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1904; RV32-NEXT:    vlse64.v v16, (a0), zero1905; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1906; RV32-NEXT:    vmsle.vv v12, v16, v8, v0.t1907; RV32-NEXT:    vmv1r.v v0, v121908; RV32-NEXT:    addi sp, sp, 161909; RV32-NEXT:    .cfi_def_cfa_offset 01910; RV32-NEXT:    ret1911;1912; RV64-LABEL: icmp_sge_vx_v8i64:1913; RV64:       # %bb.0:1914; RV64-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1915; RV64-NEXT:    vmv.v.x v16, a01916; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1917; RV64-NEXT:    vmsle.vv v12, v16, v8, v0.t1918; RV64-NEXT:    vmv1r.v v0, v121919; RV64-NEXT:    ret1920  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01921  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1922  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)1923  ret <8 x i1> %v1924}1925 1926define <8 x i1> @icmp_sge_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1927; RV32-LABEL: icmp_sge_vx_swap_v8i64:1928; RV32:       # %bb.0:1929; RV32-NEXT:    addi sp, sp, -161930; RV32-NEXT:    .cfi_def_cfa_offset 161931; RV32-NEXT:    sw a0, 8(sp)1932; RV32-NEXT:    sw a1, 12(sp)1933; RV32-NEXT:    addi a0, sp, 81934; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1935; RV32-NEXT:    vlse64.v v16, (a0), zero1936; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1937; RV32-NEXT:    vmsle.vv v12, v8, v16, v0.t1938; RV32-NEXT:    vmv1r.v v0, v121939; RV32-NEXT:    addi sp, sp, 161940; RV32-NEXT:    .cfi_def_cfa_offset 01941; RV32-NEXT:    ret1942;1943; RV64-LABEL: icmp_sge_vx_swap_v8i64:1944; RV64:       # %bb.0:1945; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1946; RV64-NEXT:    vmsle.vx v12, v8, a0, v0.t1947; RV64-NEXT:    vmv1r.v v0, v121948; RV64-NEXT:    ret1949  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 01950  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer1951  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"sge", <8 x i1> %m, i32 %evl)1952  ret <8 x i1> %v1953}1954 1955define <8 x i1> @icmp_sge_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1956; CHECK-LABEL: icmp_sge_vi_v8i64:1957; CHECK:       # %bb.0:1958; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1959; CHECK-NEXT:    vmsgt.vi v12, v8, 3, v0.t1960; CHECK-NEXT:    vmv1r.v v0, v121961; CHECK-NEXT:    ret1962  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"sge", <8 x i1> %m, i32 %evl)1963  ret <8 x i1> %v1964}1965 1966define <8 x i1> @icmp_sge_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {1967; CHECK-LABEL: icmp_sge_vi_swap_v8i64:1968; CHECK:       # %bb.0:1969; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1970; CHECK-NEXT:    vmsle.vi v12, v8, 4, v0.t1971; CHECK-NEXT:    vmv1r.v v0, v121972; CHECK-NEXT:    ret1973  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"sge", <8 x i1> %m, i32 %evl)1974  ret <8 x i1> %v1975}1976 1977define <8 x i1> @icmp_slt_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {1978; CHECK-LABEL: icmp_slt_vv_v8i64:1979; CHECK:       # %bb.0:1980; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1981; CHECK-NEXT:    vmslt.vv v16, v8, v12, v0.t1982; CHECK-NEXT:    vmv1r.v v0, v161983; CHECK-NEXT:    ret1984  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)1985  ret <8 x i1> %v1986}1987 1988define <8 x i1> @icmp_slt_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {1989; RV32-LABEL: icmp_slt_vx_v8i64:1990; RV32:       # %bb.0:1991; RV32-NEXT:    addi sp, sp, -161992; RV32-NEXT:    .cfi_def_cfa_offset 161993; RV32-NEXT:    sw a0, 8(sp)1994; RV32-NEXT:    sw a1, 12(sp)1995; RV32-NEXT:    addi a0, sp, 81996; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1997; RV32-NEXT:    vlse64.v v16, (a0), zero1998; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1999; RV32-NEXT:    vmslt.vv v12, v8, v16, v0.t2000; RV32-NEXT:    vmv1r.v v0, v122001; RV32-NEXT:    addi sp, sp, 162002; RV32-NEXT:    .cfi_def_cfa_offset 02003; RV32-NEXT:    ret2004;2005; RV64-LABEL: icmp_slt_vx_v8i64:2006; RV64:       # %bb.0:2007; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2008; RV64-NEXT:    vmslt.vx v12, v8, a0, v0.t2009; RV64-NEXT:    vmv1r.v v0, v122010; RV64-NEXT:    ret2011  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 02012  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer2013  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)2014  ret <8 x i1> %v2015}2016 2017define <8 x i1> @icmp_slt_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {2018; RV32-LABEL: icmp_slt_vx_swap_v8i64:2019; RV32:       # %bb.0:2020; RV32-NEXT:    addi sp, sp, -162021; RV32-NEXT:    .cfi_def_cfa_offset 162022; RV32-NEXT:    sw a0, 8(sp)2023; RV32-NEXT:    sw a1, 12(sp)2024; RV32-NEXT:    addi a0, sp, 82025; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma2026; RV32-NEXT:    vlse64.v v16, (a0), zero2027; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma2028; RV32-NEXT:    vmslt.vv v12, v16, v8, v0.t2029; RV32-NEXT:    vmv1r.v v0, v122030; RV32-NEXT:    addi sp, sp, 162031; RV32-NEXT:    .cfi_def_cfa_offset 02032; RV32-NEXT:    ret2033;2034; RV64-LABEL: icmp_slt_vx_swap_v8i64:2035; RV64:       # %bb.0:2036; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2037; RV64-NEXT:    vmsgt.vx v12, v8, a0, v0.t2038; RV64-NEXT:    vmv1r.v v0, v122039; RV64-NEXT:    ret2040  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 02041  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer2042  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"slt", <8 x i1> %m, i32 %evl)2043  ret <8 x i1> %v2044}2045 2046define <8 x i1> @icmp_slt_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {2047; CHECK-LABEL: icmp_slt_vi_v8i64:2048; CHECK:       # %bb.0:2049; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma2050; CHECK-NEXT:    vmsle.vi v12, v8, 3, v0.t2051; CHECK-NEXT:    vmv1r.v v0, v122052; CHECK-NEXT:    ret2053  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"slt", <8 x i1> %m, i32 %evl)2054  ret <8 x i1> %v2055}2056 2057define <8 x i1> @icmp_slt_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {2058; CHECK-LABEL: icmp_slt_vi_swap_v8i64:2059; CHECK:       # %bb.0:2060; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma2061; CHECK-NEXT:    vmsgt.vi v12, v8, 4, v0.t2062; CHECK-NEXT:    vmv1r.v v0, v122063; CHECK-NEXT:    ret2064  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"slt", <8 x i1> %m, i32 %evl)2065  ret <8 x i1> %v2066}2067 2068define <8 x i1> @icmp_sle_vv_v8i64(<8 x i64> %va, <8 x i64> %vb, <8 x i1> %m, i32 zeroext %evl) {2069; CHECK-LABEL: icmp_sle_vv_v8i64:2070; CHECK:       # %bb.0:2071; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma2072; CHECK-NEXT:    vmsle.vv v16, v8, v12, v0.t2073; CHECK-NEXT:    vmv1r.v v0, v162074; CHECK-NEXT:    ret2075  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)2076  ret <8 x i1> %v2077}2078 2079define <8 x i1> @icmp_sle_vx_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {2080; RV32-LABEL: icmp_sle_vx_v8i64:2081; RV32:       # %bb.0:2082; RV32-NEXT:    addi sp, sp, -162083; RV32-NEXT:    .cfi_def_cfa_offset 162084; RV32-NEXT:    sw a0, 8(sp)2085; RV32-NEXT:    sw a1, 12(sp)2086; RV32-NEXT:    addi a0, sp, 82087; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma2088; RV32-NEXT:    vlse64.v v16, (a0), zero2089; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma2090; RV32-NEXT:    vmsle.vv v12, v8, v16, v0.t2091; RV32-NEXT:    vmv1r.v v0, v122092; RV32-NEXT:    addi sp, sp, 162093; RV32-NEXT:    .cfi_def_cfa_offset 02094; RV32-NEXT:    ret2095;2096; RV64-LABEL: icmp_sle_vx_v8i64:2097; RV64:       # %bb.0:2098; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2099; RV64-NEXT:    vmsle.vx v12, v8, a0, v0.t2100; RV64-NEXT:    vmv1r.v v0, v122101; RV64-NEXT:    ret2102  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 02103  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer2104  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)2105  ret <8 x i1> %v2106}2107 2108define <8 x i1> @icmp_sle_vx_swap_v8i64(<8 x i64> %va, i64 %b, <8 x i1> %m, i32 zeroext %evl) {2109; RV32-LABEL: icmp_sle_vx_swap_v8i64:2110; RV32:       # %bb.0:2111; RV32-NEXT:    addi sp, sp, -162112; RV32-NEXT:    .cfi_def_cfa_offset 162113; RV32-NEXT:    sw a0, 8(sp)2114; RV32-NEXT:    sw a1, 12(sp)2115; RV32-NEXT:    addi a0, sp, 82116; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma2117; RV32-NEXT:    vlse64.v v16, (a0), zero2118; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma2119; RV32-NEXT:    vmsle.vv v12, v16, v8, v0.t2120; RV32-NEXT:    vmv1r.v v0, v122121; RV32-NEXT:    addi sp, sp, 162122; RV32-NEXT:    .cfi_def_cfa_offset 02123; RV32-NEXT:    ret2124;2125; RV64-LABEL: icmp_sle_vx_swap_v8i64:2126; RV64:       # %bb.0:2127; RV64-NEXT:    vsetivli zero, 8, e64, m4, ta, ma2128; RV64-NEXT:    vmv.v.x v16, a02129; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2130; RV64-NEXT:    vmsle.vv v12, v16, v8, v0.t2131; RV64-NEXT:    vmv1r.v v0, v122132; RV64-NEXT:    ret2133  %elt.head = insertelement <8 x i64> poison, i64 %b, i32 02134  %vb = shufflevector <8 x i64> %elt.head, <8 x i64> poison, <8 x i32> zeroinitializer2135  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %vb, <8 x i64> %va, metadata !"sle", <8 x i1> %m, i32 %evl)2136  ret <8 x i1> %v2137}2138 2139define <8 x i1> @icmp_sle_vi_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {2140; CHECK-LABEL: icmp_sle_vi_v8i64:2141; CHECK:       # %bb.0:2142; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma2143; CHECK-NEXT:    vmsle.vi v12, v8, 4, v0.t2144; CHECK-NEXT:    vmv1r.v v0, v122145; CHECK-NEXT:    ret2146  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> %va, <8 x i64> splat (i64 4), metadata !"sle", <8 x i1> %m, i32 %evl)2147  ret <8 x i1> %v2148}2149 2150define <8 x i1> @icmp_sle_vi_swap_v8i64(<8 x i64> %va, <8 x i1> %m, i32 zeroext %evl) {2151; CHECK-LABEL: icmp_sle_vi_swap_v8i64:2152; CHECK:       # %bb.0:2153; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma2154; CHECK-NEXT:    vmsgt.vi v12, v8, 3, v0.t2155; CHECK-NEXT:    vmv1r.v v0, v122156; CHECK-NEXT:    ret2157  %v = call <8 x i1> @llvm.vp.icmp.v8i64(<8 x i64> splat (i64 4), <8 x i64> %va, metadata !"sle", <8 x i1> %m, i32 %evl)2158  ret <8 x i1> %v2159}2160