brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.7 KiB · 36847c9 Raw
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