brintos

brintos / llvm-project-archived public Read only

0
0
Text · 126.6 KiB · d76db67 Raw
3751 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:   -verify-machineinstrs -target-abi=ilp32d | FileCheck %s4; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+zvfhmin,+zvfbfmin \5; RUN:   -verify-machineinstrs -target-abi=lp64d | FileCheck %s6 7define <vscale x 1 x i8> @intrinsic_vloxei_v_nxv1i8_nxv1i8_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {8; CHECK-LABEL: intrinsic_vloxei_v_nxv1i8_nxv1i8_nxv1i32:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma11; CHECK-NEXT:    vloxei32.v v9, (a0), v812; CHECK-NEXT:    vmv1r.v v8, v913; CHECK-NEXT:    ret14entry:15  %a = call <vscale x 1 x i8> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv1i8_nxv1i8_nxv1i32:26; CHECK:       # %bb.0: # %entry27; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu28; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t29; CHECK-NEXT:    ret30entry:31  %a = call <vscale x 1 x i8> @llvm.riscv.vloxei.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_vloxei_v_nxv2i8_nxv2i8_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {42; CHECK-LABEL: intrinsic_vloxei_v_nxv2i8_nxv2i8_nxv2i32:43; CHECK:       # %bb.0: # %entry44; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma45; CHECK-NEXT:    vloxei32.v v9, (a0), v846; CHECK-NEXT:    vmv1r.v v8, v947; CHECK-NEXT:    ret48entry:49  %a = call <vscale x 2 x i8> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv2i8_nxv2i8_nxv2i32:60; CHECK:       # %bb.0: # %entry61; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu62; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t63; CHECK-NEXT:    ret64entry:65  %a = call <vscale x 2 x i8> @llvm.riscv.vloxei.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_vloxei_v_nxv4i8_nxv4i8_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {76; CHECK-LABEL: intrinsic_vloxei_v_nxv4i8_nxv4i8_nxv4i32:77; CHECK:       # %bb.0: # %entry78; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma79; CHECK-NEXT:    vloxei32.v v10, (a0), v880; CHECK-NEXT:    vmv1r.v v8, v1081; CHECK-NEXT:    ret82entry:83  %a = call <vscale x 4 x i8> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv4i8_nxv4i8_nxv4i32:94; CHECK:       # %bb.0: # %entry95; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu96; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t97; CHECK-NEXT:    ret98entry:99  %a = call <vscale x 4 x i8> @llvm.riscv.vloxei.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_vloxei_v_nxv8i8_nxv8i8_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {110; CHECK-LABEL: intrinsic_vloxei_v_nxv8i8_nxv8i8_nxv8i32:111; CHECK:       # %bb.0: # %entry112; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma113; CHECK-NEXT:    vloxei32.v v12, (a0), v8114; CHECK-NEXT:    vmv.v.v v8, v12115; CHECK-NEXT:    ret116entry:117  %a = call <vscale x 8 x i8> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv8i8_nxv8i8_nxv8i32:128; CHECK:       # %bb.0: # %entry129; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu130; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t131; CHECK-NEXT:    ret132entry:133  %a = call <vscale x 8 x i8> @llvm.riscv.vloxei.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_vloxei_v_nxv16i8_nxv16i8_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {144; CHECK-LABEL: intrinsic_vloxei_v_nxv16i8_nxv16i8_nxv16i32:145; CHECK:       # %bb.0: # %entry146; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma147; CHECK-NEXT:    vloxei32.v v16, (a0), v8148; CHECK-NEXT:    vmv.v.v v8, v16149; CHECK-NEXT:    ret150entry:151  %a = call <vscale x 16 x i8> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv16i8_nxv16i8_nxv16i32:162; CHECK:       # %bb.0: # %entry163; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu164; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t165; CHECK-NEXT:    ret166entry:167  %a = call <vscale x 16 x i8> @llvm.riscv.vloxei.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_vloxei_v_nxv1i16_nxv1i16_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {178; CHECK-LABEL: intrinsic_vloxei_v_nxv1i16_nxv1i16_nxv1i32:179; CHECK:       # %bb.0: # %entry180; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma181; CHECK-NEXT:    vloxei32.v v9, (a0), v8182; CHECK-NEXT:    vmv1r.v v8, v9183; CHECK-NEXT:    ret184entry:185  %a = call <vscale x 1 x i16> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv1i16_nxv1i16_nxv1i32:196; CHECK:       # %bb.0: # %entry197; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu198; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t199; CHECK-NEXT:    ret200entry:201  %a = call <vscale x 1 x i16> @llvm.riscv.vloxei.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_vloxei_v_nxv2i16_nxv2i16_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {212; CHECK-LABEL: intrinsic_vloxei_v_nxv2i16_nxv2i16_nxv2i32:213; CHECK:       # %bb.0: # %entry214; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma215; CHECK-NEXT:    vloxei32.v v9, (a0), v8216; CHECK-NEXT:    vmv1r.v v8, v9217; CHECK-NEXT:    ret218entry:219  %a = call <vscale x 2 x i16> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv2i16_nxv2i16_nxv2i32:230; CHECK:       # %bb.0: # %entry231; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu232; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t233; CHECK-NEXT:    ret234entry:235  %a = call <vscale x 2 x i16> @llvm.riscv.vloxei.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_vloxei_v_nxv4i16_nxv4i16_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {246; CHECK-LABEL: intrinsic_vloxei_v_nxv4i16_nxv4i16_nxv4i32:247; CHECK:       # %bb.0: # %entry248; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma249; CHECK-NEXT:    vloxei32.v v10, (a0), v8250; CHECK-NEXT:    vmv.v.v v8, v10251; CHECK-NEXT:    ret252entry:253  %a = call <vscale x 4 x i16> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv4i16_nxv4i16_nxv4i32:264; CHECK:       # %bb.0: # %entry265; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu266; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t267; CHECK-NEXT:    ret268entry:269  %a = call <vscale x 4 x i16> @llvm.riscv.vloxei.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_vloxei_v_nxv8i16_nxv8i16_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {280; CHECK-LABEL: intrinsic_vloxei_v_nxv8i16_nxv8i16_nxv8i32:281; CHECK:       # %bb.0: # %entry282; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma283; CHECK-NEXT:    vloxei32.v v12, (a0), v8284; CHECK-NEXT:    vmv.v.v v8, v12285; CHECK-NEXT:    ret286entry:287  %a = call <vscale x 8 x i16> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv8i16_nxv8i16_nxv8i32:298; CHECK:       # %bb.0: # %entry299; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu300; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t301; CHECK-NEXT:    ret302entry:303  %a = call <vscale x 8 x i16> @llvm.riscv.vloxei.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_vloxei_v_nxv16i16_nxv16i16_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {314; CHECK-LABEL: intrinsic_vloxei_v_nxv16i16_nxv16i16_nxv16i32:315; CHECK:       # %bb.0: # %entry316; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma317; CHECK-NEXT:    vloxei32.v v16, (a0), v8318; CHECK-NEXT:    vmv.v.v v8, v16319; CHECK-NEXT:    ret320entry:321  %a = call <vscale x 16 x i16> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv16i16_nxv16i16_nxv16i32:332; CHECK:       # %bb.0: # %entry333; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu334; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t335; CHECK-NEXT:    ret336entry:337  %a = call <vscale x 16 x i16> @llvm.riscv.vloxei.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_vloxei_v_nxv1i32_nxv1i32_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {348; CHECK-LABEL: intrinsic_vloxei_v_nxv1i32_nxv1i32_nxv1i32:349; CHECK:       # %bb.0: # %entry350; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma351; CHECK-NEXT:    vloxei32.v v8, (a0), v8352; CHECK-NEXT:    ret353entry:354  %a = call <vscale x 1 x i32> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv1i32_nxv1i32_nxv1i32:365; CHECK:       # %bb.0: # %entry366; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu367; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t368; CHECK-NEXT:    ret369entry:370  %a = call <vscale x 1 x i32> @llvm.riscv.vloxei.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_vloxei_v_nxv2i32_nxv2i32_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {381; CHECK-LABEL: intrinsic_vloxei_v_nxv2i32_nxv2i32_nxv2i32:382; CHECK:       # %bb.0: # %entry383; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma384; CHECK-NEXT:    vloxei32.v v8, (a0), v8385; CHECK-NEXT:    ret386entry:387  %a = call <vscale x 2 x i32> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv2i32_nxv2i32_nxv2i32:398; CHECK:       # %bb.0: # %entry399; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu400; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t401; CHECK-NEXT:    ret402entry:403  %a = call <vscale x 2 x i32> @llvm.riscv.vloxei.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_vloxei_v_nxv4i32_nxv4i32_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {414; CHECK-LABEL: intrinsic_vloxei_v_nxv4i32_nxv4i32_nxv4i32:415; CHECK:       # %bb.0: # %entry416; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma417; CHECK-NEXT:    vloxei32.v v8, (a0), v8418; CHECK-NEXT:    ret419entry:420  %a = call <vscale x 4 x i32> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv4i32_nxv4i32_nxv4i32:431; CHECK:       # %bb.0: # %entry432; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu433; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t434; CHECK-NEXT:    ret435entry:436  %a = call <vscale x 4 x i32> @llvm.riscv.vloxei.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_vloxei_v_nxv8i32_nxv8i32_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {447; CHECK-LABEL: intrinsic_vloxei_v_nxv8i32_nxv8i32_nxv8i32:448; CHECK:       # %bb.0: # %entry449; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma450; CHECK-NEXT:    vloxei32.v v8, (a0), v8451; CHECK-NEXT:    ret452entry:453  %a = call <vscale x 8 x i32> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv8i32_nxv8i32_nxv8i32:464; CHECK:       # %bb.0: # %entry465; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu466; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t467; CHECK-NEXT:    ret468entry:469  %a = call <vscale x 8 x i32> @llvm.riscv.vloxei.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_vloxei_v_nxv16i32_nxv16i32_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {480; CHECK-LABEL: intrinsic_vloxei_v_nxv16i32_nxv16i32_nxv16i32:481; CHECK:       # %bb.0: # %entry482; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma483; CHECK-NEXT:    vloxei32.v v8, (a0), v8484; CHECK-NEXT:    ret485entry:486  %a = call <vscale x 16 x i32> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv16i32_nxv16i32_nxv16i32:497; CHECK:       # %bb.0: # %entry498; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu499; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t500; CHECK-NEXT:    ret501entry:502  %a = call <vscale x 16 x i32> @llvm.riscv.vloxei.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_vloxei_v_nxv1i64_nxv1i64_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {513; CHECK-LABEL: intrinsic_vloxei_v_nxv1i64_nxv1i64_nxv1i32:514; CHECK:       # %bb.0: # %entry515; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma516; CHECK-NEXT:    vloxei32.v v9, (a0), v8517; CHECK-NEXT:    vmv.v.v v8, v9518; CHECK-NEXT:    ret519entry:520  %a = call <vscale x 1 x i64> @llvm.riscv.vloxei.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_vloxei_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_vloxei_mask_v_nxv1i64_nxv1i64_nxv1i32:531; CHECK:       # %bb.0: # %entry532; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu533; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t534; CHECK-NEXT:    ret535entry:536  %a = call <vscale x 1 x i64> @llvm.riscv.vloxei.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_vloxei_v_nxv2i64_nxv2i64_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {547; CHECK-LABEL: intrinsic_vloxei_v_nxv2i64_nxv2i64_nxv2i32:548; CHECK:       # %bb.0: # %entry549; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma550; CHECK-NEXT:    vmv1r.v v10, v8551; CHECK-NEXT:    vloxei32.v v8, (a0), v10552; CHECK-NEXT:    ret553entry:554  %a = call <vscale x 2 x i64> @llvm.riscv.vloxei.nxv2i64.nxv2i32(555    <vscale x 2 x i64> poison,556    ptr %0,557    <vscale x 2 x i32> %1,558    iXLen %2)559 560  ret <vscale x 2 x i64> %a561}562 563define <vscale x 2 x i64> @intrinsic_vloxei_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 {564; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i64_nxv2i64_nxv2i32:565; CHECK:       # %bb.0: # %entry566; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu567; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t568; CHECK-NEXT:    ret569entry:570  %a = call <vscale x 2 x i64> @llvm.riscv.vloxei.mask.nxv2i64.nxv2i32(571    <vscale x 2 x i64> %0,572    ptr %1,573    <vscale x 2 x i32> %2,574    <vscale x 2 x i1> %3,575    iXLen %4, iXLen 1)576 577  ret <vscale x 2 x i64> %a578}579 580define <vscale x 4 x i64> @intrinsic_vloxei_v_nxv4i64_nxv4i64_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {581; CHECK-LABEL: intrinsic_vloxei_v_nxv4i64_nxv4i64_nxv4i32:582; CHECK:       # %bb.0: # %entry583; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma584; CHECK-NEXT:    vmv2r.v v12, v8585; CHECK-NEXT:    vloxei32.v v8, (a0), v12586; CHECK-NEXT:    ret587entry:588  %a = call <vscale x 4 x i64> @llvm.riscv.vloxei.nxv4i64.nxv4i32(589    <vscale x 4 x i64> poison,590    ptr %0,591    <vscale x 4 x i32> %1,592    iXLen %2)593 594  ret <vscale x 4 x i64> %a595}596 597define <vscale x 4 x i64> @intrinsic_vloxei_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 {598; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i64_nxv4i64_nxv4i32:599; CHECK:       # %bb.0: # %entry600; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu601; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t602; CHECK-NEXT:    ret603entry:604  %a = call <vscale x 4 x i64> @llvm.riscv.vloxei.mask.nxv4i64.nxv4i32(605    <vscale x 4 x i64> %0,606    ptr %1,607    <vscale x 4 x i32> %2,608    <vscale x 4 x i1> %3,609    iXLen %4, iXLen 1)610 611  ret <vscale x 4 x i64> %a612}613 614define <vscale x 8 x i64> @intrinsic_vloxei_v_nxv8i64_nxv8i64_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {615; CHECK-LABEL: intrinsic_vloxei_v_nxv8i64_nxv8i64_nxv8i32:616; CHECK:       # %bb.0: # %entry617; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma618; CHECK-NEXT:    vmv4r.v v16, v8619; CHECK-NEXT:    vloxei32.v v8, (a0), v16620; CHECK-NEXT:    ret621entry:622  %a = call <vscale x 8 x i64> @llvm.riscv.vloxei.nxv8i64.nxv8i32(623    <vscale x 8 x i64> poison,624    ptr %0,625    <vscale x 8 x i32> %1,626    iXLen %2)627 628  ret <vscale x 8 x i64> %a629}630 631define <vscale x 8 x i64> @intrinsic_vloxei_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 {632; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i64_nxv8i64_nxv8i32:633; CHECK:       # %bb.0: # %entry634; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu635; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t636; CHECK-NEXT:    ret637entry:638  %a = call <vscale x 8 x i64> @llvm.riscv.vloxei.mask.nxv8i64.nxv8i32(639    <vscale x 8 x i64> %0,640    ptr %1,641    <vscale x 8 x i32> %2,642    <vscale x 8 x i1> %3,643    iXLen %4, iXLen 1)644 645  ret <vscale x 8 x i64> %a646}647 648define <vscale x 1 x half> @intrinsic_vloxei_v_nxv1f16_nxv1f16_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {649; CHECK-LABEL: intrinsic_vloxei_v_nxv1f16_nxv1f16_nxv1i32:650; CHECK:       # %bb.0: # %entry651; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma652; CHECK-NEXT:    vloxei32.v v9, (a0), v8653; CHECK-NEXT:    vmv1r.v v8, v9654; CHECK-NEXT:    ret655entry:656  %a = call <vscale x 1 x half> @llvm.riscv.vloxei.nxv1f16.nxv1i32(657    <vscale x 1 x half> poison,658    ptr %0,659    <vscale x 1 x i32> %1,660    iXLen %2)661 662  ret <vscale x 1 x half> %a663}664 665define <vscale x 1 x half> @intrinsic_vloxei_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 {666; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f16_nxv1f16_nxv1i32:667; CHECK:       # %bb.0: # %entry668; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu669; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t670; CHECK-NEXT:    ret671entry:672  %a = call <vscale x 1 x half> @llvm.riscv.vloxei.mask.nxv1f16.nxv1i32(673    <vscale x 1 x half> %0,674    ptr %1,675    <vscale x 1 x i32> %2,676    <vscale x 1 x i1> %3,677    iXLen %4, iXLen 1)678 679  ret <vscale x 1 x half> %a680}681 682define <vscale x 2 x half> @intrinsic_vloxei_v_nxv2f16_nxv2f16_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {683; CHECK-LABEL: intrinsic_vloxei_v_nxv2f16_nxv2f16_nxv2i32:684; CHECK:       # %bb.0: # %entry685; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma686; CHECK-NEXT:    vloxei32.v v9, (a0), v8687; CHECK-NEXT:    vmv1r.v v8, v9688; CHECK-NEXT:    ret689entry:690  %a = call <vscale x 2 x half> @llvm.riscv.vloxei.nxv2f16.nxv2i32(691    <vscale x 2 x half> poison,692    ptr %0,693    <vscale x 2 x i32> %1,694    iXLen %2)695 696  ret <vscale x 2 x half> %a697}698 699define <vscale x 2 x half> @intrinsic_vloxei_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 {700; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f16_nxv2f16_nxv2i32:701; CHECK:       # %bb.0: # %entry702; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu703; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t704; CHECK-NEXT:    ret705entry:706  %a = call <vscale x 2 x half> @llvm.riscv.vloxei.mask.nxv2f16.nxv2i32(707    <vscale x 2 x half> %0,708    ptr %1,709    <vscale x 2 x i32> %2,710    <vscale x 2 x i1> %3,711    iXLen %4, iXLen 1)712 713  ret <vscale x 2 x half> %a714}715 716define <vscale x 4 x half> @intrinsic_vloxei_v_nxv4f16_nxv4f16_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {717; CHECK-LABEL: intrinsic_vloxei_v_nxv4f16_nxv4f16_nxv4i32:718; CHECK:       # %bb.0: # %entry719; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma720; CHECK-NEXT:    vloxei32.v v10, (a0), v8721; CHECK-NEXT:    vmv.v.v v8, v10722; CHECK-NEXT:    ret723entry:724  %a = call <vscale x 4 x half> @llvm.riscv.vloxei.nxv4f16.nxv4i32(725    <vscale x 4 x half> poison,726    ptr %0,727    <vscale x 4 x i32> %1,728    iXLen %2)729 730  ret <vscale x 4 x half> %a731}732 733define <vscale x 4 x half> @intrinsic_vloxei_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 {734; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f16_nxv4f16_nxv4i32:735; CHECK:       # %bb.0: # %entry736; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu737; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t738; CHECK-NEXT:    ret739entry:740  %a = call <vscale x 4 x half> @llvm.riscv.vloxei.mask.nxv4f16.nxv4i32(741    <vscale x 4 x half> %0,742    ptr %1,743    <vscale x 4 x i32> %2,744    <vscale x 4 x i1> %3,745    iXLen %4, iXLen 1)746 747  ret <vscale x 4 x half> %a748}749 750define <vscale x 8 x half> @intrinsic_vloxei_v_nxv8f16_nxv8f16_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {751; CHECK-LABEL: intrinsic_vloxei_v_nxv8f16_nxv8f16_nxv8i32:752; CHECK:       # %bb.0: # %entry753; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma754; CHECK-NEXT:    vloxei32.v v12, (a0), v8755; CHECK-NEXT:    vmv.v.v v8, v12756; CHECK-NEXT:    ret757entry:758  %a = call <vscale x 8 x half> @llvm.riscv.vloxei.nxv8f16.nxv8i32(759    <vscale x 8 x half> poison,760    ptr %0,761    <vscale x 8 x i32> %1,762    iXLen %2)763 764  ret <vscale x 8 x half> %a765}766 767define <vscale x 8 x half> @intrinsic_vloxei_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 {768; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f16_nxv8f16_nxv8i32:769; CHECK:       # %bb.0: # %entry770; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu771; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t772; CHECK-NEXT:    ret773entry:774  %a = call <vscale x 8 x half> @llvm.riscv.vloxei.mask.nxv8f16.nxv8i32(775    <vscale x 8 x half> %0,776    ptr %1,777    <vscale x 8 x i32> %2,778    <vscale x 8 x i1> %3,779    iXLen %4, iXLen 1)780 781  ret <vscale x 8 x half> %a782}783 784define <vscale x 16 x half> @intrinsic_vloxei_v_nxv16f16_nxv16f16_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {785; CHECK-LABEL: intrinsic_vloxei_v_nxv16f16_nxv16f16_nxv16i32:786; CHECK:       # %bb.0: # %entry787; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma788; CHECK-NEXT:    vloxei32.v v16, (a0), v8789; CHECK-NEXT:    vmv.v.v v8, v16790; CHECK-NEXT:    ret791entry:792  %a = call <vscale x 16 x half> @llvm.riscv.vloxei.nxv16f16.nxv16i32(793    <vscale x 16 x half> poison,794    ptr %0,795    <vscale x 16 x i32> %1,796    iXLen %2)797 798  ret <vscale x 16 x half> %a799}800 801define <vscale x 16 x half> @intrinsic_vloxei_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 {802; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16f16_nxv16f16_nxv16i32:803; CHECK:       # %bb.0: # %entry804; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu805; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t806; CHECK-NEXT:    ret807entry:808  %a = call <vscale x 16 x half> @llvm.riscv.vloxei.mask.nxv16f16.nxv16i32(809    <vscale x 16 x half> %0,810    ptr %1,811    <vscale x 16 x i32> %2,812    <vscale x 16 x i1> %3,813    iXLen %4, iXLen 1)814 815  ret <vscale x 16 x half> %a816}817 818define <vscale x 1 x float> @intrinsic_vloxei_v_nxv1f32_nxv1f32_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {819; CHECK-LABEL: intrinsic_vloxei_v_nxv1f32_nxv1f32_nxv1i32:820; CHECK:       # %bb.0: # %entry821; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma822; CHECK-NEXT:    vloxei32.v v8, (a0), v8823; CHECK-NEXT:    ret824entry:825  %a = call <vscale x 1 x float> @llvm.riscv.vloxei.nxv1f32.nxv1i32(826    <vscale x 1 x float> poison,827    ptr %0,828    <vscale x 1 x i32> %1,829    iXLen %2)830 831  ret <vscale x 1 x float> %a832}833 834define <vscale x 1 x float> @intrinsic_vloxei_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 {835; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f32_nxv1f32_nxv1i32:836; CHECK:       # %bb.0: # %entry837; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu838; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t839; CHECK-NEXT:    ret840entry:841  %a = call <vscale x 1 x float> @llvm.riscv.vloxei.mask.nxv1f32.nxv1i32(842    <vscale x 1 x float> %0,843    ptr %1,844    <vscale x 1 x i32> %2,845    <vscale x 1 x i1> %3,846    iXLen %4, iXLen 1)847 848  ret <vscale x 1 x float> %a849}850 851define <vscale x 2 x float> @intrinsic_vloxei_v_nxv2f32_nxv2f32_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {852; CHECK-LABEL: intrinsic_vloxei_v_nxv2f32_nxv2f32_nxv2i32:853; CHECK:       # %bb.0: # %entry854; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma855; CHECK-NEXT:    vloxei32.v v8, (a0), v8856; CHECK-NEXT:    ret857entry:858  %a = call <vscale x 2 x float> @llvm.riscv.vloxei.nxv2f32.nxv2i32(859    <vscale x 2 x float> poison,860    ptr %0,861    <vscale x 2 x i32> %1,862    iXLen %2)863 864  ret <vscale x 2 x float> %a865}866 867define <vscale x 2 x float> @intrinsic_vloxei_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 {868; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f32_nxv2f32_nxv2i32:869; CHECK:       # %bb.0: # %entry870; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu871; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t872; CHECK-NEXT:    ret873entry:874  %a = call <vscale x 2 x float> @llvm.riscv.vloxei.mask.nxv2f32.nxv2i32(875    <vscale x 2 x float> %0,876    ptr %1,877    <vscale x 2 x i32> %2,878    <vscale x 2 x i1> %3,879    iXLen %4, iXLen 1)880 881  ret <vscale x 2 x float> %a882}883 884define <vscale x 4 x float> @intrinsic_vloxei_v_nxv4f32_nxv4f32_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {885; CHECK-LABEL: intrinsic_vloxei_v_nxv4f32_nxv4f32_nxv4i32:886; CHECK:       # %bb.0: # %entry887; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma888; CHECK-NEXT:    vloxei32.v v8, (a0), v8889; CHECK-NEXT:    ret890entry:891  %a = call <vscale x 4 x float> @llvm.riscv.vloxei.nxv4f32.nxv4i32(892    <vscale x 4 x float> poison,893    ptr %0,894    <vscale x 4 x i32> %1,895    iXLen %2)896 897  ret <vscale x 4 x float> %a898}899 900define <vscale x 4 x float> @intrinsic_vloxei_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 {901; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f32_nxv4f32_nxv4i32:902; CHECK:       # %bb.0: # %entry903; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu904; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t905; CHECK-NEXT:    ret906entry:907  %a = call <vscale x 4 x float> @llvm.riscv.vloxei.mask.nxv4f32.nxv4i32(908    <vscale x 4 x float> %0,909    ptr %1,910    <vscale x 4 x i32> %2,911    <vscale x 4 x i1> %3,912    iXLen %4, iXLen 1)913 914  ret <vscale x 4 x float> %a915}916 917define <vscale x 8 x float> @intrinsic_vloxei_v_nxv8f32_nxv8f32_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {918; CHECK-LABEL: intrinsic_vloxei_v_nxv8f32_nxv8f32_nxv8i32:919; CHECK:       # %bb.0: # %entry920; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma921; CHECK-NEXT:    vloxei32.v v8, (a0), v8922; CHECK-NEXT:    ret923entry:924  %a = call <vscale x 8 x float> @llvm.riscv.vloxei.nxv8f32.nxv8i32(925    <vscale x 8 x float> poison,926    ptr %0,927    <vscale x 8 x i32> %1,928    iXLen %2)929 930  ret <vscale x 8 x float> %a931}932 933define <vscale x 8 x float> @intrinsic_vloxei_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 {934; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f32_nxv8f32_nxv8i32:935; CHECK:       # %bb.0: # %entry936; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu937; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t938; CHECK-NEXT:    ret939entry:940  %a = call <vscale x 8 x float> @llvm.riscv.vloxei.mask.nxv8f32.nxv8i32(941    <vscale x 8 x float> %0,942    ptr %1,943    <vscale x 8 x i32> %2,944    <vscale x 8 x i1> %3,945    iXLen %4, iXLen 1)946 947  ret <vscale x 8 x float> %a948}949 950define <vscale x 16 x float> @intrinsic_vloxei_v_nxv16f32_nxv16f32_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {951; CHECK-LABEL: intrinsic_vloxei_v_nxv16f32_nxv16f32_nxv16i32:952; CHECK:       # %bb.0: # %entry953; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma954; CHECK-NEXT:    vloxei32.v v8, (a0), v8955; CHECK-NEXT:    ret956entry:957  %a = call <vscale x 16 x float> @llvm.riscv.vloxei.nxv16f32.nxv16i32(958    <vscale x 16 x float> poison,959    ptr %0,960    <vscale x 16 x i32> %1,961    iXLen %2)962 963  ret <vscale x 16 x float> %a964}965 966define <vscale x 16 x float> @intrinsic_vloxei_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 {967; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16f32_nxv16f32_nxv16i32:968; CHECK:       # %bb.0: # %entry969; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu970; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t971; CHECK-NEXT:    ret972entry:973  %a = call <vscale x 16 x float> @llvm.riscv.vloxei.mask.nxv16f32.nxv16i32(974    <vscale x 16 x float> %0,975    ptr %1,976    <vscale x 16 x i32> %2,977    <vscale x 16 x i1> %3,978    iXLen %4, iXLen 1)979 980  ret <vscale x 16 x float> %a981}982 983define <vscale x 1 x double> @intrinsic_vloxei_v_nxv1f64_nxv1f64_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {984; CHECK-LABEL: intrinsic_vloxei_v_nxv1f64_nxv1f64_nxv1i32:985; CHECK:       # %bb.0: # %entry986; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma987; CHECK-NEXT:    vloxei32.v v9, (a0), v8988; CHECK-NEXT:    vmv.v.v v8, v9989; CHECK-NEXT:    ret990entry:991  %a = call <vscale x 1 x double> @llvm.riscv.vloxei.nxv1f64.nxv1i32(992    <vscale x 1 x double> poison,993    ptr %0,994    <vscale x 1 x i32> %1,995    iXLen %2)996 997  ret <vscale x 1 x double> %a998}999 1000define <vscale x 1 x double> @intrinsic_vloxei_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 {1001; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f64_nxv1f64_nxv1i32:1002; CHECK:       # %bb.0: # %entry1003; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu1004; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t1005; CHECK-NEXT:    ret1006entry:1007  %a = call <vscale x 1 x double> @llvm.riscv.vloxei.mask.nxv1f64.nxv1i32(1008    <vscale x 1 x double> %0,1009    ptr %1,1010    <vscale x 1 x i32> %2,1011    <vscale x 1 x i1> %3,1012    iXLen %4, iXLen 1)1013 1014  ret <vscale x 1 x double> %a1015}1016 1017define <vscale x 2 x double> @intrinsic_vloxei_v_nxv2f64_nxv2f64_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {1018; CHECK-LABEL: intrinsic_vloxei_v_nxv2f64_nxv2f64_nxv2i32:1019; CHECK:       # %bb.0: # %entry1020; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1021; CHECK-NEXT:    vmv1r.v v10, v81022; CHECK-NEXT:    vloxei32.v v8, (a0), v101023; CHECK-NEXT:    ret1024entry:1025  %a = call <vscale x 2 x double> @llvm.riscv.vloxei.nxv2f64.nxv2i32(1026    <vscale x 2 x double> poison,1027    ptr %0,1028    <vscale x 2 x i32> %1,1029    iXLen %2)1030 1031  ret <vscale x 2 x double> %a1032}1033 1034define <vscale x 2 x double> @intrinsic_vloxei_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 {1035; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f64_nxv2f64_nxv2i32:1036; CHECK:       # %bb.0: # %entry1037; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu1038; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t1039; CHECK-NEXT:    ret1040entry:1041  %a = call <vscale x 2 x double> @llvm.riscv.vloxei.mask.nxv2f64.nxv2i32(1042    <vscale x 2 x double> %0,1043    ptr %1,1044    <vscale x 2 x i32> %2,1045    <vscale x 2 x i1> %3,1046    iXLen %4, iXLen 1)1047 1048  ret <vscale x 2 x double> %a1049}1050 1051define <vscale x 4 x double> @intrinsic_vloxei_v_nxv4f64_nxv4f64_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {1052; CHECK-LABEL: intrinsic_vloxei_v_nxv4f64_nxv4f64_nxv4i32:1053; CHECK:       # %bb.0: # %entry1054; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1055; CHECK-NEXT:    vmv2r.v v12, v81056; CHECK-NEXT:    vloxei32.v v8, (a0), v121057; CHECK-NEXT:    ret1058entry:1059  %a = call <vscale x 4 x double> @llvm.riscv.vloxei.nxv4f64.nxv4i32(1060    <vscale x 4 x double> poison,1061    ptr %0,1062    <vscale x 4 x i32> %1,1063    iXLen %2)1064 1065  ret <vscale x 4 x double> %a1066}1067 1068define <vscale x 4 x double> @intrinsic_vloxei_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 {1069; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f64_nxv4f64_nxv4i32:1070; CHECK:       # %bb.0: # %entry1071; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu1072; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t1073; CHECK-NEXT:    ret1074entry:1075  %a = call <vscale x 4 x double> @llvm.riscv.vloxei.mask.nxv4f64.nxv4i32(1076    <vscale x 4 x double> %0,1077    ptr %1,1078    <vscale x 4 x i32> %2,1079    <vscale x 4 x i1> %3,1080    iXLen %4, iXLen 1)1081 1082  ret <vscale x 4 x double> %a1083}1084 1085define <vscale x 8 x double> @intrinsic_vloxei_v_nxv8f64_nxv8f64_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {1086; CHECK-LABEL: intrinsic_vloxei_v_nxv8f64_nxv8f64_nxv8i32:1087; CHECK:       # %bb.0: # %entry1088; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma1089; CHECK-NEXT:    vmv4r.v v16, v81090; CHECK-NEXT:    vloxei32.v v8, (a0), v161091; CHECK-NEXT:    ret1092entry:1093  %a = call <vscale x 8 x double> @llvm.riscv.vloxei.nxv8f64.nxv8i32(1094    <vscale x 8 x double> poison,1095    ptr %0,1096    <vscale x 8 x i32> %1,1097    iXLen %2)1098 1099  ret <vscale x 8 x double> %a1100}1101 1102define <vscale x 8 x double> @intrinsic_vloxei_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 {1103; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f64_nxv8f64_nxv8i32:1104; CHECK:       # %bb.0: # %entry1105; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu1106; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t1107; CHECK-NEXT:    ret1108entry:1109  %a = call <vscale x 8 x double> @llvm.riscv.vloxei.mask.nxv8f64.nxv8i32(1110    <vscale x 8 x double> %0,1111    ptr %1,1112    <vscale x 8 x i32> %2,1113    <vscale x 8 x i1> %3,1114    iXLen %4, iXLen 1)1115 1116  ret <vscale x 8 x double> %a1117}1118 1119define <vscale x 1 x i8> @intrinsic_vloxei_v_nxv1i8_nxv1i8_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1120; CHECK-LABEL: intrinsic_vloxei_v_nxv1i8_nxv1i8_nxv1i16:1121; CHECK:       # %bb.0: # %entry1122; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma1123; CHECK-NEXT:    vloxei16.v v9, (a0), v81124; CHECK-NEXT:    vmv1r.v v8, v91125; CHECK-NEXT:    ret1126entry:1127  %a = call <vscale x 1 x i8> @llvm.riscv.vloxei.nxv1i8.nxv1i16(1128    <vscale x 1 x i8> poison,1129    ptr %0,1130    <vscale x 1 x i16> %1,1131    iXLen %2)1132 1133  ret <vscale x 1 x i8> %a1134}1135 1136define <vscale x 1 x i8> @intrinsic_vloxei_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 {1137; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i8_nxv1i8_nxv1i16:1138; CHECK:       # %bb.0: # %entry1139; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu1140; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1141; CHECK-NEXT:    ret1142entry:1143  %a = call <vscale x 1 x i8> @llvm.riscv.vloxei.mask.nxv1i8.nxv1i16(1144    <vscale x 1 x i8> %0,1145    ptr %1,1146    <vscale x 1 x i16> %2,1147    <vscale x 1 x i1> %3,1148    iXLen %4, iXLen 1)1149 1150  ret <vscale x 1 x i8> %a1151}1152 1153define <vscale x 2 x i8> @intrinsic_vloxei_v_nxv2i8_nxv2i8_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1154; CHECK-LABEL: intrinsic_vloxei_v_nxv2i8_nxv2i8_nxv2i16:1155; CHECK:       # %bb.0: # %entry1156; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma1157; CHECK-NEXT:    vloxei16.v v9, (a0), v81158; CHECK-NEXT:    vmv1r.v v8, v91159; CHECK-NEXT:    ret1160entry:1161  %a = call <vscale x 2 x i8> @llvm.riscv.vloxei.nxv2i8.nxv2i16(1162    <vscale x 2 x i8> poison,1163    ptr %0,1164    <vscale x 2 x i16> %1,1165    iXLen %2)1166 1167  ret <vscale x 2 x i8> %a1168}1169 1170define <vscale x 2 x i8> @intrinsic_vloxei_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 {1171; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i8_nxv2i8_nxv2i16:1172; CHECK:       # %bb.0: # %entry1173; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu1174; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1175; CHECK-NEXT:    ret1176entry:1177  %a = call <vscale x 2 x i8> @llvm.riscv.vloxei.mask.nxv2i8.nxv2i16(1178    <vscale x 2 x i8> %0,1179    ptr %1,1180    <vscale x 2 x i16> %2,1181    <vscale x 2 x i1> %3,1182    iXLen %4, iXLen 1)1183 1184  ret <vscale x 2 x i8> %a1185}1186 1187define <vscale x 4 x i8> @intrinsic_vloxei_v_nxv4i8_nxv4i8_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1188; CHECK-LABEL: intrinsic_vloxei_v_nxv4i8_nxv4i8_nxv4i16:1189; CHECK:       # %bb.0: # %entry1190; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma1191; CHECK-NEXT:    vloxei16.v v9, (a0), v81192; CHECK-NEXT:    vmv1r.v v8, v91193; CHECK-NEXT:    ret1194entry:1195  %a = call <vscale x 4 x i8> @llvm.riscv.vloxei.nxv4i8.nxv4i16(1196    <vscale x 4 x i8> poison,1197    ptr %0,1198    <vscale x 4 x i16> %1,1199    iXLen %2)1200 1201  ret <vscale x 4 x i8> %a1202}1203 1204define <vscale x 4 x i8> @intrinsic_vloxei_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 {1205; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i8_nxv4i8_nxv4i16:1206; CHECK:       # %bb.0: # %entry1207; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu1208; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1209; CHECK-NEXT:    ret1210entry:1211  %a = call <vscale x 4 x i8> @llvm.riscv.vloxei.mask.nxv4i8.nxv4i16(1212    <vscale x 4 x i8> %0,1213    ptr %1,1214    <vscale x 4 x i16> %2,1215    <vscale x 4 x i1> %3,1216    iXLen %4, iXLen 1)1217 1218  ret <vscale x 4 x i8> %a1219}1220 1221define <vscale x 8 x i8> @intrinsic_vloxei_v_nxv8i8_nxv8i8_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1222; CHECK-LABEL: intrinsic_vloxei_v_nxv8i8_nxv8i8_nxv8i16:1223; CHECK:       # %bb.0: # %entry1224; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma1225; CHECK-NEXT:    vloxei16.v v10, (a0), v81226; CHECK-NEXT:    vmv.v.v v8, v101227; CHECK-NEXT:    ret1228entry:1229  %a = call <vscale x 8 x i8> @llvm.riscv.vloxei.nxv8i8.nxv8i16(1230    <vscale x 8 x i8> poison,1231    ptr %0,1232    <vscale x 8 x i16> %1,1233    iXLen %2)1234 1235  ret <vscale x 8 x i8> %a1236}1237 1238define <vscale x 8 x i8> @intrinsic_vloxei_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 {1239; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i8_nxv8i8_nxv8i16:1240; CHECK:       # %bb.0: # %entry1241; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu1242; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t1243; CHECK-NEXT:    ret1244entry:1245  %a = call <vscale x 8 x i8> @llvm.riscv.vloxei.mask.nxv8i8.nxv8i16(1246    <vscale x 8 x i8> %0,1247    ptr %1,1248    <vscale x 8 x i16> %2,1249    <vscale x 8 x i1> %3,1250    iXLen %4, iXLen 1)1251 1252  ret <vscale x 8 x i8> %a1253}1254 1255define <vscale x 16 x i8> @intrinsic_vloxei_v_nxv16i8_nxv16i8_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1256; CHECK-LABEL: intrinsic_vloxei_v_nxv16i8_nxv16i8_nxv16i16:1257; CHECK:       # %bb.0: # %entry1258; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma1259; CHECK-NEXT:    vloxei16.v v12, (a0), v81260; CHECK-NEXT:    vmv.v.v v8, v121261; CHECK-NEXT:    ret1262entry:1263  %a = call <vscale x 16 x i8> @llvm.riscv.vloxei.nxv16i8.nxv16i16(1264    <vscale x 16 x i8> poison,1265    ptr %0,1266    <vscale x 16 x i16> %1,1267    iXLen %2)1268 1269  ret <vscale x 16 x i8> %a1270}1271 1272define <vscale x 16 x i8> @intrinsic_vloxei_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 {1273; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16i8_nxv16i8_nxv16i16:1274; CHECK:       # %bb.0: # %entry1275; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu1276; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t1277; CHECK-NEXT:    ret1278entry:1279  %a = call <vscale x 16 x i8> @llvm.riscv.vloxei.mask.nxv16i8.nxv16i16(1280    <vscale x 16 x i8> %0,1281    ptr %1,1282    <vscale x 16 x i16> %2,1283    <vscale x 16 x i1> %3,1284    iXLen %4, iXLen 1)1285 1286  ret <vscale x 16 x i8> %a1287}1288 1289define <vscale x 32 x i8> @intrinsic_vloxei_v_nxv32i8_nxv32i8_nxv32i16(ptr %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {1290; CHECK-LABEL: intrinsic_vloxei_v_nxv32i8_nxv32i8_nxv32i16:1291; CHECK:       # %bb.0: # %entry1292; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma1293; CHECK-NEXT:    vloxei16.v v16, (a0), v81294; CHECK-NEXT:    vmv.v.v v8, v161295; CHECK-NEXT:    ret1296entry:1297  %a = call <vscale x 32 x i8> @llvm.riscv.vloxei.nxv32i8.nxv32i16(1298    <vscale x 32 x i8> poison,1299    ptr %0,1300    <vscale x 32 x i16> %1,1301    iXLen %2)1302 1303  ret <vscale x 32 x i8> %a1304}1305 1306define <vscale x 32 x i8> @intrinsic_vloxei_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 {1307; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv32i8_nxv32i8_nxv32i16:1308; CHECK:       # %bb.0: # %entry1309; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, mu1310; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t1311; CHECK-NEXT:    ret1312entry:1313  %a = call <vscale x 32 x i8> @llvm.riscv.vloxei.mask.nxv32i8.nxv32i16(1314    <vscale x 32 x i8> %0,1315    ptr %1,1316    <vscale x 32 x i16> %2,1317    <vscale x 32 x i1> %3,1318    iXLen %4, iXLen 1)1319 1320  ret <vscale x 32 x i8> %a1321}1322 1323define <vscale x 1 x i16> @intrinsic_vloxei_v_nxv1i16_nxv1i16_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1324; CHECK-LABEL: intrinsic_vloxei_v_nxv1i16_nxv1i16_nxv1i16:1325; CHECK:       # %bb.0: # %entry1326; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1327; CHECK-NEXT:    vloxei16.v v8, (a0), v81328; CHECK-NEXT:    ret1329entry:1330  %a = call <vscale x 1 x i16> @llvm.riscv.vloxei.nxv1i16.nxv1i16(1331    <vscale x 1 x i16> poison,1332    ptr %0,1333    <vscale x 1 x i16> %1,1334    iXLen %2)1335 1336  ret <vscale x 1 x i16> %a1337}1338 1339define <vscale x 1 x i16> @intrinsic_vloxei_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 {1340; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i16_nxv1i16_nxv1i16:1341; CHECK:       # %bb.0: # %entry1342; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu1343; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1344; CHECK-NEXT:    ret1345entry:1346  %a = call <vscale x 1 x i16> @llvm.riscv.vloxei.mask.nxv1i16.nxv1i16(1347    <vscale x 1 x i16> %0,1348    ptr %1,1349    <vscale x 1 x i16> %2,1350    <vscale x 1 x i1> %3,1351    iXLen %4, iXLen 1)1352 1353  ret <vscale x 1 x i16> %a1354}1355 1356define <vscale x 2 x i16> @intrinsic_vloxei_v_nxv2i16_nxv2i16_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1357; CHECK-LABEL: intrinsic_vloxei_v_nxv2i16_nxv2i16_nxv2i16:1358; CHECK:       # %bb.0: # %entry1359; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1360; CHECK-NEXT:    vloxei16.v v8, (a0), v81361; CHECK-NEXT:    ret1362entry:1363  %a = call <vscale x 2 x i16> @llvm.riscv.vloxei.nxv2i16.nxv2i16(1364    <vscale x 2 x i16> poison,1365    ptr %0,1366    <vscale x 2 x i16> %1,1367    iXLen %2)1368 1369  ret <vscale x 2 x i16> %a1370}1371 1372define <vscale x 2 x i16> @intrinsic_vloxei_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 {1373; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i16_nxv2i16_nxv2i16:1374; CHECK:       # %bb.0: # %entry1375; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu1376; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1377; CHECK-NEXT:    ret1378entry:1379  %a = call <vscale x 2 x i16> @llvm.riscv.vloxei.mask.nxv2i16.nxv2i16(1380    <vscale x 2 x i16> %0,1381    ptr %1,1382    <vscale x 2 x i16> %2,1383    <vscale x 2 x i1> %3,1384    iXLen %4, iXLen 1)1385 1386  ret <vscale x 2 x i16> %a1387}1388 1389define <vscale x 4 x i16> @intrinsic_vloxei_v_nxv4i16_nxv4i16_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1390; CHECK-LABEL: intrinsic_vloxei_v_nxv4i16_nxv4i16_nxv4i16:1391; CHECK:       # %bb.0: # %entry1392; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1393; CHECK-NEXT:    vloxei16.v v8, (a0), v81394; CHECK-NEXT:    ret1395entry:1396  %a = call <vscale x 4 x i16> @llvm.riscv.vloxei.nxv4i16.nxv4i16(1397    <vscale x 4 x i16> poison,1398    ptr %0,1399    <vscale x 4 x i16> %1,1400    iXLen %2)1401 1402  ret <vscale x 4 x i16> %a1403}1404 1405define <vscale x 4 x i16> @intrinsic_vloxei_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 {1406; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i16_nxv4i16_nxv4i16:1407; CHECK:       # %bb.0: # %entry1408; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu1409; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1410; CHECK-NEXT:    ret1411entry:1412  %a = call <vscale x 4 x i16> @llvm.riscv.vloxei.mask.nxv4i16.nxv4i16(1413    <vscale x 4 x i16> %0,1414    ptr %1,1415    <vscale x 4 x i16> %2,1416    <vscale x 4 x i1> %3,1417    iXLen %4, iXLen 1)1418 1419  ret <vscale x 4 x i16> %a1420}1421 1422define <vscale x 8 x i16> @intrinsic_vloxei_v_nxv8i16_nxv8i16_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1423; CHECK-LABEL: intrinsic_vloxei_v_nxv8i16_nxv8i16_nxv8i16:1424; CHECK:       # %bb.0: # %entry1425; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma1426; CHECK-NEXT:    vloxei16.v v8, (a0), v81427; CHECK-NEXT:    ret1428entry:1429  %a = call <vscale x 8 x i16> @llvm.riscv.vloxei.nxv8i16.nxv8i16(1430    <vscale x 8 x i16> poison,1431    ptr %0,1432    <vscale x 8 x i16> %1,1433    iXLen %2)1434 1435  ret <vscale x 8 x i16> %a1436}1437 1438define <vscale x 8 x i16> @intrinsic_vloxei_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 {1439; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i16_nxv8i16_nxv8i16:1440; CHECK:       # %bb.0: # %entry1441; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu1442; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t1443; CHECK-NEXT:    ret1444entry:1445  %a = call <vscale x 8 x i16> @llvm.riscv.vloxei.mask.nxv8i16.nxv8i16(1446    <vscale x 8 x i16> %0,1447    ptr %1,1448    <vscale x 8 x i16> %2,1449    <vscale x 8 x i1> %3,1450    iXLen %4, iXLen 1)1451 1452  ret <vscale x 8 x i16> %a1453}1454 1455define <vscale x 16 x i16> @intrinsic_vloxei_v_nxv16i16_nxv16i16_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1456; CHECK-LABEL: intrinsic_vloxei_v_nxv16i16_nxv16i16_nxv16i16:1457; CHECK:       # %bb.0: # %entry1458; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma1459; CHECK-NEXT:    vloxei16.v v8, (a0), v81460; CHECK-NEXT:    ret1461entry:1462  %a = call <vscale x 16 x i16> @llvm.riscv.vloxei.nxv16i16.nxv16i16(1463    <vscale x 16 x i16> poison,1464    ptr %0,1465    <vscale x 16 x i16> %1,1466    iXLen %2)1467 1468  ret <vscale x 16 x i16> %a1469}1470 1471define <vscale x 16 x i16> @intrinsic_vloxei_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 {1472; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16i16_nxv16i16_nxv16i16:1473; CHECK:       # %bb.0: # %entry1474; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu1475; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t1476; CHECK-NEXT:    ret1477entry:1478  %a = call <vscale x 16 x i16> @llvm.riscv.vloxei.mask.nxv16i16.nxv16i16(1479    <vscale x 16 x i16> %0,1480    ptr %1,1481    <vscale x 16 x i16> %2,1482    <vscale x 16 x i1> %3,1483    iXLen %4, iXLen 1)1484 1485  ret <vscale x 16 x i16> %a1486}1487 1488define <vscale x 32 x i16> @intrinsic_vloxei_v_nxv32i16_nxv32i16_nxv32i16(ptr %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {1489; CHECK-LABEL: intrinsic_vloxei_v_nxv32i16_nxv32i16_nxv32i16:1490; CHECK:       # %bb.0: # %entry1491; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma1492; CHECK-NEXT:    vloxei16.v v8, (a0), v81493; CHECK-NEXT:    ret1494entry:1495  %a = call <vscale x 32 x i16> @llvm.riscv.vloxei.nxv32i16.nxv32i16(1496    <vscale x 32 x i16> poison,1497    ptr %0,1498    <vscale x 32 x i16> %1,1499    iXLen %2)1500 1501  ret <vscale x 32 x i16> %a1502}1503 1504define <vscale x 32 x i16> @intrinsic_vloxei_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 {1505; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv32i16_nxv32i16_nxv32i16:1506; CHECK:       # %bb.0: # %entry1507; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu1508; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t1509; CHECK-NEXT:    ret1510entry:1511  %a = call <vscale x 32 x i16> @llvm.riscv.vloxei.mask.nxv32i16.nxv32i16(1512    <vscale x 32 x i16> %0,1513    ptr %1,1514    <vscale x 32 x i16> %2,1515    <vscale x 32 x i1> %3,1516    iXLen %4, iXLen 1)1517 1518  ret <vscale x 32 x i16> %a1519}1520 1521define <vscale x 1 x i32> @intrinsic_vloxei_v_nxv1i32_nxv1i32_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1522; CHECK-LABEL: intrinsic_vloxei_v_nxv1i32_nxv1i32_nxv1i16:1523; CHECK:       # %bb.0: # %entry1524; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1525; CHECK-NEXT:    vloxei16.v v9, (a0), v81526; CHECK-NEXT:    vmv1r.v v8, v91527; CHECK-NEXT:    ret1528entry:1529  %a = call <vscale x 1 x i32> @llvm.riscv.vloxei.nxv1i32.nxv1i16(1530    <vscale x 1 x i32> poison,1531    ptr %0,1532    <vscale x 1 x i16> %1,1533    iXLen %2)1534 1535  ret <vscale x 1 x i32> %a1536}1537 1538define <vscale x 1 x i32> @intrinsic_vloxei_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 {1539; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i32_nxv1i32_nxv1i16:1540; CHECK:       # %bb.0: # %entry1541; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu1542; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1543; CHECK-NEXT:    ret1544entry:1545  %a = call <vscale x 1 x i32> @llvm.riscv.vloxei.mask.nxv1i32.nxv1i16(1546    <vscale x 1 x i32> %0,1547    ptr %1,1548    <vscale x 1 x i16> %2,1549    <vscale x 1 x i1> %3,1550    iXLen %4, iXLen 1)1551 1552  ret <vscale x 1 x i32> %a1553}1554 1555define <vscale x 2 x i32> @intrinsic_vloxei_v_nxv2i32_nxv2i32_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1556; CHECK-LABEL: intrinsic_vloxei_v_nxv2i32_nxv2i32_nxv2i16:1557; CHECK:       # %bb.0: # %entry1558; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1559; CHECK-NEXT:    vloxei16.v v9, (a0), v81560; CHECK-NEXT:    vmv.v.v v8, v91561; CHECK-NEXT:    ret1562entry:1563  %a = call <vscale x 2 x i32> @llvm.riscv.vloxei.nxv2i32.nxv2i16(1564    <vscale x 2 x i32> poison,1565    ptr %0,1566    <vscale x 2 x i16> %1,1567    iXLen %2)1568 1569  ret <vscale x 2 x i32> %a1570}1571 1572define <vscale x 2 x i32> @intrinsic_vloxei_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 {1573; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i32_nxv2i32_nxv2i16:1574; CHECK:       # %bb.0: # %entry1575; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu1576; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1577; CHECK-NEXT:    ret1578entry:1579  %a = call <vscale x 2 x i32> @llvm.riscv.vloxei.mask.nxv2i32.nxv2i16(1580    <vscale x 2 x i32> %0,1581    ptr %1,1582    <vscale x 2 x i16> %2,1583    <vscale x 2 x i1> %3,1584    iXLen %4, iXLen 1)1585 1586  ret <vscale x 2 x i32> %a1587}1588 1589define <vscale x 4 x i32> @intrinsic_vloxei_v_nxv4i32_nxv4i32_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1590; CHECK-LABEL: intrinsic_vloxei_v_nxv4i32_nxv4i32_nxv4i16:1591; CHECK:       # %bb.0: # %entry1592; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1593; CHECK-NEXT:    vmv1r.v v10, v81594; CHECK-NEXT:    vloxei16.v v8, (a0), v101595; CHECK-NEXT:    ret1596entry:1597  %a = call <vscale x 4 x i32> @llvm.riscv.vloxei.nxv4i32.nxv4i16(1598    <vscale x 4 x i32> poison,1599    ptr %0,1600    <vscale x 4 x i16> %1,1601    iXLen %2)1602 1603  ret <vscale x 4 x i32> %a1604}1605 1606define <vscale x 4 x i32> @intrinsic_vloxei_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 {1607; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i32_nxv4i32_nxv4i16:1608; CHECK:       # %bb.0: # %entry1609; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu1610; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t1611; CHECK-NEXT:    ret1612entry:1613  %a = call <vscale x 4 x i32> @llvm.riscv.vloxei.mask.nxv4i32.nxv4i16(1614    <vscale x 4 x i32> %0,1615    ptr %1,1616    <vscale x 4 x i16> %2,1617    <vscale x 4 x i1> %3,1618    iXLen %4, iXLen 1)1619 1620  ret <vscale x 4 x i32> %a1621}1622 1623define <vscale x 8 x i32> @intrinsic_vloxei_v_nxv8i32_nxv8i32_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1624; CHECK-LABEL: intrinsic_vloxei_v_nxv8i32_nxv8i32_nxv8i16:1625; CHECK:       # %bb.0: # %entry1626; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma1627; CHECK-NEXT:    vmv2r.v v12, v81628; CHECK-NEXT:    vloxei16.v v8, (a0), v121629; CHECK-NEXT:    ret1630entry:1631  %a = call <vscale x 8 x i32> @llvm.riscv.vloxei.nxv8i32.nxv8i16(1632    <vscale x 8 x i32> poison,1633    ptr %0,1634    <vscale x 8 x i16> %1,1635    iXLen %2)1636 1637  ret <vscale x 8 x i32> %a1638}1639 1640define <vscale x 8 x i32> @intrinsic_vloxei_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 {1641; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i32_nxv8i32_nxv8i16:1642; CHECK:       # %bb.0: # %entry1643; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu1644; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t1645; CHECK-NEXT:    ret1646entry:1647  %a = call <vscale x 8 x i32> @llvm.riscv.vloxei.mask.nxv8i32.nxv8i16(1648    <vscale x 8 x i32> %0,1649    ptr %1,1650    <vscale x 8 x i16> %2,1651    <vscale x 8 x i1> %3,1652    iXLen %4, iXLen 1)1653 1654  ret <vscale x 8 x i32> %a1655}1656 1657define <vscale x 16 x i32> @intrinsic_vloxei_v_nxv16i32_nxv16i32_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1658; CHECK-LABEL: intrinsic_vloxei_v_nxv16i32_nxv16i32_nxv16i16:1659; CHECK:       # %bb.0: # %entry1660; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma1661; CHECK-NEXT:    vmv4r.v v16, v81662; CHECK-NEXT:    vloxei16.v v8, (a0), v161663; CHECK-NEXT:    ret1664entry:1665  %a = call <vscale x 16 x i32> @llvm.riscv.vloxei.nxv16i32.nxv16i16(1666    <vscale x 16 x i32> poison,1667    ptr %0,1668    <vscale x 16 x i16> %1,1669    iXLen %2)1670 1671  ret <vscale x 16 x i32> %a1672}1673 1674define <vscale x 16 x i32> @intrinsic_vloxei_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 {1675; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16i32_nxv16i32_nxv16i16:1676; CHECK:       # %bb.0: # %entry1677; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu1678; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t1679; CHECK-NEXT:    ret1680entry:1681  %a = call <vscale x 16 x i32> @llvm.riscv.vloxei.mask.nxv16i32.nxv16i16(1682    <vscale x 16 x i32> %0,1683    ptr %1,1684    <vscale x 16 x i16> %2,1685    <vscale x 16 x i1> %3,1686    iXLen %4, iXLen 1)1687 1688  ret <vscale x 16 x i32> %a1689}1690 1691define <vscale x 1 x i64> @intrinsic_vloxei_v_nxv1i64_nxv1i64_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1692; CHECK-LABEL: intrinsic_vloxei_v_nxv1i64_nxv1i64_nxv1i16:1693; CHECK:       # %bb.0: # %entry1694; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1695; CHECK-NEXT:    vloxei16.v v9, (a0), v81696; CHECK-NEXT:    vmv.v.v v8, v91697; CHECK-NEXT:    ret1698entry:1699  %a = call <vscale x 1 x i64> @llvm.riscv.vloxei.nxv1i64.nxv1i16(1700    <vscale x 1 x i64> poison,1701    ptr %0,1702    <vscale x 1 x i16> %1,1703    iXLen %2)1704 1705  ret <vscale x 1 x i64> %a1706}1707 1708define <vscale x 1 x i64> @intrinsic_vloxei_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 {1709; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i64_nxv1i64_nxv1i16:1710; CHECK:       # %bb.0: # %entry1711; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu1712; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1713; CHECK-NEXT:    ret1714entry:1715  %a = call <vscale x 1 x i64> @llvm.riscv.vloxei.mask.nxv1i64.nxv1i16(1716    <vscale x 1 x i64> %0,1717    ptr %1,1718    <vscale x 1 x i16> %2,1719    <vscale x 1 x i1> %3,1720    iXLen %4, iXLen 1)1721 1722  ret <vscale x 1 x i64> %a1723}1724 1725define <vscale x 2 x i64> @intrinsic_vloxei_v_nxv2i64_nxv2i64_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1726; CHECK-LABEL: intrinsic_vloxei_v_nxv2i64_nxv2i64_nxv2i16:1727; CHECK:       # %bb.0: # %entry1728; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1729; CHECK-NEXT:    vmv1r.v v10, v81730; CHECK-NEXT:    vloxei16.v v8, (a0), v101731; CHECK-NEXT:    ret1732entry:1733  %a = call <vscale x 2 x i64> @llvm.riscv.vloxei.nxv2i64.nxv2i16(1734    <vscale x 2 x i64> poison,1735    ptr %0,1736    <vscale x 2 x i16> %1,1737    iXLen %2)1738 1739  ret <vscale x 2 x i64> %a1740}1741 1742define <vscale x 2 x i64> @intrinsic_vloxei_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 {1743; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i64_nxv2i64_nxv2i16:1744; CHECK:       # %bb.0: # %entry1745; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu1746; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t1747; CHECK-NEXT:    ret1748entry:1749  %a = call <vscale x 2 x i64> @llvm.riscv.vloxei.mask.nxv2i64.nxv2i16(1750    <vscale x 2 x i64> %0,1751    ptr %1,1752    <vscale x 2 x i16> %2,1753    <vscale x 2 x i1> %3,1754    iXLen %4, iXLen 1)1755 1756  ret <vscale x 2 x i64> %a1757}1758 1759define <vscale x 4 x i64> @intrinsic_vloxei_v_nxv4i64_nxv4i64_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1760; CHECK-LABEL: intrinsic_vloxei_v_nxv4i64_nxv4i64_nxv4i16:1761; CHECK:       # %bb.0: # %entry1762; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1763; CHECK-NEXT:    vmv1r.v v12, v81764; CHECK-NEXT:    vloxei16.v v8, (a0), v121765; CHECK-NEXT:    ret1766entry:1767  %a = call <vscale x 4 x i64> @llvm.riscv.vloxei.nxv4i64.nxv4i16(1768    <vscale x 4 x i64> poison,1769    ptr %0,1770    <vscale x 4 x i16> %1,1771    iXLen %2)1772 1773  ret <vscale x 4 x i64> %a1774}1775 1776define <vscale x 4 x i64> @intrinsic_vloxei_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 {1777; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i64_nxv4i64_nxv4i16:1778; CHECK:       # %bb.0: # %entry1779; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu1780; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t1781; CHECK-NEXT:    ret1782entry:1783  %a = call <vscale x 4 x i64> @llvm.riscv.vloxei.mask.nxv4i64.nxv4i16(1784    <vscale x 4 x i64> %0,1785    ptr %1,1786    <vscale x 4 x i16> %2,1787    <vscale x 4 x i1> %3,1788    iXLen %4, iXLen 1)1789 1790  ret <vscale x 4 x i64> %a1791}1792 1793define <vscale x 8 x i64> @intrinsic_vloxei_v_nxv8i64_nxv8i64_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1794; CHECK-LABEL: intrinsic_vloxei_v_nxv8i64_nxv8i64_nxv8i16:1795; CHECK:       # %bb.0: # %entry1796; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma1797; CHECK-NEXT:    vmv2r.v v16, v81798; CHECK-NEXT:    vloxei16.v v8, (a0), v161799; CHECK-NEXT:    ret1800entry:1801  %a = call <vscale x 8 x i64> @llvm.riscv.vloxei.nxv8i64.nxv8i16(1802    <vscale x 8 x i64> poison,1803    ptr %0,1804    <vscale x 8 x i16> %1,1805    iXLen %2)1806 1807  ret <vscale x 8 x i64> %a1808}1809 1810define <vscale x 8 x i64> @intrinsic_vloxei_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 {1811; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i64_nxv8i64_nxv8i16:1812; CHECK:       # %bb.0: # %entry1813; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu1814; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t1815; CHECK-NEXT:    ret1816entry:1817  %a = call <vscale x 8 x i64> @llvm.riscv.vloxei.mask.nxv8i64.nxv8i16(1818    <vscale x 8 x i64> %0,1819    ptr %1,1820    <vscale x 8 x i16> %2,1821    <vscale x 8 x i1> %3,1822    iXLen %4, iXLen 1)1823 1824  ret <vscale x 8 x i64> %a1825}1826 1827define <vscale x 1 x half> @intrinsic_vloxei_v_nxv1f16_nxv1f16_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {1828; CHECK-LABEL: intrinsic_vloxei_v_nxv1f16_nxv1f16_nxv1i16:1829; CHECK:       # %bb.0: # %entry1830; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1831; CHECK-NEXT:    vloxei16.v v8, (a0), v81832; CHECK-NEXT:    ret1833entry:1834  %a = call <vscale x 1 x half> @llvm.riscv.vloxei.nxv1f16.nxv1i16(1835    <vscale x 1 x half> poison,1836    ptr %0,1837    <vscale x 1 x i16> %1,1838    iXLen %2)1839 1840  ret <vscale x 1 x half> %a1841}1842 1843define <vscale x 1 x half> @intrinsic_vloxei_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 {1844; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f16_nxv1f16_nxv1i16:1845; CHECK:       # %bb.0: # %entry1846; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu1847; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1848; CHECK-NEXT:    ret1849entry:1850  %a = call <vscale x 1 x half> @llvm.riscv.vloxei.mask.nxv1f16.nxv1i16(1851    <vscale x 1 x half> %0,1852    ptr %1,1853    <vscale x 1 x i16> %2,1854    <vscale x 1 x i1> %3,1855    iXLen %4, iXLen 1)1856 1857  ret <vscale x 1 x half> %a1858}1859 1860define <vscale x 2 x half> @intrinsic_vloxei_v_nxv2f16_nxv2f16_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {1861; CHECK-LABEL: intrinsic_vloxei_v_nxv2f16_nxv2f16_nxv2i16:1862; CHECK:       # %bb.0: # %entry1863; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1864; CHECK-NEXT:    vloxei16.v v8, (a0), v81865; CHECK-NEXT:    ret1866entry:1867  %a = call <vscale x 2 x half> @llvm.riscv.vloxei.nxv2f16.nxv2i16(1868    <vscale x 2 x half> poison,1869    ptr %0,1870    <vscale x 2 x i16> %1,1871    iXLen %2)1872 1873  ret <vscale x 2 x half> %a1874}1875 1876define <vscale x 2 x half> @intrinsic_vloxei_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 {1877; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f16_nxv2f16_nxv2i16:1878; CHECK:       # %bb.0: # %entry1879; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu1880; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1881; CHECK-NEXT:    ret1882entry:1883  %a = call <vscale x 2 x half> @llvm.riscv.vloxei.mask.nxv2f16.nxv2i16(1884    <vscale x 2 x half> %0,1885    ptr %1,1886    <vscale x 2 x i16> %2,1887    <vscale x 2 x i1> %3,1888    iXLen %4, iXLen 1)1889 1890  ret <vscale x 2 x half> %a1891}1892 1893define <vscale x 4 x half> @intrinsic_vloxei_v_nxv4f16_nxv4f16_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {1894; CHECK-LABEL: intrinsic_vloxei_v_nxv4f16_nxv4f16_nxv4i16:1895; CHECK:       # %bb.0: # %entry1896; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1897; CHECK-NEXT:    vloxei16.v v8, (a0), v81898; CHECK-NEXT:    ret1899entry:1900  %a = call <vscale x 4 x half> @llvm.riscv.vloxei.nxv4f16.nxv4i16(1901    <vscale x 4 x half> poison,1902    ptr %0,1903    <vscale x 4 x i16> %1,1904    iXLen %2)1905 1906  ret <vscale x 4 x half> %a1907}1908 1909define <vscale x 4 x half> @intrinsic_vloxei_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 {1910; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f16_nxv4f16_nxv4i16:1911; CHECK:       # %bb.0: # %entry1912; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu1913; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t1914; CHECK-NEXT:    ret1915entry:1916  %a = call <vscale x 4 x half> @llvm.riscv.vloxei.mask.nxv4f16.nxv4i16(1917    <vscale x 4 x half> %0,1918    ptr %1,1919    <vscale x 4 x i16> %2,1920    <vscale x 4 x i1> %3,1921    iXLen %4, iXLen 1)1922 1923  ret <vscale x 4 x half> %a1924}1925 1926define <vscale x 8 x half> @intrinsic_vloxei_v_nxv8f16_nxv8f16_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {1927; CHECK-LABEL: intrinsic_vloxei_v_nxv8f16_nxv8f16_nxv8i16:1928; CHECK:       # %bb.0: # %entry1929; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma1930; CHECK-NEXT:    vloxei16.v v8, (a0), v81931; CHECK-NEXT:    ret1932entry:1933  %a = call <vscale x 8 x half> @llvm.riscv.vloxei.nxv8f16.nxv8i16(1934    <vscale x 8 x half> poison,1935    ptr %0,1936    <vscale x 8 x i16> %1,1937    iXLen %2)1938 1939  ret <vscale x 8 x half> %a1940}1941 1942define <vscale x 8 x half> @intrinsic_vloxei_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 {1943; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f16_nxv8f16_nxv8i16:1944; CHECK:       # %bb.0: # %entry1945; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu1946; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t1947; CHECK-NEXT:    ret1948entry:1949  %a = call <vscale x 8 x half> @llvm.riscv.vloxei.mask.nxv8f16.nxv8i16(1950    <vscale x 8 x half> %0,1951    ptr %1,1952    <vscale x 8 x i16> %2,1953    <vscale x 8 x i1> %3,1954    iXLen %4, iXLen 1)1955 1956  ret <vscale x 8 x half> %a1957}1958 1959define <vscale x 16 x half> @intrinsic_vloxei_v_nxv16f16_nxv16f16_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {1960; CHECK-LABEL: intrinsic_vloxei_v_nxv16f16_nxv16f16_nxv16i16:1961; CHECK:       # %bb.0: # %entry1962; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma1963; CHECK-NEXT:    vloxei16.v v8, (a0), v81964; CHECK-NEXT:    ret1965entry:1966  %a = call <vscale x 16 x half> @llvm.riscv.vloxei.nxv16f16.nxv16i16(1967    <vscale x 16 x half> poison,1968    ptr %0,1969    <vscale x 16 x i16> %1,1970    iXLen %2)1971 1972  ret <vscale x 16 x half> %a1973}1974 1975define <vscale x 16 x half> @intrinsic_vloxei_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 {1976; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16f16_nxv16f16_nxv16i16:1977; CHECK:       # %bb.0: # %entry1978; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu1979; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t1980; CHECK-NEXT:    ret1981entry:1982  %a = call <vscale x 16 x half> @llvm.riscv.vloxei.mask.nxv16f16.nxv16i16(1983    <vscale x 16 x half> %0,1984    ptr %1,1985    <vscale x 16 x i16> %2,1986    <vscale x 16 x i1> %3,1987    iXLen %4, iXLen 1)1988 1989  ret <vscale x 16 x half> %a1990}1991 1992define <vscale x 32 x half> @intrinsic_vloxei_v_nxv32f16_nxv32f16_nxv32i16(ptr %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {1993; CHECK-LABEL: intrinsic_vloxei_v_nxv32f16_nxv32f16_nxv32i16:1994; CHECK:       # %bb.0: # %entry1995; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma1996; CHECK-NEXT:    vloxei16.v v8, (a0), v81997; CHECK-NEXT:    ret1998entry:1999  %a = call <vscale x 32 x half> @llvm.riscv.vloxei.nxv32f16.nxv32i16(2000    <vscale x 32 x half> poison,2001    ptr %0,2002    <vscale x 32 x i16> %1,2003    iXLen %2)2004 2005  ret <vscale x 32 x half> %a2006}2007 2008define <vscale x 32 x half> @intrinsic_vloxei_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 {2009; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv32f16_nxv32f16_nxv32i16:2010; CHECK:       # %bb.0: # %entry2011; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu2012; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t2013; CHECK-NEXT:    ret2014entry:2015  %a = call <vscale x 32 x half> @llvm.riscv.vloxei.mask.nxv32f16.nxv32i16(2016    <vscale x 32 x half> %0,2017    ptr %1,2018    <vscale x 32 x i16> %2,2019    <vscale x 32 x i1> %3,2020    iXLen %4, iXLen 1)2021 2022  ret <vscale x 32 x half> %a2023}2024 2025define <vscale x 1 x float> @intrinsic_vloxei_v_nxv1f32_nxv1f32_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {2026; CHECK-LABEL: intrinsic_vloxei_v_nxv1f32_nxv1f32_nxv1i16:2027; CHECK:       # %bb.0: # %entry2028; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2029; CHECK-NEXT:    vloxei16.v v9, (a0), v82030; CHECK-NEXT:    vmv1r.v v8, v92031; CHECK-NEXT:    ret2032entry:2033  %a = call <vscale x 1 x float> @llvm.riscv.vloxei.nxv1f32.nxv1i16(2034    <vscale x 1 x float> poison,2035    ptr %0,2036    <vscale x 1 x i16> %1,2037    iXLen %2)2038 2039  ret <vscale x 1 x float> %a2040}2041 2042define <vscale x 1 x float> @intrinsic_vloxei_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 {2043; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f32_nxv1f32_nxv1i16:2044; CHECK:       # %bb.0: # %entry2045; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu2046; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t2047; CHECK-NEXT:    ret2048entry:2049  %a = call <vscale x 1 x float> @llvm.riscv.vloxei.mask.nxv1f32.nxv1i16(2050    <vscale x 1 x float> %0,2051    ptr %1,2052    <vscale x 1 x i16> %2,2053    <vscale x 1 x i1> %3,2054    iXLen %4, iXLen 1)2055 2056  ret <vscale x 1 x float> %a2057}2058 2059define <vscale x 2 x float> @intrinsic_vloxei_v_nxv2f32_nxv2f32_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {2060; CHECK-LABEL: intrinsic_vloxei_v_nxv2f32_nxv2f32_nxv2i16:2061; CHECK:       # %bb.0: # %entry2062; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2063; CHECK-NEXT:    vloxei16.v v9, (a0), v82064; CHECK-NEXT:    vmv.v.v v8, v92065; CHECK-NEXT:    ret2066entry:2067  %a = call <vscale x 2 x float> @llvm.riscv.vloxei.nxv2f32.nxv2i16(2068    <vscale x 2 x float> poison,2069    ptr %0,2070    <vscale x 2 x i16> %1,2071    iXLen %2)2072 2073  ret <vscale x 2 x float> %a2074}2075 2076define <vscale x 2 x float> @intrinsic_vloxei_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 {2077; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f32_nxv2f32_nxv2i16:2078; CHECK:       # %bb.0: # %entry2079; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu2080; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t2081; CHECK-NEXT:    ret2082entry:2083  %a = call <vscale x 2 x float> @llvm.riscv.vloxei.mask.nxv2f32.nxv2i16(2084    <vscale x 2 x float> %0,2085    ptr %1,2086    <vscale x 2 x i16> %2,2087    <vscale x 2 x i1> %3,2088    iXLen %4, iXLen 1)2089 2090  ret <vscale x 2 x float> %a2091}2092 2093define <vscale x 4 x float> @intrinsic_vloxei_v_nxv4f32_nxv4f32_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {2094; CHECK-LABEL: intrinsic_vloxei_v_nxv4f32_nxv4f32_nxv4i16:2095; CHECK:       # %bb.0: # %entry2096; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2097; CHECK-NEXT:    vmv1r.v v10, v82098; CHECK-NEXT:    vloxei16.v v8, (a0), v102099; CHECK-NEXT:    ret2100entry:2101  %a = call <vscale x 4 x float> @llvm.riscv.vloxei.nxv4f32.nxv4i16(2102    <vscale x 4 x float> poison,2103    ptr %0,2104    <vscale x 4 x i16> %1,2105    iXLen %2)2106 2107  ret <vscale x 4 x float> %a2108}2109 2110define <vscale x 4 x float> @intrinsic_vloxei_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 {2111; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f32_nxv4f32_nxv4i16:2112; CHECK:       # %bb.0: # %entry2113; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu2114; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t2115; CHECK-NEXT:    ret2116entry:2117  %a = call <vscale x 4 x float> @llvm.riscv.vloxei.mask.nxv4f32.nxv4i16(2118    <vscale x 4 x float> %0,2119    ptr %1,2120    <vscale x 4 x i16> %2,2121    <vscale x 4 x i1> %3,2122    iXLen %4, iXLen 1)2123 2124  ret <vscale x 4 x float> %a2125}2126 2127define <vscale x 8 x float> @intrinsic_vloxei_v_nxv8f32_nxv8f32_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {2128; CHECK-LABEL: intrinsic_vloxei_v_nxv8f32_nxv8f32_nxv8i16:2129; CHECK:       # %bb.0: # %entry2130; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma2131; CHECK-NEXT:    vmv2r.v v12, v82132; CHECK-NEXT:    vloxei16.v v8, (a0), v122133; CHECK-NEXT:    ret2134entry:2135  %a = call <vscale x 8 x float> @llvm.riscv.vloxei.nxv8f32.nxv8i16(2136    <vscale x 8 x float> poison,2137    ptr %0,2138    <vscale x 8 x i16> %1,2139    iXLen %2)2140 2141  ret <vscale x 8 x float> %a2142}2143 2144define <vscale x 8 x float> @intrinsic_vloxei_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 {2145; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f32_nxv8f32_nxv8i16:2146; CHECK:       # %bb.0: # %entry2147; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu2148; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t2149; CHECK-NEXT:    ret2150entry:2151  %a = call <vscale x 8 x float> @llvm.riscv.vloxei.mask.nxv8f32.nxv8i16(2152    <vscale x 8 x float> %0,2153    ptr %1,2154    <vscale x 8 x i16> %2,2155    <vscale x 8 x i1> %3,2156    iXLen %4, iXLen 1)2157 2158  ret <vscale x 8 x float> %a2159}2160 2161define <vscale x 16 x float> @intrinsic_vloxei_v_nxv16f32_nxv16f32_nxv16i16(ptr %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {2162; CHECK-LABEL: intrinsic_vloxei_v_nxv16f32_nxv16f32_nxv16i16:2163; CHECK:       # %bb.0: # %entry2164; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma2165; CHECK-NEXT:    vmv4r.v v16, v82166; CHECK-NEXT:    vloxei16.v v8, (a0), v162167; CHECK-NEXT:    ret2168entry:2169  %a = call <vscale x 16 x float> @llvm.riscv.vloxei.nxv16f32.nxv16i16(2170    <vscale x 16 x float> poison,2171    ptr %0,2172    <vscale x 16 x i16> %1,2173    iXLen %2)2174 2175  ret <vscale x 16 x float> %a2176}2177 2178define <vscale x 16 x float> @intrinsic_vloxei_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 {2179; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16f32_nxv16f32_nxv16i16:2180; CHECK:       # %bb.0: # %entry2181; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu2182; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t2183; CHECK-NEXT:    ret2184entry:2185  %a = call <vscale x 16 x float> @llvm.riscv.vloxei.mask.nxv16f32.nxv16i16(2186    <vscale x 16 x float> %0,2187    ptr %1,2188    <vscale x 16 x i16> %2,2189    <vscale x 16 x i1> %3,2190    iXLen %4, iXLen 1)2191 2192  ret <vscale x 16 x float> %a2193}2194 2195define <vscale x 1 x double> @intrinsic_vloxei_v_nxv1f64_nxv1f64_nxv1i16(ptr %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {2196; CHECK-LABEL: intrinsic_vloxei_v_nxv1f64_nxv1f64_nxv1i16:2197; CHECK:       # %bb.0: # %entry2198; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma2199; CHECK-NEXT:    vloxei16.v v9, (a0), v82200; CHECK-NEXT:    vmv.v.v v8, v92201; CHECK-NEXT:    ret2202entry:2203  %a = call <vscale x 1 x double> @llvm.riscv.vloxei.nxv1f64.nxv1i16(2204    <vscale x 1 x double> poison,2205    ptr %0,2206    <vscale x 1 x i16> %1,2207    iXLen %2)2208 2209  ret <vscale x 1 x double> %a2210}2211 2212define <vscale x 1 x double> @intrinsic_vloxei_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 {2213; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f64_nxv1f64_nxv1i16:2214; CHECK:       # %bb.0: # %entry2215; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu2216; CHECK-NEXT:    vloxei16.v v8, (a0), v9, v0.t2217; CHECK-NEXT:    ret2218entry:2219  %a = call <vscale x 1 x double> @llvm.riscv.vloxei.mask.nxv1f64.nxv1i16(2220    <vscale x 1 x double> %0,2221    ptr %1,2222    <vscale x 1 x i16> %2,2223    <vscale x 1 x i1> %3,2224    iXLen %4, iXLen 1)2225 2226  ret <vscale x 1 x double> %a2227}2228 2229define <vscale x 2 x double> @intrinsic_vloxei_v_nxv2f64_nxv2f64_nxv2i16(ptr %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {2230; CHECK-LABEL: intrinsic_vloxei_v_nxv2f64_nxv2f64_nxv2i16:2231; CHECK:       # %bb.0: # %entry2232; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma2233; CHECK-NEXT:    vmv1r.v v10, v82234; CHECK-NEXT:    vloxei16.v v8, (a0), v102235; CHECK-NEXT:    ret2236entry:2237  %a = call <vscale x 2 x double> @llvm.riscv.vloxei.nxv2f64.nxv2i16(2238    <vscale x 2 x double> poison,2239    ptr %0,2240    <vscale x 2 x i16> %1,2241    iXLen %2)2242 2243  ret <vscale x 2 x double> %a2244}2245 2246define <vscale x 2 x double> @intrinsic_vloxei_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 {2247; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f64_nxv2f64_nxv2i16:2248; CHECK:       # %bb.0: # %entry2249; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu2250; CHECK-NEXT:    vloxei16.v v8, (a0), v10, v0.t2251; CHECK-NEXT:    ret2252entry:2253  %a = call <vscale x 2 x double> @llvm.riscv.vloxei.mask.nxv2f64.nxv2i16(2254    <vscale x 2 x double> %0,2255    ptr %1,2256    <vscale x 2 x i16> %2,2257    <vscale x 2 x i1> %3,2258    iXLen %4, iXLen 1)2259 2260  ret <vscale x 2 x double> %a2261}2262 2263define <vscale x 4 x double> @intrinsic_vloxei_v_nxv4f64_nxv4f64_nxv4i16(ptr %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {2264; CHECK-LABEL: intrinsic_vloxei_v_nxv4f64_nxv4f64_nxv4i16:2265; CHECK:       # %bb.0: # %entry2266; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2267; CHECK-NEXT:    vmv1r.v v12, v82268; CHECK-NEXT:    vloxei16.v v8, (a0), v122269; CHECK-NEXT:    ret2270entry:2271  %a = call <vscale x 4 x double> @llvm.riscv.vloxei.nxv4f64.nxv4i16(2272    <vscale x 4 x double> poison,2273    ptr %0,2274    <vscale x 4 x i16> %1,2275    iXLen %2)2276 2277  ret <vscale x 4 x double> %a2278}2279 2280define <vscale x 4 x double> @intrinsic_vloxei_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 {2281; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f64_nxv4f64_nxv4i16:2282; CHECK:       # %bb.0: # %entry2283; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu2284; CHECK-NEXT:    vloxei16.v v8, (a0), v12, v0.t2285; CHECK-NEXT:    ret2286entry:2287  %a = call <vscale x 4 x double> @llvm.riscv.vloxei.mask.nxv4f64.nxv4i16(2288    <vscale x 4 x double> %0,2289    ptr %1,2290    <vscale x 4 x i16> %2,2291    <vscale x 4 x i1> %3,2292    iXLen %4, iXLen 1)2293 2294  ret <vscale x 4 x double> %a2295}2296 2297define <vscale x 8 x double> @intrinsic_vloxei_v_nxv8f64_nxv8f64_nxv8i16(ptr %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {2298; CHECK-LABEL: intrinsic_vloxei_v_nxv8f64_nxv8f64_nxv8i16:2299; CHECK:       # %bb.0: # %entry2300; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma2301; CHECK-NEXT:    vmv2r.v v16, v82302; CHECK-NEXT:    vloxei16.v v8, (a0), v162303; CHECK-NEXT:    ret2304entry:2305  %a = call <vscale x 8 x double> @llvm.riscv.vloxei.nxv8f64.nxv8i16(2306    <vscale x 8 x double> poison,2307    ptr %0,2308    <vscale x 8 x i16> %1,2309    iXLen %2)2310 2311  ret <vscale x 8 x double> %a2312}2313 2314define <vscale x 8 x double> @intrinsic_vloxei_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 {2315; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f64_nxv8f64_nxv8i16:2316; CHECK:       # %bb.0: # %entry2317; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu2318; CHECK-NEXT:    vloxei16.v v8, (a0), v16, v0.t2319; CHECK-NEXT:    ret2320entry:2321  %a = call <vscale x 8 x double> @llvm.riscv.vloxei.mask.nxv8f64.nxv8i16(2322    <vscale x 8 x double> %0,2323    ptr %1,2324    <vscale x 8 x i16> %2,2325    <vscale x 8 x i1> %3,2326    iXLen %4, iXLen 1)2327 2328  ret <vscale x 8 x double> %a2329}2330 2331define <vscale x 1 x i8> @intrinsic_vloxei_v_nxv1i8_nxv1i8_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2332; CHECK-LABEL: intrinsic_vloxei_v_nxv1i8_nxv1i8_nxv1i8:2333; CHECK:       # %bb.0: # %entry2334; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma2335; CHECK-NEXT:    vloxei8.v v8, (a0), v82336; CHECK-NEXT:    ret2337entry:2338  %a = call <vscale x 1 x i8> @llvm.riscv.vloxei.nxv1i8.nxv1i8(2339    <vscale x 1 x i8> poison,2340    ptr %0,2341    <vscale x 1 x i8> %1,2342    iXLen %2)2343 2344  ret <vscale x 1 x i8> %a2345}2346 2347define <vscale x 1 x i8> @intrinsic_vloxei_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 {2348; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i8_nxv1i8_nxv1i8:2349; CHECK:       # %bb.0: # %entry2350; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu2351; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2352; CHECK-NEXT:    ret2353entry:2354  %a = call <vscale x 1 x i8> @llvm.riscv.vloxei.mask.nxv1i8.nxv1i8(2355    <vscale x 1 x i8> %0,2356    ptr %1,2357    <vscale x 1 x i8> %2,2358    <vscale x 1 x i1> %3,2359    iXLen %4, iXLen 1)2360 2361  ret <vscale x 1 x i8> %a2362}2363 2364define <vscale x 2 x i8> @intrinsic_vloxei_v_nxv2i8_nxv2i8_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2365; CHECK-LABEL: intrinsic_vloxei_v_nxv2i8_nxv2i8_nxv2i8:2366; CHECK:       # %bb.0: # %entry2367; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma2368; CHECK-NEXT:    vloxei8.v v8, (a0), v82369; CHECK-NEXT:    ret2370entry:2371  %a = call <vscale x 2 x i8> @llvm.riscv.vloxei.nxv2i8.nxv2i8(2372    <vscale x 2 x i8> poison,2373    ptr %0,2374    <vscale x 2 x i8> %1,2375    iXLen %2)2376 2377  ret <vscale x 2 x i8> %a2378}2379 2380define <vscale x 2 x i8> @intrinsic_vloxei_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 {2381; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i8_nxv2i8_nxv2i8:2382; CHECK:       # %bb.0: # %entry2383; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu2384; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2385; CHECK-NEXT:    ret2386entry:2387  %a = call <vscale x 2 x i8> @llvm.riscv.vloxei.mask.nxv2i8.nxv2i8(2388    <vscale x 2 x i8> %0,2389    ptr %1,2390    <vscale x 2 x i8> %2,2391    <vscale x 2 x i1> %3,2392    iXLen %4, iXLen 1)2393 2394  ret <vscale x 2 x i8> %a2395}2396 2397define <vscale x 4 x i8> @intrinsic_vloxei_v_nxv4i8_nxv4i8_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {2398; CHECK-LABEL: intrinsic_vloxei_v_nxv4i8_nxv4i8_nxv4i8:2399; CHECK:       # %bb.0: # %entry2400; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma2401; CHECK-NEXT:    vloxei8.v v8, (a0), v82402; CHECK-NEXT:    ret2403entry:2404  %a = call <vscale x 4 x i8> @llvm.riscv.vloxei.nxv4i8.nxv4i8(2405    <vscale x 4 x i8> poison,2406    ptr %0,2407    <vscale x 4 x i8> %1,2408    iXLen %2)2409 2410  ret <vscale x 4 x i8> %a2411}2412 2413define <vscale x 4 x i8> @intrinsic_vloxei_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 {2414; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i8_nxv4i8_nxv4i8:2415; CHECK:       # %bb.0: # %entry2416; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu2417; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2418; CHECK-NEXT:    ret2419entry:2420  %a = call <vscale x 4 x i8> @llvm.riscv.vloxei.mask.nxv4i8.nxv4i8(2421    <vscale x 4 x i8> %0,2422    ptr %1,2423    <vscale x 4 x i8> %2,2424    <vscale x 4 x i1> %3,2425    iXLen %4, iXLen 1)2426 2427  ret <vscale x 4 x i8> %a2428}2429 2430define <vscale x 8 x i8> @intrinsic_vloxei_v_nxv8i8_nxv8i8_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {2431; CHECK-LABEL: intrinsic_vloxei_v_nxv8i8_nxv8i8_nxv8i8:2432; CHECK:       # %bb.0: # %entry2433; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma2434; CHECK-NEXT:    vloxei8.v v8, (a0), v82435; CHECK-NEXT:    ret2436entry:2437  %a = call <vscale x 8 x i8> @llvm.riscv.vloxei.nxv8i8.nxv8i8(2438    <vscale x 8 x i8> poison,2439    ptr %0,2440    <vscale x 8 x i8> %1,2441    iXLen %2)2442 2443  ret <vscale x 8 x i8> %a2444}2445 2446define <vscale x 8 x i8> @intrinsic_vloxei_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 {2447; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i8_nxv8i8_nxv8i8:2448; CHECK:       # %bb.0: # %entry2449; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu2450; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2451; CHECK-NEXT:    ret2452entry:2453  %a = call <vscale x 8 x i8> @llvm.riscv.vloxei.mask.nxv8i8.nxv8i8(2454    <vscale x 8 x i8> %0,2455    ptr %1,2456    <vscale x 8 x i8> %2,2457    <vscale x 8 x i1> %3,2458    iXLen %4, iXLen 1)2459 2460  ret <vscale x 8 x i8> %a2461}2462 2463define <vscale x 16 x i8> @intrinsic_vloxei_v_nxv16i8_nxv16i8_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {2464; CHECK-LABEL: intrinsic_vloxei_v_nxv16i8_nxv16i8_nxv16i8:2465; CHECK:       # %bb.0: # %entry2466; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma2467; CHECK-NEXT:    vloxei8.v v8, (a0), v82468; CHECK-NEXT:    ret2469entry:2470  %a = call <vscale x 16 x i8> @llvm.riscv.vloxei.nxv16i8.nxv16i8(2471    <vscale x 16 x i8> poison,2472    ptr %0,2473    <vscale x 16 x i8> %1,2474    iXLen %2)2475 2476  ret <vscale x 16 x i8> %a2477}2478 2479define <vscale x 16 x i8> @intrinsic_vloxei_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 {2480; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16i8_nxv16i8_nxv16i8:2481; CHECK:       # %bb.0: # %entry2482; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu2483; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t2484; CHECK-NEXT:    ret2485entry:2486  %a = call <vscale x 16 x i8> @llvm.riscv.vloxei.mask.nxv16i8.nxv16i8(2487    <vscale x 16 x i8> %0,2488    ptr %1,2489    <vscale x 16 x i8> %2,2490    <vscale x 16 x i1> %3,2491    iXLen %4, iXLen 1)2492 2493  ret <vscale x 16 x i8> %a2494}2495 2496define <vscale x 32 x i8> @intrinsic_vloxei_v_nxv32i8_nxv32i8_nxv32i8(ptr %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {2497; CHECK-LABEL: intrinsic_vloxei_v_nxv32i8_nxv32i8_nxv32i8:2498; CHECK:       # %bb.0: # %entry2499; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma2500; CHECK-NEXT:    vloxei8.v v8, (a0), v82501; CHECK-NEXT:    ret2502entry:2503  %a = call <vscale x 32 x i8> @llvm.riscv.vloxei.nxv32i8.nxv32i8(2504    <vscale x 32 x i8> poison,2505    ptr %0,2506    <vscale x 32 x i8> %1,2507    iXLen %2)2508 2509  ret <vscale x 32 x i8> %a2510}2511 2512define <vscale x 32 x i8> @intrinsic_vloxei_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 {2513; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv32i8_nxv32i8_nxv32i8:2514; CHECK:       # %bb.0: # %entry2515; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, mu2516; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t2517; CHECK-NEXT:    ret2518entry:2519  %a = call <vscale x 32 x i8> @llvm.riscv.vloxei.mask.nxv32i8.nxv32i8(2520    <vscale x 32 x i8> %0,2521    ptr %1,2522    <vscale x 32 x i8> %2,2523    <vscale x 32 x i1> %3,2524    iXLen %4, iXLen 1)2525 2526  ret <vscale x 32 x i8> %a2527}2528 2529define <vscale x 64 x i8> @intrinsic_vloxei_v_nxv64i8_nxv64i8_nxv64i8(ptr %0, <vscale x 64 x i8> %1, iXLen %2) nounwind {2530; CHECK-LABEL: intrinsic_vloxei_v_nxv64i8_nxv64i8_nxv64i8:2531; CHECK:       # %bb.0: # %entry2532; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma2533; CHECK-NEXT:    vloxei8.v v8, (a0), v82534; CHECK-NEXT:    ret2535entry:2536  %a = call <vscale x 64 x i8> @llvm.riscv.vloxei.nxv64i8.nxv64i8(2537    <vscale x 64 x i8> poison,2538    ptr %0,2539    <vscale x 64 x i8> %1,2540    iXLen %2)2541 2542  ret <vscale x 64 x i8> %a2543}2544 2545define <vscale x 64 x i8> @intrinsic_vloxei_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 {2546; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv64i8_nxv64i8_nxv64i8:2547; CHECK:       # %bb.0: # %entry2548; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, mu2549; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t2550; CHECK-NEXT:    ret2551entry:2552  %a = call <vscale x 64 x i8> @llvm.riscv.vloxei.mask.nxv64i8.nxv64i8(2553    <vscale x 64 x i8> %0,2554    ptr %1,2555    <vscale x 64 x i8> %2,2556    <vscale x 64 x i1> %3,2557    iXLen %4, iXLen 1)2558 2559  ret <vscale x 64 x i8> %a2560}2561 2562define <vscale x 1 x i16> @intrinsic_vloxei_v_nxv1i16_nxv1i16_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2563; CHECK-LABEL: intrinsic_vloxei_v_nxv1i16_nxv1i16_nxv1i8:2564; CHECK:       # %bb.0: # %entry2565; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2566; CHECK-NEXT:    vloxei8.v v9, (a0), v82567; CHECK-NEXT:    vmv1r.v v8, v92568; CHECK-NEXT:    ret2569entry:2570  %a = call <vscale x 1 x i16> @llvm.riscv.vloxei.nxv1i16.nxv1i8(2571    <vscale x 1 x i16> poison,2572    ptr %0,2573    <vscale x 1 x i8> %1,2574    iXLen %2)2575 2576  ret <vscale x 1 x i16> %a2577}2578 2579define <vscale x 1 x i16> @intrinsic_vloxei_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 {2580; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i16_nxv1i16_nxv1i8:2581; CHECK:       # %bb.0: # %entry2582; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu2583; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2584; CHECK-NEXT:    ret2585entry:2586  %a = call <vscale x 1 x i16> @llvm.riscv.vloxei.mask.nxv1i16.nxv1i8(2587    <vscale x 1 x i16> %0,2588    ptr %1,2589    <vscale x 1 x i8> %2,2590    <vscale x 1 x i1> %3,2591    iXLen %4, iXLen 1)2592 2593  ret <vscale x 1 x i16> %a2594}2595 2596define <vscale x 2 x i16> @intrinsic_vloxei_v_nxv2i16_nxv2i16_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2597; CHECK-LABEL: intrinsic_vloxei_v_nxv2i16_nxv2i16_nxv2i8:2598; CHECK:       # %bb.0: # %entry2599; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2600; CHECK-NEXT:    vloxei8.v v9, (a0), v82601; CHECK-NEXT:    vmv1r.v v8, v92602; CHECK-NEXT:    ret2603entry:2604  %a = call <vscale x 2 x i16> @llvm.riscv.vloxei.nxv2i16.nxv2i8(2605    <vscale x 2 x i16> poison,2606    ptr %0,2607    <vscale x 2 x i8> %1,2608    iXLen %2)2609 2610  ret <vscale x 2 x i16> %a2611}2612 2613define <vscale x 2 x i16> @intrinsic_vloxei_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 {2614; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i16_nxv2i16_nxv2i8:2615; CHECK:       # %bb.0: # %entry2616; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu2617; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2618; CHECK-NEXT:    ret2619entry:2620  %a = call <vscale x 2 x i16> @llvm.riscv.vloxei.mask.nxv2i16.nxv2i8(2621    <vscale x 2 x i16> %0,2622    ptr %1,2623    <vscale x 2 x i8> %2,2624    <vscale x 2 x i1> %3,2625    iXLen %4, iXLen 1)2626 2627  ret <vscale x 2 x i16> %a2628}2629 2630define <vscale x 4 x i16> @intrinsic_vloxei_v_nxv4i16_nxv4i16_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {2631; CHECK-LABEL: intrinsic_vloxei_v_nxv4i16_nxv4i16_nxv4i8:2632; CHECK:       # %bb.0: # %entry2633; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2634; CHECK-NEXT:    vloxei8.v v9, (a0), v82635; CHECK-NEXT:    vmv.v.v v8, v92636; CHECK-NEXT:    ret2637entry:2638  %a = call <vscale x 4 x i16> @llvm.riscv.vloxei.nxv4i16.nxv4i8(2639    <vscale x 4 x i16> poison,2640    ptr %0,2641    <vscale x 4 x i8> %1,2642    iXLen %2)2643 2644  ret <vscale x 4 x i16> %a2645}2646 2647define <vscale x 4 x i16> @intrinsic_vloxei_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 {2648; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i16_nxv4i16_nxv4i8:2649; CHECK:       # %bb.0: # %entry2650; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu2651; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2652; CHECK-NEXT:    ret2653entry:2654  %a = call <vscale x 4 x i16> @llvm.riscv.vloxei.mask.nxv4i16.nxv4i8(2655    <vscale x 4 x i16> %0,2656    ptr %1,2657    <vscale x 4 x i8> %2,2658    <vscale x 4 x i1> %3,2659    iXLen %4, iXLen 1)2660 2661  ret <vscale x 4 x i16> %a2662}2663 2664define <vscale x 8 x i16> @intrinsic_vloxei_v_nxv8i16_nxv8i16_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {2665; CHECK-LABEL: intrinsic_vloxei_v_nxv8i16_nxv8i16_nxv8i8:2666; CHECK:       # %bb.0: # %entry2667; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2668; CHECK-NEXT:    vmv1r.v v10, v82669; CHECK-NEXT:    vloxei8.v v8, (a0), v102670; CHECK-NEXT:    ret2671entry:2672  %a = call <vscale x 8 x i16> @llvm.riscv.vloxei.nxv8i16.nxv8i8(2673    <vscale x 8 x i16> poison,2674    ptr %0,2675    <vscale x 8 x i8> %1,2676    iXLen %2)2677 2678  ret <vscale x 8 x i16> %a2679}2680 2681define <vscale x 8 x i16> @intrinsic_vloxei_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 {2682; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i16_nxv8i16_nxv8i8:2683; CHECK:       # %bb.0: # %entry2684; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu2685; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t2686; CHECK-NEXT:    ret2687entry:2688  %a = call <vscale x 8 x i16> @llvm.riscv.vloxei.mask.nxv8i16.nxv8i8(2689    <vscale x 8 x i16> %0,2690    ptr %1,2691    <vscale x 8 x i8> %2,2692    <vscale x 8 x i1> %3,2693    iXLen %4, iXLen 1)2694 2695  ret <vscale x 8 x i16> %a2696}2697 2698define <vscale x 16 x i16> @intrinsic_vloxei_v_nxv16i16_nxv16i16_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {2699; CHECK-LABEL: intrinsic_vloxei_v_nxv16i16_nxv16i16_nxv16i8:2700; CHECK:       # %bb.0: # %entry2701; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma2702; CHECK-NEXT:    vmv2r.v v12, v82703; CHECK-NEXT:    vloxei8.v v8, (a0), v122704; CHECK-NEXT:    ret2705entry:2706  %a = call <vscale x 16 x i16> @llvm.riscv.vloxei.nxv16i16.nxv16i8(2707    <vscale x 16 x i16> poison,2708    ptr %0,2709    <vscale x 16 x i8> %1,2710    iXLen %2)2711 2712  ret <vscale x 16 x i16> %a2713}2714 2715define <vscale x 16 x i16> @intrinsic_vloxei_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 {2716; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16i16_nxv16i16_nxv16i8:2717; CHECK:       # %bb.0: # %entry2718; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu2719; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t2720; CHECK-NEXT:    ret2721entry:2722  %a = call <vscale x 16 x i16> @llvm.riscv.vloxei.mask.nxv16i16.nxv16i8(2723    <vscale x 16 x i16> %0,2724    ptr %1,2725    <vscale x 16 x i8> %2,2726    <vscale x 16 x i1> %3,2727    iXLen %4, iXLen 1)2728 2729  ret <vscale x 16 x i16> %a2730}2731 2732define <vscale x 32 x i16> @intrinsic_vloxei_v_nxv32i16_nxv32i16_nxv32i8(ptr %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {2733; CHECK-LABEL: intrinsic_vloxei_v_nxv32i16_nxv32i16_nxv32i8:2734; CHECK:       # %bb.0: # %entry2735; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma2736; CHECK-NEXT:    vmv4r.v v16, v82737; CHECK-NEXT:    vloxei8.v v8, (a0), v162738; CHECK-NEXT:    ret2739entry:2740  %a = call <vscale x 32 x i16> @llvm.riscv.vloxei.nxv32i16.nxv32i8(2741    <vscale x 32 x i16> poison,2742    ptr %0,2743    <vscale x 32 x i8> %1,2744    iXLen %2)2745 2746  ret <vscale x 32 x i16> %a2747}2748 2749define <vscale x 32 x i16> @intrinsic_vloxei_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 {2750; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv32i16_nxv32i16_nxv32i8:2751; CHECK:       # %bb.0: # %entry2752; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu2753; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t2754; CHECK-NEXT:    ret2755entry:2756  %a = call <vscale x 32 x i16> @llvm.riscv.vloxei.mask.nxv32i16.nxv32i8(2757    <vscale x 32 x i16> %0,2758    ptr %1,2759    <vscale x 32 x i8> %2,2760    <vscale x 32 x i1> %3,2761    iXLen %4, iXLen 1)2762 2763  ret <vscale x 32 x i16> %a2764}2765 2766define <vscale x 1 x i32> @intrinsic_vloxei_v_nxv1i32_nxv1i32_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2767; CHECK-LABEL: intrinsic_vloxei_v_nxv1i32_nxv1i32_nxv1i8:2768; CHECK:       # %bb.0: # %entry2769; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2770; CHECK-NEXT:    vloxei8.v v9, (a0), v82771; CHECK-NEXT:    vmv1r.v v8, v92772; CHECK-NEXT:    ret2773entry:2774  %a = call <vscale x 1 x i32> @llvm.riscv.vloxei.nxv1i32.nxv1i8(2775    <vscale x 1 x i32> poison,2776    ptr %0,2777    <vscale x 1 x i8> %1,2778    iXLen %2)2779 2780  ret <vscale x 1 x i32> %a2781}2782 2783define <vscale x 1 x i32> @intrinsic_vloxei_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 {2784; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i32_nxv1i32_nxv1i8:2785; CHECK:       # %bb.0: # %entry2786; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu2787; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2788; CHECK-NEXT:    ret2789entry:2790  %a = call <vscale x 1 x i32> @llvm.riscv.vloxei.mask.nxv1i32.nxv1i8(2791    <vscale x 1 x i32> %0,2792    ptr %1,2793    <vscale x 1 x i8> %2,2794    <vscale x 1 x i1> %3,2795    iXLen %4, iXLen 1)2796 2797  ret <vscale x 1 x i32> %a2798}2799 2800define <vscale x 2 x i32> @intrinsic_vloxei_v_nxv2i32_nxv2i32_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2801; CHECK-LABEL: intrinsic_vloxei_v_nxv2i32_nxv2i32_nxv2i8:2802; CHECK:       # %bb.0: # %entry2803; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2804; CHECK-NEXT:    vloxei8.v v9, (a0), v82805; CHECK-NEXT:    vmv.v.v v8, v92806; CHECK-NEXT:    ret2807entry:2808  %a = call <vscale x 2 x i32> @llvm.riscv.vloxei.nxv2i32.nxv2i8(2809    <vscale x 2 x i32> poison,2810    ptr %0,2811    <vscale x 2 x i8> %1,2812    iXLen %2)2813 2814  ret <vscale x 2 x i32> %a2815}2816 2817define <vscale x 2 x i32> @intrinsic_vloxei_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 {2818; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i32_nxv2i32_nxv2i8:2819; CHECK:       # %bb.0: # %entry2820; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu2821; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2822; CHECK-NEXT:    ret2823entry:2824  %a = call <vscale x 2 x i32> @llvm.riscv.vloxei.mask.nxv2i32.nxv2i8(2825    <vscale x 2 x i32> %0,2826    ptr %1,2827    <vscale x 2 x i8> %2,2828    <vscale x 2 x i1> %3,2829    iXLen %4, iXLen 1)2830 2831  ret <vscale x 2 x i32> %a2832}2833 2834define <vscale x 4 x i32> @intrinsic_vloxei_v_nxv4i32_nxv4i32_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {2835; CHECK-LABEL: intrinsic_vloxei_v_nxv4i32_nxv4i32_nxv4i8:2836; CHECK:       # %bb.0: # %entry2837; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2838; CHECK-NEXT:    vmv1r.v v10, v82839; CHECK-NEXT:    vloxei8.v v8, (a0), v102840; CHECK-NEXT:    ret2841entry:2842  %a = call <vscale x 4 x i32> @llvm.riscv.vloxei.nxv4i32.nxv4i8(2843    <vscale x 4 x i32> poison,2844    ptr %0,2845    <vscale x 4 x i8> %1,2846    iXLen %2)2847 2848  ret <vscale x 4 x i32> %a2849}2850 2851define <vscale x 4 x i32> @intrinsic_vloxei_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 {2852; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i32_nxv4i32_nxv4i8:2853; CHECK:       # %bb.0: # %entry2854; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu2855; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t2856; CHECK-NEXT:    ret2857entry:2858  %a = call <vscale x 4 x i32> @llvm.riscv.vloxei.mask.nxv4i32.nxv4i8(2859    <vscale x 4 x i32> %0,2860    ptr %1,2861    <vscale x 4 x i8> %2,2862    <vscale x 4 x i1> %3,2863    iXLen %4, iXLen 1)2864 2865  ret <vscale x 4 x i32> %a2866}2867 2868define <vscale x 8 x i32> @intrinsic_vloxei_v_nxv8i32_nxv8i32_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {2869; CHECK-LABEL: intrinsic_vloxei_v_nxv8i32_nxv8i32_nxv8i8:2870; CHECK:       # %bb.0: # %entry2871; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma2872; CHECK-NEXT:    vmv1r.v v12, v82873; CHECK-NEXT:    vloxei8.v v8, (a0), v122874; CHECK-NEXT:    ret2875entry:2876  %a = call <vscale x 8 x i32> @llvm.riscv.vloxei.nxv8i32.nxv8i8(2877    <vscale x 8 x i32> poison,2878    ptr %0,2879    <vscale x 8 x i8> %1,2880    iXLen %2)2881 2882  ret <vscale x 8 x i32> %a2883}2884 2885define <vscale x 8 x i32> @intrinsic_vloxei_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 {2886; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i32_nxv8i32_nxv8i8:2887; CHECK:       # %bb.0: # %entry2888; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu2889; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t2890; CHECK-NEXT:    ret2891entry:2892  %a = call <vscale x 8 x i32> @llvm.riscv.vloxei.mask.nxv8i32.nxv8i8(2893    <vscale x 8 x i32> %0,2894    ptr %1,2895    <vscale x 8 x i8> %2,2896    <vscale x 8 x i1> %3,2897    iXLen %4, iXLen 1)2898 2899  ret <vscale x 8 x i32> %a2900}2901 2902define <vscale x 16 x i32> @intrinsic_vloxei_v_nxv16i32_nxv16i32_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {2903; CHECK-LABEL: intrinsic_vloxei_v_nxv16i32_nxv16i32_nxv16i8:2904; CHECK:       # %bb.0: # %entry2905; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma2906; CHECK-NEXT:    vmv2r.v v16, v82907; CHECK-NEXT:    vloxei8.v v8, (a0), v162908; CHECK-NEXT:    ret2909entry:2910  %a = call <vscale x 16 x i32> @llvm.riscv.vloxei.nxv16i32.nxv16i8(2911    <vscale x 16 x i32> poison,2912    ptr %0,2913    <vscale x 16 x i8> %1,2914    iXLen %2)2915 2916  ret <vscale x 16 x i32> %a2917}2918 2919define <vscale x 16 x i32> @intrinsic_vloxei_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 {2920; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16i32_nxv16i32_nxv16i8:2921; CHECK:       # %bb.0: # %entry2922; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu2923; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t2924; CHECK-NEXT:    ret2925entry:2926  %a = call <vscale x 16 x i32> @llvm.riscv.vloxei.mask.nxv16i32.nxv16i8(2927    <vscale x 16 x i32> %0,2928    ptr %1,2929    <vscale x 16 x i8> %2,2930    <vscale x 16 x i1> %3,2931    iXLen %4, iXLen 1)2932 2933  ret <vscale x 16 x i32> %a2934}2935 2936define <vscale x 1 x i64> @intrinsic_vloxei_v_nxv1i64_nxv1i64_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {2937; CHECK-LABEL: intrinsic_vloxei_v_nxv1i64_nxv1i64_nxv1i8:2938; CHECK:       # %bb.0: # %entry2939; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma2940; CHECK-NEXT:    vloxei8.v v9, (a0), v82941; CHECK-NEXT:    vmv.v.v v8, v92942; CHECK-NEXT:    ret2943entry:2944  %a = call <vscale x 1 x i64> @llvm.riscv.vloxei.nxv1i64.nxv1i8(2945    <vscale x 1 x i64> poison,2946    ptr %0,2947    <vscale x 1 x i8> %1,2948    iXLen %2)2949 2950  ret <vscale x 1 x i64> %a2951}2952 2953define <vscale x 1 x i64> @intrinsic_vloxei_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 {2954; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1i64_nxv1i64_nxv1i8:2955; CHECK:       # %bb.0: # %entry2956; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu2957; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t2958; CHECK-NEXT:    ret2959entry:2960  %a = call <vscale x 1 x i64> @llvm.riscv.vloxei.mask.nxv1i64.nxv1i8(2961    <vscale x 1 x i64> %0,2962    ptr %1,2963    <vscale x 1 x i8> %2,2964    <vscale x 1 x i1> %3,2965    iXLen %4, iXLen 1)2966 2967  ret <vscale x 1 x i64> %a2968}2969 2970define <vscale x 2 x i64> @intrinsic_vloxei_v_nxv2i64_nxv2i64_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {2971; CHECK-LABEL: intrinsic_vloxei_v_nxv2i64_nxv2i64_nxv2i8:2972; CHECK:       # %bb.0: # %entry2973; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma2974; CHECK-NEXT:    vmv1r.v v10, v82975; CHECK-NEXT:    vloxei8.v v8, (a0), v102976; CHECK-NEXT:    ret2977entry:2978  %a = call <vscale x 2 x i64> @llvm.riscv.vloxei.nxv2i64.nxv2i8(2979    <vscale x 2 x i64> poison,2980    ptr %0,2981    <vscale x 2 x i8> %1,2982    iXLen %2)2983 2984  ret <vscale x 2 x i64> %a2985}2986 2987define <vscale x 2 x i64> @intrinsic_vloxei_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 {2988; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2i64_nxv2i64_nxv2i8:2989; CHECK:       # %bb.0: # %entry2990; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu2991; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t2992; CHECK-NEXT:    ret2993entry:2994  %a = call <vscale x 2 x i64> @llvm.riscv.vloxei.mask.nxv2i64.nxv2i8(2995    <vscale x 2 x i64> %0,2996    ptr %1,2997    <vscale x 2 x i8> %2,2998    <vscale x 2 x i1> %3,2999    iXLen %4, iXLen 1)3000 3001  ret <vscale x 2 x i64> %a3002}3003 3004define <vscale x 4 x i64> @intrinsic_vloxei_v_nxv4i64_nxv4i64_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3005; CHECK-LABEL: intrinsic_vloxei_v_nxv4i64_nxv4i64_nxv4i8:3006; CHECK:       # %bb.0: # %entry3007; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma3008; CHECK-NEXT:    vmv1r.v v12, v83009; CHECK-NEXT:    vloxei8.v v8, (a0), v123010; CHECK-NEXT:    ret3011entry:3012  %a = call <vscale x 4 x i64> @llvm.riscv.vloxei.nxv4i64.nxv4i8(3013    <vscale x 4 x i64> poison,3014    ptr %0,3015    <vscale x 4 x i8> %1,3016    iXLen %2)3017 3018  ret <vscale x 4 x i64> %a3019}3020 3021define <vscale x 4 x i64> @intrinsic_vloxei_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 {3022; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4i64_nxv4i64_nxv4i8:3023; CHECK:       # %bb.0: # %entry3024; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu3025; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t3026; CHECK-NEXT:    ret3027entry:3028  %a = call <vscale x 4 x i64> @llvm.riscv.vloxei.mask.nxv4i64.nxv4i8(3029    <vscale x 4 x i64> %0,3030    ptr %1,3031    <vscale x 4 x i8> %2,3032    <vscale x 4 x i1> %3,3033    iXLen %4, iXLen 1)3034 3035  ret <vscale x 4 x i64> %a3036}3037 3038define <vscale x 8 x i64> @intrinsic_vloxei_v_nxv8i64_nxv8i64_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3039; CHECK-LABEL: intrinsic_vloxei_v_nxv8i64_nxv8i64_nxv8i8:3040; CHECK:       # %bb.0: # %entry3041; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma3042; CHECK-NEXT:    vmv1r.v v16, v83043; CHECK-NEXT:    vloxei8.v v8, (a0), v163044; CHECK-NEXT:    ret3045entry:3046  %a = call <vscale x 8 x i64> @llvm.riscv.vloxei.nxv8i64.nxv8i8(3047    <vscale x 8 x i64> poison,3048    ptr %0,3049    <vscale x 8 x i8> %1,3050    iXLen %2)3051 3052  ret <vscale x 8 x i64> %a3053}3054 3055define <vscale x 8 x i64> @intrinsic_vloxei_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 {3056; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8i64_nxv8i64_nxv8i8:3057; CHECK:       # %bb.0: # %entry3058; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu3059; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t3060; CHECK-NEXT:    ret3061entry:3062  %a = call <vscale x 8 x i64> @llvm.riscv.vloxei.mask.nxv8i64.nxv8i8(3063    <vscale x 8 x i64> %0,3064    ptr %1,3065    <vscale x 8 x i8> %2,3066    <vscale x 8 x i1> %3,3067    iXLen %4, iXLen 1)3068 3069  ret <vscale x 8 x i64> %a3070}3071 3072define <vscale x 1 x half> @intrinsic_vloxei_v_nxv1f16_nxv1f16_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {3073; CHECK-LABEL: intrinsic_vloxei_v_nxv1f16_nxv1f16_nxv1i8:3074; CHECK:       # %bb.0: # %entry3075; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3076; CHECK-NEXT:    vloxei8.v v9, (a0), v83077; CHECK-NEXT:    vmv1r.v v8, v93078; CHECK-NEXT:    ret3079entry:3080  %a = call <vscale x 1 x half> @llvm.riscv.vloxei.nxv1f16.nxv1i8(3081    <vscale x 1 x half> poison,3082    ptr %0,3083    <vscale x 1 x i8> %1,3084    iXLen %2)3085 3086  ret <vscale x 1 x half> %a3087}3088 3089define <vscale x 1 x half> @intrinsic_vloxei_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 {3090; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f16_nxv1f16_nxv1i8:3091; CHECK:       # %bb.0: # %entry3092; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu3093; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t3094; CHECK-NEXT:    ret3095entry:3096  %a = call <vscale x 1 x half> @llvm.riscv.vloxei.mask.nxv1f16.nxv1i8(3097    <vscale x 1 x half> %0,3098    ptr %1,3099    <vscale x 1 x i8> %2,3100    <vscale x 1 x i1> %3,3101    iXLen %4, iXLen 1)3102 3103  ret <vscale x 1 x half> %a3104}3105 3106define <vscale x 2 x half> @intrinsic_vloxei_v_nxv2f16_nxv2f16_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {3107; CHECK-LABEL: intrinsic_vloxei_v_nxv2f16_nxv2f16_nxv2i8:3108; CHECK:       # %bb.0: # %entry3109; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3110; CHECK-NEXT:    vloxei8.v v9, (a0), v83111; CHECK-NEXT:    vmv1r.v v8, v93112; CHECK-NEXT:    ret3113entry:3114  %a = call <vscale x 2 x half> @llvm.riscv.vloxei.nxv2f16.nxv2i8(3115    <vscale x 2 x half> poison,3116    ptr %0,3117    <vscale x 2 x i8> %1,3118    iXLen %2)3119 3120  ret <vscale x 2 x half> %a3121}3122 3123define <vscale x 2 x half> @intrinsic_vloxei_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 {3124; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f16_nxv2f16_nxv2i8:3125; CHECK:       # %bb.0: # %entry3126; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu3127; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t3128; CHECK-NEXT:    ret3129entry:3130  %a = call <vscale x 2 x half> @llvm.riscv.vloxei.mask.nxv2f16.nxv2i8(3131    <vscale x 2 x half> %0,3132    ptr %1,3133    <vscale x 2 x i8> %2,3134    <vscale x 2 x i1> %3,3135    iXLen %4, iXLen 1)3136 3137  ret <vscale x 2 x half> %a3138}3139 3140define <vscale x 4 x half> @intrinsic_vloxei_v_nxv4f16_nxv4f16_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3141; CHECK-LABEL: intrinsic_vloxei_v_nxv4f16_nxv4f16_nxv4i8:3142; CHECK:       # %bb.0: # %entry3143; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3144; CHECK-NEXT:    vloxei8.v v9, (a0), v83145; CHECK-NEXT:    vmv.v.v v8, v93146; CHECK-NEXT:    ret3147entry:3148  %a = call <vscale x 4 x half> @llvm.riscv.vloxei.nxv4f16.nxv4i8(3149    <vscale x 4 x half> poison,3150    ptr %0,3151    <vscale x 4 x i8> %1,3152    iXLen %2)3153 3154  ret <vscale x 4 x half> %a3155}3156 3157define <vscale x 4 x half> @intrinsic_vloxei_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 {3158; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f16_nxv4f16_nxv4i8:3159; CHECK:       # %bb.0: # %entry3160; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu3161; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t3162; CHECK-NEXT:    ret3163entry:3164  %a = call <vscale x 4 x half> @llvm.riscv.vloxei.mask.nxv4f16.nxv4i8(3165    <vscale x 4 x half> %0,3166    ptr %1,3167    <vscale x 4 x i8> %2,3168    <vscale x 4 x i1> %3,3169    iXLen %4, iXLen 1)3170 3171  ret <vscale x 4 x half> %a3172}3173 3174define <vscale x 8 x half> @intrinsic_vloxei_v_nxv8f16_nxv8f16_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3175; CHECK-LABEL: intrinsic_vloxei_v_nxv8f16_nxv8f16_nxv8i8:3176; CHECK:       # %bb.0: # %entry3177; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3178; CHECK-NEXT:    vmv1r.v v10, v83179; CHECK-NEXT:    vloxei8.v v8, (a0), v103180; CHECK-NEXT:    ret3181entry:3182  %a = call <vscale x 8 x half> @llvm.riscv.vloxei.nxv8f16.nxv8i8(3183    <vscale x 8 x half> poison,3184    ptr %0,3185    <vscale x 8 x i8> %1,3186    iXLen %2)3187 3188  ret <vscale x 8 x half> %a3189}3190 3191define <vscale x 8 x half> @intrinsic_vloxei_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 {3192; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f16_nxv8f16_nxv8i8:3193; CHECK:       # %bb.0: # %entry3194; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu3195; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t3196; CHECK-NEXT:    ret3197entry:3198  %a = call <vscale x 8 x half> @llvm.riscv.vloxei.mask.nxv8f16.nxv8i8(3199    <vscale x 8 x half> %0,3200    ptr %1,3201    <vscale x 8 x i8> %2,3202    <vscale x 8 x i1> %3,3203    iXLen %4, iXLen 1)3204 3205  ret <vscale x 8 x half> %a3206}3207 3208define <vscale x 16 x half> @intrinsic_vloxei_v_nxv16f16_nxv16f16_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {3209; CHECK-LABEL: intrinsic_vloxei_v_nxv16f16_nxv16f16_nxv16i8:3210; CHECK:       # %bb.0: # %entry3211; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma3212; CHECK-NEXT:    vmv2r.v v12, v83213; CHECK-NEXT:    vloxei8.v v8, (a0), v123214; CHECK-NEXT:    ret3215entry:3216  %a = call <vscale x 16 x half> @llvm.riscv.vloxei.nxv16f16.nxv16i8(3217    <vscale x 16 x half> poison,3218    ptr %0,3219    <vscale x 16 x i8> %1,3220    iXLen %2)3221 3222  ret <vscale x 16 x half> %a3223}3224 3225define <vscale x 16 x half> @intrinsic_vloxei_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 {3226; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16f16_nxv16f16_nxv16i8:3227; CHECK:       # %bb.0: # %entry3228; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu3229; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t3230; CHECK-NEXT:    ret3231entry:3232  %a = call <vscale x 16 x half> @llvm.riscv.vloxei.mask.nxv16f16.nxv16i8(3233    <vscale x 16 x half> %0,3234    ptr %1,3235    <vscale x 16 x i8> %2,3236    <vscale x 16 x i1> %3,3237    iXLen %4, iXLen 1)3238 3239  ret <vscale x 16 x half> %a3240}3241 3242define <vscale x 32 x half> @intrinsic_vloxei_v_nxv32f16_nxv32f16_nxv32i8(ptr %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {3243; CHECK-LABEL: intrinsic_vloxei_v_nxv32f16_nxv32f16_nxv32i8:3244; CHECK:       # %bb.0: # %entry3245; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma3246; CHECK-NEXT:    vmv4r.v v16, v83247; CHECK-NEXT:    vloxei8.v v8, (a0), v163248; CHECK-NEXT:    ret3249entry:3250  %a = call <vscale x 32 x half> @llvm.riscv.vloxei.nxv32f16.nxv32i8(3251    <vscale x 32 x half> poison,3252    ptr %0,3253    <vscale x 32 x i8> %1,3254    iXLen %2)3255 3256  ret <vscale x 32 x half> %a3257}3258 3259define <vscale x 32 x half> @intrinsic_vloxei_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 {3260; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv32f16_nxv32f16_nxv32i8:3261; CHECK:       # %bb.0: # %entry3262; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu3263; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t3264; CHECK-NEXT:    ret3265entry:3266  %a = call <vscale x 32 x half> @llvm.riscv.vloxei.mask.nxv32f16.nxv32i8(3267    <vscale x 32 x half> %0,3268    ptr %1,3269    <vscale x 32 x i8> %2,3270    <vscale x 32 x i1> %3,3271    iXLen %4, iXLen 1)3272 3273  ret <vscale x 32 x half> %a3274}3275 3276define <vscale x 1 x bfloat> @intrinsic_vloxei_v_nxv1bf16_nxv1bf16_nxv1i32(ptr %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {3277; CHECK-LABEL: intrinsic_vloxei_v_nxv1bf16_nxv1bf16_nxv1i32:3278; CHECK:       # %bb.0: # %entry3279; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3280; CHECK-NEXT:    vloxei32.v v9, (a0), v83281; CHECK-NEXT:    vmv1r.v v8, v93282; CHECK-NEXT:    ret3283entry:3284  %a = call <vscale x 1 x bfloat> @llvm.riscv.vloxei.nxv1bf16.nxv1i32(3285    <vscale x 1 x bfloat> poison,3286    ptr %0,3287    <vscale x 1 x i32> %1,3288    iXLen %2)3289 3290  ret <vscale x 1 x bfloat> %a3291}3292 3293define <vscale x 1 x bfloat> @intrinsic_vloxei_mask_v_nxv1bf16_nxv1bf16_nxv1i32(<vscale x 1 x bfloat> %0, ptr %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {3294; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1bf16_nxv1bf16_nxv1i32:3295; CHECK:       # %bb.0: # %entry3296; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu3297; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t3298; CHECK-NEXT:    ret3299entry:3300  %a = call <vscale x 1 x bfloat> @llvm.riscv.vloxei.mask.nxv1bf16.nxv1i32(3301    <vscale x 1 x bfloat> %0,3302    ptr %1,3303    <vscale x 1 x i32> %2,3304    <vscale x 1 x i1> %3,3305    iXLen %4, iXLen 1)3306 3307  ret <vscale x 1 x bfloat> %a3308}3309 3310define <vscale x 2 x bfloat> @intrinsic_vloxei_v_nxv2bf16_nxv2bf16_nxv2i32(ptr %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {3311; CHECK-LABEL: intrinsic_vloxei_v_nxv2bf16_nxv2bf16_nxv2i32:3312; CHECK:       # %bb.0: # %entry3313; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3314; CHECK-NEXT:    vloxei32.v v9, (a0), v83315; CHECK-NEXT:    vmv1r.v v8, v93316; CHECK-NEXT:    ret3317entry:3318  %a = call <vscale x 2 x bfloat> @llvm.riscv.vloxei.nxv2bf16.nxv2i32(3319    <vscale x 2 x bfloat> poison,3320    ptr %0,3321    <vscale x 2 x i32> %1,3322    iXLen %2)3323 3324  ret <vscale x 2 x bfloat> %a3325}3326 3327define <vscale x 2 x bfloat> @intrinsic_vloxei_mask_v_nxv2bf16_nxv2bf16_nxv2i32(<vscale x 2 x bfloat> %0, ptr %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {3328; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2bf16_nxv2bf16_nxv2i32:3329; CHECK:       # %bb.0: # %entry3330; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu3331; CHECK-NEXT:    vloxei32.v v8, (a0), v9, v0.t3332; CHECK-NEXT:    ret3333entry:3334  %a = call <vscale x 2 x bfloat> @llvm.riscv.vloxei.mask.nxv2bf16.nxv2i32(3335    <vscale x 2 x bfloat> %0,3336    ptr %1,3337    <vscale x 2 x i32> %2,3338    <vscale x 2 x i1> %3,3339    iXLen %4, iXLen 1)3340 3341  ret <vscale x 2 x bfloat> %a3342}3343 3344define <vscale x 4 x bfloat> @intrinsic_vloxei_v_nxv4bf16_nxv4bf16_nxv4i32(ptr %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {3345; CHECK-LABEL: intrinsic_vloxei_v_nxv4bf16_nxv4bf16_nxv4i32:3346; CHECK:       # %bb.0: # %entry3347; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3348; CHECK-NEXT:    vloxei32.v v10, (a0), v83349; CHECK-NEXT:    vmv.v.v v8, v103350; CHECK-NEXT:    ret3351entry:3352  %a = call <vscale x 4 x bfloat> @llvm.riscv.vloxei.nxv4bf16.nxv4i32(3353    <vscale x 4 x bfloat> poison,3354    ptr %0,3355    <vscale x 4 x i32> %1,3356    iXLen %2)3357 3358  ret <vscale x 4 x bfloat> %a3359}3360 3361define <vscale x 4 x bfloat> @intrinsic_vloxei_mask_v_nxv4bf16_nxv4bf16_nxv4i32(<vscale x 4 x bfloat> %0, ptr %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {3362; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4bf16_nxv4bf16_nxv4i32:3363; CHECK:       # %bb.0: # %entry3364; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu3365; CHECK-NEXT:    vloxei32.v v8, (a0), v10, v0.t3366; CHECK-NEXT:    ret3367entry:3368  %a = call <vscale x 4 x bfloat> @llvm.riscv.vloxei.mask.nxv4bf16.nxv4i32(3369    <vscale x 4 x bfloat> %0,3370    ptr %1,3371    <vscale x 4 x i32> %2,3372    <vscale x 4 x i1> %3,3373    iXLen %4, iXLen 1)3374 3375  ret <vscale x 4 x bfloat> %a3376}3377 3378define <vscale x 8 x bfloat> @intrinsic_vloxei_v_nxv8bf16_nxv8bf16_nxv8i32(ptr %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {3379; CHECK-LABEL: intrinsic_vloxei_v_nxv8bf16_nxv8bf16_nxv8i32:3380; CHECK:       # %bb.0: # %entry3381; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3382; CHECK-NEXT:    vloxei32.v v12, (a0), v83383; CHECK-NEXT:    vmv.v.v v8, v123384; CHECK-NEXT:    ret3385entry:3386  %a = call <vscale x 8 x bfloat> @llvm.riscv.vloxei.nxv8bf16.nxv8i32(3387    <vscale x 8 x bfloat> poison,3388    ptr %0,3389    <vscale x 8 x i32> %1,3390    iXLen %2)3391 3392  ret <vscale x 8 x bfloat> %a3393}3394 3395define <vscale x 8 x bfloat> @intrinsic_vloxei_mask_v_nxv8bf16_nxv8bf16_nxv8i32(<vscale x 8 x bfloat> %0, ptr %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {3396; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8bf16_nxv8bf16_nxv8i32:3397; CHECK:       # %bb.0: # %entry3398; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu3399; CHECK-NEXT:    vloxei32.v v8, (a0), v12, v0.t3400; CHECK-NEXT:    ret3401entry:3402  %a = call <vscale x 8 x bfloat> @llvm.riscv.vloxei.mask.nxv8bf16.nxv8i32(3403    <vscale x 8 x bfloat> %0,3404    ptr %1,3405    <vscale x 8 x i32> %2,3406    <vscale x 8 x i1> %3,3407    iXLen %4, iXLen 1)3408 3409  ret <vscale x 8 x bfloat> %a3410}3411 3412define <vscale x 16 x bfloat> @intrinsic_vloxei_v_nxv16bf16_nxv16bf16_nxv16i32(ptr %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {3413; CHECK-LABEL: intrinsic_vloxei_v_nxv16bf16_nxv16bf16_nxv16i32:3414; CHECK:       # %bb.0: # %entry3415; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma3416; CHECK-NEXT:    vloxei32.v v16, (a0), v83417; CHECK-NEXT:    vmv.v.v v8, v163418; CHECK-NEXT:    ret3419entry:3420  %a = call <vscale x 16 x bfloat> @llvm.riscv.vloxei.nxv16bf16.nxv16i32(3421    <vscale x 16 x bfloat> poison,3422    ptr %0,3423    <vscale x 16 x i32> %1,3424    iXLen %2)3425 3426  ret <vscale x 16 x bfloat> %a3427}3428 3429define <vscale x 16 x bfloat> @intrinsic_vloxei_mask_v_nxv16bf16_nxv16bf16_nxv16i32(<vscale x 16 x bfloat> %0, ptr %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {3430; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16bf16_nxv16bf16_nxv16i32:3431; CHECK:       # %bb.0: # %entry3432; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu3433; CHECK-NEXT:    vloxei32.v v8, (a0), v16, v0.t3434; CHECK-NEXT:    ret3435entry:3436  %a = call <vscale x 16 x bfloat> @llvm.riscv.vloxei.mask.nxv16bf16.nxv16i32(3437    <vscale x 16 x bfloat> %0,3438    ptr %1,3439    <vscale x 16 x i32> %2,3440    <vscale x 16 x i1> %3,3441    iXLen %4, iXLen 1)3442 3443  ret <vscale x 16 x bfloat> %a3444}3445 3446define <vscale x 1 x float> @intrinsic_vloxei_v_nxv1f32_nxv1f32_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {3447; CHECK-LABEL: intrinsic_vloxei_v_nxv1f32_nxv1f32_nxv1i8:3448; CHECK:       # %bb.0: # %entry3449; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma3450; CHECK-NEXT:    vloxei8.v v9, (a0), v83451; CHECK-NEXT:    vmv1r.v v8, v93452; CHECK-NEXT:    ret3453entry:3454  %a = call <vscale x 1 x float> @llvm.riscv.vloxei.nxv1f32.nxv1i8(3455    <vscale x 1 x float> poison,3456    ptr %0,3457    <vscale x 1 x i8> %1,3458    iXLen %2)3459 3460  ret <vscale x 1 x float> %a3461}3462 3463define <vscale x 1 x float> @intrinsic_vloxei_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 {3464; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f32_nxv1f32_nxv1i8:3465; CHECK:       # %bb.0: # %entry3466; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu3467; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t3468; CHECK-NEXT:    ret3469entry:3470  %a = call <vscale x 1 x float> @llvm.riscv.vloxei.mask.nxv1f32.nxv1i8(3471    <vscale x 1 x float> %0,3472    ptr %1,3473    <vscale x 1 x i8> %2,3474    <vscale x 1 x i1> %3,3475    iXLen %4, iXLen 1)3476 3477  ret <vscale x 1 x float> %a3478}3479 3480define <vscale x 2 x float> @intrinsic_vloxei_v_nxv2f32_nxv2f32_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {3481; CHECK-LABEL: intrinsic_vloxei_v_nxv2f32_nxv2f32_nxv2i8:3482; CHECK:       # %bb.0: # %entry3483; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma3484; CHECK-NEXT:    vloxei8.v v9, (a0), v83485; CHECK-NEXT:    vmv.v.v v8, v93486; CHECK-NEXT:    ret3487entry:3488  %a = call <vscale x 2 x float> @llvm.riscv.vloxei.nxv2f32.nxv2i8(3489    <vscale x 2 x float> poison,3490    ptr %0,3491    <vscale x 2 x i8> %1,3492    iXLen %2)3493 3494  ret <vscale x 2 x float> %a3495}3496 3497define <vscale x 2 x float> @intrinsic_vloxei_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 {3498; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f32_nxv2f32_nxv2i8:3499; CHECK:       # %bb.0: # %entry3500; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu3501; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t3502; CHECK-NEXT:    ret3503entry:3504  %a = call <vscale x 2 x float> @llvm.riscv.vloxei.mask.nxv2f32.nxv2i8(3505    <vscale x 2 x float> %0,3506    ptr %1,3507    <vscale x 2 x i8> %2,3508    <vscale x 2 x i1> %3,3509    iXLen %4, iXLen 1)3510 3511  ret <vscale x 2 x float> %a3512}3513 3514define <vscale x 4 x float> @intrinsic_vloxei_v_nxv4f32_nxv4f32_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3515; CHECK-LABEL: intrinsic_vloxei_v_nxv4f32_nxv4f32_nxv4i8:3516; CHECK:       # %bb.0: # %entry3517; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma3518; CHECK-NEXT:    vmv1r.v v10, v83519; CHECK-NEXT:    vloxei8.v v8, (a0), v103520; CHECK-NEXT:    ret3521entry:3522  %a = call <vscale x 4 x float> @llvm.riscv.vloxei.nxv4f32.nxv4i8(3523    <vscale x 4 x float> poison,3524    ptr %0,3525    <vscale x 4 x i8> %1,3526    iXLen %2)3527 3528  ret <vscale x 4 x float> %a3529}3530 3531define <vscale x 4 x float> @intrinsic_vloxei_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 {3532; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f32_nxv4f32_nxv4i8:3533; CHECK:       # %bb.0: # %entry3534; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu3535; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t3536; CHECK-NEXT:    ret3537entry:3538  %a = call <vscale x 4 x float> @llvm.riscv.vloxei.mask.nxv4f32.nxv4i8(3539    <vscale x 4 x float> %0,3540    ptr %1,3541    <vscale x 4 x i8> %2,3542    <vscale x 4 x i1> %3,3543    iXLen %4, iXLen 1)3544 3545  ret <vscale x 4 x float> %a3546}3547 3548define <vscale x 8 x float> @intrinsic_vloxei_v_nxv8f32_nxv8f32_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3549; CHECK-LABEL: intrinsic_vloxei_v_nxv8f32_nxv8f32_nxv8i8:3550; CHECK:       # %bb.0: # %entry3551; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma3552; CHECK-NEXT:    vmv1r.v v12, v83553; CHECK-NEXT:    vloxei8.v v8, (a0), v123554; CHECK-NEXT:    ret3555entry:3556  %a = call <vscale x 8 x float> @llvm.riscv.vloxei.nxv8f32.nxv8i8(3557    <vscale x 8 x float> poison,3558    ptr %0,3559    <vscale x 8 x i8> %1,3560    iXLen %2)3561 3562  ret <vscale x 8 x float> %a3563}3564 3565define <vscale x 8 x float> @intrinsic_vloxei_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 {3566; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f32_nxv8f32_nxv8i8:3567; CHECK:       # %bb.0: # %entry3568; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu3569; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t3570; CHECK-NEXT:    ret3571entry:3572  %a = call <vscale x 8 x float> @llvm.riscv.vloxei.mask.nxv8f32.nxv8i8(3573    <vscale x 8 x float> %0,3574    ptr %1,3575    <vscale x 8 x i8> %2,3576    <vscale x 8 x i1> %3,3577    iXLen %4, iXLen 1)3578 3579  ret <vscale x 8 x float> %a3580}3581 3582define <vscale x 16 x float> @intrinsic_vloxei_v_nxv16f32_nxv16f32_nxv16i8(ptr %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {3583; CHECK-LABEL: intrinsic_vloxei_v_nxv16f32_nxv16f32_nxv16i8:3584; CHECK:       # %bb.0: # %entry3585; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma3586; CHECK-NEXT:    vmv2r.v v16, v83587; CHECK-NEXT:    vloxei8.v v8, (a0), v163588; CHECK-NEXT:    ret3589entry:3590  %a = call <vscale x 16 x float> @llvm.riscv.vloxei.nxv16f32.nxv16i8(3591    <vscale x 16 x float> poison,3592    ptr %0,3593    <vscale x 16 x i8> %1,3594    iXLen %2)3595 3596  ret <vscale x 16 x float> %a3597}3598 3599define <vscale x 16 x float> @intrinsic_vloxei_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 {3600; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv16f32_nxv16f32_nxv16i8:3601; CHECK:       # %bb.0: # %entry3602; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu3603; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t3604; CHECK-NEXT:    ret3605entry:3606  %a = call <vscale x 16 x float> @llvm.riscv.vloxei.mask.nxv16f32.nxv16i8(3607    <vscale x 16 x float> %0,3608    ptr %1,3609    <vscale x 16 x i8> %2,3610    <vscale x 16 x i1> %3,3611    iXLen %4, iXLen 1)3612 3613  ret <vscale x 16 x float> %a3614}3615 3616define <vscale x 1 x double> @intrinsic_vloxei_v_nxv1f64_nxv1f64_nxv1i8(ptr %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {3617; CHECK-LABEL: intrinsic_vloxei_v_nxv1f64_nxv1f64_nxv1i8:3618; CHECK:       # %bb.0: # %entry3619; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3620; CHECK-NEXT:    vloxei8.v v9, (a0), v83621; CHECK-NEXT:    vmv.v.v v8, v93622; CHECK-NEXT:    ret3623entry:3624  %a = call <vscale x 1 x double> @llvm.riscv.vloxei.nxv1f64.nxv1i8(3625    <vscale x 1 x double> poison,3626    ptr %0,3627    <vscale x 1 x i8> %1,3628    iXLen %2)3629 3630  ret <vscale x 1 x double> %a3631}3632 3633define <vscale x 1 x double> @intrinsic_vloxei_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 {3634; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv1f64_nxv1f64_nxv1i8:3635; CHECK:       # %bb.0: # %entry3636; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu3637; CHECK-NEXT:    vloxei8.v v8, (a0), v9, v0.t3638; CHECK-NEXT:    ret3639entry:3640  %a = call <vscale x 1 x double> @llvm.riscv.vloxei.mask.nxv1f64.nxv1i8(3641    <vscale x 1 x double> %0,3642    ptr %1,3643    <vscale x 1 x i8> %2,3644    <vscale x 1 x i1> %3,3645    iXLen %4, iXLen 1)3646 3647  ret <vscale x 1 x double> %a3648}3649 3650define <vscale x 2 x double> @intrinsic_vloxei_v_nxv2f64_nxv2f64_nxv2i8(ptr %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {3651; CHECK-LABEL: intrinsic_vloxei_v_nxv2f64_nxv2f64_nxv2i8:3652; CHECK:       # %bb.0: # %entry3653; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma3654; CHECK-NEXT:    vmv1r.v v10, v83655; CHECK-NEXT:    vloxei8.v v8, (a0), v103656; CHECK-NEXT:    ret3657entry:3658  %a = call <vscale x 2 x double> @llvm.riscv.vloxei.nxv2f64.nxv2i8(3659    <vscale x 2 x double> poison,3660    ptr %0,3661    <vscale x 2 x i8> %1,3662    iXLen %2)3663 3664  ret <vscale x 2 x double> %a3665}3666 3667define <vscale x 2 x double> @intrinsic_vloxei_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 {3668; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv2f64_nxv2f64_nxv2i8:3669; CHECK:       # %bb.0: # %entry3670; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu3671; CHECK-NEXT:    vloxei8.v v8, (a0), v10, v0.t3672; CHECK-NEXT:    ret3673entry:3674  %a = call <vscale x 2 x double> @llvm.riscv.vloxei.mask.nxv2f64.nxv2i8(3675    <vscale x 2 x double> %0,3676    ptr %1,3677    <vscale x 2 x i8> %2,3678    <vscale x 2 x i1> %3,3679    iXLen %4, iXLen 1)3680 3681  ret <vscale x 2 x double> %a3682}3683 3684define <vscale x 4 x double> @intrinsic_vloxei_v_nxv4f64_nxv4f64_nxv4i8(ptr %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {3685; CHECK-LABEL: intrinsic_vloxei_v_nxv4f64_nxv4f64_nxv4i8:3686; CHECK:       # %bb.0: # %entry3687; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma3688; CHECK-NEXT:    vmv1r.v v12, v83689; CHECK-NEXT:    vloxei8.v v8, (a0), v123690; CHECK-NEXT:    ret3691entry:3692  %a = call <vscale x 4 x double> @llvm.riscv.vloxei.nxv4f64.nxv4i8(3693    <vscale x 4 x double> poison,3694    ptr %0,3695    <vscale x 4 x i8> %1,3696    iXLen %2)3697 3698  ret <vscale x 4 x double> %a3699}3700 3701define <vscale x 4 x double> @intrinsic_vloxei_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 {3702; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv4f64_nxv4f64_nxv4i8:3703; CHECK:       # %bb.0: # %entry3704; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu3705; CHECK-NEXT:    vloxei8.v v8, (a0), v12, v0.t3706; CHECK-NEXT:    ret3707entry:3708  %a = call <vscale x 4 x double> @llvm.riscv.vloxei.mask.nxv4f64.nxv4i8(3709    <vscale x 4 x double> %0,3710    ptr %1,3711    <vscale x 4 x i8> %2,3712    <vscale x 4 x i1> %3,3713    iXLen %4, iXLen 1)3714 3715  ret <vscale x 4 x double> %a3716}3717 3718define <vscale x 8 x double> @intrinsic_vloxei_v_nxv8f64_nxv8f64_nxv8i8(ptr %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {3719; CHECK-LABEL: intrinsic_vloxei_v_nxv8f64_nxv8f64_nxv8i8:3720; CHECK:       # %bb.0: # %entry3721; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma3722; CHECK-NEXT:    vmv1r.v v16, v83723; CHECK-NEXT:    vloxei8.v v8, (a0), v163724; CHECK-NEXT:    ret3725entry:3726  %a = call <vscale x 8 x double> @llvm.riscv.vloxei.nxv8f64.nxv8i8(3727    <vscale x 8 x double> poison,3728    ptr %0,3729    <vscale x 8 x i8> %1,3730    iXLen %2)3731 3732  ret <vscale x 8 x double> %a3733}3734 3735define <vscale x 8 x double> @intrinsic_vloxei_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 {3736; CHECK-LABEL: intrinsic_vloxei_mask_v_nxv8f64_nxv8f64_nxv8i8:3737; CHECK:       # %bb.0: # %entry3738; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu3739; CHECK-NEXT:    vloxei8.v v8, (a0), v16, v0.t3740; CHECK-NEXT:    ret3741entry:3742  %a = call <vscale x 8 x double> @llvm.riscv.vloxei.mask.nxv8f64.nxv8i8(3743    <vscale x 8 x double> %0,3744    ptr %1,3745    <vscale x 8 x i8> %2,3746    <vscale x 8 x i1> %3,3747    iXLen %4, iXLen 1)3748 3749  ret <vscale x 8 x double> %a3750}3751