3617 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,+zvfhmin,+zvfbfmin \3; RUN: -global-isel -verify-machineinstrs -target-abi=ilp32d | FileCheck %s4; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+zvfhmin,+zvfbfmin \5; RUN: -global-isel -verify-machineinstrs -target-abi=lp64d | FileCheck %s6 7define <vscale x 1 x i8> @intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {8; CHECK-LABEL: intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i32:9; CHECK: # %bb.0: # %entry10; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma11; CHECK-NEXT: vluxei32.v v9, (a0), v812; CHECK-NEXT: vmv1r.v v8, v913; CHECK-NEXT: ret14entry:15 %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.nxv1i8.nxv1i32(16 <vscale x 1 x i8> poison,17 ptr %0,18 <vscale x 1 x i32> %1,19 iXLen %2)20 21 ret <vscale x 1 x i8> %a22}23 24define <vscale x 1 x i8> @intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i32(<vscale x 1 x i8> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {25; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i32:26; CHECK: # %bb.0: # %entry27; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, mu28; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t29; CHECK-NEXT: ret30entry:31 %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.mask.nxv1i8.nxv1i32(32 <vscale x 1 x i8> %0,33 ptr %1,34 <vscale x 1 x i32> %2,35 <vscale x 1 x i1> %3,36 iXLen %4, iXLen 1)37 38 ret <vscale x 1 x i8> %a39}40 41define <vscale x 2 x i8> @intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {42; CHECK-LABEL: intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i32:43; CHECK: # %bb.0: # %entry44; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma45; CHECK-NEXT: vluxei32.v v9, (a0), v846; CHECK-NEXT: vmv1r.v v8, v947; CHECK-NEXT: ret48entry:49 %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.nxv2i8.nxv2i32(50 <vscale x 2 x i8> poison,51 ptr %0,52 <vscale x 2 x i32> %1,53 iXLen %2)54 55 ret <vscale x 2 x i8> %a56}57 58define <vscale x 2 x i8> @intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i32(<vscale x 2 x i8> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {59; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i32:60; CHECK: # %bb.0: # %entry61; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, mu62; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t63; CHECK-NEXT: ret64entry:65 %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.mask.nxv2i8.nxv2i32(66 <vscale x 2 x i8> %0,67 ptr %1,68 <vscale x 2 x i32> %2,69 <vscale x 2 x i1> %3,70 iXLen %4, iXLen 1)71 72 ret <vscale x 2 x i8> %a73}74 75define <vscale x 4 x i8> @intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {76; CHECK-LABEL: intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i32:77; CHECK: # %bb.0: # %entry78; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma79; CHECK-NEXT: vluxei32.v v10, (a0), v880; CHECK-NEXT: vmv1r.v v8, v1081; CHECK-NEXT: ret82entry:83 %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.nxv4i8.nxv4i32(84 <vscale x 4 x i8> poison,85 ptr %0,86 <vscale x 4 x i32> %1,87 iXLen %2)88 89 ret <vscale x 4 x i8> %a90}91 92define <vscale x 4 x i8> @intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i32(<vscale x 4 x i8> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {93; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i32:94; CHECK: # %bb.0: # %entry95; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, mu96; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t97; CHECK-NEXT: ret98entry:99 %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.mask.nxv4i8.nxv4i32(100 <vscale x 4 x i8> %0,101 ptr %1,102 <vscale x 4 x i32> %2,103 <vscale x 4 x i1> %3,104 iXLen %4, iXLen 1)105 106 ret <vscale x 4 x i8> %a107}108 109define <vscale x 8 x i8> @intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {110; CHECK-LABEL: intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i32:111; CHECK: # %bb.0: # %entry112; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma113; CHECK-NEXT: vluxei32.v v12, (a0), v8114; CHECK-NEXT: vmv.v.v v8, v12115; CHECK-NEXT: ret116entry:117 %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.nxv8i8.nxv8i32(118 <vscale x 8 x i8> poison,119 ptr %0,120 <vscale x 8 x i32> %1,121 iXLen %2)122 123 ret <vscale x 8 x i8> %a124}125 126define <vscale x 8 x i8> @intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i32(<vscale x 8 x i8> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {127; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i32:128; CHECK: # %bb.0: # %entry129; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu130; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t131; CHECK-NEXT: ret132entry:133 %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.mask.nxv8i8.nxv8i32(134 <vscale x 8 x i8> %0,135 ptr %1,136 <vscale x 8 x i32> %2,137 <vscale x 8 x i1> %3,138 iXLen %4, iXLen 1)139 140 ret <vscale x 8 x i8> %a141}142 143define <vscale x 16 x i8> @intrinsic_vluxei_v_nxv16i8_nxv16i8_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {144; CHECK-LABEL: intrinsic_vluxei_v_nxv16i8_nxv16i8_nxv16i32:145; CHECK: # %bb.0: # %entry146; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma147; CHECK-NEXT: vluxei32.v v16, (a0), v8148; CHECK-NEXT: vmv.v.v v8, v16149; CHECK-NEXT: ret150entry:151 %a = call <vscale x 16 x i8> @llvm.riscv.vluxei.nxv16i8.nxv16i32(152 <vscale x 16 x i8> poison,153 ptr %0,154 <vscale x 16 x i32> %1,155 iXLen %2)156 157 ret <vscale x 16 x i8> %a158}159 160define <vscale x 16 x i8> @intrinsic_vluxei_mask_v_nxv16i8_nxv16i8_nxv16i32(<vscale x 16 x i8> %0, ptr %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {161; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i8_nxv16i8_nxv16i32:162; CHECK: # %bb.0: # %entry163; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu164; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t165; CHECK-NEXT: ret166entry:167 %a = call <vscale x 16 x i8> @llvm.riscv.vluxei.mask.nxv16i8.nxv16i32(168 <vscale x 16 x i8> %0,169 ptr %1,170 <vscale x 16 x i32> %2,171 <vscale x 16 x i1> %3,172 iXLen %4, iXLen 1)173 174 ret <vscale x 16 x i8> %a175}176 177define <vscale x 1 x i16> @intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {178; CHECK-LABEL: intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i32:179; CHECK: # %bb.0: # %entry180; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma181; CHECK-NEXT: vluxei32.v v9, (a0), v8182; CHECK-NEXT: vmv1r.v v8, v9183; CHECK-NEXT: ret184entry:185 %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.nxv1i16.nxv1i32(186 <vscale x 1 x i16> poison,187 ptr %0,188 <vscale x 1 x i32> %1,189 iXLen %2)190 191 ret <vscale x 1 x i16> %a192}193 194define <vscale x 1 x i16> @intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i32(<vscale x 1 x i16> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {195; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i32:196; CHECK: # %bb.0: # %entry197; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu198; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t199; CHECK-NEXT: ret200entry:201 %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.mask.nxv1i16.nxv1i32(202 <vscale x 1 x i16> %0,203 ptr %1,204 <vscale x 1 x i32> %2,205 <vscale x 1 x i1> %3,206 iXLen %4, iXLen 1)207 208 ret <vscale x 1 x i16> %a209}210 211define <vscale x 2 x i16> @intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {212; CHECK-LABEL: intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i32:213; CHECK: # %bb.0: # %entry214; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma215; CHECK-NEXT: vluxei32.v v9, (a0), v8216; CHECK-NEXT: vmv1r.v v8, v9217; CHECK-NEXT: ret218entry:219 %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.nxv2i16.nxv2i32(220 <vscale x 2 x i16> poison,221 ptr %0,222 <vscale x 2 x i32> %1,223 iXLen %2)224 225 ret <vscale x 2 x i16> %a226}227 228define <vscale x 2 x i16> @intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i32(<vscale x 2 x i16> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {229; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i32:230; CHECK: # %bb.0: # %entry231; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu232; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t233; CHECK-NEXT: ret234entry:235 %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.mask.nxv2i16.nxv2i32(236 <vscale x 2 x i16> %0,237 ptr %1,238 <vscale x 2 x i32> %2,239 <vscale x 2 x i1> %3,240 iXLen %4, iXLen 1)241 242 ret <vscale x 2 x i16> %a243}244 245define <vscale x 4 x i16> @intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {246; CHECK-LABEL: intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i32:247; CHECK: # %bb.0: # %entry248; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma249; CHECK-NEXT: vluxei32.v v10, (a0), v8250; CHECK-NEXT: vmv.v.v v8, v10251; CHECK-NEXT: ret252entry:253 %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.nxv4i16.nxv4i32(254 <vscale x 4 x i16> poison,255 ptr %0,256 <vscale x 4 x i32> %1,257 iXLen %2)258 259 ret <vscale x 4 x i16> %a260}261 262define <vscale x 4 x i16> @intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i32(<vscale x 4 x i16> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {263; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i32:264; CHECK: # %bb.0: # %entry265; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu266; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t267; CHECK-NEXT: ret268entry:269 %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.mask.nxv4i16.nxv4i32(270 <vscale x 4 x i16> %0,271 ptr %1,272 <vscale x 4 x i32> %2,273 <vscale x 4 x i1> %3,274 iXLen %4, iXLen 1)275 276 ret <vscale x 4 x i16> %a277}278 279define <vscale x 8 x i16> @intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {280; CHECK-LABEL: intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i32:281; CHECK: # %bb.0: # %entry282; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma283; CHECK-NEXT: vluxei32.v v12, (a0), v8284; CHECK-NEXT: vmv.v.v v8, v12285; CHECK-NEXT: ret286entry:287 %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.nxv8i16.nxv8i32(288 <vscale x 8 x i16> poison,289 ptr %0,290 <vscale x 8 x i32> %1,291 iXLen %2)292 293 ret <vscale x 8 x i16> %a294}295 296define <vscale x 8 x i16> @intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i32(<vscale x 8 x i16> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {297; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i32:298; CHECK: # %bb.0: # %entry299; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu300; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t301; CHECK-NEXT: ret302entry:303 %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.mask.nxv8i16.nxv8i32(304 <vscale x 8 x i16> %0,305 ptr %1,306 <vscale x 8 x i32> %2,307 <vscale x 8 x i1> %3,308 iXLen %4, iXLen 1)309 310 ret <vscale x 8 x i16> %a311}312 313define <vscale x 16 x i16> @intrinsic_vluxei_v_nxv16i16_nxv16i16_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {314; CHECK-LABEL: intrinsic_vluxei_v_nxv16i16_nxv16i16_nxv16i32:315; CHECK: # %bb.0: # %entry316; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma317; CHECK-NEXT: vluxei32.v v16, (a0), v8318; CHECK-NEXT: vmv.v.v v8, v16319; CHECK-NEXT: ret320entry:321 %a = call <vscale x 16 x i16> @llvm.riscv.vluxei.nxv16i16.nxv16i32(322 <vscale x 16 x i16> poison,323 ptr %0,324 <vscale x 16 x i32> %1,325 iXLen %2)326 327 ret <vscale x 16 x i16> %a328}329 330define <vscale x 16 x i16> @intrinsic_vluxei_mask_v_nxv16i16_nxv16i16_nxv16i32(<vscale x 16 x i16> %0, ptr %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {331; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i16_nxv16i16_nxv16i32:332; CHECK: # %bb.0: # %entry333; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu334; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t335; CHECK-NEXT: ret336entry:337 %a = call <vscale x 16 x i16> @llvm.riscv.vluxei.mask.nxv16i16.nxv16i32(338 <vscale x 16 x i16> %0,339 ptr %1,340 <vscale x 16 x i32> %2,341 <vscale x 16 x i1> %3,342 iXLen %4, iXLen 1)343 344 ret <vscale x 16 x i16> %a345}346 347define <vscale x 1 x i32> @intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {348; CHECK-LABEL: intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i32:349; CHECK: # %bb.0: # %entry350; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma351; CHECK-NEXT: vluxei32.v v8, (a0), v8352; CHECK-NEXT: ret353entry:354 %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.nxv1i32.nxv1i32(355 <vscale x 1 x i32> poison,356 ptr %0,357 <vscale x 1 x i32> %1,358 iXLen %2)359 360 ret <vscale x 1 x i32> %a361}362 363define <vscale x 1 x i32> @intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {364; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i32:365; CHECK: # %bb.0: # %entry366; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu367; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t368; CHECK-NEXT: ret369entry:370 %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.mask.nxv1i32.nxv1i32(371 <vscale x 1 x i32> %0,372 ptr %1,373 <vscale x 1 x i32> %2,374 <vscale x 1 x i1> %3,375 iXLen %4, iXLen 1)376 377 ret <vscale x 1 x i32> %a378}379 380define <vscale x 2 x i32> @intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {381; CHECK-LABEL: intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i32:382; CHECK: # %bb.0: # %entry383; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma384; CHECK-NEXT: vluxei32.v v8, (a0), v8385; CHECK-NEXT: ret386entry:387 %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.nxv2i32.nxv2i32(388 <vscale x 2 x i32> poison,389 ptr %0,390 <vscale x 2 x i32> %1,391 iXLen %2)392 393 ret <vscale x 2 x i32> %a394}395 396define <vscale x 2 x i32> @intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {397; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i32:398; CHECK: # %bb.0: # %entry399; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu400; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t401; CHECK-NEXT: ret402entry:403 %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.mask.nxv2i32.nxv2i32(404 <vscale x 2 x i32> %0,405 ptr %1,406 <vscale x 2 x i32> %2,407 <vscale x 2 x i1> %3,408 iXLen %4, iXLen 1)409 410 ret <vscale x 2 x i32> %a411}412 413define <vscale x 4 x i32> @intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {414; CHECK-LABEL: intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i32:415; CHECK: # %bb.0: # %entry416; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma417; CHECK-NEXT: vluxei32.v v8, (a0), v8418; CHECK-NEXT: ret419entry:420 %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.nxv4i32.nxv4i32(421 <vscale x 4 x i32> poison,422 ptr %0,423 <vscale x 4 x i32> %1,424 iXLen %2)425 426 ret <vscale x 4 x i32> %a427}428 429define <vscale x 4 x i32> @intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {430; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i32:431; CHECK: # %bb.0: # %entry432; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu433; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t434; CHECK-NEXT: ret435entry:436 %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.mask.nxv4i32.nxv4i32(437 <vscale x 4 x i32> %0,438 ptr %1,439 <vscale x 4 x i32> %2,440 <vscale x 4 x i1> %3,441 iXLen %4, iXLen 1)442 443 ret <vscale x 4 x i32> %a444}445 446define <vscale x 8 x i32> @intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {447; CHECK-LABEL: intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i32:448; CHECK: # %bb.0: # %entry449; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma450; CHECK-NEXT: vluxei32.v v8, (a0), v8451; CHECK-NEXT: ret452entry:453 %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.nxv8i32.nxv8i32(454 <vscale x 8 x i32> poison,455 ptr %0,456 <vscale x 8 x i32> %1,457 iXLen %2)458 459 ret <vscale x 8 x i32> %a460}461 462define <vscale x 8 x i32> @intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {463; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i32:464; CHECK: # %bb.0: # %entry465; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu466; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t467; CHECK-NEXT: ret468entry:469 %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.mask.nxv8i32.nxv8i32(470 <vscale x 8 x i32> %0,471 ptr %1,472 <vscale x 8 x i32> %2,473 <vscale x 8 x i1> %3,474 iXLen %4, iXLen 1)475 476 ret <vscale x 8 x i32> %a477}478 479define <vscale x 16 x i32> @intrinsic_vluxei_v_nxv16i32_nxv16i32_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {480; CHECK-LABEL: intrinsic_vluxei_v_nxv16i32_nxv16i32_nxv16i32:481; CHECK: # %bb.0: # %entry482; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma483; CHECK-NEXT: vluxei32.v v8, (a0), v8484; CHECK-NEXT: ret485entry:486 %a = call <vscale x 16 x i32> @llvm.riscv.vluxei.nxv16i32.nxv16i32(487 <vscale x 16 x i32> poison,488 ptr %0,489 <vscale x 16 x i32> %1,490 iXLen %2)491 492 ret <vscale x 16 x i32> %a493}494 495define <vscale x 16 x i32> @intrinsic_vluxei_mask_v_nxv16i32_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, ptr %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {496; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i32_nxv16i32_nxv16i32:497; CHECK: # %bb.0: # %entry498; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu499; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t500; CHECK-NEXT: ret501entry:502 %a = call <vscale x 16 x i32> @llvm.riscv.vluxei.mask.nxv16i32.nxv16i32(503 <vscale x 16 x i32> %0,504 ptr %1,505 <vscale x 16 x i32> %2,506 <vscale x 16 x i1> %3,507 iXLen %4, iXLen 1)508 509 ret <vscale x 16 x i32> %a510}511 512define <vscale x 1 x i64> @intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {513; CHECK-LABEL: intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i32:514; CHECK: # %bb.0: # %entry515; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma516; CHECK-NEXT: vluxei32.v v9, (a0), v8517; CHECK-NEXT: vmv.v.v v8, v9518; CHECK-NEXT: ret519entry:520 %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.nxv1i64.nxv1i32(521 <vscale x 1 x i64> poison,522 ptr %0,523 <vscale x 1 x i32> %1,524 iXLen %2)525 526 ret <vscale x 1 x i64> %a527}528 529define <vscale x 1 x i64> @intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i32(<vscale x 1 x i64> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {530; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i32:531; CHECK: # %bb.0: # %entry532; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu533; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t534; CHECK-NEXT: ret535entry:536 %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.mask.nxv1i64.nxv1i32(537 <vscale x 1 x i64> %0,538 ptr %1,539 <vscale x 1 x i32> %2,540 <vscale x 1 x i1> %3,541 iXLen %4, iXLen 1)542 543 ret <vscale x 1 x i64> %a544}545 546define <vscale x 2 x i64> @intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {547; CHECK-LABEL: intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i32:548; CHECK: # %bb.0: # %entry549; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma550; CHECK-NEXT: vmv1r.v v10, v8551; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma552; CHECK-NEXT: vluxei32.v v8, (a0), v10553; CHECK-NEXT: ret554entry:555 %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.nxv2i64.nxv2i32(556 <vscale x 2 x i64> poison,557 ptr %0,558 <vscale x 2 x i32> %1,559 iXLen %2)560 561 ret <vscale x 2 x i64> %a562}563 564define <vscale x 2 x i64> @intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i32(<vscale x 2 x i64> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {565; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i32:566; CHECK: # %bb.0: # %entry567; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu568; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t569; CHECK-NEXT: ret570entry:571 %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.mask.nxv2i64.nxv2i32(572 <vscale x 2 x i64> %0,573 ptr %1,574 <vscale x 2 x i32> %2,575 <vscale x 2 x i1> %3,576 iXLen %4, iXLen 1)577 578 ret <vscale x 2 x i64> %a579}580 581define <vscale x 4 x i64> @intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {582; CHECK-LABEL: intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i32:583; CHECK: # %bb.0: # %entry584; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma585; CHECK-NEXT: vmv2r.v v12, v8586; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma587; CHECK-NEXT: vluxei32.v v8, (a0), v12588; CHECK-NEXT: ret589entry:590 %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.nxv4i64.nxv4i32(591 <vscale x 4 x i64> poison,592 ptr %0,593 <vscale x 4 x i32> %1,594 iXLen %2)595 596 ret <vscale x 4 x i64> %a597}598 599define <vscale x 4 x i64> @intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i32(<vscale x 4 x i64> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {600; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i32:601; CHECK: # %bb.0: # %entry602; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu603; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t604; CHECK-NEXT: ret605entry:606 %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.mask.nxv4i64.nxv4i32(607 <vscale x 4 x i64> %0,608 ptr %1,609 <vscale x 4 x i32> %2,610 <vscale x 4 x i1> %3,611 iXLen %4, iXLen 1)612 613 ret <vscale x 4 x i64> %a614}615 616define <vscale x 8 x i64> @intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {617; CHECK-LABEL: intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i32:618; CHECK: # %bb.0: # %entry619; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma620; CHECK-NEXT: vmv4r.v v16, v8621; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma622; CHECK-NEXT: vluxei32.v v8, (a0), v16623; CHECK-NEXT: ret624entry:625 %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.nxv8i64.nxv8i32(626 <vscale x 8 x i64> poison,627 ptr %0,628 <vscale x 8 x i32> %1,629 iXLen %2)630 631 ret <vscale x 8 x i64> %a632}633 634define <vscale x 8 x i64> @intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i32(<vscale x 8 x i64> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {635; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i32:636; CHECK: # %bb.0: # %entry637; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu638; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t639; CHECK-NEXT: ret640entry:641 %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.mask.nxv8i64.nxv8i32(642 <vscale x 8 x i64> %0,643 ptr %1,644 <vscale x 8 x i32> %2,645 <vscale x 8 x i1> %3,646 iXLen %4, iXLen 1)647 648 ret <vscale x 8 x i64> %a649}650 651define <vscale x 1 x half> @intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {652; CHECK-LABEL: intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i32:653; CHECK: # %bb.0: # %entry654; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma655; CHECK-NEXT: vluxei32.v v9, (a0), v8656; CHECK-NEXT: vmv1r.v v8, v9657; CHECK-NEXT: ret658entry:659 %a = call <vscale x 1 x half> @llvm.riscv.vluxei.nxv1f16.nxv1i32(660 <vscale x 1 x half> poison,661 ptr %0,662 <vscale x 1 x i32> %1,663 iXLen %2)664 665 ret <vscale x 1 x half> %a666}667 668define <vscale x 1 x half> @intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i32(<vscale x 1 x half> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {669; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i32:670; CHECK: # %bb.0: # %entry671; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu672; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t673; CHECK-NEXT: ret674entry:675 %a = call <vscale x 1 x half> @llvm.riscv.vluxei.mask.nxv1f16.nxv1i32(676 <vscale x 1 x half> %0,677 ptr %1,678 <vscale x 1 x i32> %2,679 <vscale x 1 x i1> %3,680 iXLen %4, iXLen 1)681 682 ret <vscale x 1 x half> %a683}684 685define <vscale x 2 x half> @intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {686; CHECK-LABEL: intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i32:687; CHECK: # %bb.0: # %entry688; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma689; CHECK-NEXT: vluxei32.v v9, (a0), v8690; CHECK-NEXT: vmv1r.v v8, v9691; CHECK-NEXT: ret692entry:693 %a = call <vscale x 2 x half> @llvm.riscv.vluxei.nxv2f16.nxv2i32(694 <vscale x 2 x half> poison,695 ptr %0,696 <vscale x 2 x i32> %1,697 iXLen %2)698 699 ret <vscale x 2 x half> %a700}701 702define <vscale x 2 x half> @intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i32(<vscale x 2 x half> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {703; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i32:704; CHECK: # %bb.0: # %entry705; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu706; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t707; CHECK-NEXT: ret708entry:709 %a = call <vscale x 2 x half> @llvm.riscv.vluxei.mask.nxv2f16.nxv2i32(710 <vscale x 2 x half> %0,711 ptr %1,712 <vscale x 2 x i32> %2,713 <vscale x 2 x i1> %3,714 iXLen %4, iXLen 1)715 716 ret <vscale x 2 x half> %a717}718 719define <vscale x 4 x half> @intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {720; CHECK-LABEL: intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i32:721; CHECK: # %bb.0: # %entry722; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma723; CHECK-NEXT: vluxei32.v v10, (a0), v8724; CHECK-NEXT: vmv.v.v v8, v10725; CHECK-NEXT: ret726entry:727 %a = call <vscale x 4 x half> @llvm.riscv.vluxei.nxv4f16.nxv4i32(728 <vscale x 4 x half> poison,729 ptr %0,730 <vscale x 4 x i32> %1,731 iXLen %2)732 733 ret <vscale x 4 x half> %a734}735 736define <vscale x 4 x half> @intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i32(<vscale x 4 x half> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {737; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i32:738; CHECK: # %bb.0: # %entry739; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu740; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t741; CHECK-NEXT: ret742entry:743 %a = call <vscale x 4 x half> @llvm.riscv.vluxei.mask.nxv4f16.nxv4i32(744 <vscale x 4 x half> %0,745 ptr %1,746 <vscale x 4 x i32> %2,747 <vscale x 4 x i1> %3,748 iXLen %4, iXLen 1)749 750 ret <vscale x 4 x half> %a751}752 753define <vscale x 8 x half> @intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {754; CHECK-LABEL: intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i32:755; CHECK: # %bb.0: # %entry756; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma757; CHECK-NEXT: vluxei32.v v12, (a0), v8758; CHECK-NEXT: vmv.v.v v8, v12759; CHECK-NEXT: ret760entry:761 %a = call <vscale x 8 x half> @llvm.riscv.vluxei.nxv8f16.nxv8i32(762 <vscale x 8 x half> poison,763 ptr %0,764 <vscale x 8 x i32> %1,765 iXLen %2)766 767 ret <vscale x 8 x half> %a768}769 770define <vscale x 8 x half> @intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i32(<vscale x 8 x half> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {771; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i32:772; CHECK: # %bb.0: # %entry773; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu774; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t775; CHECK-NEXT: ret776entry:777 %a = call <vscale x 8 x half> @llvm.riscv.vluxei.mask.nxv8f16.nxv8i32(778 <vscale x 8 x half> %0,779 ptr %1,780 <vscale x 8 x i32> %2,781 <vscale x 8 x i1> %3,782 iXLen %4, iXLen 1)783 784 ret <vscale x 8 x half> %a785}786 787define <vscale x 16 x half> @intrinsic_vluxei_v_nxv16f16_nxv16f16_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {788; CHECK-LABEL: intrinsic_vluxei_v_nxv16f16_nxv16f16_nxv16i32:789; CHECK: # %bb.0: # %entry790; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma791; CHECK-NEXT: vluxei32.v v16, (a0), v8792; CHECK-NEXT: vmv.v.v v8, v16793; CHECK-NEXT: ret794entry:795 %a = call <vscale x 16 x half> @llvm.riscv.vluxei.nxv16f16.nxv16i32(796 <vscale x 16 x half> poison,797 ptr %0,798 <vscale x 16 x i32> %1,799 iXLen %2)800 801 ret <vscale x 16 x half> %a802}803 804define <vscale x 16 x half> @intrinsic_vluxei_mask_v_nxv16f16_nxv16f16_nxv16i32(<vscale x 16 x half> %0, ptr %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {805; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16f16_nxv16f16_nxv16i32:806; CHECK: # %bb.0: # %entry807; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu808; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t809; CHECK-NEXT: ret810entry:811 %a = call <vscale x 16 x half> @llvm.riscv.vluxei.mask.nxv16f16.nxv16i32(812 <vscale x 16 x half> %0,813 ptr %1,814 <vscale x 16 x i32> %2,815 <vscale x 16 x i1> %3,816 iXLen %4, iXLen 1)817 818 ret <vscale x 16 x half> %a819}820 821define <vscale x 1 x float> @intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {822; CHECK-LABEL: intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i32:823; CHECK: # %bb.0: # %entry824; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma825; CHECK-NEXT: vluxei32.v v8, (a0), v8826; CHECK-NEXT: ret827entry:828 %a = call <vscale x 1 x float> @llvm.riscv.vluxei.nxv1f32.nxv1i32(829 <vscale x 1 x float> poison,830 ptr %0,831 <vscale x 1 x i32> %1,832 iXLen %2)833 834 ret <vscale x 1 x float> %a835}836 837define <vscale x 1 x float> @intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i32(<vscale x 1 x float> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {838; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i32:839; CHECK: # %bb.0: # %entry840; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu841; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t842; CHECK-NEXT: ret843entry:844 %a = call <vscale x 1 x float> @llvm.riscv.vluxei.mask.nxv1f32.nxv1i32(845 <vscale x 1 x float> %0,846 ptr %1,847 <vscale x 1 x i32> %2,848 <vscale x 1 x i1> %3,849 iXLen %4, iXLen 1)850 851 ret <vscale x 1 x float> %a852}853 854define <vscale x 2 x float> @intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {855; CHECK-LABEL: intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i32:856; CHECK: # %bb.0: # %entry857; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma858; CHECK-NEXT: vluxei32.v v8, (a0), v8859; CHECK-NEXT: ret860entry:861 %a = call <vscale x 2 x float> @llvm.riscv.vluxei.nxv2f32.nxv2i32(862 <vscale x 2 x float> poison,863 ptr %0,864 <vscale x 2 x i32> %1,865 iXLen %2)866 867 ret <vscale x 2 x float> %a868}869 870define <vscale x 2 x float> @intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i32(<vscale x 2 x float> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {871; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i32:872; CHECK: # %bb.0: # %entry873; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu874; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t875; CHECK-NEXT: ret876entry:877 %a = call <vscale x 2 x float> @llvm.riscv.vluxei.mask.nxv2f32.nxv2i32(878 <vscale x 2 x float> %0,879 ptr %1,880 <vscale x 2 x i32> %2,881 <vscale x 2 x i1> %3,882 iXLen %4, iXLen 1)883 884 ret <vscale x 2 x float> %a885}886 887define <vscale x 4 x float> @intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {888; CHECK-LABEL: intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i32:889; CHECK: # %bb.0: # %entry890; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma891; CHECK-NEXT: vluxei32.v v8, (a0), v8892; CHECK-NEXT: ret893entry:894 %a = call <vscale x 4 x float> @llvm.riscv.vluxei.nxv4f32.nxv4i32(895 <vscale x 4 x float> poison,896 ptr %0,897 <vscale x 4 x i32> %1,898 iXLen %2)899 900 ret <vscale x 4 x float> %a901}902 903define <vscale x 4 x float> @intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i32(<vscale x 4 x float> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {904; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i32:905; CHECK: # %bb.0: # %entry906; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu907; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t908; CHECK-NEXT: ret909entry:910 %a = call <vscale x 4 x float> @llvm.riscv.vluxei.mask.nxv4f32.nxv4i32(911 <vscale x 4 x float> %0,912 ptr %1,913 <vscale x 4 x i32> %2,914 <vscale x 4 x i1> %3,915 iXLen %4, iXLen 1)916 917 ret <vscale x 4 x float> %a918}919 920define <vscale x 8 x float> @intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {921; CHECK-LABEL: intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i32:922; CHECK: # %bb.0: # %entry923; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma924; CHECK-NEXT: vluxei32.v v8, (a0), v8925; CHECK-NEXT: ret926entry:927 %a = call <vscale x 8 x float> @llvm.riscv.vluxei.nxv8f32.nxv8i32(928 <vscale x 8 x float> poison,929 ptr %0,930 <vscale x 8 x i32> %1,931 iXLen %2)932 933 ret <vscale x 8 x float> %a934}935 936define <vscale x 8 x float> @intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i32(<vscale x 8 x float> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {937; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i32:938; CHECK: # %bb.0: # %entry939; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu940; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t941; CHECK-NEXT: ret942entry:943 %a = call <vscale x 8 x float> @llvm.riscv.vluxei.mask.nxv8f32.nxv8i32(944 <vscale x 8 x float> %0,945 ptr %1,946 <vscale x 8 x i32> %2,947 <vscale x 8 x i1> %3,948 iXLen %4, iXLen 1)949 950 ret <vscale x 8 x float> %a951}952 953define <vscale x 16 x float> @intrinsic_vluxei_v_nxv16f32_nxv16f32_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {954; CHECK-LABEL: intrinsic_vluxei_v_nxv16f32_nxv16f32_nxv16i32:955; CHECK: # %bb.0: # %entry956; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma957; CHECK-NEXT: vluxei32.v v8, (a0), v8958; CHECK-NEXT: ret959entry:960 %a = call <vscale x 16 x float> @llvm.riscv.vluxei.nxv16f32.nxv16i32(961 <vscale x 16 x float> poison,962 ptr %0,963 <vscale x 16 x i32> %1,964 iXLen %2)965 966 ret <vscale x 16 x float> %a967}968 969define <vscale x 16 x float> @intrinsic_vluxei_mask_v_nxv16f32_nxv16f32_nxv16i32(<vscale x 16 x float> %0, ptr %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {970; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16f32_nxv16f32_nxv16i32:971; CHECK: # %bb.0: # %entry972; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu973; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t974; CHECK-NEXT: ret975entry:976 %a = call <vscale x 16 x float> @llvm.riscv.vluxei.mask.nxv16f32.nxv16i32(977 <vscale x 16 x float> %0,978 ptr %1,979 <vscale x 16 x i32> %2,980 <vscale x 16 x i1> %3,981 iXLen %4, iXLen 1)982 983 ret <vscale x 16 x float> %a984}985 986define <vscale x 1 x double> @intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {987; CHECK-LABEL: intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i32:988; CHECK: # %bb.0: # %entry989; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma990; CHECK-NEXT: vluxei32.v v9, (a0), v8991; CHECK-NEXT: vmv.v.v v8, v9992; CHECK-NEXT: ret993entry:994 %a = call <vscale x 1 x double> @llvm.riscv.vluxei.nxv1f64.nxv1i32(995 <vscale x 1 x double> poison,996 ptr %0,997 <vscale x 1 x i32> %1,998 iXLen %2)999 1000 ret <vscale x 1 x double> %a1001}1002 1003define <vscale x 1 x double> @intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i32(<vscale x 1 x double> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1004; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i32:1005; CHECK: # %bb.0: # %entry1006; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu1007; CHECK-NEXT: vluxei32.v v8, (a0), v9, v0.t1008; CHECK-NEXT: ret1009entry:1010 %a = call <vscale x 1 x double> @llvm.riscv.vluxei.mask.nxv1f64.nxv1i32(1011 <vscale x 1 x double> %0,1012 ptr %1,1013 <vscale x 1 x i32> %2,1014 <vscale x 1 x i1> %3,1015 iXLen %4, iXLen 1)1016 1017 ret <vscale x 1 x double> %a1018}1019 1020define <vscale x 2 x double> @intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {1021; CHECK-LABEL: intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i32:1022; CHECK: # %bb.0: # %entry1023; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1024; CHECK-NEXT: vmv1r.v v10, v81025; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma1026; CHECK-NEXT: vluxei32.v v8, (a0), v101027; CHECK-NEXT: ret1028entry:1029 %a = call <vscale x 2 x double> @llvm.riscv.vluxei.nxv2f64.nxv2i32(1030 <vscale x 2 x double> poison,1031 ptr %0,1032 <vscale x 2 x i32> %1,1033 iXLen %2)1034 1035 ret <vscale x 2 x double> %a1036}1037 1038define <vscale x 2 x double> @intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i32(<vscale x 2 x double> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1039; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i32:1040; CHECK: # %bb.0: # %entry1041; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu1042; CHECK-NEXT: vluxei32.v v8, (a0), v10, v0.t1043; CHECK-NEXT: ret1044entry:1045 %a = call <vscale x 2 x double> @llvm.riscv.vluxei.mask.nxv2f64.nxv2i32(1046 <vscale x 2 x double> %0,1047 ptr %1,1048 <vscale x 2 x i32> %2,1049 <vscale x 2 x i1> %3,1050 iXLen %4, iXLen 1)1051 1052 ret <vscale x 2 x double> %a1053}1054 1055define <vscale x 4 x double> @intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {1056; CHECK-LABEL: intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i32:1057; CHECK: # %bb.0: # %entry1058; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1059; CHECK-NEXT: vmv2r.v v12, v81060; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma1061; CHECK-NEXT: vluxei32.v v8, (a0), v121062; CHECK-NEXT: ret1063entry:1064 %a = call <vscale x 4 x double> @llvm.riscv.vluxei.nxv4f64.nxv4i32(1065 <vscale x 4 x double> poison,1066 ptr %0,1067 <vscale x 4 x i32> %1,1068 iXLen %2)1069 1070 ret <vscale x 4 x double> %a1071}1072 1073define <vscale x 4 x double> @intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i32(<vscale x 4 x double> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1074; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i32:1075; CHECK: # %bb.0: # %entry1076; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu1077; CHECK-NEXT: vluxei32.v v8, (a0), v12, v0.t1078; CHECK-NEXT: ret1079entry:1080 %a = call <vscale x 4 x double> @llvm.riscv.vluxei.mask.nxv4f64.nxv4i32(1081 <vscale x 4 x double> %0,1082 ptr %1,1083 <vscale x 4 x i32> %2,1084 <vscale x 4 x i1> %3,1085 iXLen %4, iXLen 1)1086 1087 ret <vscale x 4 x double> %a1088}1089 1090define <vscale x 8 x double> @intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {1091; CHECK-LABEL: intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i32:1092; CHECK: # %bb.0: # %entry1093; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1094; CHECK-NEXT: vmv4r.v v16, v81095; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma1096; CHECK-NEXT: vluxei32.v v8, (a0), v161097; CHECK-NEXT: ret1098entry:1099 %a = call <vscale x 8 x double> @llvm.riscv.vluxei.nxv8f64.nxv8i32(1100 <vscale x 8 x double> poison,1101 ptr %0,1102 <vscale x 8 x i32> %1,1103 iXLen %2)1104 1105 ret <vscale x 8 x double> %a1106}1107 1108define <vscale x 8 x double> @intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i32(<vscale x 8 x double> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1109; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i32:1110; CHECK: # %bb.0: # %entry1111; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu1112; CHECK-NEXT: vluxei32.v v8, (a0), v16, v0.t1113; CHECK-NEXT: ret1114entry:1115 %a = call <vscale x 8 x double> @llvm.riscv.vluxei.mask.nxv8f64.nxv8i32(1116 <vscale x 8 x double> %0,1117 ptr %1,1118 <vscale x 8 x i32> %2,1119 <vscale x 8 x i1> %3,1120 iXLen %4, iXLen 1)1121 1122 ret <vscale x 8 x double> %a1123}1124 1125define <vscale x 1 x i8> @intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1126; CHECK-LABEL: intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i16:1127; CHECK: # %bb.0: # %entry1128; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma1129; CHECK-NEXT: vluxei16.v v9, (a0), v81130; CHECK-NEXT: vmv1r.v v8, v91131; CHECK-NEXT: ret1132entry:1133 %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.nxv1i8.nxv1i16(1134 <vscale x 1 x i8> poison,1135 ptr %0,1136 <vscale x 1 x i16> %1,1137 iXLen %2)1138 1139 ret <vscale x 1 x i8> %a1140}1141 1142define <vscale x 1 x i8> @intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i16(<vscale x 1 x i8> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1143; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i16:1144; CHECK: # %bb.0: # %entry1145; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, mu1146; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1147; CHECK-NEXT: ret1148entry:1149 %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.mask.nxv1i8.nxv1i16(1150 <vscale x 1 x i8> %0,1151 ptr %1,1152 <vscale x 1 x i16> %2,1153 <vscale x 1 x i1> %3,1154 iXLen %4, iXLen 1)1155 1156 ret <vscale x 1 x i8> %a1157}1158 1159define <vscale x 2 x i8> @intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1160; CHECK-LABEL: intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i16:1161; CHECK: # %bb.0: # %entry1162; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma1163; CHECK-NEXT: vluxei16.v v9, (a0), v81164; CHECK-NEXT: vmv1r.v v8, v91165; CHECK-NEXT: ret1166entry:1167 %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.nxv2i8.nxv2i16(1168 <vscale x 2 x i8> poison,1169 ptr %0,1170 <vscale x 2 x i16> %1,1171 iXLen %2)1172 1173 ret <vscale x 2 x i8> %a1174}1175 1176define <vscale x 2 x i8> @intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i16(<vscale x 2 x i8> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1177; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i16:1178; CHECK: # %bb.0: # %entry1179; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, mu1180; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1181; CHECK-NEXT: ret1182entry:1183 %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.mask.nxv2i8.nxv2i16(1184 <vscale x 2 x i8> %0,1185 ptr %1,1186 <vscale x 2 x i16> %2,1187 <vscale x 2 x i1> %3,1188 iXLen %4, iXLen 1)1189 1190 ret <vscale x 2 x i8> %a1191}1192 1193define <vscale x 4 x i8> @intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1194; CHECK-LABEL: intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i16:1195; CHECK: # %bb.0: # %entry1196; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma1197; CHECK-NEXT: vluxei16.v v9, (a0), v81198; CHECK-NEXT: vmv1r.v v8, v91199; CHECK-NEXT: ret1200entry:1201 %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.nxv4i8.nxv4i16(1202 <vscale x 4 x i8> poison,1203 ptr %0,1204 <vscale x 4 x i16> %1,1205 iXLen %2)1206 1207 ret <vscale x 4 x i8> %a1208}1209 1210define <vscale x 4 x i8> @intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i16(<vscale x 4 x i8> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1211; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i16:1212; CHECK: # %bb.0: # %entry1213; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, mu1214; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1215; CHECK-NEXT: ret1216entry:1217 %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.mask.nxv4i8.nxv4i16(1218 <vscale x 4 x i8> %0,1219 ptr %1,1220 <vscale x 4 x i16> %2,1221 <vscale x 4 x i1> %3,1222 iXLen %4, iXLen 1)1223 1224 ret <vscale x 4 x i8> %a1225}1226 1227define <vscale x 8 x i8> @intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1228; CHECK-LABEL: intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i16:1229; CHECK: # %bb.0: # %entry1230; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma1231; CHECK-NEXT: vluxei16.v v10, (a0), v81232; CHECK-NEXT: vmv.v.v v8, v101233; CHECK-NEXT: ret1234entry:1235 %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.nxv8i8.nxv8i16(1236 <vscale x 8 x i8> poison,1237 ptr %0,1238 <vscale x 8 x i16> %1,1239 iXLen %2)1240 1241 ret <vscale x 8 x i8> %a1242}1243 1244define <vscale x 8 x i8> @intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i16(<vscale x 8 x i8> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1245; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i16:1246; CHECK: # %bb.0: # %entry1247; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu1248; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t1249; CHECK-NEXT: ret1250entry:1251 %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.mask.nxv8i8.nxv8i16(1252 <vscale x 8 x i8> %0,1253 ptr %1,1254 <vscale x 8 x i16> %2,1255 <vscale x 8 x i1> %3,1256 iXLen %4, iXLen 1)1257 1258 ret <vscale x 8 x i8> %a1259}1260 1261define <vscale x 16 x i8> @intrinsic_vluxei_v_nxv16i8_nxv16i8_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1262; CHECK-LABEL: intrinsic_vluxei_v_nxv16i8_nxv16i8_nxv16i16:1263; CHECK: # %bb.0: # %entry1264; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma1265; CHECK-NEXT: vluxei16.v v12, (a0), v81266; CHECK-NEXT: vmv.v.v v8, v121267; CHECK-NEXT: ret1268entry:1269 %a = call <vscale x 16 x i8> @llvm.riscv.vluxei.nxv16i8.nxv16i16(1270 <vscale x 16 x i8> poison,1271 ptr %0,1272 <vscale x 16 x i16> %1,1273 iXLen %2)1274 1275 ret <vscale x 16 x i8> %a1276}1277 1278define <vscale x 16 x i8> @intrinsic_vluxei_mask_v_nxv16i8_nxv16i8_nxv16i16(<vscale x 16 x i8> %0, ptr %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1279; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i8_nxv16i8_nxv16i16:1280; CHECK: # %bb.0: # %entry1281; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu1282; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t1283; CHECK-NEXT: ret1284entry:1285 %a = call <vscale x 16 x i8> @llvm.riscv.vluxei.mask.nxv16i8.nxv16i16(1286 <vscale x 16 x i8> %0,1287 ptr %1,1288 <vscale x 16 x i16> %2,1289 <vscale x 16 x i1> %3,1290 iXLen %4, iXLen 1)1291 1292 ret <vscale x 16 x i8> %a1293}1294 1295define <vscale x 32 x i8> @intrinsic_vluxei_v_nxv32i8_nxv32i8_nxv32i16(ptr %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {1296; CHECK-LABEL: intrinsic_vluxei_v_nxv32i8_nxv32i8_nxv32i16:1297; CHECK: # %bb.0: # %entry1298; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma1299; CHECK-NEXT: vluxei16.v v16, (a0), v81300; CHECK-NEXT: vmv.v.v v8, v161301; CHECK-NEXT: ret1302entry:1303 %a = call <vscale x 32 x i8> @llvm.riscv.vluxei.nxv32i8.nxv32i16(1304 <vscale x 32 x i8> poison,1305 ptr %0,1306 <vscale x 32 x i16> %1,1307 iXLen %2)1308 1309 ret <vscale x 32 x i8> %a1310}1311 1312define <vscale x 32 x i8> @intrinsic_vluxei_mask_v_nxv32i8_nxv32i8_nxv32i16(<vscale x 32 x i8> %0, ptr %1, <vscale x 32 x i16> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {1313; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv32i8_nxv32i8_nxv32i16:1314; CHECK: # %bb.0: # %entry1315; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, mu1316; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t1317; CHECK-NEXT: ret1318entry:1319 %a = call <vscale x 32 x i8> @llvm.riscv.vluxei.mask.nxv32i8.nxv32i16(1320 <vscale x 32 x i8> %0,1321 ptr %1,1322 <vscale x 32 x i16> %2,1323 <vscale x 32 x i1> %3,1324 iXLen %4, iXLen 1)1325 1326 ret <vscale x 32 x i8> %a1327}1328 1329define <vscale x 1 x i16> @intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1330; CHECK-LABEL: intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i16:1331; CHECK: # %bb.0: # %entry1332; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma1333; CHECK-NEXT: vluxei16.v v8, (a0), v81334; CHECK-NEXT: ret1335entry:1336 %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.nxv1i16.nxv1i16(1337 <vscale x 1 x i16> poison,1338 ptr %0,1339 <vscale x 1 x i16> %1,1340 iXLen %2)1341 1342 ret <vscale x 1 x i16> %a1343}1344 1345define <vscale x 1 x i16> @intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1346; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i16:1347; CHECK: # %bb.0: # %entry1348; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu1349; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1350; CHECK-NEXT: ret1351entry:1352 %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.mask.nxv1i16.nxv1i16(1353 <vscale x 1 x i16> %0,1354 ptr %1,1355 <vscale x 1 x i16> %2,1356 <vscale x 1 x i1> %3,1357 iXLen %4, iXLen 1)1358 1359 ret <vscale x 1 x i16> %a1360}1361 1362define <vscale x 2 x i16> @intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1363; CHECK-LABEL: intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i16:1364; CHECK: # %bb.0: # %entry1365; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma1366; CHECK-NEXT: vluxei16.v v8, (a0), v81367; CHECK-NEXT: ret1368entry:1369 %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.nxv2i16.nxv2i16(1370 <vscale x 2 x i16> poison,1371 ptr %0,1372 <vscale x 2 x i16> %1,1373 iXLen %2)1374 1375 ret <vscale x 2 x i16> %a1376}1377 1378define <vscale x 2 x i16> @intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1379; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i16:1380; CHECK: # %bb.0: # %entry1381; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu1382; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1383; CHECK-NEXT: ret1384entry:1385 %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.mask.nxv2i16.nxv2i16(1386 <vscale x 2 x i16> %0,1387 ptr %1,1388 <vscale x 2 x i16> %2,1389 <vscale x 2 x i1> %3,1390 iXLen %4, iXLen 1)1391 1392 ret <vscale x 2 x i16> %a1393}1394 1395define <vscale x 4 x i16> @intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1396; CHECK-LABEL: intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i16:1397; CHECK: # %bb.0: # %entry1398; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma1399; CHECK-NEXT: vluxei16.v v8, (a0), v81400; CHECK-NEXT: ret1401entry:1402 %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.nxv4i16.nxv4i16(1403 <vscale x 4 x i16> poison,1404 ptr %0,1405 <vscale x 4 x i16> %1,1406 iXLen %2)1407 1408 ret <vscale x 4 x i16> %a1409}1410 1411define <vscale x 4 x i16> @intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1412; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i16:1413; CHECK: # %bb.0: # %entry1414; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu1415; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1416; CHECK-NEXT: ret1417entry:1418 %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.mask.nxv4i16.nxv4i16(1419 <vscale x 4 x i16> %0,1420 ptr %1,1421 <vscale x 4 x i16> %2,1422 <vscale x 4 x i1> %3,1423 iXLen %4, iXLen 1)1424 1425 ret <vscale x 4 x i16> %a1426}1427 1428define <vscale x 8 x i16> @intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1429; CHECK-LABEL: intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i16:1430; CHECK: # %bb.0: # %entry1431; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma1432; CHECK-NEXT: vluxei16.v v8, (a0), v81433; CHECK-NEXT: ret1434entry:1435 %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.nxv8i16.nxv8i16(1436 <vscale x 8 x i16> poison,1437 ptr %0,1438 <vscale x 8 x i16> %1,1439 iXLen %2)1440 1441 ret <vscale x 8 x i16> %a1442}1443 1444define <vscale x 8 x i16> @intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1445; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i16:1446; CHECK: # %bb.0: # %entry1447; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu1448; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t1449; CHECK-NEXT: ret1450entry:1451 %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.mask.nxv8i16.nxv8i16(1452 <vscale x 8 x i16> %0,1453 ptr %1,1454 <vscale x 8 x i16> %2,1455 <vscale x 8 x i1> %3,1456 iXLen %4, iXLen 1)1457 1458 ret <vscale x 8 x i16> %a1459}1460 1461define <vscale x 16 x i16> @intrinsic_vluxei_v_nxv16i16_nxv16i16_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1462; CHECK-LABEL: intrinsic_vluxei_v_nxv16i16_nxv16i16_nxv16i16:1463; CHECK: # %bb.0: # %entry1464; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma1465; CHECK-NEXT: vluxei16.v v8, (a0), v81466; CHECK-NEXT: ret1467entry:1468 %a = call <vscale x 16 x i16> @llvm.riscv.vluxei.nxv16i16.nxv16i16(1469 <vscale x 16 x i16> poison,1470 ptr %0,1471 <vscale x 16 x i16> %1,1472 iXLen %2)1473 1474 ret <vscale x 16 x i16> %a1475}1476 1477define <vscale x 16 x i16> @intrinsic_vluxei_mask_v_nxv16i16_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, ptr %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1478; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i16_nxv16i16_nxv16i16:1479; CHECK: # %bb.0: # %entry1480; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu1481; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t1482; CHECK-NEXT: ret1483entry:1484 %a = call <vscale x 16 x i16> @llvm.riscv.vluxei.mask.nxv16i16.nxv16i16(1485 <vscale x 16 x i16> %0,1486 ptr %1,1487 <vscale x 16 x i16> %2,1488 <vscale x 16 x i1> %3,1489 iXLen %4, iXLen 1)1490 1491 ret <vscale x 16 x i16> %a1492}1493 1494define <vscale x 32 x i16> @intrinsic_vluxei_v_nxv32i16_nxv32i16_nxv32i16(ptr %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {1495; CHECK-LABEL: intrinsic_vluxei_v_nxv32i16_nxv32i16_nxv32i16:1496; CHECK: # %bb.0: # %entry1497; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma1498; CHECK-NEXT: vluxei16.v v8, (a0), v81499; CHECK-NEXT: ret1500entry:1501 %a = call <vscale x 32 x i16> @llvm.riscv.vluxei.nxv32i16.nxv32i16(1502 <vscale x 32 x i16> poison,1503 ptr %0,1504 <vscale x 32 x i16> %1,1505 iXLen %2)1506 1507 ret <vscale x 32 x i16> %a1508}1509 1510define <vscale x 32 x i16> @intrinsic_vluxei_mask_v_nxv32i16_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, ptr %1, <vscale x 32 x i16> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {1511; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv32i16_nxv32i16_nxv32i16:1512; CHECK: # %bb.0: # %entry1513; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu1514; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t1515; CHECK-NEXT: ret1516entry:1517 %a = call <vscale x 32 x i16> @llvm.riscv.vluxei.mask.nxv32i16.nxv32i16(1518 <vscale x 32 x i16> %0,1519 ptr %1,1520 <vscale x 32 x i16> %2,1521 <vscale x 32 x i1> %3,1522 iXLen %4, iXLen 1)1523 1524 ret <vscale x 32 x i16> %a1525}1526 1527define <vscale x 1 x i32> @intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1528; CHECK-LABEL: intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i16:1529; CHECK: # %bb.0: # %entry1530; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma1531; CHECK-NEXT: vluxei16.v v9, (a0), v81532; CHECK-NEXT: vmv1r.v v8, v91533; CHECK-NEXT: ret1534entry:1535 %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.nxv1i32.nxv1i16(1536 <vscale x 1 x i32> poison,1537 ptr %0,1538 <vscale x 1 x i16> %1,1539 iXLen %2)1540 1541 ret <vscale x 1 x i32> %a1542}1543 1544define <vscale x 1 x i32> @intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i16(<vscale x 1 x i32> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1545; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i16:1546; CHECK: # %bb.0: # %entry1547; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu1548; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1549; CHECK-NEXT: ret1550entry:1551 %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.mask.nxv1i32.nxv1i16(1552 <vscale x 1 x i32> %0,1553 ptr %1,1554 <vscale x 1 x i16> %2,1555 <vscale x 1 x i1> %3,1556 iXLen %4, iXLen 1)1557 1558 ret <vscale x 1 x i32> %a1559}1560 1561define <vscale x 2 x i32> @intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1562; CHECK-LABEL: intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i16:1563; CHECK: # %bb.0: # %entry1564; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma1565; CHECK-NEXT: vluxei16.v v9, (a0), v81566; CHECK-NEXT: vmv.v.v v8, v91567; CHECK-NEXT: ret1568entry:1569 %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.nxv2i32.nxv2i16(1570 <vscale x 2 x i32> poison,1571 ptr %0,1572 <vscale x 2 x i16> %1,1573 iXLen %2)1574 1575 ret <vscale x 2 x i32> %a1576}1577 1578define <vscale x 2 x i32> @intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i16(<vscale x 2 x i32> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1579; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i16:1580; CHECK: # %bb.0: # %entry1581; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu1582; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1583; CHECK-NEXT: ret1584entry:1585 %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.mask.nxv2i32.nxv2i16(1586 <vscale x 2 x i32> %0,1587 ptr %1,1588 <vscale x 2 x i16> %2,1589 <vscale x 2 x i1> %3,1590 iXLen %4, iXLen 1)1591 1592 ret <vscale x 2 x i32> %a1593}1594 1595define <vscale x 4 x i32> @intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1596; CHECK-LABEL: intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i16:1597; CHECK: # %bb.0: # %entry1598; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1599; CHECK-NEXT: vmv1r.v v10, v81600; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma1601; CHECK-NEXT: vluxei16.v v8, (a0), v101602; CHECK-NEXT: ret1603entry:1604 %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.nxv4i32.nxv4i16(1605 <vscale x 4 x i32> poison,1606 ptr %0,1607 <vscale x 4 x i16> %1,1608 iXLen %2)1609 1610 ret <vscale x 4 x i32> %a1611}1612 1613define <vscale x 4 x i32> @intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i16(<vscale x 4 x i32> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1614; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i16:1615; CHECK: # %bb.0: # %entry1616; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu1617; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t1618; CHECK-NEXT: ret1619entry:1620 %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.mask.nxv4i32.nxv4i16(1621 <vscale x 4 x i32> %0,1622 ptr %1,1623 <vscale x 4 x i16> %2,1624 <vscale x 4 x i1> %3,1625 iXLen %4, iXLen 1)1626 1627 ret <vscale x 4 x i32> %a1628}1629 1630define <vscale x 8 x i32> @intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1631; CHECK-LABEL: intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i16:1632; CHECK: # %bb.0: # %entry1633; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1634; CHECK-NEXT: vmv2r.v v12, v81635; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma1636; CHECK-NEXT: vluxei16.v v8, (a0), v121637; CHECK-NEXT: ret1638entry:1639 %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.nxv8i32.nxv8i16(1640 <vscale x 8 x i32> poison,1641 ptr %0,1642 <vscale x 8 x i16> %1,1643 iXLen %2)1644 1645 ret <vscale x 8 x i32> %a1646}1647 1648define <vscale x 8 x i32> @intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i16(<vscale x 8 x i32> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1649; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i16:1650; CHECK: # %bb.0: # %entry1651; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu1652; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t1653; CHECK-NEXT: ret1654entry:1655 %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.mask.nxv8i32.nxv8i16(1656 <vscale x 8 x i32> %0,1657 ptr %1,1658 <vscale x 8 x i16> %2,1659 <vscale x 8 x i1> %3,1660 iXLen %4, iXLen 1)1661 1662 ret <vscale x 8 x i32> %a1663}1664 1665define <vscale x 16 x i32> @intrinsic_vluxei_v_nxv16i32_nxv16i32_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1666; CHECK-LABEL: intrinsic_vluxei_v_nxv16i32_nxv16i32_nxv16i16:1667; CHECK: # %bb.0: # %entry1668; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1669; CHECK-NEXT: vmv4r.v v16, v81670; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma1671; CHECK-NEXT: vluxei16.v v8, (a0), v161672; CHECK-NEXT: ret1673entry:1674 %a = call <vscale x 16 x i32> @llvm.riscv.vluxei.nxv16i32.nxv16i16(1675 <vscale x 16 x i32> poison,1676 ptr %0,1677 <vscale x 16 x i16> %1,1678 iXLen %2)1679 1680 ret <vscale x 16 x i32> %a1681}1682 1683define <vscale x 16 x i32> @intrinsic_vluxei_mask_v_nxv16i32_nxv16i32_nxv16i16(<vscale x 16 x i32> %0, ptr %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1684; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i32_nxv16i32_nxv16i16:1685; CHECK: # %bb.0: # %entry1686; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu1687; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t1688; CHECK-NEXT: ret1689entry:1690 %a = call <vscale x 16 x i32> @llvm.riscv.vluxei.mask.nxv16i32.nxv16i16(1691 <vscale x 16 x i32> %0,1692 ptr %1,1693 <vscale x 16 x i16> %2,1694 <vscale x 16 x i1> %3,1695 iXLen %4, iXLen 1)1696 1697 ret <vscale x 16 x i32> %a1698}1699 1700define <vscale x 1 x i64> @intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1701; CHECK-LABEL: intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i16:1702; CHECK: # %bb.0: # %entry1703; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma1704; CHECK-NEXT: vluxei16.v v9, (a0), v81705; CHECK-NEXT: vmv.v.v v8, v91706; CHECK-NEXT: ret1707entry:1708 %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.nxv1i64.nxv1i16(1709 <vscale x 1 x i64> poison,1710 ptr %0,1711 <vscale x 1 x i16> %1,1712 iXLen %2)1713 1714 ret <vscale x 1 x i64> %a1715}1716 1717define <vscale x 1 x i64> @intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i16(<vscale x 1 x i64> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1718; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i16:1719; CHECK: # %bb.0: # %entry1720; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu1721; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1722; CHECK-NEXT: ret1723entry:1724 %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.mask.nxv1i64.nxv1i16(1725 <vscale x 1 x i64> %0,1726 ptr %1,1727 <vscale x 1 x i16> %2,1728 <vscale x 1 x i1> %3,1729 iXLen %4, iXLen 1)1730 1731 ret <vscale x 1 x i64> %a1732}1733 1734define <vscale x 2 x i64> @intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1735; CHECK-LABEL: intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i16:1736; CHECK: # %bb.0: # %entry1737; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1738; CHECK-NEXT: vmv1r.v v10, v81739; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma1740; CHECK-NEXT: vluxei16.v v8, (a0), v101741; CHECK-NEXT: ret1742entry:1743 %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.nxv2i64.nxv2i16(1744 <vscale x 2 x i64> poison,1745 ptr %0,1746 <vscale x 2 x i16> %1,1747 iXLen %2)1748 1749 ret <vscale x 2 x i64> %a1750}1751 1752define <vscale x 2 x i64> @intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i16(<vscale x 2 x i64> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1753; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i16:1754; CHECK: # %bb.0: # %entry1755; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu1756; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t1757; CHECK-NEXT: ret1758entry:1759 %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.mask.nxv2i64.nxv2i16(1760 <vscale x 2 x i64> %0,1761 ptr %1,1762 <vscale x 2 x i16> %2,1763 <vscale x 2 x i1> %3,1764 iXLen %4, iXLen 1)1765 1766 ret <vscale x 2 x i64> %a1767}1768 1769define <vscale x 4 x i64> @intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1770; CHECK-LABEL: intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i16:1771; CHECK: # %bb.0: # %entry1772; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1773; CHECK-NEXT: vmv1r.v v12, v81774; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma1775; CHECK-NEXT: vluxei16.v v8, (a0), v121776; CHECK-NEXT: ret1777entry:1778 %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.nxv4i64.nxv4i16(1779 <vscale x 4 x i64> poison,1780 ptr %0,1781 <vscale x 4 x i16> %1,1782 iXLen %2)1783 1784 ret <vscale x 4 x i64> %a1785}1786 1787define <vscale x 4 x i64> @intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i16(<vscale x 4 x i64> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1788; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i16:1789; CHECK: # %bb.0: # %entry1790; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu1791; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t1792; CHECK-NEXT: ret1793entry:1794 %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.mask.nxv4i64.nxv4i16(1795 <vscale x 4 x i64> %0,1796 ptr %1,1797 <vscale x 4 x i16> %2,1798 <vscale x 4 x i1> %3,1799 iXLen %4, iXLen 1)1800 1801 ret <vscale x 4 x i64> %a1802}1803 1804define <vscale x 8 x i64> @intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1805; CHECK-LABEL: intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i16:1806; CHECK: # %bb.0: # %entry1807; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma1808; CHECK-NEXT: vmv2r.v v16, v81809; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma1810; CHECK-NEXT: vluxei16.v v8, (a0), v161811; CHECK-NEXT: ret1812entry:1813 %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.nxv8i64.nxv8i16(1814 <vscale x 8 x i64> poison,1815 ptr %0,1816 <vscale x 8 x i16> %1,1817 iXLen %2)1818 1819 ret <vscale x 8 x i64> %a1820}1821 1822define <vscale x 8 x i64> @intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i16(<vscale x 8 x i64> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1823; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i16:1824; CHECK: # %bb.0: # %entry1825; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu1826; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t1827; CHECK-NEXT: ret1828entry:1829 %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.mask.nxv8i64.nxv8i16(1830 <vscale x 8 x i64> %0,1831 ptr %1,1832 <vscale x 8 x i16> %2,1833 <vscale x 8 x i1> %3,1834 iXLen %4, iXLen 1)1835 1836 ret <vscale x 8 x i64> %a1837}1838 1839define <vscale x 1 x half> @intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1840; CHECK-LABEL: intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i16:1841; CHECK: # %bb.0: # %entry1842; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma1843; CHECK-NEXT: vluxei16.v v8, (a0), v81844; CHECK-NEXT: ret1845entry:1846 %a = call <vscale x 1 x half> @llvm.riscv.vluxei.nxv1f16.nxv1i16(1847 <vscale x 1 x half> poison,1848 ptr %0,1849 <vscale x 1 x i16> %1,1850 iXLen %2)1851 1852 ret <vscale x 1 x half> %a1853}1854 1855define <vscale x 1 x half> @intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i16(<vscale x 1 x half> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {1856; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i16:1857; CHECK: # %bb.0: # %entry1858; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu1859; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1860; CHECK-NEXT: ret1861entry:1862 %a = call <vscale x 1 x half> @llvm.riscv.vluxei.mask.nxv1f16.nxv1i16(1863 <vscale x 1 x half> %0,1864 ptr %1,1865 <vscale x 1 x i16> %2,1866 <vscale x 1 x i1> %3,1867 iXLen %4, iXLen 1)1868 1869 ret <vscale x 1 x half> %a1870}1871 1872define <vscale x 2 x half> @intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1873; CHECK-LABEL: intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i16:1874; CHECK: # %bb.0: # %entry1875; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma1876; CHECK-NEXT: vluxei16.v v8, (a0), v81877; CHECK-NEXT: ret1878entry:1879 %a = call <vscale x 2 x half> @llvm.riscv.vluxei.nxv2f16.nxv2i16(1880 <vscale x 2 x half> poison,1881 ptr %0,1882 <vscale x 2 x i16> %1,1883 iXLen %2)1884 1885 ret <vscale x 2 x half> %a1886}1887 1888define <vscale x 2 x half> @intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i16(<vscale x 2 x half> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {1889; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i16:1890; CHECK: # %bb.0: # %entry1891; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu1892; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1893; CHECK-NEXT: ret1894entry:1895 %a = call <vscale x 2 x half> @llvm.riscv.vluxei.mask.nxv2f16.nxv2i16(1896 <vscale x 2 x half> %0,1897 ptr %1,1898 <vscale x 2 x i16> %2,1899 <vscale x 2 x i1> %3,1900 iXLen %4, iXLen 1)1901 1902 ret <vscale x 2 x half> %a1903}1904 1905define <vscale x 4 x half> @intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1906; CHECK-LABEL: intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i16:1907; CHECK: # %bb.0: # %entry1908; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma1909; CHECK-NEXT: vluxei16.v v8, (a0), v81910; CHECK-NEXT: ret1911entry:1912 %a = call <vscale x 4 x half> @llvm.riscv.vluxei.nxv4f16.nxv4i16(1913 <vscale x 4 x half> poison,1914 ptr %0,1915 <vscale x 4 x i16> %1,1916 iXLen %2)1917 1918 ret <vscale x 4 x half> %a1919}1920 1921define <vscale x 4 x half> @intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i16(<vscale x 4 x half> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {1922; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i16:1923; CHECK: # %bb.0: # %entry1924; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu1925; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t1926; CHECK-NEXT: ret1927entry:1928 %a = call <vscale x 4 x half> @llvm.riscv.vluxei.mask.nxv4f16.nxv4i16(1929 <vscale x 4 x half> %0,1930 ptr %1,1931 <vscale x 4 x i16> %2,1932 <vscale x 4 x i1> %3,1933 iXLen %4, iXLen 1)1934 1935 ret <vscale x 4 x half> %a1936}1937 1938define <vscale x 8 x half> @intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1939; CHECK-LABEL: intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i16:1940; CHECK: # %bb.0: # %entry1941; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma1942; CHECK-NEXT: vluxei16.v v8, (a0), v81943; CHECK-NEXT: ret1944entry:1945 %a = call <vscale x 8 x half> @llvm.riscv.vluxei.nxv8f16.nxv8i16(1946 <vscale x 8 x half> poison,1947 ptr %0,1948 <vscale x 8 x i16> %1,1949 iXLen %2)1950 1951 ret <vscale x 8 x half> %a1952}1953 1954define <vscale x 8 x half> @intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i16(<vscale x 8 x half> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {1955; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i16:1956; CHECK: # %bb.0: # %entry1957; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu1958; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t1959; CHECK-NEXT: ret1960entry:1961 %a = call <vscale x 8 x half> @llvm.riscv.vluxei.mask.nxv8f16.nxv8i16(1962 <vscale x 8 x half> %0,1963 ptr %1,1964 <vscale x 8 x i16> %2,1965 <vscale x 8 x i1> %3,1966 iXLen %4, iXLen 1)1967 1968 ret <vscale x 8 x half> %a1969}1970 1971define <vscale x 16 x half> @intrinsic_vluxei_v_nxv16f16_nxv16f16_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1972; CHECK-LABEL: intrinsic_vluxei_v_nxv16f16_nxv16f16_nxv16i16:1973; CHECK: # %bb.0: # %entry1974; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma1975; CHECK-NEXT: vluxei16.v v8, (a0), v81976; CHECK-NEXT: ret1977entry:1978 %a = call <vscale x 16 x half> @llvm.riscv.vluxei.nxv16f16.nxv16i16(1979 <vscale x 16 x half> poison,1980 ptr %0,1981 <vscale x 16 x i16> %1,1982 iXLen %2)1983 1984 ret <vscale x 16 x half> %a1985}1986 1987define <vscale x 16 x half> @intrinsic_vluxei_mask_v_nxv16f16_nxv16f16_nxv16i16(<vscale x 16 x half> %0, ptr %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {1988; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16f16_nxv16f16_nxv16i16:1989; CHECK: # %bb.0: # %entry1990; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu1991; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t1992; CHECK-NEXT: ret1993entry:1994 %a = call <vscale x 16 x half> @llvm.riscv.vluxei.mask.nxv16f16.nxv16i16(1995 <vscale x 16 x half> %0,1996 ptr %1,1997 <vscale x 16 x i16> %2,1998 <vscale x 16 x i1> %3,1999 iXLen %4, iXLen 1)2000 2001 ret <vscale x 16 x half> %a2002}2003 2004define <vscale x 32 x half> @intrinsic_vluxei_v_nxv32f16_nxv32f16_nxv32i16(ptr %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {2005; CHECK-LABEL: intrinsic_vluxei_v_nxv32f16_nxv32f16_nxv32i16:2006; CHECK: # %bb.0: # %entry2007; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma2008; CHECK-NEXT: vluxei16.v v8, (a0), v82009; CHECK-NEXT: ret2010entry:2011 %a = call <vscale x 32 x half> @llvm.riscv.vluxei.nxv32f16.nxv32i16(2012 <vscale x 32 x half> poison,2013 ptr %0,2014 <vscale x 32 x i16> %1,2015 iXLen %2)2016 2017 ret <vscale x 32 x half> %a2018}2019 2020define <vscale x 32 x half> @intrinsic_vluxei_mask_v_nxv32f16_nxv32f16_nxv32i16(<vscale x 32 x half> %0, ptr %1, <vscale x 32 x i16> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {2021; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv32f16_nxv32f16_nxv32i16:2022; CHECK: # %bb.0: # %entry2023; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu2024; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t2025; CHECK-NEXT: ret2026entry:2027 %a = call <vscale x 32 x half> @llvm.riscv.vluxei.mask.nxv32f16.nxv32i16(2028 <vscale x 32 x half> %0,2029 ptr %1,2030 <vscale x 32 x i16> %2,2031 <vscale x 32 x i1> %3,2032 iXLen %4, iXLen 1)2033 2034 ret <vscale x 32 x half> %a2035}2036 2037define <vscale x 1 x float> @intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {2038; CHECK-LABEL: intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i16:2039; CHECK: # %bb.0: # %entry2040; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma2041; CHECK-NEXT: vluxei16.v v9, (a0), v82042; CHECK-NEXT: vmv1r.v v8, v92043; CHECK-NEXT: ret2044entry:2045 %a = call <vscale x 1 x float> @llvm.riscv.vluxei.nxv1f32.nxv1i16(2046 <vscale x 1 x float> poison,2047 ptr %0,2048 <vscale x 1 x i16> %1,2049 iXLen %2)2050 2051 ret <vscale x 1 x float> %a2052}2053 2054define <vscale x 1 x float> @intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i16(<vscale x 1 x float> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {2055; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i16:2056; CHECK: # %bb.0: # %entry2057; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu2058; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t2059; CHECK-NEXT: ret2060entry:2061 %a = call <vscale x 1 x float> @llvm.riscv.vluxei.mask.nxv1f32.nxv1i16(2062 <vscale x 1 x float> %0,2063 ptr %1,2064 <vscale x 1 x i16> %2,2065 <vscale x 1 x i1> %3,2066 iXLen %4, iXLen 1)2067 2068 ret <vscale x 1 x float> %a2069}2070 2071define <vscale x 2 x float> @intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {2072; CHECK-LABEL: intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i16:2073; CHECK: # %bb.0: # %entry2074; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma2075; CHECK-NEXT: vluxei16.v v9, (a0), v82076; CHECK-NEXT: vmv.v.v v8, v92077; CHECK-NEXT: ret2078entry:2079 %a = call <vscale x 2 x float> @llvm.riscv.vluxei.nxv2f32.nxv2i16(2080 <vscale x 2 x float> poison,2081 ptr %0,2082 <vscale x 2 x i16> %1,2083 iXLen %2)2084 2085 ret <vscale x 2 x float> %a2086}2087 2088define <vscale x 2 x float> @intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i16(<vscale x 2 x float> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {2089; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i16:2090; CHECK: # %bb.0: # %entry2091; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu2092; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t2093; CHECK-NEXT: ret2094entry:2095 %a = call <vscale x 2 x float> @llvm.riscv.vluxei.mask.nxv2f32.nxv2i16(2096 <vscale x 2 x float> %0,2097 ptr %1,2098 <vscale x 2 x i16> %2,2099 <vscale x 2 x i1> %3,2100 iXLen %4, iXLen 1)2101 2102 ret <vscale x 2 x float> %a2103}2104 2105define <vscale x 4 x float> @intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {2106; CHECK-LABEL: intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i16:2107; CHECK: # %bb.0: # %entry2108; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2109; CHECK-NEXT: vmv1r.v v10, v82110; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma2111; CHECK-NEXT: vluxei16.v v8, (a0), v102112; CHECK-NEXT: ret2113entry:2114 %a = call <vscale x 4 x float> @llvm.riscv.vluxei.nxv4f32.nxv4i16(2115 <vscale x 4 x float> poison,2116 ptr %0,2117 <vscale x 4 x i16> %1,2118 iXLen %2)2119 2120 ret <vscale x 4 x float> %a2121}2122 2123define <vscale x 4 x float> @intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i16(<vscale x 4 x float> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {2124; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i16:2125; CHECK: # %bb.0: # %entry2126; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu2127; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t2128; CHECK-NEXT: ret2129entry:2130 %a = call <vscale x 4 x float> @llvm.riscv.vluxei.mask.nxv4f32.nxv4i16(2131 <vscale x 4 x float> %0,2132 ptr %1,2133 <vscale x 4 x i16> %2,2134 <vscale x 4 x i1> %3,2135 iXLen %4, iXLen 1)2136 2137 ret <vscale x 4 x float> %a2138}2139 2140define <vscale x 8 x float> @intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {2141; CHECK-LABEL: intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i16:2142; CHECK: # %bb.0: # %entry2143; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2144; CHECK-NEXT: vmv2r.v v12, v82145; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma2146; CHECK-NEXT: vluxei16.v v8, (a0), v122147; CHECK-NEXT: ret2148entry:2149 %a = call <vscale x 8 x float> @llvm.riscv.vluxei.nxv8f32.nxv8i16(2150 <vscale x 8 x float> poison,2151 ptr %0,2152 <vscale x 8 x i16> %1,2153 iXLen %2)2154 2155 ret <vscale x 8 x float> %a2156}2157 2158define <vscale x 8 x float> @intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i16(<vscale x 8 x float> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {2159; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i16:2160; CHECK: # %bb.0: # %entry2161; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu2162; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t2163; CHECK-NEXT: ret2164entry:2165 %a = call <vscale x 8 x float> @llvm.riscv.vluxei.mask.nxv8f32.nxv8i16(2166 <vscale x 8 x float> %0,2167 ptr %1,2168 <vscale x 8 x i16> %2,2169 <vscale x 8 x i1> %3,2170 iXLen %4, iXLen 1)2171 2172 ret <vscale x 8 x float> %a2173}2174 2175define <vscale x 16 x float> @intrinsic_vluxei_v_nxv16f32_nxv16f32_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {2176; CHECK-LABEL: intrinsic_vluxei_v_nxv16f32_nxv16f32_nxv16i16:2177; CHECK: # %bb.0: # %entry2178; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2179; CHECK-NEXT: vmv4r.v v16, v82180; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma2181; CHECK-NEXT: vluxei16.v v8, (a0), v162182; CHECK-NEXT: ret2183entry:2184 %a = call <vscale x 16 x float> @llvm.riscv.vluxei.nxv16f32.nxv16i16(2185 <vscale x 16 x float> poison,2186 ptr %0,2187 <vscale x 16 x i16> %1,2188 iXLen %2)2189 2190 ret <vscale x 16 x float> %a2191}2192 2193define <vscale x 16 x float> @intrinsic_vluxei_mask_v_nxv16f32_nxv16f32_nxv16i16(<vscale x 16 x float> %0, ptr %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {2194; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16f32_nxv16f32_nxv16i16:2195; CHECK: # %bb.0: # %entry2196; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu2197; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t2198; CHECK-NEXT: ret2199entry:2200 %a = call <vscale x 16 x float> @llvm.riscv.vluxei.mask.nxv16f32.nxv16i16(2201 <vscale x 16 x float> %0,2202 ptr %1,2203 <vscale x 16 x i16> %2,2204 <vscale x 16 x i1> %3,2205 iXLen %4, iXLen 1)2206 2207 ret <vscale x 16 x float> %a2208}2209 2210define <vscale x 1 x double> @intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {2211; CHECK-LABEL: intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i16:2212; CHECK: # %bb.0: # %entry2213; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma2214; CHECK-NEXT: vluxei16.v v9, (a0), v82215; CHECK-NEXT: vmv.v.v v8, v92216; CHECK-NEXT: ret2217entry:2218 %a = call <vscale x 1 x double> @llvm.riscv.vluxei.nxv1f64.nxv1i16(2219 <vscale x 1 x double> poison,2220 ptr %0,2221 <vscale x 1 x i16> %1,2222 iXLen %2)2223 2224 ret <vscale x 1 x double> %a2225}2226 2227define <vscale x 1 x double> @intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i16(<vscale x 1 x double> %0, ptr %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {2228; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i16:2229; CHECK: # %bb.0: # %entry2230; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu2231; CHECK-NEXT: vluxei16.v v8, (a0), v9, v0.t2232; CHECK-NEXT: ret2233entry:2234 %a = call <vscale x 1 x double> @llvm.riscv.vluxei.mask.nxv1f64.nxv1i16(2235 <vscale x 1 x double> %0,2236 ptr %1,2237 <vscale x 1 x i16> %2,2238 <vscale x 1 x i1> %3,2239 iXLen %4, iXLen 1)2240 2241 ret <vscale x 1 x double> %a2242}2243 2244define <vscale x 2 x double> @intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {2245; CHECK-LABEL: intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i16:2246; CHECK: # %bb.0: # %entry2247; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2248; CHECK-NEXT: vmv1r.v v10, v82249; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma2250; CHECK-NEXT: vluxei16.v v8, (a0), v102251; CHECK-NEXT: ret2252entry:2253 %a = call <vscale x 2 x double> @llvm.riscv.vluxei.nxv2f64.nxv2i16(2254 <vscale x 2 x double> poison,2255 ptr %0,2256 <vscale x 2 x i16> %1,2257 iXLen %2)2258 2259 ret <vscale x 2 x double> %a2260}2261 2262define <vscale x 2 x double> @intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i16(<vscale x 2 x double> %0, ptr %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {2263; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i16:2264; CHECK: # %bb.0: # %entry2265; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu2266; CHECK-NEXT: vluxei16.v v8, (a0), v10, v0.t2267; CHECK-NEXT: ret2268entry:2269 %a = call <vscale x 2 x double> @llvm.riscv.vluxei.mask.nxv2f64.nxv2i16(2270 <vscale x 2 x double> %0,2271 ptr %1,2272 <vscale x 2 x i16> %2,2273 <vscale x 2 x i1> %3,2274 iXLen %4, iXLen 1)2275 2276 ret <vscale x 2 x double> %a2277}2278 2279define <vscale x 4 x double> @intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {2280; CHECK-LABEL: intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i16:2281; CHECK: # %bb.0: # %entry2282; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2283; CHECK-NEXT: vmv1r.v v12, v82284; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma2285; CHECK-NEXT: vluxei16.v v8, (a0), v122286; CHECK-NEXT: ret2287entry:2288 %a = call <vscale x 4 x double> @llvm.riscv.vluxei.nxv4f64.nxv4i16(2289 <vscale x 4 x double> poison,2290 ptr %0,2291 <vscale x 4 x i16> %1,2292 iXLen %2)2293 2294 ret <vscale x 4 x double> %a2295}2296 2297define <vscale x 4 x double> @intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i16(<vscale x 4 x double> %0, ptr %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {2298; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i16:2299; CHECK: # %bb.0: # %entry2300; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu2301; CHECK-NEXT: vluxei16.v v8, (a0), v12, v0.t2302; CHECK-NEXT: ret2303entry:2304 %a = call <vscale x 4 x double> @llvm.riscv.vluxei.mask.nxv4f64.nxv4i16(2305 <vscale x 4 x double> %0,2306 ptr %1,2307 <vscale x 4 x i16> %2,2308 <vscale x 4 x i1> %3,2309 iXLen %4, iXLen 1)2310 2311 ret <vscale x 4 x double> %a2312}2313 2314define <vscale x 8 x double> @intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {2315; CHECK-LABEL: intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i16:2316; CHECK: # %bb.0: # %entry2317; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2318; CHECK-NEXT: vmv2r.v v16, v82319; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma2320; CHECK-NEXT: vluxei16.v v8, (a0), v162321; CHECK-NEXT: ret2322entry:2323 %a = call <vscale x 8 x double> @llvm.riscv.vluxei.nxv8f64.nxv8i16(2324 <vscale x 8 x double> poison,2325 ptr %0,2326 <vscale x 8 x i16> %1,2327 iXLen %2)2328 2329 ret <vscale x 8 x double> %a2330}2331 2332define <vscale x 8 x double> @intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i16(<vscale x 8 x double> %0, ptr %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {2333; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i16:2334; CHECK: # %bb.0: # %entry2335; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu2336; CHECK-NEXT: vluxei16.v v8, (a0), v16, v0.t2337; CHECK-NEXT: ret2338entry:2339 %a = call <vscale x 8 x double> @llvm.riscv.vluxei.mask.nxv8f64.nxv8i16(2340 <vscale x 8 x double> %0,2341 ptr %1,2342 <vscale x 8 x i16> %2,2343 <vscale x 8 x i1> %3,2344 iXLen %4, iXLen 1)2345 2346 ret <vscale x 8 x double> %a2347}2348 2349define <vscale x 1 x i8> @intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2350; CHECK-LABEL: intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i8:2351; CHECK: # %bb.0: # %entry2352; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma2353; CHECK-NEXT: vluxei8.v v8, (a0), v82354; CHECK-NEXT: ret2355entry:2356 %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.nxv1i8.nxv1i8(2357 <vscale x 1 x i8> poison,2358 ptr %0,2359 <vscale x 1 x i8> %1,2360 iXLen %2)2361 2362 ret <vscale x 1 x i8> %a2363}2364 2365define <vscale x 1 x i8> @intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {2366; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i8:2367; CHECK: # %bb.0: # %entry2368; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, mu2369; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2370; CHECK-NEXT: ret2371entry:2372 %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.mask.nxv1i8.nxv1i8(2373 <vscale x 1 x i8> %0,2374 ptr %1,2375 <vscale x 1 x i8> %2,2376 <vscale x 1 x i1> %3,2377 iXLen %4, iXLen 1)2378 2379 ret <vscale x 1 x i8> %a2380}2381 2382define <vscale x 2 x i8> @intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2383; CHECK-LABEL: intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i8:2384; CHECK: # %bb.0: # %entry2385; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma2386; CHECK-NEXT: vluxei8.v v8, (a0), v82387; CHECK-NEXT: ret2388entry:2389 %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.nxv2i8.nxv2i8(2390 <vscale x 2 x i8> poison,2391 ptr %0,2392 <vscale x 2 x i8> %1,2393 iXLen %2)2394 2395 ret <vscale x 2 x i8> %a2396}2397 2398define <vscale x 2 x i8> @intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {2399; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i8:2400; CHECK: # %bb.0: # %entry2401; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, mu2402; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2403; CHECK-NEXT: ret2404entry:2405 %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.mask.nxv2i8.nxv2i8(2406 <vscale x 2 x i8> %0,2407 ptr %1,2408 <vscale x 2 x i8> %2,2409 <vscale x 2 x i1> %3,2410 iXLen %4, iXLen 1)2411 2412 ret <vscale x 2 x i8> %a2413}2414 2415define <vscale x 4 x i8> @intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {2416; CHECK-LABEL: intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i8:2417; CHECK: # %bb.0: # %entry2418; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma2419; CHECK-NEXT: vluxei8.v v8, (a0), v82420; CHECK-NEXT: ret2421entry:2422 %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.nxv4i8.nxv4i8(2423 <vscale x 4 x i8> poison,2424 ptr %0,2425 <vscale x 4 x i8> %1,2426 iXLen %2)2427 2428 ret <vscale x 4 x i8> %a2429}2430 2431define <vscale x 4 x i8> @intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {2432; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i8:2433; CHECK: # %bb.0: # %entry2434; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, mu2435; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2436; CHECK-NEXT: ret2437entry:2438 %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.mask.nxv4i8.nxv4i8(2439 <vscale x 4 x i8> %0,2440 ptr %1,2441 <vscale x 4 x i8> %2,2442 <vscale x 4 x i1> %3,2443 iXLen %4, iXLen 1)2444 2445 ret <vscale x 4 x i8> %a2446}2447 2448define <vscale x 8 x i8> @intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {2449; CHECK-LABEL: intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i8:2450; CHECK: # %bb.0: # %entry2451; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma2452; CHECK-NEXT: vluxei8.v v8, (a0), v82453; CHECK-NEXT: ret2454entry:2455 %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.nxv8i8.nxv8i8(2456 <vscale x 8 x i8> poison,2457 ptr %0,2458 <vscale x 8 x i8> %1,2459 iXLen %2)2460 2461 ret <vscale x 8 x i8> %a2462}2463 2464define <vscale x 8 x i8> @intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {2465; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i8:2466; CHECK: # %bb.0: # %entry2467; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu2468; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2469; CHECK-NEXT: ret2470entry:2471 %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.mask.nxv8i8.nxv8i8(2472 <vscale x 8 x i8> %0,2473 ptr %1,2474 <vscale x 8 x i8> %2,2475 <vscale x 8 x i1> %3,2476 iXLen %4, iXLen 1)2477 2478 ret <vscale x 8 x i8> %a2479}2480 2481define <vscale x 16 x i8> @intrinsic_vluxei_v_nxv16i8_nxv16i8_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {2482; CHECK-LABEL: intrinsic_vluxei_v_nxv16i8_nxv16i8_nxv16i8:2483; CHECK: # %bb.0: # %entry2484; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma2485; CHECK-NEXT: vluxei8.v v8, (a0), v82486; CHECK-NEXT: ret2487entry:2488 %a = call <vscale x 16 x i8> @llvm.riscv.vluxei.nxv16i8.nxv16i8(2489 <vscale x 16 x i8> poison,2490 ptr %0,2491 <vscale x 16 x i8> %1,2492 iXLen %2)2493 2494 ret <vscale x 16 x i8> %a2495}2496 2497define <vscale x 16 x i8> @intrinsic_vluxei_mask_v_nxv16i8_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, ptr %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {2498; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i8_nxv16i8_nxv16i8:2499; CHECK: # %bb.0: # %entry2500; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu2501; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t2502; CHECK-NEXT: ret2503entry:2504 %a = call <vscale x 16 x i8> @llvm.riscv.vluxei.mask.nxv16i8.nxv16i8(2505 <vscale x 16 x i8> %0,2506 ptr %1,2507 <vscale x 16 x i8> %2,2508 <vscale x 16 x i1> %3,2509 iXLen %4, iXLen 1)2510 2511 ret <vscale x 16 x i8> %a2512}2513 2514define <vscale x 32 x i8> @intrinsic_vluxei_v_nxv32i8_nxv32i8_nxv32i8(ptr %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {2515; CHECK-LABEL: intrinsic_vluxei_v_nxv32i8_nxv32i8_nxv32i8:2516; CHECK: # %bb.0: # %entry2517; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma2518; CHECK-NEXT: vluxei8.v v8, (a0), v82519; CHECK-NEXT: ret2520entry:2521 %a = call <vscale x 32 x i8> @llvm.riscv.vluxei.nxv32i8.nxv32i8(2522 <vscale x 32 x i8> poison,2523 ptr %0,2524 <vscale x 32 x i8> %1,2525 iXLen %2)2526 2527 ret <vscale x 32 x i8> %a2528}2529 2530define <vscale x 32 x i8> @intrinsic_vluxei_mask_v_nxv32i8_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, ptr %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {2531; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv32i8_nxv32i8_nxv32i8:2532; CHECK: # %bb.0: # %entry2533; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, mu2534; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t2535; CHECK-NEXT: ret2536entry:2537 %a = call <vscale x 32 x i8> @llvm.riscv.vluxei.mask.nxv32i8.nxv32i8(2538 <vscale x 32 x i8> %0,2539 ptr %1,2540 <vscale x 32 x i8> %2,2541 <vscale x 32 x i1> %3,2542 iXLen %4, iXLen 1)2543 2544 ret <vscale x 32 x i8> %a2545}2546 2547define <vscale x 64 x i8> @intrinsic_vluxei_v_nxv64i8_nxv64i8_nxv64i8(ptr %0, <vscale x 64 x i8> %1, iXLen %2) nounwind {2548; CHECK-LABEL: intrinsic_vluxei_v_nxv64i8_nxv64i8_nxv64i8:2549; CHECK: # %bb.0: # %entry2550; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma2551; CHECK-NEXT: vluxei8.v v8, (a0), v82552; CHECK-NEXT: ret2553entry:2554 %a = call <vscale x 64 x i8> @llvm.riscv.vluxei.nxv64i8.nxv64i8(2555 <vscale x 64 x i8> poison,2556 ptr %0,2557 <vscale x 64 x i8> %1,2558 iXLen %2)2559 2560 ret <vscale x 64 x i8> %a2561}2562 2563define <vscale x 64 x i8> @intrinsic_vluxei_mask_v_nxv64i8_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, ptr %1, <vscale x 64 x i8> %2, <vscale x 64 x i1> %3, iXLen %4) nounwind {2564; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv64i8_nxv64i8_nxv64i8:2565; CHECK: # %bb.0: # %entry2566; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, mu2567; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t2568; CHECK-NEXT: ret2569entry:2570 %a = call <vscale x 64 x i8> @llvm.riscv.vluxei.mask.nxv64i8.nxv64i8(2571 <vscale x 64 x i8> %0,2572 ptr %1,2573 <vscale x 64 x i8> %2,2574 <vscale x 64 x i1> %3,2575 iXLen %4, iXLen 1)2576 2577 ret <vscale x 64 x i8> %a2578}2579 2580define <vscale x 1 x i16> @intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2581; CHECK-LABEL: intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i8:2582; CHECK: # %bb.0: # %entry2583; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma2584; CHECK-NEXT: vluxei8.v v9, (a0), v82585; CHECK-NEXT: vmv1r.v v8, v92586; CHECK-NEXT: ret2587entry:2588 %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.nxv1i16.nxv1i8(2589 <vscale x 1 x i16> poison,2590 ptr %0,2591 <vscale x 1 x i8> %1,2592 iXLen %2)2593 2594 ret <vscale x 1 x i16> %a2595}2596 2597define <vscale x 1 x i16> @intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i8(<vscale x 1 x i16> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {2598; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i8:2599; CHECK: # %bb.0: # %entry2600; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu2601; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2602; CHECK-NEXT: ret2603entry:2604 %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.mask.nxv1i16.nxv1i8(2605 <vscale x 1 x i16> %0,2606 ptr %1,2607 <vscale x 1 x i8> %2,2608 <vscale x 1 x i1> %3,2609 iXLen %4, iXLen 1)2610 2611 ret <vscale x 1 x i16> %a2612}2613 2614define <vscale x 2 x i16> @intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2615; CHECK-LABEL: intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i8:2616; CHECK: # %bb.0: # %entry2617; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma2618; CHECK-NEXT: vluxei8.v v9, (a0), v82619; CHECK-NEXT: vmv1r.v v8, v92620; CHECK-NEXT: ret2621entry:2622 %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.nxv2i16.nxv2i8(2623 <vscale x 2 x i16> poison,2624 ptr %0,2625 <vscale x 2 x i8> %1,2626 iXLen %2)2627 2628 ret <vscale x 2 x i16> %a2629}2630 2631define <vscale x 2 x i16> @intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i8(<vscale x 2 x i16> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {2632; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i8:2633; CHECK: # %bb.0: # %entry2634; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu2635; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2636; CHECK-NEXT: ret2637entry:2638 %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.mask.nxv2i16.nxv2i8(2639 <vscale x 2 x i16> %0,2640 ptr %1,2641 <vscale x 2 x i8> %2,2642 <vscale x 2 x i1> %3,2643 iXLen %4, iXLen 1)2644 2645 ret <vscale x 2 x i16> %a2646}2647 2648define <vscale x 4 x i16> @intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {2649; CHECK-LABEL: intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i8:2650; CHECK: # %bb.0: # %entry2651; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma2652; CHECK-NEXT: vluxei8.v v9, (a0), v82653; CHECK-NEXT: vmv.v.v v8, v92654; CHECK-NEXT: ret2655entry:2656 %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.nxv4i16.nxv4i8(2657 <vscale x 4 x i16> poison,2658 ptr %0,2659 <vscale x 4 x i8> %1,2660 iXLen %2)2661 2662 ret <vscale x 4 x i16> %a2663}2664 2665define <vscale x 4 x i16> @intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i8(<vscale x 4 x i16> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {2666; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i8:2667; CHECK: # %bb.0: # %entry2668; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu2669; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2670; CHECK-NEXT: ret2671entry:2672 %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.mask.nxv4i16.nxv4i8(2673 <vscale x 4 x i16> %0,2674 ptr %1,2675 <vscale x 4 x i8> %2,2676 <vscale x 4 x i1> %3,2677 iXLen %4, iXLen 1)2678 2679 ret <vscale x 4 x i16> %a2680}2681 2682define <vscale x 8 x i16> @intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {2683; CHECK-LABEL: intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i8:2684; CHECK: # %bb.0: # %entry2685; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2686; CHECK-NEXT: vmv1r.v v10, v82687; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma2688; CHECK-NEXT: vluxei8.v v8, (a0), v102689; CHECK-NEXT: ret2690entry:2691 %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.nxv8i16.nxv8i8(2692 <vscale x 8 x i16> poison,2693 ptr %0,2694 <vscale x 8 x i8> %1,2695 iXLen %2)2696 2697 ret <vscale x 8 x i16> %a2698}2699 2700define <vscale x 8 x i16> @intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i8(<vscale x 8 x i16> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {2701; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i8:2702; CHECK: # %bb.0: # %entry2703; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu2704; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t2705; CHECK-NEXT: ret2706entry:2707 %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.mask.nxv8i16.nxv8i8(2708 <vscale x 8 x i16> %0,2709 ptr %1,2710 <vscale x 8 x i8> %2,2711 <vscale x 8 x i1> %3,2712 iXLen %4, iXLen 1)2713 2714 ret <vscale x 8 x i16> %a2715}2716 2717define <vscale x 16 x i16> @intrinsic_vluxei_v_nxv16i16_nxv16i16_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {2718; CHECK-LABEL: intrinsic_vluxei_v_nxv16i16_nxv16i16_nxv16i8:2719; CHECK: # %bb.0: # %entry2720; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2721; CHECK-NEXT: vmv2r.v v12, v82722; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma2723; CHECK-NEXT: vluxei8.v v8, (a0), v122724; CHECK-NEXT: ret2725entry:2726 %a = call <vscale x 16 x i16> @llvm.riscv.vluxei.nxv16i16.nxv16i8(2727 <vscale x 16 x i16> poison,2728 ptr %0,2729 <vscale x 16 x i8> %1,2730 iXLen %2)2731 2732 ret <vscale x 16 x i16> %a2733}2734 2735define <vscale x 16 x i16> @intrinsic_vluxei_mask_v_nxv16i16_nxv16i16_nxv16i8(<vscale x 16 x i16> %0, ptr %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {2736; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i16_nxv16i16_nxv16i8:2737; CHECK: # %bb.0: # %entry2738; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu2739; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t2740; CHECK-NEXT: ret2741entry:2742 %a = call <vscale x 16 x i16> @llvm.riscv.vluxei.mask.nxv16i16.nxv16i8(2743 <vscale x 16 x i16> %0,2744 ptr %1,2745 <vscale x 16 x i8> %2,2746 <vscale x 16 x i1> %3,2747 iXLen %4, iXLen 1)2748 2749 ret <vscale x 16 x i16> %a2750}2751 2752define <vscale x 32 x i16> @intrinsic_vluxei_v_nxv32i16_nxv32i16_nxv32i8(ptr %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {2753; CHECK-LABEL: intrinsic_vluxei_v_nxv32i16_nxv32i16_nxv32i8:2754; CHECK: # %bb.0: # %entry2755; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2756; CHECK-NEXT: vmv4r.v v16, v82757; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma2758; CHECK-NEXT: vluxei8.v v8, (a0), v162759; CHECK-NEXT: ret2760entry:2761 %a = call <vscale x 32 x i16> @llvm.riscv.vluxei.nxv32i16.nxv32i8(2762 <vscale x 32 x i16> poison,2763 ptr %0,2764 <vscale x 32 x i8> %1,2765 iXLen %2)2766 2767 ret <vscale x 32 x i16> %a2768}2769 2770define <vscale x 32 x i16> @intrinsic_vluxei_mask_v_nxv32i16_nxv32i16_nxv32i8(<vscale x 32 x i16> %0, ptr %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {2771; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv32i16_nxv32i16_nxv32i8:2772; CHECK: # %bb.0: # %entry2773; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu2774; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t2775; CHECK-NEXT: ret2776entry:2777 %a = call <vscale x 32 x i16> @llvm.riscv.vluxei.mask.nxv32i16.nxv32i8(2778 <vscale x 32 x i16> %0,2779 ptr %1,2780 <vscale x 32 x i8> %2,2781 <vscale x 32 x i1> %3,2782 iXLen %4, iXLen 1)2783 2784 ret <vscale x 32 x i16> %a2785}2786 2787define <vscale x 1 x i32> @intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2788; CHECK-LABEL: intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i8:2789; CHECK: # %bb.0: # %entry2790; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma2791; CHECK-NEXT: vluxei8.v v9, (a0), v82792; CHECK-NEXT: vmv1r.v v8, v92793; CHECK-NEXT: ret2794entry:2795 %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.nxv1i32.nxv1i8(2796 <vscale x 1 x i32> poison,2797 ptr %0,2798 <vscale x 1 x i8> %1,2799 iXLen %2)2800 2801 ret <vscale x 1 x i32> %a2802}2803 2804define <vscale x 1 x i32> @intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i8(<vscale x 1 x i32> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {2805; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i8:2806; CHECK: # %bb.0: # %entry2807; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu2808; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2809; CHECK-NEXT: ret2810entry:2811 %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.mask.nxv1i32.nxv1i8(2812 <vscale x 1 x i32> %0,2813 ptr %1,2814 <vscale x 1 x i8> %2,2815 <vscale x 1 x i1> %3,2816 iXLen %4, iXLen 1)2817 2818 ret <vscale x 1 x i32> %a2819}2820 2821define <vscale x 2 x i32> @intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2822; CHECK-LABEL: intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i8:2823; CHECK: # %bb.0: # %entry2824; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma2825; CHECK-NEXT: vluxei8.v v9, (a0), v82826; CHECK-NEXT: vmv.v.v v8, v92827; CHECK-NEXT: ret2828entry:2829 %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.nxv2i32.nxv2i8(2830 <vscale x 2 x i32> poison,2831 ptr %0,2832 <vscale x 2 x i8> %1,2833 iXLen %2)2834 2835 ret <vscale x 2 x i32> %a2836}2837 2838define <vscale x 2 x i32> @intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i8(<vscale x 2 x i32> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {2839; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i8:2840; CHECK: # %bb.0: # %entry2841; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu2842; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2843; CHECK-NEXT: ret2844entry:2845 %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.mask.nxv2i32.nxv2i8(2846 <vscale x 2 x i32> %0,2847 ptr %1,2848 <vscale x 2 x i8> %2,2849 <vscale x 2 x i1> %3,2850 iXLen %4, iXLen 1)2851 2852 ret <vscale x 2 x i32> %a2853}2854 2855define <vscale x 4 x i32> @intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {2856; CHECK-LABEL: intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i8:2857; CHECK: # %bb.0: # %entry2858; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2859; CHECK-NEXT: vmv1r.v v10, v82860; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma2861; CHECK-NEXT: vluxei8.v v8, (a0), v102862; CHECK-NEXT: ret2863entry:2864 %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.nxv4i32.nxv4i8(2865 <vscale x 4 x i32> poison,2866 ptr %0,2867 <vscale x 4 x i8> %1,2868 iXLen %2)2869 2870 ret <vscale x 4 x i32> %a2871}2872 2873define <vscale x 4 x i32> @intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i8(<vscale x 4 x i32> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {2874; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i8:2875; CHECK: # %bb.0: # %entry2876; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu2877; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t2878; CHECK-NEXT: ret2879entry:2880 %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.mask.nxv4i32.nxv4i8(2881 <vscale x 4 x i32> %0,2882 ptr %1,2883 <vscale x 4 x i8> %2,2884 <vscale x 4 x i1> %3,2885 iXLen %4, iXLen 1)2886 2887 ret <vscale x 4 x i32> %a2888}2889 2890define <vscale x 8 x i32> @intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {2891; CHECK-LABEL: intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i8:2892; CHECK: # %bb.0: # %entry2893; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2894; CHECK-NEXT: vmv1r.v v12, v82895; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma2896; CHECK-NEXT: vluxei8.v v8, (a0), v122897; CHECK-NEXT: ret2898entry:2899 %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.nxv8i32.nxv8i8(2900 <vscale x 8 x i32> poison,2901 ptr %0,2902 <vscale x 8 x i8> %1,2903 iXLen %2)2904 2905 ret <vscale x 8 x i32> %a2906}2907 2908define <vscale x 8 x i32> @intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i8(<vscale x 8 x i32> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {2909; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i8:2910; CHECK: # %bb.0: # %entry2911; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu2912; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t2913; CHECK-NEXT: ret2914entry:2915 %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.mask.nxv8i32.nxv8i8(2916 <vscale x 8 x i32> %0,2917 ptr %1,2918 <vscale x 8 x i8> %2,2919 <vscale x 8 x i1> %3,2920 iXLen %4, iXLen 1)2921 2922 ret <vscale x 8 x i32> %a2923}2924 2925define <vscale x 16 x i32> @intrinsic_vluxei_v_nxv16i32_nxv16i32_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {2926; CHECK-LABEL: intrinsic_vluxei_v_nxv16i32_nxv16i32_nxv16i8:2927; CHECK: # %bb.0: # %entry2928; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2929; CHECK-NEXT: vmv2r.v v16, v82930; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma2931; CHECK-NEXT: vluxei8.v v8, (a0), v162932; CHECK-NEXT: ret2933entry:2934 %a = call <vscale x 16 x i32> @llvm.riscv.vluxei.nxv16i32.nxv16i8(2935 <vscale x 16 x i32> poison,2936 ptr %0,2937 <vscale x 16 x i8> %1,2938 iXLen %2)2939 2940 ret <vscale x 16 x i32> %a2941}2942 2943define <vscale x 16 x i32> @intrinsic_vluxei_mask_v_nxv16i32_nxv16i32_nxv16i8(<vscale x 16 x i32> %0, ptr %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {2944; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16i32_nxv16i32_nxv16i8:2945; CHECK: # %bb.0: # %entry2946; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu2947; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t2948; CHECK-NEXT: ret2949entry:2950 %a = call <vscale x 16 x i32> @llvm.riscv.vluxei.mask.nxv16i32.nxv16i8(2951 <vscale x 16 x i32> %0,2952 ptr %1,2953 <vscale x 16 x i8> %2,2954 <vscale x 16 x i1> %3,2955 iXLen %4, iXLen 1)2956 2957 ret <vscale x 16 x i32> %a2958}2959 2960define <vscale x 1 x i64> @intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2961; CHECK-LABEL: intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i8:2962; CHECK: # %bb.0: # %entry2963; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma2964; CHECK-NEXT: vluxei8.v v9, (a0), v82965; CHECK-NEXT: vmv.v.v v8, v92966; CHECK-NEXT: ret2967entry:2968 %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.nxv1i64.nxv1i8(2969 <vscale x 1 x i64> poison,2970 ptr %0,2971 <vscale x 1 x i8> %1,2972 iXLen %2)2973 2974 ret <vscale x 1 x i64> %a2975}2976 2977define <vscale x 1 x i64> @intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i8(<vscale x 1 x i64> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {2978; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i8:2979; CHECK: # %bb.0: # %entry2980; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu2981; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t2982; CHECK-NEXT: ret2983entry:2984 %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.mask.nxv1i64.nxv1i8(2985 <vscale x 1 x i64> %0,2986 ptr %1,2987 <vscale x 1 x i8> %2,2988 <vscale x 1 x i1> %3,2989 iXLen %4, iXLen 1)2990 2991 ret <vscale x 1 x i64> %a2992}2993 2994define <vscale x 2 x i64> @intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2995; CHECK-LABEL: intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i8:2996; CHECK: # %bb.0: # %entry2997; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma2998; CHECK-NEXT: vmv1r.v v10, v82999; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma3000; CHECK-NEXT: vluxei8.v v8, (a0), v103001; CHECK-NEXT: ret3002entry:3003 %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.nxv2i64.nxv2i8(3004 <vscale x 2 x i64> poison,3005 ptr %0,3006 <vscale x 2 x i8> %1,3007 iXLen %2)3008 3009 ret <vscale x 2 x i64> %a3010}3011 3012define <vscale x 2 x i64> @intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i8(<vscale x 2 x i64> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {3013; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i8:3014; CHECK: # %bb.0: # %entry3015; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu3016; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t3017; CHECK-NEXT: ret3018entry:3019 %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.mask.nxv2i64.nxv2i8(3020 <vscale x 2 x i64> %0,3021 ptr %1,3022 <vscale x 2 x i8> %2,3023 <vscale x 2 x i1> %3,3024 iXLen %4, iXLen 1)3025 3026 ret <vscale x 2 x i64> %a3027}3028 3029define <vscale x 4 x i64> @intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3030; CHECK-LABEL: intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i8:3031; CHECK: # %bb.0: # %entry3032; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3033; CHECK-NEXT: vmv1r.v v12, v83034; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma3035; CHECK-NEXT: vluxei8.v v8, (a0), v123036; CHECK-NEXT: ret3037entry:3038 %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.nxv4i64.nxv4i8(3039 <vscale x 4 x i64> poison,3040 ptr %0,3041 <vscale x 4 x i8> %1,3042 iXLen %2)3043 3044 ret <vscale x 4 x i64> %a3045}3046 3047define <vscale x 4 x i64> @intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i8(<vscale x 4 x i64> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {3048; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i8:3049; CHECK: # %bb.0: # %entry3050; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu3051; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t3052; CHECK-NEXT: ret3053entry:3054 %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.mask.nxv4i64.nxv4i8(3055 <vscale x 4 x i64> %0,3056 ptr %1,3057 <vscale x 4 x i8> %2,3058 <vscale x 4 x i1> %3,3059 iXLen %4, iXLen 1)3060 3061 ret <vscale x 4 x i64> %a3062}3063 3064define <vscale x 8 x i64> @intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3065; CHECK-LABEL: intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i8:3066; CHECK: # %bb.0: # %entry3067; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3068; CHECK-NEXT: vmv1r.v v16, v83069; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma3070; CHECK-NEXT: vluxei8.v v8, (a0), v163071; CHECK-NEXT: ret3072entry:3073 %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.nxv8i64.nxv8i8(3074 <vscale x 8 x i64> poison,3075 ptr %0,3076 <vscale x 8 x i8> %1,3077 iXLen %2)3078 3079 ret <vscale x 8 x i64> %a3080}3081 3082define <vscale x 8 x i64> @intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i8(<vscale x 8 x i64> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {3083; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i8:3084; CHECK: # %bb.0: # %entry3085; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu3086; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t3087; CHECK-NEXT: ret3088entry:3089 %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.mask.nxv8i64.nxv8i8(3090 <vscale x 8 x i64> %0,3091 ptr %1,3092 <vscale x 8 x i8> %2,3093 <vscale x 8 x i1> %3,3094 iXLen %4, iXLen 1)3095 3096 ret <vscale x 8 x i64> %a3097}3098 3099define <vscale x 1 x half> @intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {3100; CHECK-LABEL: intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i8:3101; CHECK: # %bb.0: # %entry3102; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma3103; CHECK-NEXT: vluxei8.v v9, (a0), v83104; CHECK-NEXT: vmv1r.v v8, v93105; CHECK-NEXT: ret3106entry:3107 %a = call <vscale x 1 x half> @llvm.riscv.vluxei.nxv1f16.nxv1i8(3108 <vscale x 1 x half> poison,3109 ptr %0,3110 <vscale x 1 x i8> %1,3111 iXLen %2)3112 3113 ret <vscale x 1 x half> %a3114}3115 3116define <vscale x 1 x half> @intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i8(<vscale x 1 x half> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {3117; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i8:3118; CHECK: # %bb.0: # %entry3119; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu3120; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t3121; CHECK-NEXT: ret3122entry:3123 %a = call <vscale x 1 x half> @llvm.riscv.vluxei.mask.nxv1f16.nxv1i8(3124 <vscale x 1 x half> %0,3125 ptr %1,3126 <vscale x 1 x i8> %2,3127 <vscale x 1 x i1> %3,3128 iXLen %4, iXLen 1)3129 3130 ret <vscale x 1 x half> %a3131}3132 3133define <vscale x 2 x half> @intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {3134; CHECK-LABEL: intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i8:3135; CHECK: # %bb.0: # %entry3136; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma3137; CHECK-NEXT: vluxei8.v v9, (a0), v83138; CHECK-NEXT: vmv1r.v v8, v93139; CHECK-NEXT: ret3140entry:3141 %a = call <vscale x 2 x half> @llvm.riscv.vluxei.nxv2f16.nxv2i8(3142 <vscale x 2 x half> poison,3143 ptr %0,3144 <vscale x 2 x i8> %1,3145 iXLen %2)3146 3147 ret <vscale x 2 x half> %a3148}3149 3150define <vscale x 2 x half> @intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i8(<vscale x 2 x half> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {3151; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i8:3152; CHECK: # %bb.0: # %entry3153; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu3154; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t3155; CHECK-NEXT: ret3156entry:3157 %a = call <vscale x 2 x half> @llvm.riscv.vluxei.mask.nxv2f16.nxv2i8(3158 <vscale x 2 x half> %0,3159 ptr %1,3160 <vscale x 2 x i8> %2,3161 <vscale x 2 x i1> %3,3162 iXLen %4, iXLen 1)3163 3164 ret <vscale x 2 x half> %a3165}3166 3167define <vscale x 4 x half> @intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3168; CHECK-LABEL: intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i8:3169; CHECK: # %bb.0: # %entry3170; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma3171; CHECK-NEXT: vluxei8.v v9, (a0), v83172; CHECK-NEXT: vmv.v.v v8, v93173; CHECK-NEXT: ret3174entry:3175 %a = call <vscale x 4 x half> @llvm.riscv.vluxei.nxv4f16.nxv4i8(3176 <vscale x 4 x half> poison,3177 ptr %0,3178 <vscale x 4 x i8> %1,3179 iXLen %2)3180 3181 ret <vscale x 4 x half> %a3182}3183 3184define <vscale x 4 x half> @intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i8(<vscale x 4 x half> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {3185; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i8:3186; CHECK: # %bb.0: # %entry3187; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu3188; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t3189; CHECK-NEXT: ret3190entry:3191 %a = call <vscale x 4 x half> @llvm.riscv.vluxei.mask.nxv4f16.nxv4i8(3192 <vscale x 4 x half> %0,3193 ptr %1,3194 <vscale x 4 x i8> %2,3195 <vscale x 4 x i1> %3,3196 iXLen %4, iXLen 1)3197 3198 ret <vscale x 4 x half> %a3199}3200 3201define <vscale x 8 x half> @intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3202; CHECK-LABEL: intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i8:3203; CHECK: # %bb.0: # %entry3204; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3205; CHECK-NEXT: vmv1r.v v10, v83206; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma3207; CHECK-NEXT: vluxei8.v v8, (a0), v103208; CHECK-NEXT: ret3209entry:3210 %a = call <vscale x 8 x half> @llvm.riscv.vluxei.nxv8f16.nxv8i8(3211 <vscale x 8 x half> poison,3212 ptr %0,3213 <vscale x 8 x i8> %1,3214 iXLen %2)3215 3216 ret <vscale x 8 x half> %a3217}3218 3219define <vscale x 8 x half> @intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i8(<vscale x 8 x half> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {3220; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i8:3221; CHECK: # %bb.0: # %entry3222; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu3223; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t3224; CHECK-NEXT: ret3225entry:3226 %a = call <vscale x 8 x half> @llvm.riscv.vluxei.mask.nxv8f16.nxv8i8(3227 <vscale x 8 x half> %0,3228 ptr %1,3229 <vscale x 8 x i8> %2,3230 <vscale x 8 x i1> %3,3231 iXLen %4, iXLen 1)3232 3233 ret <vscale x 8 x half> %a3234}3235 3236define <vscale x 16 x half> @intrinsic_vluxei_v_nxv16f16_nxv16f16_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {3237; CHECK-LABEL: intrinsic_vluxei_v_nxv16f16_nxv16f16_nxv16i8:3238; CHECK: # %bb.0: # %entry3239; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3240; CHECK-NEXT: vmv2r.v v12, v83241; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma3242; CHECK-NEXT: vluxei8.v v8, (a0), v123243; CHECK-NEXT: ret3244entry:3245 %a = call <vscale x 16 x half> @llvm.riscv.vluxei.nxv16f16.nxv16i8(3246 <vscale x 16 x half> poison,3247 ptr %0,3248 <vscale x 16 x i8> %1,3249 iXLen %2)3250 3251 ret <vscale x 16 x half> %a3252}3253 3254define <vscale x 16 x half> @intrinsic_vluxei_mask_v_nxv16f16_nxv16f16_nxv16i8(<vscale x 16 x half> %0, ptr %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {3255; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16f16_nxv16f16_nxv16i8:3256; CHECK: # %bb.0: # %entry3257; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu3258; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t3259; CHECK-NEXT: ret3260entry:3261 %a = call <vscale x 16 x half> @llvm.riscv.vluxei.mask.nxv16f16.nxv16i8(3262 <vscale x 16 x half> %0,3263 ptr %1,3264 <vscale x 16 x i8> %2,3265 <vscale x 16 x i1> %3,3266 iXLen %4, iXLen 1)3267 3268 ret <vscale x 16 x half> %a3269}3270 3271define <vscale x 32 x half> @intrinsic_vluxei_v_nxv32f16_nxv32f16_nxv32i8(ptr %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {3272; CHECK-LABEL: intrinsic_vluxei_v_nxv32f16_nxv32f16_nxv32i8:3273; CHECK: # %bb.0: # %entry3274; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3275; CHECK-NEXT: vmv4r.v v16, v83276; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma3277; CHECK-NEXT: vluxei8.v v8, (a0), v163278; CHECK-NEXT: ret3279entry:3280 %a = call <vscale x 32 x half> @llvm.riscv.vluxei.nxv32f16.nxv32i8(3281 <vscale x 32 x half> poison,3282 ptr %0,3283 <vscale x 32 x i8> %1,3284 iXLen %2)3285 3286 ret <vscale x 32 x half> %a3287}3288 3289define <vscale x 32 x half> @intrinsic_vluxei_mask_v_nxv32f16_nxv32f16_nxv32i8(<vscale x 32 x half> %0, ptr %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {3290; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv32f16_nxv32f16_nxv32i8:3291; CHECK: # %bb.0: # %entry3292; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu3293; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t3294; CHECK-NEXT: ret3295entry:3296 %a = call <vscale x 32 x half> @llvm.riscv.vluxei.mask.nxv32f16.nxv32i8(3297 <vscale x 32 x half> %0,3298 ptr %1,3299 <vscale x 32 x i8> %2,3300 <vscale x 32 x i1> %3,3301 iXLen %4, iXLen 1)3302 3303 ret <vscale x 32 x half> %a3304}3305 3306define <vscale x 1 x float> @intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {3307; CHECK-LABEL: intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i8:3308; CHECK: # %bb.0: # %entry3309; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma3310; CHECK-NEXT: vluxei8.v v9, (a0), v83311; CHECK-NEXT: vmv1r.v v8, v93312; CHECK-NEXT: ret3313entry:3314 %a = call <vscale x 1 x float> @llvm.riscv.vluxei.nxv1f32.nxv1i8(3315 <vscale x 1 x float> poison,3316 ptr %0,3317 <vscale x 1 x i8> %1,3318 iXLen %2)3319 3320 ret <vscale x 1 x float> %a3321}3322 3323define <vscale x 1 x float> @intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i8(<vscale x 1 x float> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {3324; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i8:3325; CHECK: # %bb.0: # %entry3326; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu3327; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t3328; CHECK-NEXT: ret3329entry:3330 %a = call <vscale x 1 x float> @llvm.riscv.vluxei.mask.nxv1f32.nxv1i8(3331 <vscale x 1 x float> %0,3332 ptr %1,3333 <vscale x 1 x i8> %2,3334 <vscale x 1 x i1> %3,3335 iXLen %4, iXLen 1)3336 3337 ret <vscale x 1 x float> %a3338}3339 3340define <vscale x 2 x float> @intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {3341; CHECK-LABEL: intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i8:3342; CHECK: # %bb.0: # %entry3343; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma3344; CHECK-NEXT: vluxei8.v v9, (a0), v83345; CHECK-NEXT: vmv.v.v v8, v93346; CHECK-NEXT: ret3347entry:3348 %a = call <vscale x 2 x float> @llvm.riscv.vluxei.nxv2f32.nxv2i8(3349 <vscale x 2 x float> poison,3350 ptr %0,3351 <vscale x 2 x i8> %1,3352 iXLen %2)3353 3354 ret <vscale x 2 x float> %a3355}3356 3357define <vscale x 2 x float> @intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i8(<vscale x 2 x float> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {3358; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i8:3359; CHECK: # %bb.0: # %entry3360; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu3361; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t3362; CHECK-NEXT: ret3363entry:3364 %a = call <vscale x 2 x float> @llvm.riscv.vluxei.mask.nxv2f32.nxv2i8(3365 <vscale x 2 x float> %0,3366 ptr %1,3367 <vscale x 2 x i8> %2,3368 <vscale x 2 x i1> %3,3369 iXLen %4, iXLen 1)3370 3371 ret <vscale x 2 x float> %a3372}3373 3374define <vscale x 4 x float> @intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3375; CHECK-LABEL: intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i8:3376; CHECK: # %bb.0: # %entry3377; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3378; CHECK-NEXT: vmv1r.v v10, v83379; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma3380; CHECK-NEXT: vluxei8.v v8, (a0), v103381; CHECK-NEXT: ret3382entry:3383 %a = call <vscale x 4 x float> @llvm.riscv.vluxei.nxv4f32.nxv4i8(3384 <vscale x 4 x float> poison,3385 ptr %0,3386 <vscale x 4 x i8> %1,3387 iXLen %2)3388 3389 ret <vscale x 4 x float> %a3390}3391 3392define <vscale x 4 x float> @intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i8(<vscale x 4 x float> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {3393; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i8:3394; CHECK: # %bb.0: # %entry3395; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu3396; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t3397; CHECK-NEXT: ret3398entry:3399 %a = call <vscale x 4 x float> @llvm.riscv.vluxei.mask.nxv4f32.nxv4i8(3400 <vscale x 4 x float> %0,3401 ptr %1,3402 <vscale x 4 x i8> %2,3403 <vscale x 4 x i1> %3,3404 iXLen %4, iXLen 1)3405 3406 ret <vscale x 4 x float> %a3407}3408 3409define <vscale x 8 x float> @intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3410; CHECK-LABEL: intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i8:3411; CHECK: # %bb.0: # %entry3412; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3413; CHECK-NEXT: vmv1r.v v12, v83414; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma3415; CHECK-NEXT: vluxei8.v v8, (a0), v123416; CHECK-NEXT: ret3417entry:3418 %a = call <vscale x 8 x float> @llvm.riscv.vluxei.nxv8f32.nxv8i8(3419 <vscale x 8 x float> poison,3420 ptr %0,3421 <vscale x 8 x i8> %1,3422 iXLen %2)3423 3424 ret <vscale x 8 x float> %a3425}3426 3427define <vscale x 8 x float> @intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i8(<vscale x 8 x float> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {3428; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i8:3429; CHECK: # %bb.0: # %entry3430; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu3431; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t3432; CHECK-NEXT: ret3433entry:3434 %a = call <vscale x 8 x float> @llvm.riscv.vluxei.mask.nxv8f32.nxv8i8(3435 <vscale x 8 x float> %0,3436 ptr %1,3437 <vscale x 8 x i8> %2,3438 <vscale x 8 x i1> %3,3439 iXLen %4, iXLen 1)3440 3441 ret <vscale x 8 x float> %a3442}3443 3444define <vscale x 16 x float> @intrinsic_vluxei_v_nxv16f32_nxv16f32_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {3445; CHECK-LABEL: intrinsic_vluxei_v_nxv16f32_nxv16f32_nxv16i8:3446; CHECK: # %bb.0: # %entry3447; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3448; CHECK-NEXT: vmv2r.v v16, v83449; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma3450; CHECK-NEXT: vluxei8.v v8, (a0), v163451; CHECK-NEXT: ret3452entry:3453 %a = call <vscale x 16 x float> @llvm.riscv.vluxei.nxv16f32.nxv16i8(3454 <vscale x 16 x float> poison,3455 ptr %0,3456 <vscale x 16 x i8> %1,3457 iXLen %2)3458 3459 ret <vscale x 16 x float> %a3460}3461 3462define <vscale x 16 x float> @intrinsic_vluxei_mask_v_nxv16f32_nxv16f32_nxv16i8(<vscale x 16 x float> %0, ptr %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {3463; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv16f32_nxv16f32_nxv16i8:3464; CHECK: # %bb.0: # %entry3465; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu3466; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t3467; CHECK-NEXT: ret3468entry:3469 %a = call <vscale x 16 x float> @llvm.riscv.vluxei.mask.nxv16f32.nxv16i8(3470 <vscale x 16 x float> %0,3471 ptr %1,3472 <vscale x 16 x i8> %2,3473 <vscale x 16 x i1> %3,3474 iXLen %4, iXLen 1)3475 3476 ret <vscale x 16 x float> %a3477}3478 3479define <vscale x 1 x double> @intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {3480; CHECK-LABEL: intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i8:3481; CHECK: # %bb.0: # %entry3482; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, ma3483; CHECK-NEXT: vluxei8.v v9, (a0), v83484; CHECK-NEXT: vmv.v.v v8, v93485; CHECK-NEXT: ret3486entry:3487 %a = call <vscale x 1 x double> @llvm.riscv.vluxei.nxv1f64.nxv1i8(3488 <vscale x 1 x double> poison,3489 ptr %0,3490 <vscale x 1 x i8> %1,3491 iXLen %2)3492 3493 ret <vscale x 1 x double> %a3494}3495 3496define <vscale x 1 x double> @intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i8(<vscale x 1 x double> %0, ptr %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {3497; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i8:3498; CHECK: # %bb.0: # %entry3499; CHECK-NEXT: vsetvli zero, a1, e64, m1, ta, mu3500; CHECK-NEXT: vluxei8.v v8, (a0), v9, v0.t3501; CHECK-NEXT: ret3502entry:3503 %a = call <vscale x 1 x double> @llvm.riscv.vluxei.mask.nxv1f64.nxv1i8(3504 <vscale x 1 x double> %0,3505 ptr %1,3506 <vscale x 1 x i8> %2,3507 <vscale x 1 x i1> %3,3508 iXLen %4, iXLen 1)3509 3510 ret <vscale x 1 x double> %a3511}3512 3513define <vscale x 2 x double> @intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {3514; CHECK-LABEL: intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i8:3515; CHECK: # %bb.0: # %entry3516; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3517; CHECK-NEXT: vmv1r.v v10, v83518; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, ma3519; CHECK-NEXT: vluxei8.v v8, (a0), v103520; CHECK-NEXT: ret3521entry:3522 %a = call <vscale x 2 x double> @llvm.riscv.vluxei.nxv2f64.nxv2i8(3523 <vscale x 2 x double> poison,3524 ptr %0,3525 <vscale x 2 x i8> %1,3526 iXLen %2)3527 3528 ret <vscale x 2 x double> %a3529}3530 3531define <vscale x 2 x double> @intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i8(<vscale x 2 x double> %0, ptr %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {3532; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i8:3533; CHECK: # %bb.0: # %entry3534; CHECK-NEXT: vsetvli zero, a1, e64, m2, ta, mu3535; CHECK-NEXT: vluxei8.v v8, (a0), v10, v0.t3536; CHECK-NEXT: ret3537entry:3538 %a = call <vscale x 2 x double> @llvm.riscv.vluxei.mask.nxv2f64.nxv2i8(3539 <vscale x 2 x double> %0,3540 ptr %1,3541 <vscale x 2 x i8> %2,3542 <vscale x 2 x i1> %3,3543 iXLen %4, iXLen 1)3544 3545 ret <vscale x 2 x double> %a3546}3547 3548define <vscale x 4 x double> @intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3549; CHECK-LABEL: intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i8:3550; CHECK: # %bb.0: # %entry3551; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3552; CHECK-NEXT: vmv1r.v v12, v83553; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, ma3554; CHECK-NEXT: vluxei8.v v8, (a0), v123555; CHECK-NEXT: ret3556entry:3557 %a = call <vscale x 4 x double> @llvm.riscv.vluxei.nxv4f64.nxv4i8(3558 <vscale x 4 x double> poison,3559 ptr %0,3560 <vscale x 4 x i8> %1,3561 iXLen %2)3562 3563 ret <vscale x 4 x double> %a3564}3565 3566define <vscale x 4 x double> @intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i8(<vscale x 4 x double> %0, ptr %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {3567; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i8:3568; CHECK: # %bb.0: # %entry3569; CHECK-NEXT: vsetvli zero, a1, e64, m4, ta, mu3570; CHECK-NEXT: vluxei8.v v8, (a0), v12, v0.t3571; CHECK-NEXT: ret3572entry:3573 %a = call <vscale x 4 x double> @llvm.riscv.vluxei.mask.nxv4f64.nxv4i8(3574 <vscale x 4 x double> %0,3575 ptr %1,3576 <vscale x 4 x i8> %2,3577 <vscale x 4 x i1> %3,3578 iXLen %4, iXLen 1)3579 3580 ret <vscale x 4 x double> %a3581}3582 3583define <vscale x 8 x double> @intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3584; CHECK-LABEL: intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i8:3585; CHECK: # %bb.0: # %entry3586; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, ma3587; CHECK-NEXT: vmv1r.v v16, v83588; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma3589; CHECK-NEXT: vluxei8.v v8, (a0), v163590; CHECK-NEXT: ret3591entry:3592 %a = call <vscale x 8 x double> @llvm.riscv.vluxei.nxv8f64.nxv8i8(3593 <vscale x 8 x double> poison,3594 ptr %0,3595 <vscale x 8 x i8> %1,3596 iXLen %2)3597 3598 ret <vscale x 8 x double> %a3599}3600 3601define <vscale x 8 x double> @intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i8(<vscale x 8 x double> %0, ptr %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {3602; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i8:3603; CHECK: # %bb.0: # %entry3604; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, mu3605; CHECK-NEXT: vluxei8.v v8, (a0), v16, v0.t3606; CHECK-NEXT: ret3607entry:3608 %a = call <vscale x 8 x double> @llvm.riscv.vluxei.mask.nxv8f64.nxv8i8(3609 <vscale x 8 x double> %0,3610 ptr %1,3611 <vscale x 8 x i8> %2,3612 <vscale x 8 x i1> %3,3613 iXLen %4, iXLen 1)3614 3615 ret <vscale x 8 x double> %a3616}3617