406 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \3; RUN: | FileCheck %s --check-prefixes=CHECK4; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \5; RUN: | FileCheck %s --check-prefixes=CHECK6 7define <2 x i1> @icmp_eq_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {8; CHECK-LABEL: icmp_eq_vv_v2i1:9; CHECK: # %bb.0:10; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma11; CHECK-NEXT: vmxnor.mm v0, v0, v812; CHECK-NEXT: ret13 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"eq", <2 x i1> %m, i32 %evl)14 ret <2 x i1> %v15}16 17define <4 x i1> @icmp_eq_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {18; CHECK-LABEL: icmp_eq_vv_v4i1:19; CHECK: # %bb.0:20; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma21; CHECK-NEXT: vmxnor.mm v0, v0, v822; CHECK-NEXT: ret23 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"eq", <4 x i1> %m, i32 %evl)24 ret <4 x i1> %v25}26 27define <8 x i1> @icmp_eq_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {28; CHECK-LABEL: icmp_eq_vv_v8i1:29; CHECK: # %bb.0:30; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma31; CHECK-NEXT: vmxnor.mm v0, v0, v832; CHECK-NEXT: ret33 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"eq", <8 x i1> %m, i32 %evl)34 ret <8 x i1> %v35}36 37define <16 x i1> @icmp_eq_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {38; CHECK-LABEL: icmp_eq_vv_v16i1:39; CHECK: # %bb.0:40; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma41; CHECK-NEXT: vmxnor.mm v0, v0, v842; CHECK-NEXT: ret43 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"eq", <16 x i1> %m, i32 %evl)44 ret <16 x i1> %v45}46 47define <2 x i1> @icmp_ne_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {48; CHECK-LABEL: icmp_ne_vv_v2i1:49; CHECK: # %bb.0:50; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma51; CHECK-NEXT: vmxor.mm v0, v0, v852; CHECK-NEXT: ret53 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ne", <2 x i1> %m, i32 %evl)54 ret <2 x i1> %v55}56 57define <4 x i1> @icmp_ne_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {58; CHECK-LABEL: icmp_ne_vv_v4i1:59; CHECK: # %bb.0:60; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma61; CHECK-NEXT: vmxor.mm v0, v0, v862; CHECK-NEXT: ret63 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ne", <4 x i1> %m, i32 %evl)64 ret <4 x i1> %v65}66 67define <8 x i1> @icmp_ne_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {68; CHECK-LABEL: icmp_ne_vv_v8i1:69; CHECK: # %bb.0:70; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma71; CHECK-NEXT: vmxor.mm v0, v0, v872; CHECK-NEXT: ret73 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ne", <8 x i1> %m, i32 %evl)74 ret <8 x i1> %v75}76 77define <16 x i1> @icmp_ne_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {78; CHECK-LABEL: icmp_ne_vv_v16i1:79; CHECK: # %bb.0:80; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma81; CHECK-NEXT: vmxor.mm v0, v0, v882; CHECK-NEXT: ret83 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ne", <16 x i1> %m, i32 %evl)84 ret <16 x i1> %v85}86 87define <2 x i1> @icmp_slt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {88; CHECK-LABEL: icmp_slt_vv_v2i1:89; CHECK: # %bb.0:90; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma91; CHECK-NEXT: vmandn.mm v0, v0, v892; CHECK-NEXT: ret93 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"slt", <2 x i1> %m, i32 %evl)94 ret <2 x i1> %v95}96 97define <4 x i1> @icmp_slt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {98; CHECK-LABEL: icmp_slt_vv_v4i1:99; CHECK: # %bb.0:100; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma101; CHECK-NEXT: vmandn.mm v0, v0, v8102; CHECK-NEXT: ret103 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"slt", <4 x i1> %m, i32 %evl)104 ret <4 x i1> %v105}106 107define <8 x i1> @icmp_slt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {108; CHECK-LABEL: icmp_slt_vv_v8i1:109; CHECK: # %bb.0:110; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma111; CHECK-NEXT: vmandn.mm v0, v0, v8112; CHECK-NEXT: ret113 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"slt", <8 x i1> %m, i32 %evl)114 ret <8 x i1> %v115}116 117define <16 x i1> @icmp_slt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {118; CHECK-LABEL: icmp_slt_vv_v16i1:119; CHECK: # %bb.0:120; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma121; CHECK-NEXT: vmandn.mm v0, v0, v8122; CHECK-NEXT: ret123 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"slt", <16 x i1> %m, i32 %evl)124 ret <16 x i1> %v125}126 127define <2 x i1> @icmp_ult_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {128; CHECK-LABEL: icmp_ult_vv_v2i1:129; CHECK: # %bb.0:130; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma131; CHECK-NEXT: vmandn.mm v0, v8, v0132; CHECK-NEXT: ret133 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ult", <2 x i1> %m, i32 %evl)134 ret <2 x i1> %v135}136 137define <4 x i1> @icmp_ult_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {138; CHECK-LABEL: icmp_ult_vv_v4i1:139; CHECK: # %bb.0:140; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma141; CHECK-NEXT: vmandn.mm v0, v8, v0142; CHECK-NEXT: ret143 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ult", <4 x i1> %m, i32 %evl)144 ret <4 x i1> %v145}146 147define <8 x i1> @icmp_ult_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {148; CHECK-LABEL: icmp_ult_vv_v8i1:149; CHECK: # %bb.0:150; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma151; CHECK-NEXT: vmandn.mm v0, v8, v0152; CHECK-NEXT: ret153 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ult", <8 x i1> %m, i32 %evl)154 ret <8 x i1> %v155}156 157define <16 x i1> @icmp_ult_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {158; CHECK-LABEL: icmp_ult_vv_v16i1:159; CHECK: # %bb.0:160; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma161; CHECK-NEXT: vmandn.mm v0, v8, v0162; CHECK-NEXT: ret163 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ult", <16 x i1> %m, i32 %evl)164 ret <16 x i1> %v165}166 167define <2 x i1> @icmp_sgt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {168; CHECK-LABEL: icmp_sgt_vv_v2i1:169; CHECK: # %bb.0:170; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma171; CHECK-NEXT: vmandn.mm v0, v8, v0172; CHECK-NEXT: ret173 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sgt", <2 x i1> %m, i32 %evl)174 ret <2 x i1> %v175}176 177define <4 x i1> @icmp_sgt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {178; CHECK-LABEL: icmp_sgt_vv_v4i1:179; CHECK: # %bb.0:180; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma181; CHECK-NEXT: vmandn.mm v0, v8, v0182; CHECK-NEXT: ret183 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sgt", <4 x i1> %m, i32 %evl)184 ret <4 x i1> %v185}186 187define <8 x i1> @icmp_sgt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {188; CHECK-LABEL: icmp_sgt_vv_v8i1:189; CHECK: # %bb.0:190; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma191; CHECK-NEXT: vmandn.mm v0, v8, v0192; CHECK-NEXT: ret193 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl)194 ret <8 x i1> %v195}196 197define <16 x i1> @icmp_sgt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {198; CHECK-LABEL: icmp_sgt_vv_v16i1:199; CHECK: # %bb.0:200; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma201; CHECK-NEXT: vmandn.mm v0, v8, v0202; CHECK-NEXT: ret203 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sgt", <16 x i1> %m, i32 %evl)204 ret <16 x i1> %v205}206 207define <2 x i1> @icmp_ugt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {208; CHECK-LABEL: icmp_ugt_vv_v2i1:209; CHECK: # %bb.0:210; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma211; CHECK-NEXT: vmandn.mm v0, v0, v8212; CHECK-NEXT: ret213 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ugt", <2 x i1> %m, i32 %evl)214 ret <2 x i1> %v215}216 217define <4 x i1> @icmp_ugt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {218; CHECK-LABEL: icmp_ugt_vv_v4i1:219; CHECK: # %bb.0:220; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma221; CHECK-NEXT: vmandn.mm v0, v0, v8222; CHECK-NEXT: ret223 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ugt", <4 x i1> %m, i32 %evl)224 ret <4 x i1> %v225}226 227define <8 x i1> @icmp_ugt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {228; CHECK-LABEL: icmp_ugt_vv_v8i1:229; CHECK: # %bb.0:230; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma231; CHECK-NEXT: vmandn.mm v0, v0, v8232; CHECK-NEXT: ret233 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl)234 ret <8 x i1> %v235}236 237define <16 x i1> @icmp_ugt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {238; CHECK-LABEL: icmp_ugt_vv_v16i1:239; CHECK: # %bb.0:240; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma241; CHECK-NEXT: vmandn.mm v0, v0, v8242; CHECK-NEXT: ret243 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ugt", <16 x i1> %m, i32 %evl)244 ret <16 x i1> %v245}246 247define <2 x i1> @icmp_sle_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {248; CHECK-LABEL: icmp_sle_vv_v2i1:249; CHECK: # %bb.0:250; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma251; CHECK-NEXT: vmxnor.mm v0, v8, v0252; CHECK-NEXT: ret253 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sle", <2 x i1> %m, i32 %evl)254 ret <2 x i1> %v255}256 257define <4 x i1> @icmp_sle_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {258; CHECK-LABEL: icmp_sle_vv_v4i1:259; CHECK: # %bb.0:260; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma261; CHECK-NEXT: vmxnor.mm v0, v8, v0262; CHECK-NEXT: ret263 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sle", <4 x i1> %m, i32 %evl)264 ret <4 x i1> %v265}266 267define <8 x i1> @icmp_sle_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {268; CHECK-LABEL: icmp_sle_vv_v8i1:269; CHECK: # %bb.0:270; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma271; CHECK-NEXT: vmxnor.mm v0, v8, v0272; CHECK-NEXT: ret273 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sle", <8 x i1> %m, i32 %evl)274 ret <8 x i1> %v275}276 277define <16 x i1> @icmp_sle_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {278; CHECK-LABEL: icmp_sle_vv_v16i1:279; CHECK: # %bb.0:280; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma281; CHECK-NEXT: vmxnor.mm v0, v8, v0282; CHECK-NEXT: ret283 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sle", <16 x i1> %m, i32 %evl)284 ret <16 x i1> %v285}286 287define <2 x i1> @icmp_ule_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {288; CHECK-LABEL: icmp_ule_vv_v2i1:289; CHECK: # %bb.0:290; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma291; CHECK-NEXT: vmxnor.mm v0, v0, v8292; CHECK-NEXT: ret293 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ule", <2 x i1> %m, i32 %evl)294 ret <2 x i1> %v295}296 297define <4 x i1> @icmp_ule_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {298; CHECK-LABEL: icmp_ule_vv_v4i1:299; CHECK: # %bb.0:300; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma301; CHECK-NEXT: vmxnor.mm v0, v0, v8302; CHECK-NEXT: ret303 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ule", <4 x i1> %m, i32 %evl)304 ret <4 x i1> %v305}306 307define <8 x i1> @icmp_ule_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {308; CHECK-LABEL: icmp_ule_vv_v8i1:309; CHECK: # %bb.0:310; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma311; CHECK-NEXT: vmxnor.mm v0, v0, v8312; CHECK-NEXT: ret313 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ule", <8 x i1> %m, i32 %evl)314 ret <8 x i1> %v315}316 317define <16 x i1> @icmp_ule_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {318; CHECK-LABEL: icmp_ule_vv_v16i1:319; CHECK: # %bb.0:320; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma321; CHECK-NEXT: vmxnor.mm v0, v0, v8322; CHECK-NEXT: ret323 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ule", <16 x i1> %m, i32 %evl)324 ret <16 x i1> %v325}326 327define <2 x i1> @icmp_sge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {328; CHECK-LABEL: icmp_sge_vv_v2i1:329; CHECK: # %bb.0:330; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma331; CHECK-NEXT: vmxnor.mm v0, v0, v8332; CHECK-NEXT: ret333 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sge", <2 x i1> %m, i32 %evl)334 ret <2 x i1> %v335}336 337define <4 x i1> @icmp_sge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {338; CHECK-LABEL: icmp_sge_vv_v4i1:339; CHECK: # %bb.0:340; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma341; CHECK-NEXT: vmxnor.mm v0, v0, v8342; CHECK-NEXT: ret343 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sge", <4 x i1> %m, i32 %evl)344 ret <4 x i1> %v345}346 347define <8 x i1> @icmp_sge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {348; CHECK-LABEL: icmp_sge_vv_v8i1:349; CHECK: # %bb.0:350; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma351; CHECK-NEXT: vmxnor.mm v0, v0, v8352; CHECK-NEXT: ret353 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sge", <8 x i1> %m, i32 %evl)354 ret <8 x i1> %v355}356 357define <16 x i1> @icmp_sge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {358; CHECK-LABEL: icmp_sge_vv_v16i1:359; CHECK: # %bb.0:360; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma361; CHECK-NEXT: vmxnor.mm v0, v0, v8362; CHECK-NEXT: ret363 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sge", <16 x i1> %m, i32 %evl)364 ret <16 x i1> %v365}366 367define <2 x i1> @icmp_uge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) {368; CHECK-LABEL: icmp_uge_vv_v2i1:369; CHECK: # %bb.0:370; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma371; CHECK-NEXT: vmxnor.mm v0, v8, v0372; CHECK-NEXT: ret373 %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"uge", <2 x i1> %m, i32 %evl)374 ret <2 x i1> %v375}376 377define <4 x i1> @icmp_uge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) {378; CHECK-LABEL: icmp_uge_vv_v4i1:379; CHECK: # %bb.0:380; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma381; CHECK-NEXT: vmxnor.mm v0, v8, v0382; CHECK-NEXT: ret383 %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"uge", <4 x i1> %m, i32 %evl)384 ret <4 x i1> %v385}386 387define <8 x i1> @icmp_uge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) {388; CHECK-LABEL: icmp_uge_vv_v8i1:389; CHECK: # %bb.0:390; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma391; CHECK-NEXT: vmxnor.mm v0, v8, v0392; CHECK-NEXT: ret393 %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"uge", <8 x i1> %m, i32 %evl)394 ret <8 x i1> %v395}396 397define <16 x i1> @icmp_uge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) {398; CHECK-LABEL: icmp_uge_vv_v16i1:399; CHECK: # %bb.0:400; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma401; CHECK-NEXT: vmxnor.mm v0, v8, v0402; CHECK-NEXT: ret403 %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"uge", <16 x i1> %m, i32 %evl)404 ret <16 x i1> %v405}406