2237 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \3; RUN: -verify-machineinstrs | FileCheck %s4; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \5; RUN: -verify-machineinstrs | FileCheck %s6 7define <vscale x 1 x i8> @intrinsic_vsll_vv_nxv1i8_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {8; CHECK-LABEL: intrinsic_vsll_vv_nxv1i8_nxv1i8_nxv1i8:9; CHECK: # %bb.0: # %entry10; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma11; CHECK-NEXT: vsll.vv v8, v8, v912; CHECK-NEXT: ret13entry:14 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.nxv1i8.nxv1i8(15 <vscale x 1 x i8> poison,16 <vscale x 1 x i8> %0,17 <vscale x 1 x i8> %1,18 iXLen %2)19 20 ret <vscale x 1 x i8> %a21}22 23define <vscale x 1 x i8> @intrinsic_vsll_mask_vv_nxv1i8_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {24; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv1i8_nxv1i8_nxv1i8:25; CHECK: # %bb.0: # %entry26; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu27; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t28; CHECK-NEXT: ret29entry:30 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.mask.nxv1i8.nxv1i8(31 <vscale x 1 x i8> %0,32 <vscale x 1 x i8> %1,33 <vscale x 1 x i8> %2,34 <vscale x 1 x i1> %3,35 iXLen %4, iXLen 1)36 37 ret <vscale x 1 x i8> %a38}39 40define <vscale x 2 x i8> @intrinsic_vsll_vv_nxv2i8_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {41; CHECK-LABEL: intrinsic_vsll_vv_nxv2i8_nxv2i8_nxv2i8:42; CHECK: # %bb.0: # %entry43; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma44; CHECK-NEXT: vsll.vv v8, v8, v945; CHECK-NEXT: ret46entry:47 %a = call <vscale x 2 x i8> @llvm.riscv.vsll.nxv2i8.nxv2i8(48 <vscale x 2 x i8> poison,49 <vscale x 2 x i8> %0,50 <vscale x 2 x i8> %1,51 iXLen %2)52 53 ret <vscale x 2 x i8> %a54}55 56define <vscale x 2 x i8> @intrinsic_vsll_mask_vv_nxv2i8_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {57; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv2i8_nxv2i8_nxv2i8:58; CHECK: # %bb.0: # %entry59; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, mu60; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t61; CHECK-NEXT: ret62entry:63 %a = call <vscale x 2 x i8> @llvm.riscv.vsll.mask.nxv2i8.nxv2i8(64 <vscale x 2 x i8> %0,65 <vscale x 2 x i8> %1,66 <vscale x 2 x i8> %2,67 <vscale x 2 x i1> %3,68 iXLen %4, iXLen 1)69 70 ret <vscale x 2 x i8> %a71}72 73define <vscale x 4 x i8> @intrinsic_vsll_vv_nxv4i8_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {74; CHECK-LABEL: intrinsic_vsll_vv_nxv4i8_nxv4i8_nxv4i8:75; CHECK: # %bb.0: # %entry76; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma77; CHECK-NEXT: vsll.vv v8, v8, v978; CHECK-NEXT: ret79entry:80 %a = call <vscale x 4 x i8> @llvm.riscv.vsll.nxv4i8.nxv4i8(81 <vscale x 4 x i8> poison,82 <vscale x 4 x i8> %0,83 <vscale x 4 x i8> %1,84 iXLen %2)85 86 ret <vscale x 4 x i8> %a87}88 89define <vscale x 4 x i8> @intrinsic_vsll_mask_vv_nxv4i8_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {90; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv4i8_nxv4i8_nxv4i8:91; CHECK: # %bb.0: # %entry92; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, mu93; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t94; CHECK-NEXT: ret95entry:96 %a = call <vscale x 4 x i8> @llvm.riscv.vsll.mask.nxv4i8.nxv4i8(97 <vscale x 4 x i8> %0,98 <vscale x 4 x i8> %1,99 <vscale x 4 x i8> %2,100 <vscale x 4 x i1> %3,101 iXLen %4, iXLen 1)102 103 ret <vscale x 4 x i8> %a104}105 106define <vscale x 8 x i8> @intrinsic_vsll_vv_nxv8i8_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {107; CHECK-LABEL: intrinsic_vsll_vv_nxv8i8_nxv8i8_nxv8i8:108; CHECK: # %bb.0: # %entry109; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma110; CHECK-NEXT: vsll.vv v8, v8, v9111; CHECK-NEXT: ret112entry:113 %a = call <vscale x 8 x i8> @llvm.riscv.vsll.nxv8i8.nxv8i8(114 <vscale x 8 x i8> poison,115 <vscale x 8 x i8> %0,116 <vscale x 8 x i8> %1,117 iXLen %2)118 119 ret <vscale x 8 x i8> %a120}121 122define <vscale x 8 x i8> @intrinsic_vsll_mask_vv_nxv8i8_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {123; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv8i8_nxv8i8_nxv8i8:124; CHECK: # %bb.0: # %entry125; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, mu126; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t127; CHECK-NEXT: ret128entry:129 %a = call <vscale x 8 x i8> @llvm.riscv.vsll.mask.nxv8i8.nxv8i8(130 <vscale x 8 x i8> %0,131 <vscale x 8 x i8> %1,132 <vscale x 8 x i8> %2,133 <vscale x 8 x i1> %3,134 iXLen %4, iXLen 1)135 136 ret <vscale x 8 x i8> %a137}138 139define <vscale x 16 x i8> @intrinsic_vsll_vv_nxv16i8_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {140; CHECK-LABEL: intrinsic_vsll_vv_nxv16i8_nxv16i8_nxv16i8:141; CHECK: # %bb.0: # %entry142; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma143; CHECK-NEXT: vsll.vv v8, v8, v10144; CHECK-NEXT: ret145entry:146 %a = call <vscale x 16 x i8> @llvm.riscv.vsll.nxv16i8.nxv16i8(147 <vscale x 16 x i8> poison,148 <vscale x 16 x i8> %0,149 <vscale x 16 x i8> %1,150 iXLen %2)151 152 ret <vscale x 16 x i8> %a153}154 155define <vscale x 16 x i8> @intrinsic_vsll_mask_vv_nxv16i8_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {156; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv16i8_nxv16i8_nxv16i8:157; CHECK: # %bb.0: # %entry158; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, mu159; CHECK-NEXT: vsll.vv v8, v10, v12, v0.t160; CHECK-NEXT: ret161entry:162 %a = call <vscale x 16 x i8> @llvm.riscv.vsll.mask.nxv16i8.nxv16i8(163 <vscale x 16 x i8> %0,164 <vscale x 16 x i8> %1,165 <vscale x 16 x i8> %2,166 <vscale x 16 x i1> %3,167 iXLen %4, iXLen 1)168 169 ret <vscale x 16 x i8> %a170}171 172define <vscale x 32 x i8> @intrinsic_vsll_vv_nxv32i8_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {173; CHECK-LABEL: intrinsic_vsll_vv_nxv32i8_nxv32i8_nxv32i8:174; CHECK: # %bb.0: # %entry175; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma176; CHECK-NEXT: vsll.vv v8, v8, v12177; CHECK-NEXT: ret178entry:179 %a = call <vscale x 32 x i8> @llvm.riscv.vsll.nxv32i8.nxv32i8(180 <vscale x 32 x i8> poison,181 <vscale x 32 x i8> %0,182 <vscale x 32 x i8> %1,183 iXLen %2)184 185 ret <vscale x 32 x i8> %a186}187 188define <vscale x 32 x i8> @intrinsic_vsll_mask_vv_nxv32i8_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {189; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv32i8_nxv32i8_nxv32i8:190; CHECK: # %bb.0: # %entry191; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, mu192; CHECK-NEXT: vsll.vv v8, v12, v16, v0.t193; CHECK-NEXT: ret194entry:195 %a = call <vscale x 32 x i8> @llvm.riscv.vsll.mask.nxv32i8.nxv32i8(196 <vscale x 32 x i8> %0,197 <vscale x 32 x i8> %1,198 <vscale x 32 x i8> %2,199 <vscale x 32 x i1> %3,200 iXLen %4, iXLen 1)201 202 ret <vscale x 32 x i8> %a203}204 205define <vscale x 64 x i8> @intrinsic_vsll_vv_nxv64i8_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, iXLen %2) nounwind {206; CHECK-LABEL: intrinsic_vsll_vv_nxv64i8_nxv64i8_nxv64i8:207; CHECK: # %bb.0: # %entry208; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma209; CHECK-NEXT: vsll.vv v8, v8, v16210; CHECK-NEXT: ret211entry:212 %a = call <vscale x 64 x i8> @llvm.riscv.vsll.nxv64i8.nxv64i8(213 <vscale x 64 x i8> poison,214 <vscale x 64 x i8> %0,215 <vscale x 64 x i8> %1,216 iXLen %2)217 218 ret <vscale x 64 x i8> %a219}220 221define <vscale x 64 x i8> @intrinsic_vsll_mask_vv_nxv64i8_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, <vscale x 64 x i8> %2, <vscale x 64 x i1> %3, iXLen %4) nounwind {222; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv64i8_nxv64i8_nxv64i8:223; CHECK: # %bb.0: # %entry224; CHECK-NEXT: vl8r.v v24, (a0)225; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, mu226; CHECK-NEXT: vsll.vv v8, v16, v24, v0.t227; CHECK-NEXT: ret228entry:229 %a = call <vscale x 64 x i8> @llvm.riscv.vsll.mask.nxv64i8.nxv64i8(230 <vscale x 64 x i8> %0,231 <vscale x 64 x i8> %1,232 <vscale x 64 x i8> %2,233 <vscale x 64 x i1> %3,234 iXLen %4, iXLen 1)235 236 ret <vscale x 64 x i8> %a237}238 239define <vscale x 1 x i16> @intrinsic_vsll_vv_nxv1i16_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {240; CHECK-LABEL: intrinsic_vsll_vv_nxv1i16_nxv1i16_nxv1i16:241; CHECK: # %bb.0: # %entry242; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma243; CHECK-NEXT: vsll.vv v8, v8, v9244; CHECK-NEXT: ret245entry:246 %a = call <vscale x 1 x i16> @llvm.riscv.vsll.nxv1i16.nxv1i16(247 <vscale x 1 x i16> poison,248 <vscale x 1 x i16> %0,249 <vscale x 1 x i16> %1,250 iXLen %2)251 252 ret <vscale x 1 x i16> %a253}254 255define <vscale x 1 x i16> @intrinsic_vsll_mask_vv_nxv1i16_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {256; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv1i16_nxv1i16_nxv1i16:257; CHECK: # %bb.0: # %entry258; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, mu259; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t260; CHECK-NEXT: ret261entry:262 %a = call <vscale x 1 x i16> @llvm.riscv.vsll.mask.nxv1i16.nxv1i16(263 <vscale x 1 x i16> %0,264 <vscale x 1 x i16> %1,265 <vscale x 1 x i16> %2,266 <vscale x 1 x i1> %3,267 iXLen %4, iXLen 1)268 269 ret <vscale x 1 x i16> %a270}271 272define <vscale x 2 x i16> @intrinsic_vsll_vv_nxv2i16_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {273; CHECK-LABEL: intrinsic_vsll_vv_nxv2i16_nxv2i16_nxv2i16:274; CHECK: # %bb.0: # %entry275; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma276; CHECK-NEXT: vsll.vv v8, v8, v9277; CHECK-NEXT: ret278entry:279 %a = call <vscale x 2 x i16> @llvm.riscv.vsll.nxv2i16.nxv2i16(280 <vscale x 2 x i16> poison,281 <vscale x 2 x i16> %0,282 <vscale x 2 x i16> %1,283 iXLen %2)284 285 ret <vscale x 2 x i16> %a286}287 288define <vscale x 2 x i16> @intrinsic_vsll_mask_vv_nxv2i16_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {289; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv2i16_nxv2i16_nxv2i16:290; CHECK: # %bb.0: # %entry291; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, mu292; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t293; CHECK-NEXT: ret294entry:295 %a = call <vscale x 2 x i16> @llvm.riscv.vsll.mask.nxv2i16.nxv2i16(296 <vscale x 2 x i16> %0,297 <vscale x 2 x i16> %1,298 <vscale x 2 x i16> %2,299 <vscale x 2 x i1> %3,300 iXLen %4, iXLen 1)301 302 ret <vscale x 2 x i16> %a303}304 305define <vscale x 4 x i16> @intrinsic_vsll_vv_nxv4i16_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {306; CHECK-LABEL: intrinsic_vsll_vv_nxv4i16_nxv4i16_nxv4i16:307; CHECK: # %bb.0: # %entry308; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma309; CHECK-NEXT: vsll.vv v8, v8, v9310; CHECK-NEXT: ret311entry:312 %a = call <vscale x 4 x i16> @llvm.riscv.vsll.nxv4i16.nxv4i16(313 <vscale x 4 x i16> poison,314 <vscale x 4 x i16> %0,315 <vscale x 4 x i16> %1,316 iXLen %2)317 318 ret <vscale x 4 x i16> %a319}320 321define <vscale x 4 x i16> @intrinsic_vsll_mask_vv_nxv4i16_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {322; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv4i16_nxv4i16_nxv4i16:323; CHECK: # %bb.0: # %entry324; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, mu325; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t326; CHECK-NEXT: ret327entry:328 %a = call <vscale x 4 x i16> @llvm.riscv.vsll.mask.nxv4i16.nxv4i16(329 <vscale x 4 x i16> %0,330 <vscale x 4 x i16> %1,331 <vscale x 4 x i16> %2,332 <vscale x 4 x i1> %3,333 iXLen %4, iXLen 1)334 335 ret <vscale x 4 x i16> %a336}337 338define <vscale x 8 x i16> @intrinsic_vsll_vv_nxv8i16_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {339; CHECK-LABEL: intrinsic_vsll_vv_nxv8i16_nxv8i16_nxv8i16:340; CHECK: # %bb.0: # %entry341; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma342; CHECK-NEXT: vsll.vv v8, v8, v10343; CHECK-NEXT: ret344entry:345 %a = call <vscale x 8 x i16> @llvm.riscv.vsll.nxv8i16.nxv8i16(346 <vscale x 8 x i16> poison,347 <vscale x 8 x i16> %0,348 <vscale x 8 x i16> %1,349 iXLen %2)350 351 ret <vscale x 8 x i16> %a352}353 354define <vscale x 8 x i16> @intrinsic_vsll_mask_vv_nxv8i16_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {355; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv8i16_nxv8i16_nxv8i16:356; CHECK: # %bb.0: # %entry357; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, mu358; CHECK-NEXT: vsll.vv v8, v10, v12, v0.t359; CHECK-NEXT: ret360entry:361 %a = call <vscale x 8 x i16> @llvm.riscv.vsll.mask.nxv8i16.nxv8i16(362 <vscale x 8 x i16> %0,363 <vscale x 8 x i16> %1,364 <vscale x 8 x i16> %2,365 <vscale x 8 x i1> %3,366 iXLen %4, iXLen 1)367 368 ret <vscale x 8 x i16> %a369}370 371define <vscale x 16 x i16> @intrinsic_vsll_vv_nxv16i16_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {372; CHECK-LABEL: intrinsic_vsll_vv_nxv16i16_nxv16i16_nxv16i16:373; CHECK: # %bb.0: # %entry374; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma375; CHECK-NEXT: vsll.vv v8, v8, v12376; CHECK-NEXT: ret377entry:378 %a = call <vscale x 16 x i16> @llvm.riscv.vsll.nxv16i16.nxv16i16(379 <vscale x 16 x i16> poison,380 <vscale x 16 x i16> %0,381 <vscale x 16 x i16> %1,382 iXLen %2)383 384 ret <vscale x 16 x i16> %a385}386 387define <vscale x 16 x i16> @intrinsic_vsll_mask_vv_nxv16i16_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {388; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv16i16_nxv16i16_nxv16i16:389; CHECK: # %bb.0: # %entry390; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, mu391; CHECK-NEXT: vsll.vv v8, v12, v16, v0.t392; CHECK-NEXT: ret393entry:394 %a = call <vscale x 16 x i16> @llvm.riscv.vsll.mask.nxv16i16.nxv16i16(395 <vscale x 16 x i16> %0,396 <vscale x 16 x i16> %1,397 <vscale x 16 x i16> %2,398 <vscale x 16 x i1> %3,399 iXLen %4, iXLen 1)400 401 ret <vscale x 16 x i16> %a402}403 404define <vscale x 32 x i16> @intrinsic_vsll_vv_nxv32i16_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {405; CHECK-LABEL: intrinsic_vsll_vv_nxv32i16_nxv32i16_nxv32i16:406; CHECK: # %bb.0: # %entry407; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma408; CHECK-NEXT: vsll.vv v8, v8, v16409; CHECK-NEXT: ret410entry:411 %a = call <vscale x 32 x i16> @llvm.riscv.vsll.nxv32i16.nxv32i16(412 <vscale x 32 x i16> poison,413 <vscale x 32 x i16> %0,414 <vscale x 32 x i16> %1,415 iXLen %2)416 417 ret <vscale x 32 x i16> %a418}419 420define <vscale x 32 x i16> @intrinsic_vsll_mask_vv_nxv32i16_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, <vscale x 32 x i16> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {421; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv32i16_nxv32i16_nxv32i16:422; CHECK: # %bb.0: # %entry423; CHECK-NEXT: vl8re16.v v24, (a0)424; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu425; CHECK-NEXT: vsll.vv v8, v16, v24, v0.t426; CHECK-NEXT: ret427entry:428 %a = call <vscale x 32 x i16> @llvm.riscv.vsll.mask.nxv32i16.nxv32i16(429 <vscale x 32 x i16> %0,430 <vscale x 32 x i16> %1,431 <vscale x 32 x i16> %2,432 <vscale x 32 x i1> %3,433 iXLen %4, iXLen 1)434 435 ret <vscale x 32 x i16> %a436}437 438define <vscale x 1 x i32> @intrinsic_vsll_vv_nxv1i32_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {439; CHECK-LABEL: intrinsic_vsll_vv_nxv1i32_nxv1i32_nxv1i32:440; CHECK: # %bb.0: # %entry441; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma442; CHECK-NEXT: vsll.vv v8, v8, v9443; CHECK-NEXT: ret444entry:445 %a = call <vscale x 1 x i32> @llvm.riscv.vsll.nxv1i32.nxv1i32(446 <vscale x 1 x i32> poison,447 <vscale x 1 x i32> %0,448 <vscale x 1 x i32> %1,449 iXLen %2)450 451 ret <vscale x 1 x i32> %a452}453 454define <vscale x 1 x i32> @intrinsic_vsll_mask_vv_nxv1i32_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {455; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv1i32_nxv1i32_nxv1i32:456; CHECK: # %bb.0: # %entry457; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, mu458; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t459; CHECK-NEXT: ret460entry:461 %a = call <vscale x 1 x i32> @llvm.riscv.vsll.mask.nxv1i32.nxv1i32(462 <vscale x 1 x i32> %0,463 <vscale x 1 x i32> %1,464 <vscale x 1 x i32> %2,465 <vscale x 1 x i1> %3,466 iXLen %4, iXLen 1)467 468 ret <vscale x 1 x i32> %a469}470 471define <vscale x 2 x i32> @intrinsic_vsll_vv_nxv2i32_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {472; CHECK-LABEL: intrinsic_vsll_vv_nxv2i32_nxv2i32_nxv2i32:473; CHECK: # %bb.0: # %entry474; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma475; CHECK-NEXT: vsll.vv v8, v8, v9476; CHECK-NEXT: ret477entry:478 %a = call <vscale x 2 x i32> @llvm.riscv.vsll.nxv2i32.nxv2i32(479 <vscale x 2 x i32> poison,480 <vscale x 2 x i32> %0,481 <vscale x 2 x i32> %1,482 iXLen %2)483 484 ret <vscale x 2 x i32> %a485}486 487define <vscale x 2 x i32> @intrinsic_vsll_mask_vv_nxv2i32_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {488; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv2i32_nxv2i32_nxv2i32:489; CHECK: # %bb.0: # %entry490; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, mu491; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t492; CHECK-NEXT: ret493entry:494 %a = call <vscale x 2 x i32> @llvm.riscv.vsll.mask.nxv2i32.nxv2i32(495 <vscale x 2 x i32> %0,496 <vscale x 2 x i32> %1,497 <vscale x 2 x i32> %2,498 <vscale x 2 x i1> %3,499 iXLen %4, iXLen 1)500 501 ret <vscale x 2 x i32> %a502}503 504define <vscale x 4 x i32> @intrinsic_vsll_vv_nxv4i32_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {505; CHECK-LABEL: intrinsic_vsll_vv_nxv4i32_nxv4i32_nxv4i32:506; CHECK: # %bb.0: # %entry507; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma508; CHECK-NEXT: vsll.vv v8, v8, v10509; CHECK-NEXT: ret510entry:511 %a = call <vscale x 4 x i32> @llvm.riscv.vsll.nxv4i32.nxv4i32(512 <vscale x 4 x i32> poison,513 <vscale x 4 x i32> %0,514 <vscale x 4 x i32> %1,515 iXLen %2)516 517 ret <vscale x 4 x i32> %a518}519 520define <vscale x 4 x i32> @intrinsic_vsll_mask_vv_nxv4i32_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {521; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv4i32_nxv4i32_nxv4i32:522; CHECK: # %bb.0: # %entry523; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, mu524; CHECK-NEXT: vsll.vv v8, v10, v12, v0.t525; CHECK-NEXT: ret526entry:527 %a = call <vscale x 4 x i32> @llvm.riscv.vsll.mask.nxv4i32.nxv4i32(528 <vscale x 4 x i32> %0,529 <vscale x 4 x i32> %1,530 <vscale x 4 x i32> %2,531 <vscale x 4 x i1> %3,532 iXLen %4, iXLen 1)533 534 ret <vscale x 4 x i32> %a535}536 537define <vscale x 8 x i32> @intrinsic_vsll_vv_nxv8i32_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {538; CHECK-LABEL: intrinsic_vsll_vv_nxv8i32_nxv8i32_nxv8i32:539; CHECK: # %bb.0: # %entry540; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma541; CHECK-NEXT: vsll.vv v8, v8, v12542; CHECK-NEXT: ret543entry:544 %a = call <vscale x 8 x i32> @llvm.riscv.vsll.nxv8i32.nxv8i32(545 <vscale x 8 x i32> poison,546 <vscale x 8 x i32> %0,547 <vscale x 8 x i32> %1,548 iXLen %2)549 550 ret <vscale x 8 x i32> %a551}552 553define <vscale x 8 x i32> @intrinsic_vsll_mask_vv_nxv8i32_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {554; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv8i32_nxv8i32_nxv8i32:555; CHECK: # %bb.0: # %entry556; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, mu557; CHECK-NEXT: vsll.vv v8, v12, v16, v0.t558; CHECK-NEXT: ret559entry:560 %a = call <vscale x 8 x i32> @llvm.riscv.vsll.mask.nxv8i32.nxv8i32(561 <vscale x 8 x i32> %0,562 <vscale x 8 x i32> %1,563 <vscale x 8 x i32> %2,564 <vscale x 8 x i1> %3,565 iXLen %4, iXLen 1)566 567 ret <vscale x 8 x i32> %a568}569 570define <vscale x 16 x i32> @intrinsic_vsll_vv_nxv16i32_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {571; CHECK-LABEL: intrinsic_vsll_vv_nxv16i32_nxv16i32_nxv16i32:572; CHECK: # %bb.0: # %entry573; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma574; CHECK-NEXT: vsll.vv v8, v8, v16575; CHECK-NEXT: ret576entry:577 %a = call <vscale x 16 x i32> @llvm.riscv.vsll.nxv16i32.nxv16i32(578 <vscale x 16 x i32> poison,579 <vscale x 16 x i32> %0,580 <vscale x 16 x i32> %1,581 iXLen %2)582 583 ret <vscale x 16 x i32> %a584}585 586define <vscale x 16 x i32> @intrinsic_vsll_mask_vv_nxv16i32_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {587; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv16i32_nxv16i32_nxv16i32:588; CHECK: # %bb.0: # %entry589; CHECK-NEXT: vl8re32.v v24, (a0)590; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu591; CHECK-NEXT: vsll.vv v8, v16, v24, v0.t592; CHECK-NEXT: ret593entry:594 %a = call <vscale x 16 x i32> @llvm.riscv.vsll.mask.nxv16i32.nxv16i32(595 <vscale x 16 x i32> %0,596 <vscale x 16 x i32> %1,597 <vscale x 16 x i32> %2,598 <vscale x 16 x i1> %3,599 iXLen %4, iXLen 1)600 601 ret <vscale x 16 x i32> %a602}603 604define <vscale x 1 x i64> @intrinsic_vsll_vv_nxv1i64_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2) nounwind {605; CHECK-LABEL: intrinsic_vsll_vv_nxv1i64_nxv1i64_nxv1i64:606; CHECK: # %bb.0: # %entry607; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma608; CHECK-NEXT: vsll.vv v8, v8, v9609; CHECK-NEXT: ret610entry:611 %a = call <vscale x 1 x i64> @llvm.riscv.vsll.nxv1i64.nxv1i64(612 <vscale x 1 x i64> poison,613 <vscale x 1 x i64> %0,614 <vscale x 1 x i64> %1,615 iXLen %2)616 617 ret <vscale x 1 x i64> %a618}619 620define <vscale x 1 x i64> @intrinsic_vsll_mask_vv_nxv1i64_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {621; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv1i64_nxv1i64_nxv1i64:622; CHECK: # %bb.0: # %entry623; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, mu624; CHECK-NEXT: vsll.vv v8, v9, v10, v0.t625; CHECK-NEXT: ret626entry:627 %a = call <vscale x 1 x i64> @llvm.riscv.vsll.mask.nxv1i64.nxv1i64(628 <vscale x 1 x i64> %0,629 <vscale x 1 x i64> %1,630 <vscale x 1 x i64> %2,631 <vscale x 1 x i1> %3,632 iXLen %4, iXLen 1)633 634 ret <vscale x 1 x i64> %a635}636 637define <vscale x 2 x i64> @intrinsic_vsll_vv_nxv2i64_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2) nounwind {638; CHECK-LABEL: intrinsic_vsll_vv_nxv2i64_nxv2i64_nxv2i64:639; CHECK: # %bb.0: # %entry640; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma641; CHECK-NEXT: vsll.vv v8, v8, v10642; CHECK-NEXT: ret643entry:644 %a = call <vscale x 2 x i64> @llvm.riscv.vsll.nxv2i64.nxv2i64(645 <vscale x 2 x i64> poison,646 <vscale x 2 x i64> %0,647 <vscale x 2 x i64> %1,648 iXLen %2)649 650 ret <vscale x 2 x i64> %a651}652 653define <vscale x 2 x i64> @intrinsic_vsll_mask_vv_nxv2i64_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {654; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv2i64_nxv2i64_nxv2i64:655; CHECK: # %bb.0: # %entry656; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, mu657; CHECK-NEXT: vsll.vv v8, v10, v12, v0.t658; CHECK-NEXT: ret659entry:660 %a = call <vscale x 2 x i64> @llvm.riscv.vsll.mask.nxv2i64.nxv2i64(661 <vscale x 2 x i64> %0,662 <vscale x 2 x i64> %1,663 <vscale x 2 x i64> %2,664 <vscale x 2 x i1> %3,665 iXLen %4, iXLen 1)666 667 ret <vscale x 2 x i64> %a668}669 670define <vscale x 4 x i64> @intrinsic_vsll_vv_nxv4i64_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2) nounwind {671; CHECK-LABEL: intrinsic_vsll_vv_nxv4i64_nxv4i64_nxv4i64:672; CHECK: # %bb.0: # %entry673; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma674; CHECK-NEXT: vsll.vv v8, v8, v12675; CHECK-NEXT: ret676entry:677 %a = call <vscale x 4 x i64> @llvm.riscv.vsll.nxv4i64.nxv4i64(678 <vscale x 4 x i64> poison,679 <vscale x 4 x i64> %0,680 <vscale x 4 x i64> %1,681 iXLen %2)682 683 ret <vscale x 4 x i64> %a684}685 686define <vscale x 4 x i64> @intrinsic_vsll_mask_vv_nxv4i64_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {687; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv4i64_nxv4i64_nxv4i64:688; CHECK: # %bb.0: # %entry689; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, mu690; CHECK-NEXT: vsll.vv v8, v12, v16, v0.t691; CHECK-NEXT: ret692entry:693 %a = call <vscale x 4 x i64> @llvm.riscv.vsll.mask.nxv4i64.nxv4i64(694 <vscale x 4 x i64> %0,695 <vscale x 4 x i64> %1,696 <vscale x 4 x i64> %2,697 <vscale x 4 x i1> %3,698 iXLen %4, iXLen 1)699 700 ret <vscale x 4 x i64> %a701}702 703define <vscale x 8 x i64> @intrinsic_vsll_vv_nxv8i64_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, iXLen %2) nounwind {704; CHECK-LABEL: intrinsic_vsll_vv_nxv8i64_nxv8i64_nxv8i64:705; CHECK: # %bb.0: # %entry706; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma707; CHECK-NEXT: vsll.vv v8, v8, v16708; CHECK-NEXT: ret709entry:710 %a = call <vscale x 8 x i64> @llvm.riscv.vsll.nxv8i64.nxv8i64(711 <vscale x 8 x i64> poison,712 <vscale x 8 x i64> %0,713 <vscale x 8 x i64> %1,714 iXLen %2)715 716 ret <vscale x 8 x i64> %a717}718 719define <vscale x 8 x i64> @intrinsic_vsll_mask_vv_nxv8i64_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {720; CHECK-LABEL: intrinsic_vsll_mask_vv_nxv8i64_nxv8i64_nxv8i64:721; CHECK: # %bb.0: # %entry722; CHECK-NEXT: vl8re64.v v24, (a0)723; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu724; CHECK-NEXT: vsll.vv v8, v16, v24, v0.t725; CHECK-NEXT: ret726entry:727 %a = call <vscale x 8 x i64> @llvm.riscv.vsll.mask.nxv8i64.nxv8i64(728 <vscale x 8 x i64> %0,729 <vscale x 8 x i64> %1,730 <vscale x 8 x i64> %2,731 <vscale x 8 x i1> %3,732 iXLen %4, iXLen 1)733 734 ret <vscale x 8 x i64> %a735}736 737define <vscale x 1 x i8> @intrinsic_vsll_vx_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, iXLen %1, iXLen %2) nounwind {738; CHECK-LABEL: intrinsic_vsll_vx_nxv1i8_nxv1i8:739; CHECK: # %bb.0: # %entry740; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma741; CHECK-NEXT: vsll.vx v8, v8, a0742; CHECK-NEXT: ret743entry:744 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.nxv1i8(745 <vscale x 1 x i8> poison,746 <vscale x 1 x i8> %0,747 iXLen %1,748 iXLen %2)749 750 ret <vscale x 1 x i8> %a751}752 753define <vscale x 1 x i8> @intrinsic_vsll_mask_vx_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {754; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv1i8_nxv1i8:755; CHECK: # %bb.0: # %entry756; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, mu757; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t758; CHECK-NEXT: ret759entry:760 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.mask.nxv1i8(761 <vscale x 1 x i8> %0,762 <vscale x 1 x i8> %1,763 iXLen %2,764 <vscale x 1 x i1> %3,765 iXLen %4, iXLen 1)766 767 ret <vscale x 1 x i8> %a768}769 770define <vscale x 2 x i8> @intrinsic_vsll_vx_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, iXLen %1, iXLen %2) nounwind {771; CHECK-LABEL: intrinsic_vsll_vx_nxv2i8_nxv2i8:772; CHECK: # %bb.0: # %entry773; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma774; CHECK-NEXT: vsll.vx v8, v8, a0775; CHECK-NEXT: ret776entry:777 %a = call <vscale x 2 x i8> @llvm.riscv.vsll.nxv2i8(778 <vscale x 2 x i8> poison,779 <vscale x 2 x i8> %0,780 iXLen %1,781 iXLen %2)782 783 ret <vscale x 2 x i8> %a784}785 786define <vscale x 2 x i8> @intrinsic_vsll_mask_vx_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {787; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv2i8_nxv2i8:788; CHECK: # %bb.0: # %entry789; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, mu790; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t791; CHECK-NEXT: ret792entry:793 %a = call <vscale x 2 x i8> @llvm.riscv.vsll.mask.nxv2i8(794 <vscale x 2 x i8> %0,795 <vscale x 2 x i8> %1,796 iXLen %2,797 <vscale x 2 x i1> %3,798 iXLen %4, iXLen 1)799 800 ret <vscale x 2 x i8> %a801}802 803define <vscale x 4 x i8> @intrinsic_vsll_vx_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, iXLen %1, iXLen %2) nounwind {804; CHECK-LABEL: intrinsic_vsll_vx_nxv4i8_nxv4i8:805; CHECK: # %bb.0: # %entry806; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma807; CHECK-NEXT: vsll.vx v8, v8, a0808; CHECK-NEXT: ret809entry:810 %a = call <vscale x 4 x i8> @llvm.riscv.vsll.nxv4i8(811 <vscale x 4 x i8> poison,812 <vscale x 4 x i8> %0,813 iXLen %1,814 iXLen %2)815 816 ret <vscale x 4 x i8> %a817}818 819define <vscale x 4 x i8> @intrinsic_vsll_mask_vx_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {820; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv4i8_nxv4i8:821; CHECK: # %bb.0: # %entry822; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, mu823; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t824; CHECK-NEXT: ret825entry:826 %a = call <vscale x 4 x i8> @llvm.riscv.vsll.mask.nxv4i8(827 <vscale x 4 x i8> %0,828 <vscale x 4 x i8> %1,829 iXLen %2,830 <vscale x 4 x i1> %3,831 iXLen %4, iXLen 1)832 833 ret <vscale x 4 x i8> %a834}835 836define <vscale x 8 x i8> @intrinsic_vsll_vx_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, iXLen %1, iXLen %2) nounwind {837; CHECK-LABEL: intrinsic_vsll_vx_nxv8i8_nxv8i8:838; CHECK: # %bb.0: # %entry839; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma840; CHECK-NEXT: vsll.vx v8, v8, a0841; CHECK-NEXT: ret842entry:843 %a = call <vscale x 8 x i8> @llvm.riscv.vsll.nxv8i8(844 <vscale x 8 x i8> poison,845 <vscale x 8 x i8> %0,846 iXLen %1,847 iXLen %2)848 849 ret <vscale x 8 x i8> %a850}851 852define <vscale x 8 x i8> @intrinsic_vsll_mask_vx_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {853; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv8i8_nxv8i8:854; CHECK: # %bb.0: # %entry855; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu856; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t857; CHECK-NEXT: ret858entry:859 %a = call <vscale x 8 x i8> @llvm.riscv.vsll.mask.nxv8i8(860 <vscale x 8 x i8> %0,861 <vscale x 8 x i8> %1,862 iXLen %2,863 <vscale x 8 x i1> %3,864 iXLen %4, iXLen 1)865 866 ret <vscale x 8 x i8> %a867}868 869define <vscale x 16 x i8> @intrinsic_vsll_vx_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, iXLen %1, iXLen %2) nounwind {870; CHECK-LABEL: intrinsic_vsll_vx_nxv16i8_nxv16i8:871; CHECK: # %bb.0: # %entry872; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma873; CHECK-NEXT: vsll.vx v8, v8, a0874; CHECK-NEXT: ret875entry:876 %a = call <vscale x 16 x i8> @llvm.riscv.vsll.nxv16i8(877 <vscale x 16 x i8> poison,878 <vscale x 16 x i8> %0,879 iXLen %1,880 iXLen %2)881 882 ret <vscale x 16 x i8> %a883}884 885define <vscale x 16 x i8> @intrinsic_vsll_mask_vx_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {886; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv16i8_nxv16i8:887; CHECK: # %bb.0: # %entry888; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu889; CHECK-NEXT: vsll.vx v8, v10, a0, v0.t890; CHECK-NEXT: ret891entry:892 %a = call <vscale x 16 x i8> @llvm.riscv.vsll.mask.nxv16i8(893 <vscale x 16 x i8> %0,894 <vscale x 16 x i8> %1,895 iXLen %2,896 <vscale x 16 x i1> %3,897 iXLen %4, iXLen 1)898 899 ret <vscale x 16 x i8> %a900}901 902define <vscale x 32 x i8> @intrinsic_vsll_vx_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, iXLen %1, iXLen %2) nounwind {903; CHECK-LABEL: intrinsic_vsll_vx_nxv32i8_nxv32i8:904; CHECK: # %bb.0: # %entry905; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma906; CHECK-NEXT: vsll.vx v8, v8, a0907; CHECK-NEXT: ret908entry:909 %a = call <vscale x 32 x i8> @llvm.riscv.vsll.nxv32i8(910 <vscale x 32 x i8> poison,911 <vscale x 32 x i8> %0,912 iXLen %1,913 iXLen %2)914 915 ret <vscale x 32 x i8> %a916}917 918define <vscale x 32 x i8> @intrinsic_vsll_mask_vx_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {919; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv32i8_nxv32i8:920; CHECK: # %bb.0: # %entry921; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, mu922; CHECK-NEXT: vsll.vx v8, v12, a0, v0.t923; CHECK-NEXT: ret924entry:925 %a = call <vscale x 32 x i8> @llvm.riscv.vsll.mask.nxv32i8(926 <vscale x 32 x i8> %0,927 <vscale x 32 x i8> %1,928 iXLen %2,929 <vscale x 32 x i1> %3,930 iXLen %4, iXLen 1)931 932 ret <vscale x 32 x i8> %a933}934 935define <vscale x 64 x i8> @intrinsic_vsll_vx_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, iXLen %1, iXLen %2) nounwind {936; CHECK-LABEL: intrinsic_vsll_vx_nxv64i8_nxv64i8:937; CHECK: # %bb.0: # %entry938; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma939; CHECK-NEXT: vsll.vx v8, v8, a0940; CHECK-NEXT: ret941entry:942 %a = call <vscale x 64 x i8> @llvm.riscv.vsll.nxv64i8(943 <vscale x 64 x i8> poison,944 <vscale x 64 x i8> %0,945 iXLen %1,946 iXLen %2)947 948 ret <vscale x 64 x i8> %a949}950 951define <vscale x 64 x i8> @intrinsic_vsll_mask_vx_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, iXLen %2, <vscale x 64 x i1> %3, iXLen %4) nounwind {952; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv64i8_nxv64i8:953; CHECK: # %bb.0: # %entry954; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, mu955; CHECK-NEXT: vsll.vx v8, v16, a0, v0.t956; CHECK-NEXT: ret957entry:958 %a = call <vscale x 64 x i8> @llvm.riscv.vsll.mask.nxv64i8(959 <vscale x 64 x i8> %0,960 <vscale x 64 x i8> %1,961 iXLen %2,962 <vscale x 64 x i1> %3,963 iXLen %4, iXLen 1)964 965 ret <vscale x 64 x i8> %a966}967 968define <vscale x 1 x i16> @intrinsic_vsll_vx_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, iXLen %1, iXLen %2) nounwind {969; CHECK-LABEL: intrinsic_vsll_vx_nxv1i16_nxv1i16:970; CHECK: # %bb.0: # %entry971; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma972; CHECK-NEXT: vsll.vx v8, v8, a0973; CHECK-NEXT: ret974entry:975 %a = call <vscale x 1 x i16> @llvm.riscv.vsll.nxv1i16(976 <vscale x 1 x i16> poison,977 <vscale x 1 x i16> %0,978 iXLen %1,979 iXLen %2)980 981 ret <vscale x 1 x i16> %a982}983 984define <vscale x 1 x i16> @intrinsic_vsll_mask_vx_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {985; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv1i16_nxv1i16:986; CHECK: # %bb.0: # %entry987; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu988; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t989; CHECK-NEXT: ret990entry:991 %a = call <vscale x 1 x i16> @llvm.riscv.vsll.mask.nxv1i16(992 <vscale x 1 x i16> %0,993 <vscale x 1 x i16> %1,994 iXLen %2,995 <vscale x 1 x i1> %3,996 iXLen %4, iXLen 1)997 998 ret <vscale x 1 x i16> %a999}1000 1001define <vscale x 2 x i16> @intrinsic_vsll_vx_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, iXLen %1, iXLen %2) nounwind {1002; CHECK-LABEL: intrinsic_vsll_vx_nxv2i16_nxv2i16:1003; CHECK: # %bb.0: # %entry1004; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma1005; CHECK-NEXT: vsll.vx v8, v8, a01006; CHECK-NEXT: ret1007entry:1008 %a = call <vscale x 2 x i16> @llvm.riscv.vsll.nxv2i16(1009 <vscale x 2 x i16> poison,1010 <vscale x 2 x i16> %0,1011 iXLen %1,1012 iXLen %2)1013 1014 ret <vscale x 2 x i16> %a1015}1016 1017define <vscale x 2 x i16> @intrinsic_vsll_mask_vx_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1018; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv2i16_nxv2i16:1019; CHECK: # %bb.0: # %entry1020; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu1021; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t1022; CHECK-NEXT: ret1023entry:1024 %a = call <vscale x 2 x i16> @llvm.riscv.vsll.mask.nxv2i16(1025 <vscale x 2 x i16> %0,1026 <vscale x 2 x i16> %1,1027 iXLen %2,1028 <vscale x 2 x i1> %3,1029 iXLen %4, iXLen 1)1030 1031 ret <vscale x 2 x i16> %a1032}1033 1034define <vscale x 4 x i16> @intrinsic_vsll_vx_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, iXLen %1, iXLen %2) nounwind {1035; CHECK-LABEL: intrinsic_vsll_vx_nxv4i16_nxv4i16:1036; CHECK: # %bb.0: # %entry1037; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma1038; CHECK-NEXT: vsll.vx v8, v8, a01039; CHECK-NEXT: ret1040entry:1041 %a = call <vscale x 4 x i16> @llvm.riscv.vsll.nxv4i16(1042 <vscale x 4 x i16> poison,1043 <vscale x 4 x i16> %0,1044 iXLen %1,1045 iXLen %2)1046 1047 ret <vscale x 4 x i16> %a1048}1049 1050define <vscale x 4 x i16> @intrinsic_vsll_mask_vx_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1051; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv4i16_nxv4i16:1052; CHECK: # %bb.0: # %entry1053; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu1054; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t1055; CHECK-NEXT: ret1056entry:1057 %a = call <vscale x 4 x i16> @llvm.riscv.vsll.mask.nxv4i16(1058 <vscale x 4 x i16> %0,1059 <vscale x 4 x i16> %1,1060 iXLen %2,1061 <vscale x 4 x i1> %3,1062 iXLen %4, iXLen 1)1063 1064 ret <vscale x 4 x i16> %a1065}1066 1067define <vscale x 8 x i16> @intrinsic_vsll_vx_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, iXLen %1, iXLen %2) nounwind {1068; CHECK-LABEL: intrinsic_vsll_vx_nxv8i16_nxv8i16:1069; CHECK: # %bb.0: # %entry1070; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma1071; CHECK-NEXT: vsll.vx v8, v8, a01072; CHECK-NEXT: ret1073entry:1074 %a = call <vscale x 8 x i16> @llvm.riscv.vsll.nxv8i16(1075 <vscale x 8 x i16> poison,1076 <vscale x 8 x i16> %0,1077 iXLen %1,1078 iXLen %2)1079 1080 ret <vscale x 8 x i16> %a1081}1082 1083define <vscale x 8 x i16> @intrinsic_vsll_mask_vx_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1084; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv8i16_nxv8i16:1085; CHECK: # %bb.0: # %entry1086; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu1087; CHECK-NEXT: vsll.vx v8, v10, a0, v0.t1088; CHECK-NEXT: ret1089entry:1090 %a = call <vscale x 8 x i16> @llvm.riscv.vsll.mask.nxv8i16(1091 <vscale x 8 x i16> %0,1092 <vscale x 8 x i16> %1,1093 iXLen %2,1094 <vscale x 8 x i1> %3,1095 iXLen %4, iXLen 1)1096 1097 ret <vscale x 8 x i16> %a1098}1099 1100define <vscale x 16 x i16> @intrinsic_vsll_vx_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, iXLen %1, iXLen %2) nounwind {1101; CHECK-LABEL: intrinsic_vsll_vx_nxv16i16_nxv16i16:1102; CHECK: # %bb.0: # %entry1103; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma1104; CHECK-NEXT: vsll.vx v8, v8, a01105; CHECK-NEXT: ret1106entry:1107 %a = call <vscale x 16 x i16> @llvm.riscv.vsll.nxv16i16(1108 <vscale x 16 x i16> poison,1109 <vscale x 16 x i16> %0,1110 iXLen %1,1111 iXLen %2)1112 1113 ret <vscale x 16 x i16> %a1114}1115 1116define <vscale x 16 x i16> @intrinsic_vsll_mask_vx_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1117; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv16i16_nxv16i16:1118; CHECK: # %bb.0: # %entry1119; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu1120; CHECK-NEXT: vsll.vx v8, v12, a0, v0.t1121; CHECK-NEXT: ret1122entry:1123 %a = call <vscale x 16 x i16> @llvm.riscv.vsll.mask.nxv16i16(1124 <vscale x 16 x i16> %0,1125 <vscale x 16 x i16> %1,1126 iXLen %2,1127 <vscale x 16 x i1> %3,1128 iXLen %4, iXLen 1)1129 1130 ret <vscale x 16 x i16> %a1131}1132 1133define <vscale x 32 x i16> @intrinsic_vsll_vx_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, iXLen %1, iXLen %2) nounwind {1134; CHECK-LABEL: intrinsic_vsll_vx_nxv32i16_nxv32i16:1135; CHECK: # %bb.0: # %entry1136; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma1137; CHECK-NEXT: vsll.vx v8, v8, a01138; CHECK-NEXT: ret1139entry:1140 %a = call <vscale x 32 x i16> @llvm.riscv.vsll.nxv32i16(1141 <vscale x 32 x i16> poison,1142 <vscale x 32 x i16> %0,1143 iXLen %1,1144 iXLen %2)1145 1146 ret <vscale x 32 x i16> %a1147}1148 1149define <vscale x 32 x i16> @intrinsic_vsll_mask_vx_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, iXLen %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {1150; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv32i16_nxv32i16:1151; CHECK: # %bb.0: # %entry1152; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu1153; CHECK-NEXT: vsll.vx v8, v16, a0, v0.t1154; CHECK-NEXT: ret1155entry:1156 %a = call <vscale x 32 x i16> @llvm.riscv.vsll.mask.nxv32i16(1157 <vscale x 32 x i16> %0,1158 <vscale x 32 x i16> %1,1159 iXLen %2,1160 <vscale x 32 x i1> %3,1161 iXLen %4, iXLen 1)1162 1163 ret <vscale x 32 x i16> %a1164}1165 1166define <vscale x 1 x i32> @intrinsic_vsll_vx_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, iXLen %1, iXLen %2) nounwind {1167; CHECK-LABEL: intrinsic_vsll_vx_nxv1i32_nxv1i32:1168; CHECK: # %bb.0: # %entry1169; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma1170; CHECK-NEXT: vsll.vx v8, v8, a01171; CHECK-NEXT: ret1172entry:1173 %a = call <vscale x 1 x i32> @llvm.riscv.vsll.nxv1i32(1174 <vscale x 1 x i32> poison,1175 <vscale x 1 x i32> %0,1176 iXLen %1,1177 iXLen %2)1178 1179 ret <vscale x 1 x i32> %a1180}1181 1182define <vscale x 1 x i32> @intrinsic_vsll_mask_vx_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1183; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv1i32_nxv1i32:1184; CHECK: # %bb.0: # %entry1185; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu1186; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t1187; CHECK-NEXT: ret1188entry:1189 %a = call <vscale x 1 x i32> @llvm.riscv.vsll.mask.nxv1i32(1190 <vscale x 1 x i32> %0,1191 <vscale x 1 x i32> %1,1192 iXLen %2,1193 <vscale x 1 x i1> %3,1194 iXLen %4, iXLen 1)1195 1196 ret <vscale x 1 x i32> %a1197}1198 1199define <vscale x 2 x i32> @intrinsic_vsll_vx_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, iXLen %1, iXLen %2) nounwind {1200; CHECK-LABEL: intrinsic_vsll_vx_nxv2i32_nxv2i32:1201; CHECK: # %bb.0: # %entry1202; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma1203; CHECK-NEXT: vsll.vx v8, v8, a01204; CHECK-NEXT: ret1205entry:1206 %a = call <vscale x 2 x i32> @llvm.riscv.vsll.nxv2i32(1207 <vscale x 2 x i32> poison,1208 <vscale x 2 x i32> %0,1209 iXLen %1,1210 iXLen %2)1211 1212 ret <vscale x 2 x i32> %a1213}1214 1215define <vscale x 2 x i32> @intrinsic_vsll_mask_vx_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1216; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv2i32_nxv2i32:1217; CHECK: # %bb.0: # %entry1218; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu1219; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t1220; CHECK-NEXT: ret1221entry:1222 %a = call <vscale x 2 x i32> @llvm.riscv.vsll.mask.nxv2i32(1223 <vscale x 2 x i32> %0,1224 <vscale x 2 x i32> %1,1225 iXLen %2,1226 <vscale x 2 x i1> %3,1227 iXLen %4, iXLen 1)1228 1229 ret <vscale x 2 x i32> %a1230}1231 1232define <vscale x 4 x i32> @intrinsic_vsll_vx_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, iXLen %1, iXLen %2) nounwind {1233; CHECK-LABEL: intrinsic_vsll_vx_nxv4i32_nxv4i32:1234; CHECK: # %bb.0: # %entry1235; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma1236; CHECK-NEXT: vsll.vx v8, v8, a01237; CHECK-NEXT: ret1238entry:1239 %a = call <vscale x 4 x i32> @llvm.riscv.vsll.nxv4i32(1240 <vscale x 4 x i32> poison,1241 <vscale x 4 x i32> %0,1242 iXLen %1,1243 iXLen %2)1244 1245 ret <vscale x 4 x i32> %a1246}1247 1248define <vscale x 4 x i32> @intrinsic_vsll_mask_vx_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1249; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv4i32_nxv4i32:1250; CHECK: # %bb.0: # %entry1251; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu1252; CHECK-NEXT: vsll.vx v8, v10, a0, v0.t1253; CHECK-NEXT: ret1254entry:1255 %a = call <vscale x 4 x i32> @llvm.riscv.vsll.mask.nxv4i32(1256 <vscale x 4 x i32> %0,1257 <vscale x 4 x i32> %1,1258 iXLen %2,1259 <vscale x 4 x i1> %3,1260 iXLen %4, iXLen 1)1261 1262 ret <vscale x 4 x i32> %a1263}1264 1265define <vscale x 8 x i32> @intrinsic_vsll_vx_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, iXLen %1, iXLen %2) nounwind {1266; CHECK-LABEL: intrinsic_vsll_vx_nxv8i32_nxv8i32:1267; CHECK: # %bb.0: # %entry1268; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma1269; CHECK-NEXT: vsll.vx v8, v8, a01270; CHECK-NEXT: ret1271entry:1272 %a = call <vscale x 8 x i32> @llvm.riscv.vsll.nxv8i32(1273 <vscale x 8 x i32> poison,1274 <vscale x 8 x i32> %0,1275 iXLen %1,1276 iXLen %2)1277 1278 ret <vscale x 8 x i32> %a1279}1280 1281define <vscale x 8 x i32> @intrinsic_vsll_mask_vx_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1282; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv8i32_nxv8i32:1283; CHECK: # %bb.0: # %entry1284; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu1285; CHECK-NEXT: vsll.vx v8, v12, a0, v0.t1286; CHECK-NEXT: ret1287entry:1288 %a = call <vscale x 8 x i32> @llvm.riscv.vsll.mask.nxv8i32(1289 <vscale x 8 x i32> %0,1290 <vscale x 8 x i32> %1,1291 iXLen %2,1292 <vscale x 8 x i1> %3,1293 iXLen %4, iXLen 1)1294 1295 ret <vscale x 8 x i32> %a1296}1297 1298define <vscale x 16 x i32> @intrinsic_vsll_vx_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, iXLen %1, iXLen %2) nounwind {1299; CHECK-LABEL: intrinsic_vsll_vx_nxv16i32_nxv16i32:1300; CHECK: # %bb.0: # %entry1301; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma1302; CHECK-NEXT: vsll.vx v8, v8, a01303; CHECK-NEXT: ret1304entry:1305 %a = call <vscale x 16 x i32> @llvm.riscv.vsll.nxv16i32(1306 <vscale x 16 x i32> poison,1307 <vscale x 16 x i32> %0,1308 iXLen %1,1309 iXLen %2)1310 1311 ret <vscale x 16 x i32> %a1312}1313 1314define <vscale x 16 x i32> @intrinsic_vsll_mask_vx_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1315; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv16i32_nxv16i32:1316; CHECK: # %bb.0: # %entry1317; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu1318; CHECK-NEXT: vsll.vx v8, v16, a0, v0.t1319; CHECK-NEXT: ret1320entry:1321 %a = call <vscale x 16 x i32> @llvm.riscv.vsll.mask.nxv16i32(1322 <vscale x 16 x i32> %0,1323 <vscale x 16 x i32> %1,1324 iXLen %2,1325 <vscale x 16 x i1> %3,1326 iXLen %4, iXLen 1)1327 1328 ret <vscale x 16 x i32> %a1329}1330 1331define <vscale x 1 x i64> @intrinsic_vsll_vx_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, iXLen %1, iXLen %2) nounwind {1332; CHECK-LABEL: intrinsic_vsll_vx_nxv1i64_nxv1i64:1333; CHECK: # %bb.0: # %entry1334; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma1335; CHECK-NEXT: vsll.vx v8, v8, a01336; CHECK-NEXT: ret1337entry:1338 %a = call <vscale x 1 x i64> @llvm.riscv.vsll.nxv1i64(1339 <vscale x 1 x i64> poison,1340 <vscale x 1 x i64> %0,1341 iXLen %1,1342 iXLen %2)1343 1344 ret <vscale x 1 x i64> %a1345}1346 1347define <vscale x 1 x i64> @intrinsic_vsll_mask_vx_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1348; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv1i64_nxv1i64:1349; CHECK: # %bb.0: # %entry1350; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu1351; CHECK-NEXT: vsll.vx v8, v9, a0, v0.t1352; CHECK-NEXT: ret1353entry:1354 %a = call <vscale x 1 x i64> @llvm.riscv.vsll.mask.nxv1i64(1355 <vscale x 1 x i64> %0,1356 <vscale x 1 x i64> %1,1357 iXLen %2,1358 <vscale x 1 x i1> %3,1359 iXLen %4, iXLen 1)1360 1361 ret <vscale x 1 x i64> %a1362}1363 1364define <vscale x 2 x i64> @intrinsic_vsll_vx_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, iXLen %1, iXLen %2) nounwind {1365; CHECK-LABEL: intrinsic_vsll_vx_nxv2i64_nxv2i64:1366; CHECK: # %bb.0: # %entry1367; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma1368; CHECK-NEXT: vsll.vx v8, v8, a01369; CHECK-NEXT: ret1370entry:1371 %a = call <vscale x 2 x i64> @llvm.riscv.vsll.nxv2i64(1372 <vscale x 2 x i64> poison,1373 <vscale x 2 x i64> %0,1374 iXLen %1,1375 iXLen %2)1376 1377 ret <vscale x 2 x i64> %a1378}1379 1380define <vscale x 2 x i64> @intrinsic_vsll_mask_vx_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1381; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv2i64_nxv2i64:1382; CHECK: # %bb.0: # %entry1383; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu1384; CHECK-NEXT: vsll.vx v8, v10, a0, v0.t1385; CHECK-NEXT: ret1386entry:1387 %a = call <vscale x 2 x i64> @llvm.riscv.vsll.mask.nxv2i64(1388 <vscale x 2 x i64> %0,1389 <vscale x 2 x i64> %1,1390 iXLen %2,1391 <vscale x 2 x i1> %3,1392 iXLen %4, iXLen 1)1393 1394 ret <vscale x 2 x i64> %a1395}1396 1397define <vscale x 4 x i64> @intrinsic_vsll_vx_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, iXLen %1, iXLen %2) nounwind {1398; CHECK-LABEL: intrinsic_vsll_vx_nxv4i64_nxv4i64:1399; CHECK: # %bb.0: # %entry1400; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma1401; CHECK-NEXT: vsll.vx v8, v8, a01402; CHECK-NEXT: ret1403entry:1404 %a = call <vscale x 4 x i64> @llvm.riscv.vsll.nxv4i64(1405 <vscale x 4 x i64> poison,1406 <vscale x 4 x i64> %0,1407 iXLen %1,1408 iXLen %2)1409 1410 ret <vscale x 4 x i64> %a1411}1412 1413define <vscale x 4 x i64> @intrinsic_vsll_mask_vx_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1414; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv4i64_nxv4i64:1415; CHECK: # %bb.0: # %entry1416; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu1417; CHECK-NEXT: vsll.vx v8, v12, a0, v0.t1418; CHECK-NEXT: ret1419entry:1420 %a = call <vscale x 4 x i64> @llvm.riscv.vsll.mask.nxv4i64(1421 <vscale x 4 x i64> %0,1422 <vscale x 4 x i64> %1,1423 iXLen %2,1424 <vscale x 4 x i1> %3,1425 iXLen %4, iXLen 1)1426 1427 ret <vscale x 4 x i64> %a1428}1429 1430define <vscale x 8 x i64> @intrinsic_vsll_vx_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, iXLen %1, iXLen %2) nounwind {1431; CHECK-LABEL: intrinsic_vsll_vx_nxv8i64_nxv8i64:1432; CHECK: # %bb.0: # %entry1433; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma1434; CHECK-NEXT: vsll.vx v8, v8, a01435; CHECK-NEXT: ret1436entry:1437 %a = call <vscale x 8 x i64> @llvm.riscv.vsll.nxv8i64(1438 <vscale x 8 x i64> poison,1439 <vscale x 8 x i64> %0,1440 iXLen %1,1441 iXLen %2)1442 1443 ret <vscale x 8 x i64> %a1444}1445 1446define <vscale x 8 x i64> @intrinsic_vsll_mask_vx_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1447; CHECK-LABEL: intrinsic_vsll_mask_vx_nxv8i64_nxv8i64:1448; CHECK: # %bb.0: # %entry1449; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu1450; CHECK-NEXT: vsll.vx v8, v16, a0, v0.t1451; CHECK-NEXT: ret1452entry:1453 %a = call <vscale x 8 x i64> @llvm.riscv.vsll.mask.nxv8i64(1454 <vscale x 8 x i64> %0,1455 <vscale x 8 x i64> %1,1456 iXLen %2,1457 <vscale x 8 x i1> %3,1458 iXLen %4, iXLen 1)1459 1460 ret <vscale x 8 x i64> %a1461}1462 1463define <vscale x 1 x i8> @intrinsic_vsll_vi_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, iXLen %1) nounwind {1464; CHECK-LABEL: intrinsic_vsll_vi_nxv1i8_nxv1i8_i8:1465; CHECK: # %bb.0: # %entry1466; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma1467; CHECK-NEXT: vsll.vi v8, v8, 91468; CHECK-NEXT: ret1469entry:1470 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.nxv1i8(1471 <vscale x 1 x i8> poison,1472 <vscale x 1 x i8> %0,1473 iXLen 9,1474 iXLen %1)1475 1476 ret <vscale x 1 x i8> %a1477}1478 1479define <vscale x 1 x i8> @intrinsic_vsll_1_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, iXLen %1) nounwind {1480; CHECK-LABEL: intrinsic_vsll_1_nxv1i8_nxv1i8_i8:1481; CHECK: # %bb.0: # %entry1482; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma1483; CHECK-NEXT: vadd.vv v8, v8, v81484; CHECK-NEXT: ret1485entry:1486 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.nxv1i8(1487 <vscale x 1 x i8> poison,1488 <vscale x 1 x i8> %0,1489 iXLen 1,1490 iXLen %1)1491 1492 ret <vscale x 1 x i8> %a1493}1494 1495define <vscale x 1 x i8> @intrinsic_vsll_1_tu_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {1496; CHECK-LABEL: intrinsic_vsll_1_tu_nxv1i8_nxv1i8_i8:1497; CHECK: # %bb.0: # %entry1498; CHECK-NEXT: vsetvli zero, a0, e8, mf8, tu, ma1499; CHECK-NEXT: vadd.vv v8, v9, v91500; CHECK-NEXT: ret1501entry:1502 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.nxv1i8(1503 <vscale x 1 x i8> %0,1504 <vscale x 1 x i8> %1,1505 iXLen 1,1506 iXLen %2)1507 1508 ret <vscale x 1 x i8> %a1509}1510 1511define <vscale x 1 x i8> @intrinsic_vsll_mask_vi_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1512; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv1i8_nxv1i8_i8:1513; CHECK: # %bb.0: # %entry1514; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu1515; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1516; CHECK-NEXT: ret1517entry:1518 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.mask.nxv1i8(1519 <vscale x 1 x i8> %0,1520 <vscale x 1 x i8> %1,1521 iXLen 9,1522 <vscale x 1 x i1> %2,1523 iXLen %3, iXLen 1)1524 1525 ret <vscale x 1 x i8> %a1526}1527 1528define <vscale x 1 x i8> @intrinsic_vsll_mask_1_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1529; CHECK-LABEL: intrinsic_vsll_mask_1_nxv1i8_nxv1i8_i8:1530; CHECK: # %bb.0: # %entry1531; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu1532; CHECK-NEXT: vadd.vv v8, v9, v9, v0.t1533; CHECK-NEXT: ret1534entry:1535 %a = call <vscale x 1 x i8> @llvm.riscv.vsll.mask.nxv1i8(1536 <vscale x 1 x i8> %0,1537 <vscale x 1 x i8> %1,1538 iXLen 1,1539 <vscale x 1 x i1> %2,1540 iXLen %3, iXLen 1)1541 1542 ret <vscale x 1 x i8> %a1543}1544 1545define <vscale x 2 x i8> @intrinsic_vsll_vi_nxv2i8_nxv2i8_i8(<vscale x 2 x i8> %0, iXLen %1) nounwind {1546; CHECK-LABEL: intrinsic_vsll_vi_nxv2i8_nxv2i8_i8:1547; CHECK: # %bb.0: # %entry1548; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma1549; CHECK-NEXT: vsll.vi v8, v8, 91550; CHECK-NEXT: ret1551entry:1552 %a = call <vscale x 2 x i8> @llvm.riscv.vsll.nxv2i8(1553 <vscale x 2 x i8> poison,1554 <vscale x 2 x i8> %0,1555 iXLen 9,1556 iXLen %1)1557 1558 ret <vscale x 2 x i8> %a1559}1560 1561define <vscale x 2 x i8> @intrinsic_vsll_mask_vi_nxv2i8_nxv2i8_i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {1562; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv2i8_nxv2i8_i8:1563; CHECK: # %bb.0: # %entry1564; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, mu1565; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1566; CHECK-NEXT: ret1567entry:1568 %a = call <vscale x 2 x i8> @llvm.riscv.vsll.mask.nxv2i8(1569 <vscale x 2 x i8> %0,1570 <vscale x 2 x i8> %1,1571 iXLen 9,1572 <vscale x 2 x i1> %2,1573 iXLen %3, iXLen 1)1574 1575 ret <vscale x 2 x i8> %a1576}1577 1578define <vscale x 4 x i8> @intrinsic_vsll_vi_nxv4i8_nxv4i8_i8(<vscale x 4 x i8> %0, iXLen %1) nounwind {1579; CHECK-LABEL: intrinsic_vsll_vi_nxv4i8_nxv4i8_i8:1580; CHECK: # %bb.0: # %entry1581; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma1582; CHECK-NEXT: vsll.vi v8, v8, 91583; CHECK-NEXT: ret1584entry:1585 %a = call <vscale x 4 x i8> @llvm.riscv.vsll.nxv4i8(1586 <vscale x 4 x i8> poison,1587 <vscale x 4 x i8> %0,1588 iXLen 9,1589 iXLen %1)1590 1591 ret <vscale x 4 x i8> %a1592}1593 1594define <vscale x 4 x i8> @intrinsic_vsll_mask_vi_nxv4i8_nxv4i8_i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {1595; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv4i8_nxv4i8_i8:1596; CHECK: # %bb.0: # %entry1597; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, mu1598; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1599; CHECK-NEXT: ret1600entry:1601 %a = call <vscale x 4 x i8> @llvm.riscv.vsll.mask.nxv4i8(1602 <vscale x 4 x i8> %0,1603 <vscale x 4 x i8> %1,1604 iXLen 9,1605 <vscale x 4 x i1> %2,1606 iXLen %3, iXLen 1)1607 1608 ret <vscale x 4 x i8> %a1609}1610 1611define <vscale x 8 x i8> @intrinsic_vsll_vi_nxv8i8_nxv8i8_i8(<vscale x 8 x i8> %0, iXLen %1) nounwind {1612; CHECK-LABEL: intrinsic_vsll_vi_nxv8i8_nxv8i8_i8:1613; CHECK: # %bb.0: # %entry1614; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma1615; CHECK-NEXT: vsll.vi v8, v8, 91616; CHECK-NEXT: ret1617entry:1618 %a = call <vscale x 8 x i8> @llvm.riscv.vsll.nxv8i8(1619 <vscale x 8 x i8> poison,1620 <vscale x 8 x i8> %0,1621 iXLen 9,1622 iXLen %1)1623 1624 ret <vscale x 8 x i8> %a1625}1626 1627define <vscale x 8 x i8> @intrinsic_vsll_mask_vi_nxv8i8_nxv8i8_i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {1628; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv8i8_nxv8i8_i8:1629; CHECK: # %bb.0: # %entry1630; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, mu1631; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1632; CHECK-NEXT: ret1633entry:1634 %a = call <vscale x 8 x i8> @llvm.riscv.vsll.mask.nxv8i8(1635 <vscale x 8 x i8> %0,1636 <vscale x 8 x i8> %1,1637 iXLen 9,1638 <vscale x 8 x i1> %2,1639 iXLen %3, iXLen 1)1640 1641 ret <vscale x 8 x i8> %a1642}1643 1644define <vscale x 16 x i8> @intrinsic_vsll_vi_nxv16i8_nxv16i8_i8(<vscale x 16 x i8> %0, iXLen %1) nounwind {1645; CHECK-LABEL: intrinsic_vsll_vi_nxv16i8_nxv16i8_i8:1646; CHECK: # %bb.0: # %entry1647; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma1648; CHECK-NEXT: vsll.vi v8, v8, 91649; CHECK-NEXT: ret1650entry:1651 %a = call <vscale x 16 x i8> @llvm.riscv.vsll.nxv16i8(1652 <vscale x 16 x i8> poison,1653 <vscale x 16 x i8> %0,1654 iXLen 9,1655 iXLen %1)1656 1657 ret <vscale x 16 x i8> %a1658}1659 1660define <vscale x 16 x i8> @intrinsic_vsll_mask_vi_nxv16i8_nxv16i8_i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {1661; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv16i8_nxv16i8_i8:1662; CHECK: # %bb.0: # %entry1663; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, mu1664; CHECK-NEXT: vsll.vi v8, v10, 9, v0.t1665; CHECK-NEXT: ret1666entry:1667 %a = call <vscale x 16 x i8> @llvm.riscv.vsll.mask.nxv16i8(1668 <vscale x 16 x i8> %0,1669 <vscale x 16 x i8> %1,1670 iXLen 9,1671 <vscale x 16 x i1> %2,1672 iXLen %3, iXLen 1)1673 1674 ret <vscale x 16 x i8> %a1675}1676 1677define <vscale x 32 x i8> @intrinsic_vsll_vi_nxv32i8_nxv32i8_i8(<vscale x 32 x i8> %0, iXLen %1) nounwind {1678; CHECK-LABEL: intrinsic_vsll_vi_nxv32i8_nxv32i8_i8:1679; CHECK: # %bb.0: # %entry1680; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma1681; CHECK-NEXT: vsll.vi v8, v8, 91682; CHECK-NEXT: ret1683entry:1684 %a = call <vscale x 32 x i8> @llvm.riscv.vsll.nxv32i8(1685 <vscale x 32 x i8> poison,1686 <vscale x 32 x i8> %0,1687 iXLen 9,1688 iXLen %1)1689 1690 ret <vscale x 32 x i8> %a1691}1692 1693define <vscale x 32 x i8> @intrinsic_vsll_mask_vi_nxv32i8_nxv32i8_i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {1694; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv32i8_nxv32i8_i8:1695; CHECK: # %bb.0: # %entry1696; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, mu1697; CHECK-NEXT: vsll.vi v8, v12, 9, v0.t1698; CHECK-NEXT: ret1699entry:1700 %a = call <vscale x 32 x i8> @llvm.riscv.vsll.mask.nxv32i8(1701 <vscale x 32 x i8> %0,1702 <vscale x 32 x i8> %1,1703 iXLen 9,1704 <vscale x 32 x i1> %2,1705 iXLen %3, iXLen 1)1706 1707 ret <vscale x 32 x i8> %a1708}1709 1710define <vscale x 64 x i8> @intrinsic_vsll_vi_nxv64i8_nxv64i8_i8(<vscale x 64 x i8> %0, iXLen %1) nounwind {1711; CHECK-LABEL: intrinsic_vsll_vi_nxv64i8_nxv64i8_i8:1712; CHECK: # %bb.0: # %entry1713; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma1714; CHECK-NEXT: vsll.vi v8, v8, 91715; CHECK-NEXT: ret1716entry:1717 %a = call <vscale x 64 x i8> @llvm.riscv.vsll.nxv64i8(1718 <vscale x 64 x i8> poison,1719 <vscale x 64 x i8> %0,1720 iXLen 9,1721 iXLen %1)1722 1723 ret <vscale x 64 x i8> %a1724}1725 1726define <vscale x 64 x i8> @intrinsic_vsll_mask_vi_nxv64i8_nxv64i8_i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, <vscale x 64 x i1> %2, iXLen %3) nounwind {1727; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv64i8_nxv64i8_i8:1728; CHECK: # %bb.0: # %entry1729; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, mu1730; CHECK-NEXT: vsll.vi v8, v16, 9, v0.t1731; CHECK-NEXT: ret1732entry:1733 %a = call <vscale x 64 x i8> @llvm.riscv.vsll.mask.nxv64i8(1734 <vscale x 64 x i8> %0,1735 <vscale x 64 x i8> %1,1736 iXLen 9,1737 <vscale x 64 x i1> %2,1738 iXLen %3, iXLen 1)1739 1740 ret <vscale x 64 x i8> %a1741}1742 1743define <vscale x 1 x i16> @intrinsic_vsll_vi_nxv1i16_nxv1i16_i16(<vscale x 1 x i16> %0, iXLen %1) nounwind {1744; CHECK-LABEL: intrinsic_vsll_vi_nxv1i16_nxv1i16_i16:1745; CHECK: # %bb.0: # %entry1746; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma1747; CHECK-NEXT: vsll.vi v8, v8, 91748; CHECK-NEXT: ret1749entry:1750 %a = call <vscale x 1 x i16> @llvm.riscv.vsll.nxv1i16(1751 <vscale x 1 x i16> poison,1752 <vscale x 1 x i16> %0,1753 iXLen 9,1754 iXLen %1)1755 1756 ret <vscale x 1 x i16> %a1757}1758 1759define <vscale x 1 x i16> @intrinsic_vsll_mask_vi_nxv1i16_nxv1i16_i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1760; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv1i16_nxv1i16_i16:1761; CHECK: # %bb.0: # %entry1762; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, mu1763; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1764; CHECK-NEXT: ret1765entry:1766 %a = call <vscale x 1 x i16> @llvm.riscv.vsll.mask.nxv1i16(1767 <vscale x 1 x i16> %0,1768 <vscale x 1 x i16> %1,1769 iXLen 9,1770 <vscale x 1 x i1> %2,1771 iXLen %3, iXLen 1)1772 1773 ret <vscale x 1 x i16> %a1774}1775 1776define <vscale x 2 x i16> @intrinsic_vsll_vi_nxv2i16_nxv2i16_i16(<vscale x 2 x i16> %0, iXLen %1) nounwind {1777; CHECK-LABEL: intrinsic_vsll_vi_nxv2i16_nxv2i16_i16:1778; CHECK: # %bb.0: # %entry1779; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma1780; CHECK-NEXT: vsll.vi v8, v8, 91781; CHECK-NEXT: ret1782entry:1783 %a = call <vscale x 2 x i16> @llvm.riscv.vsll.nxv2i16(1784 <vscale x 2 x i16> poison,1785 <vscale x 2 x i16> %0,1786 iXLen 9,1787 iXLen %1)1788 1789 ret <vscale x 2 x i16> %a1790}1791 1792define <vscale x 2 x i16> @intrinsic_vsll_mask_vi_nxv2i16_nxv2i16_i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {1793; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv2i16_nxv2i16_i16:1794; CHECK: # %bb.0: # %entry1795; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, mu1796; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1797; CHECK-NEXT: ret1798entry:1799 %a = call <vscale x 2 x i16> @llvm.riscv.vsll.mask.nxv2i16(1800 <vscale x 2 x i16> %0,1801 <vscale x 2 x i16> %1,1802 iXLen 9,1803 <vscale x 2 x i1> %2,1804 iXLen %3, iXLen 1)1805 1806 ret <vscale x 2 x i16> %a1807}1808 1809define <vscale x 4 x i16> @intrinsic_vsll_vi_nxv4i16_nxv4i16_i16(<vscale x 4 x i16> %0, iXLen %1) nounwind {1810; CHECK-LABEL: intrinsic_vsll_vi_nxv4i16_nxv4i16_i16:1811; CHECK: # %bb.0: # %entry1812; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma1813; CHECK-NEXT: vsll.vi v8, v8, 91814; CHECK-NEXT: ret1815entry:1816 %a = call <vscale x 4 x i16> @llvm.riscv.vsll.nxv4i16(1817 <vscale x 4 x i16> poison,1818 <vscale x 4 x i16> %0,1819 iXLen 9,1820 iXLen %1)1821 1822 ret <vscale x 4 x i16> %a1823}1824 1825define <vscale x 4 x i16> @intrinsic_vsll_mask_vi_nxv4i16_nxv4i16_i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {1826; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv4i16_nxv4i16_i16:1827; CHECK: # %bb.0: # %entry1828; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, mu1829; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1830; CHECK-NEXT: ret1831entry:1832 %a = call <vscale x 4 x i16> @llvm.riscv.vsll.mask.nxv4i16(1833 <vscale x 4 x i16> %0,1834 <vscale x 4 x i16> %1,1835 iXLen 9,1836 <vscale x 4 x i1> %2,1837 iXLen %3, iXLen 1)1838 1839 ret <vscale x 4 x i16> %a1840}1841 1842define <vscale x 8 x i16> @intrinsic_vsll_vi_nxv8i16_nxv8i16_i16(<vscale x 8 x i16> %0, iXLen %1) nounwind {1843; CHECK-LABEL: intrinsic_vsll_vi_nxv8i16_nxv8i16_i16:1844; CHECK: # %bb.0: # %entry1845; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma1846; CHECK-NEXT: vsll.vi v8, v8, 91847; CHECK-NEXT: ret1848entry:1849 %a = call <vscale x 8 x i16> @llvm.riscv.vsll.nxv8i16(1850 <vscale x 8 x i16> poison,1851 <vscale x 8 x i16> %0,1852 iXLen 9,1853 iXLen %1)1854 1855 ret <vscale x 8 x i16> %a1856}1857 1858define <vscale x 8 x i16> @intrinsic_vsll_mask_vi_nxv8i16_nxv8i16_i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {1859; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv8i16_nxv8i16_i16:1860; CHECK: # %bb.0: # %entry1861; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, mu1862; CHECK-NEXT: vsll.vi v8, v10, 9, v0.t1863; CHECK-NEXT: ret1864entry:1865 %a = call <vscale x 8 x i16> @llvm.riscv.vsll.mask.nxv8i16(1866 <vscale x 8 x i16> %0,1867 <vscale x 8 x i16> %1,1868 iXLen 9,1869 <vscale x 8 x i1> %2,1870 iXLen %3, iXLen 1)1871 1872 ret <vscale x 8 x i16> %a1873}1874 1875define <vscale x 16 x i16> @intrinsic_vsll_vi_nxv16i16_nxv16i16_i16(<vscale x 16 x i16> %0, iXLen %1) nounwind {1876; CHECK-LABEL: intrinsic_vsll_vi_nxv16i16_nxv16i16_i16:1877; CHECK: # %bb.0: # %entry1878; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma1879; CHECK-NEXT: vsll.vi v8, v8, 91880; CHECK-NEXT: ret1881entry:1882 %a = call <vscale x 16 x i16> @llvm.riscv.vsll.nxv16i16(1883 <vscale x 16 x i16> poison,1884 <vscale x 16 x i16> %0,1885 iXLen 9,1886 iXLen %1)1887 1888 ret <vscale x 16 x i16> %a1889}1890 1891define <vscale x 16 x i16> @intrinsic_vsll_mask_vi_nxv16i16_nxv16i16_i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {1892; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv16i16_nxv16i16_i16:1893; CHECK: # %bb.0: # %entry1894; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, mu1895; CHECK-NEXT: vsll.vi v8, v12, 9, v0.t1896; CHECK-NEXT: ret1897entry:1898 %a = call <vscale x 16 x i16> @llvm.riscv.vsll.mask.nxv16i16(1899 <vscale x 16 x i16> %0,1900 <vscale x 16 x i16> %1,1901 iXLen 9,1902 <vscale x 16 x i1> %2,1903 iXLen %3, iXLen 1)1904 1905 ret <vscale x 16 x i16> %a1906}1907 1908define <vscale x 32 x i16> @intrinsic_vsll_vi_nxv32i16_nxv32i16_i16(<vscale x 32 x i16> %0, iXLen %1) nounwind {1909; CHECK-LABEL: intrinsic_vsll_vi_nxv32i16_nxv32i16_i16:1910; CHECK: # %bb.0: # %entry1911; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma1912; CHECK-NEXT: vsll.vi v8, v8, 91913; CHECK-NEXT: ret1914entry:1915 %a = call <vscale x 32 x i16> @llvm.riscv.vsll.nxv32i16(1916 <vscale x 32 x i16> poison,1917 <vscale x 32 x i16> %0,1918 iXLen 9,1919 iXLen %1)1920 1921 ret <vscale x 32 x i16> %a1922}1923 1924define <vscale x 32 x i16> @intrinsic_vsll_mask_vi_nxv32i16_nxv32i16_i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {1925; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv32i16_nxv32i16_i16:1926; CHECK: # %bb.0: # %entry1927; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, mu1928; CHECK-NEXT: vsll.vi v8, v16, 9, v0.t1929; CHECK-NEXT: ret1930entry:1931 %a = call <vscale x 32 x i16> @llvm.riscv.vsll.mask.nxv32i16(1932 <vscale x 32 x i16> %0,1933 <vscale x 32 x i16> %1,1934 iXLen 9,1935 <vscale x 32 x i1> %2,1936 iXLen %3, iXLen 1)1937 1938 ret <vscale x 32 x i16> %a1939}1940 1941define <vscale x 1 x i32> @intrinsic_vsll_vi_nxv1i32_nxv1i32_i32(<vscale x 1 x i32> %0, iXLen %1) nounwind {1942; CHECK-LABEL: intrinsic_vsll_vi_nxv1i32_nxv1i32_i32:1943; CHECK: # %bb.0: # %entry1944; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma1945; CHECK-NEXT: vsll.vi v8, v8, 91946; CHECK-NEXT: ret1947entry:1948 %a = call <vscale x 1 x i32> @llvm.riscv.vsll.nxv1i32(1949 <vscale x 1 x i32> poison,1950 <vscale x 1 x i32> %0,1951 iXLen 9,1952 iXLen %1)1953 1954 ret <vscale x 1 x i32> %a1955}1956 1957define <vscale x 1 x i32> @intrinsic_vsll_mask_vi_nxv1i32_nxv1i32_i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {1958; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv1i32_nxv1i32_i32:1959; CHECK: # %bb.0: # %entry1960; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, mu1961; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1962; CHECK-NEXT: ret1963entry:1964 %a = call <vscale x 1 x i32> @llvm.riscv.vsll.mask.nxv1i32(1965 <vscale x 1 x i32> %0,1966 <vscale x 1 x i32> %1,1967 iXLen 9,1968 <vscale x 1 x i1> %2,1969 iXLen %3, iXLen 1)1970 1971 ret <vscale x 1 x i32> %a1972}1973 1974define <vscale x 2 x i32> @intrinsic_vsll_vi_nxv2i32_nxv2i32_i32(<vscale x 2 x i32> %0, iXLen %1) nounwind {1975; CHECK-LABEL: intrinsic_vsll_vi_nxv2i32_nxv2i32_i32:1976; CHECK: # %bb.0: # %entry1977; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma1978; CHECK-NEXT: vsll.vi v8, v8, 91979; CHECK-NEXT: ret1980entry:1981 %a = call <vscale x 2 x i32> @llvm.riscv.vsll.nxv2i32(1982 <vscale x 2 x i32> poison,1983 <vscale x 2 x i32> %0,1984 iXLen 9,1985 iXLen %1)1986 1987 ret <vscale x 2 x i32> %a1988}1989 1990define <vscale x 2 x i32> @intrinsic_vsll_mask_vi_nxv2i32_nxv2i32_i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {1991; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv2i32_nxv2i32_i32:1992; CHECK: # %bb.0: # %entry1993; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, mu1994; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t1995; CHECK-NEXT: ret1996entry:1997 %a = call <vscale x 2 x i32> @llvm.riscv.vsll.mask.nxv2i32(1998 <vscale x 2 x i32> %0,1999 <vscale x 2 x i32> %1,2000 iXLen 9,2001 <vscale x 2 x i1> %2,2002 iXLen %3, iXLen 1)2003 2004 ret <vscale x 2 x i32> %a2005}2006 2007define <vscale x 4 x i32> @intrinsic_vsll_vi_nxv4i32_nxv4i32_i32(<vscale x 4 x i32> %0, iXLen %1) nounwind {2008; CHECK-LABEL: intrinsic_vsll_vi_nxv4i32_nxv4i32_i32:2009; CHECK: # %bb.0: # %entry2010; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma2011; CHECK-NEXT: vsll.vi v8, v8, 92012; CHECK-NEXT: ret2013entry:2014 %a = call <vscale x 4 x i32> @llvm.riscv.vsll.nxv4i32(2015 <vscale x 4 x i32> poison,2016 <vscale x 4 x i32> %0,2017 iXLen 9,2018 iXLen %1)2019 2020 ret <vscale x 4 x i32> %a2021}2022 2023define <vscale x 4 x i32> @intrinsic_vsll_mask_vi_nxv4i32_nxv4i32_i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {2024; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv4i32_nxv4i32_i32:2025; CHECK: # %bb.0: # %entry2026; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, mu2027; CHECK-NEXT: vsll.vi v8, v10, 9, v0.t2028; CHECK-NEXT: ret2029entry:2030 %a = call <vscale x 4 x i32> @llvm.riscv.vsll.mask.nxv4i32(2031 <vscale x 4 x i32> %0,2032 <vscale x 4 x i32> %1,2033 iXLen 9,2034 <vscale x 4 x i1> %2,2035 iXLen %3, iXLen 1)2036 2037 ret <vscale x 4 x i32> %a2038}2039 2040define <vscale x 8 x i32> @intrinsic_vsll_vi_nxv8i32_nxv8i32_i32(<vscale x 8 x i32> %0, iXLen %1) nounwind {2041; CHECK-LABEL: intrinsic_vsll_vi_nxv8i32_nxv8i32_i32:2042; CHECK: # %bb.0: # %entry2043; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma2044; CHECK-NEXT: vsll.vi v8, v8, 92045; CHECK-NEXT: ret2046entry:2047 %a = call <vscale x 8 x i32> @llvm.riscv.vsll.nxv8i32(2048 <vscale x 8 x i32> poison,2049 <vscale x 8 x i32> %0,2050 iXLen 9,2051 iXLen %1)2052 2053 ret <vscale x 8 x i32> %a2054}2055 2056define <vscale x 8 x i32> @intrinsic_vsll_mask_vi_nxv8i32_nxv8i32_i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {2057; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv8i32_nxv8i32_i32:2058; CHECK: # %bb.0: # %entry2059; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, mu2060; CHECK-NEXT: vsll.vi v8, v12, 9, v0.t2061; CHECK-NEXT: ret2062entry:2063 %a = call <vscale x 8 x i32> @llvm.riscv.vsll.mask.nxv8i32(2064 <vscale x 8 x i32> %0,2065 <vscale x 8 x i32> %1,2066 iXLen 9,2067 <vscale x 8 x i1> %2,2068 iXLen %3, iXLen 1)2069 2070 ret <vscale x 8 x i32> %a2071}2072 2073define <vscale x 16 x i32> @intrinsic_vsll_vi_nxv16i32_nxv16i32_i32(<vscale x 16 x i32> %0, iXLen %1) nounwind {2074; CHECK-LABEL: intrinsic_vsll_vi_nxv16i32_nxv16i32_i32:2075; CHECK: # %bb.0: # %entry2076; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma2077; CHECK-NEXT: vsll.vi v8, v8, 92078; CHECK-NEXT: ret2079entry:2080 %a = call <vscale x 16 x i32> @llvm.riscv.vsll.nxv16i32(2081 <vscale x 16 x i32> poison,2082 <vscale x 16 x i32> %0,2083 iXLen 9,2084 iXLen %1)2085 2086 ret <vscale x 16 x i32> %a2087}2088 2089define <vscale x 16 x i32> @intrinsic_vsll_mask_vi_nxv16i32_nxv16i32_i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {2090; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv16i32_nxv16i32_i32:2091; CHECK: # %bb.0: # %entry2092; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, mu2093; CHECK-NEXT: vsll.vi v8, v16, 9, v0.t2094; CHECK-NEXT: ret2095entry:2096 %a = call <vscale x 16 x i32> @llvm.riscv.vsll.mask.nxv16i32(2097 <vscale x 16 x i32> %0,2098 <vscale x 16 x i32> %1,2099 iXLen 9,2100 <vscale x 16 x i1> %2,2101 iXLen %3, iXLen 1)2102 2103 ret <vscale x 16 x i32> %a2104}2105 2106define <vscale x 1 x i64> @intrinsic_vsll_vi_nxv1i64_nxv1i64_i64(<vscale x 1 x i64> %0, iXLen %1) nounwind {2107; CHECK-LABEL: intrinsic_vsll_vi_nxv1i64_nxv1i64_i64:2108; CHECK: # %bb.0: # %entry2109; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma2110; CHECK-NEXT: vsll.vi v8, v8, 92111; CHECK-NEXT: ret2112entry:2113 %a = call <vscale x 1 x i64> @llvm.riscv.vsll.nxv1i64(2114 <vscale x 1 x i64> poison,2115 <vscale x 1 x i64> %0,2116 iXLen 9,2117 iXLen %1)2118 2119 ret <vscale x 1 x i64> %a2120}2121 2122define <vscale x 1 x i64> @intrinsic_vsll_mask_vi_nxv1i64_nxv1i64_i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {2123; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv1i64_nxv1i64_i64:2124; CHECK: # %bb.0: # %entry2125; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, mu2126; CHECK-NEXT: vsll.vi v8, v9, 9, v0.t2127; CHECK-NEXT: ret2128entry:2129 %a = call <vscale x 1 x i64> @llvm.riscv.vsll.mask.nxv1i64(2130 <vscale x 1 x i64> %0,2131 <vscale x 1 x i64> %1,2132 iXLen 9,2133 <vscale x 1 x i1> %2,2134 iXLen %3, iXLen 1)2135 2136 ret <vscale x 1 x i64> %a2137}2138 2139define <vscale x 2 x i64> @intrinsic_vsll_vi_nxv2i64_nxv2i64_i64(<vscale x 2 x i64> %0, iXLen %1) nounwind {2140; CHECK-LABEL: intrinsic_vsll_vi_nxv2i64_nxv2i64_i64:2141; CHECK: # %bb.0: # %entry2142; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma2143; CHECK-NEXT: vsll.vi v8, v8, 92144; CHECK-NEXT: ret2145entry:2146 %a = call <vscale x 2 x i64> @llvm.riscv.vsll.nxv2i64(2147 <vscale x 2 x i64> poison,2148 <vscale x 2 x i64> %0,2149 iXLen 9,2150 iXLen %1)2151 2152 ret <vscale x 2 x i64> %a2153}2154 2155define <vscale x 2 x i64> @intrinsic_vsll_mask_vi_nxv2i64_nxv2i64_i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {2156; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv2i64_nxv2i64_i64:2157; CHECK: # %bb.0: # %entry2158; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, mu2159; CHECK-NEXT: vsll.vi v8, v10, 9, v0.t2160; CHECK-NEXT: ret2161entry:2162 %a = call <vscale x 2 x i64> @llvm.riscv.vsll.mask.nxv2i64(2163 <vscale x 2 x i64> %0,2164 <vscale x 2 x i64> %1,2165 iXLen 9,2166 <vscale x 2 x i1> %2,2167 iXLen %3, iXLen 1)2168 2169 ret <vscale x 2 x i64> %a2170}2171 2172define <vscale x 4 x i64> @intrinsic_vsll_vi_nxv4i64_nxv4i64_i64(<vscale x 4 x i64> %0, iXLen %1) nounwind {2173; CHECK-LABEL: intrinsic_vsll_vi_nxv4i64_nxv4i64_i64:2174; CHECK: # %bb.0: # %entry2175; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma2176; CHECK-NEXT: vsll.vi v8, v8, 92177; CHECK-NEXT: ret2178entry:2179 %a = call <vscale x 4 x i64> @llvm.riscv.vsll.nxv4i64(2180 <vscale x 4 x i64> poison,2181 <vscale x 4 x i64> %0,2182 iXLen 9,2183 iXLen %1)2184 2185 ret <vscale x 4 x i64> %a2186}2187 2188define <vscale x 4 x i64> @intrinsic_vsll_mask_vi_nxv4i64_nxv4i64_i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {2189; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv4i64_nxv4i64_i64:2190; CHECK: # %bb.0: # %entry2191; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, mu2192; CHECK-NEXT: vsll.vi v8, v12, 9, v0.t2193; CHECK-NEXT: ret2194entry:2195 %a = call <vscale x 4 x i64> @llvm.riscv.vsll.mask.nxv4i64(2196 <vscale x 4 x i64> %0,2197 <vscale x 4 x i64> %1,2198 iXLen 9,2199 <vscale x 4 x i1> %2,2200 iXLen %3, iXLen 1)2201 2202 ret <vscale x 4 x i64> %a2203}2204 2205define <vscale x 8 x i64> @intrinsic_vsll_vi_nxv8i64_nxv8i64_i64(<vscale x 8 x i64> %0, iXLen %1) nounwind {2206; CHECK-LABEL: intrinsic_vsll_vi_nxv8i64_nxv8i64_i64:2207; CHECK: # %bb.0: # %entry2208; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma2209; CHECK-NEXT: vsll.vi v8, v8, 92210; CHECK-NEXT: ret2211entry:2212 %a = call <vscale x 8 x i64> @llvm.riscv.vsll.nxv8i64(2213 <vscale x 8 x i64> poison,2214 <vscale x 8 x i64> %0,2215 iXLen 9,2216 iXLen %1)2217 2218 ret <vscale x 8 x i64> %a2219}2220 2221define <vscale x 8 x i64> @intrinsic_vsll_mask_vi_nxv8i64_nxv8i64_i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {2222; CHECK-LABEL: intrinsic_vsll_mask_vi_nxv8i64_nxv8i64_i64:2223; CHECK: # %bb.0: # %entry2224; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, mu2225; CHECK-NEXT: vsll.vi v8, v16, 9, v0.t2226; CHECK-NEXT: ret2227entry:2228 %a = call <vscale x 8 x i64> @llvm.riscv.vsll.mask.nxv8i64(2229 <vscale x 8 x i64> %0,2230 <vscale x 8 x i64> %1,2231 iXLen 9,2232 <vscale x 8 x i1> %2,2233 iXLen %3, iXLen 1)2234 2235 ret <vscale x 8 x i64> %a2236}2237