brintos

brintos / llvm-project-archived public Read only

0
0
Text · 31.7 KiB · 0c4afaf Raw
950 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -mattr=+v,+zvfhmin,+zvfbfmin -global-isel -verify-machineinstrs \3; RUN:   < %s | FileCheck %s4 5; The intrinsics are not supported with RV32.6 7define <vscale x 1 x i8> @intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {8; CHECK-LABEL: intrinsic_vluxei_v_nxv1i8_nxv1i8_nxv1i64:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma11; CHECK-NEXT:    vluxei64.v v9, (a0), v812; CHECK-NEXT:    vmv1r.v v8, v913; CHECK-NEXT:    ret14entry:15  %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.nxv1i8.nxv1i64(16    <vscale x 1 x i8> poison,17    ptr %0,18    <vscale x 1 x i64> %1,19    i64 %2)20 21  ret <vscale x 1 x i8> %a22}23 24define <vscale x 1 x i8> @intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i64(<vscale x 1 x i8> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {25; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i8_nxv1i8_nxv1i64:26; CHECK:       # %bb.0: # %entry27; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu28; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t29; CHECK-NEXT:    ret30entry:31  %a = call <vscale x 1 x i8> @llvm.riscv.vluxei.mask.nxv1i8.nxv1i64(32    <vscale x 1 x i8> %0,33    ptr %1,34    <vscale x 1 x i64> %2,35    <vscale x 1 x i1> %3,36    i64 %4, i64 1)37 38  ret <vscale x 1 x i8> %a39}40 41define <vscale x 2 x i8> @intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {42; CHECK-LABEL: intrinsic_vluxei_v_nxv2i8_nxv2i8_nxv2i64:43; CHECK:       # %bb.0: # %entry44; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma45; CHECK-NEXT:    vluxei64.v v10, (a0), v846; CHECK-NEXT:    vmv1r.v v8, v1047; CHECK-NEXT:    ret48entry:49  %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.nxv2i8.nxv2i64(50    <vscale x 2 x i8> poison,51    ptr %0,52    <vscale x 2 x i64> %1,53    i64 %2)54 55  ret <vscale x 2 x i8> %a56}57 58define <vscale x 2 x i8> @intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i64(<vscale x 2 x i8> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {59; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i8_nxv2i8_nxv2i64:60; CHECK:       # %bb.0: # %entry61; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu62; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t63; CHECK-NEXT:    ret64entry:65  %a = call <vscale x 2 x i8> @llvm.riscv.vluxei.mask.nxv2i8.nxv2i64(66    <vscale x 2 x i8> %0,67    ptr %1,68    <vscale x 2 x i64> %2,69    <vscale x 2 x i1> %3,70    i64 %4, i64 1)71 72  ret <vscale x 2 x i8> %a73}74 75define <vscale x 4 x i8> @intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {76; CHECK-LABEL: intrinsic_vluxei_v_nxv4i8_nxv4i8_nxv4i64:77; CHECK:       # %bb.0: # %entry78; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma79; CHECK-NEXT:    vluxei64.v v12, (a0), v880; CHECK-NEXT:    vmv1r.v v8, v1281; CHECK-NEXT:    ret82entry:83  %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.nxv4i8.nxv4i64(84    <vscale x 4 x i8> poison,85    ptr %0,86    <vscale x 4 x i64> %1,87    i64 %2)88 89  ret <vscale x 4 x i8> %a90}91 92define <vscale x 4 x i8> @intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i64(<vscale x 4 x i8> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {93; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i8_nxv4i8_nxv4i64:94; CHECK:       # %bb.0: # %entry95; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu96; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t97; CHECK-NEXT:    ret98entry:99  %a = call <vscale x 4 x i8> @llvm.riscv.vluxei.mask.nxv4i8.nxv4i64(100    <vscale x 4 x i8> %0,101    ptr %1,102    <vscale x 4 x i64> %2,103    <vscale x 4 x i1> %3,104    i64 %4, i64 1)105 106  ret <vscale x 4 x i8> %a107}108 109define <vscale x 8 x i8> @intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {110; CHECK-LABEL: intrinsic_vluxei_v_nxv8i8_nxv8i8_nxv8i64:111; CHECK:       # %bb.0: # %entry112; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma113; CHECK-NEXT:    vluxei64.v v16, (a0), v8114; CHECK-NEXT:    vmv.v.v v8, v16115; CHECK-NEXT:    ret116entry:117  %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.nxv8i8.nxv8i64(118    <vscale x 8 x i8> poison,119    ptr %0,120    <vscale x 8 x i64> %1,121    i64 %2)122 123  ret <vscale x 8 x i8> %a124}125 126define <vscale x 8 x i8> @intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i64(<vscale x 8 x i8> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {127; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i8_nxv8i8_nxv8i64:128; CHECK:       # %bb.0: # %entry129; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu130; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t131; CHECK-NEXT:    ret132entry:133  %a = call <vscale x 8 x i8> @llvm.riscv.vluxei.mask.nxv8i8.nxv8i64(134    <vscale x 8 x i8> %0,135    ptr %1,136    <vscale x 8 x i64> %2,137    <vscale x 8 x i1> %3,138    i64 %4, i64 1)139 140  ret <vscale x 8 x i8> %a141}142 143define <vscale x 1 x i16> @intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {144; CHECK-LABEL: intrinsic_vluxei_v_nxv1i16_nxv1i16_nxv1i64:145; CHECK:       # %bb.0: # %entry146; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma147; CHECK-NEXT:    vluxei64.v v9, (a0), v8148; CHECK-NEXT:    vmv1r.v v8, v9149; CHECK-NEXT:    ret150entry:151  %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.nxv1i16.nxv1i64(152    <vscale x 1 x i16> poison,153    ptr %0,154    <vscale x 1 x i64> %1,155    i64 %2)156 157  ret <vscale x 1 x i16> %a158}159 160define <vscale x 1 x i16> @intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i64(<vscale x 1 x i16> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {161; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i16_nxv1i16_nxv1i64:162; CHECK:       # %bb.0: # %entry163; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu164; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t165; CHECK-NEXT:    ret166entry:167  %a = call <vscale x 1 x i16> @llvm.riscv.vluxei.mask.nxv1i16.nxv1i64(168    <vscale x 1 x i16> %0,169    ptr %1,170    <vscale x 1 x i64> %2,171    <vscale x 1 x i1> %3,172    i64 %4, i64 1)173 174  ret <vscale x 1 x i16> %a175}176 177define <vscale x 2 x i16> @intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {178; CHECK-LABEL: intrinsic_vluxei_v_nxv2i16_nxv2i16_nxv2i64:179; CHECK:       # %bb.0: # %entry180; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma181; CHECK-NEXT:    vluxei64.v v10, (a0), v8182; CHECK-NEXT:    vmv1r.v v8, v10183; CHECK-NEXT:    ret184entry:185  %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.nxv2i16.nxv2i64(186    <vscale x 2 x i16> poison,187    ptr %0,188    <vscale x 2 x i64> %1,189    i64 %2)190 191  ret <vscale x 2 x i16> %a192}193 194define <vscale x 2 x i16> @intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i64(<vscale x 2 x i16> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {195; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i16_nxv2i16_nxv2i64:196; CHECK:       # %bb.0: # %entry197; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu198; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t199; CHECK-NEXT:    ret200entry:201  %a = call <vscale x 2 x i16> @llvm.riscv.vluxei.mask.nxv2i16.nxv2i64(202    <vscale x 2 x i16> %0,203    ptr %1,204    <vscale x 2 x i64> %2,205    <vscale x 2 x i1> %3,206    i64 %4, i64 1)207 208  ret <vscale x 2 x i16> %a209}210 211define <vscale x 4 x i16> @intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {212; CHECK-LABEL: intrinsic_vluxei_v_nxv4i16_nxv4i16_nxv4i64:213; CHECK:       # %bb.0: # %entry214; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma215; CHECK-NEXT:    vluxei64.v v12, (a0), v8216; CHECK-NEXT:    vmv.v.v v8, v12217; CHECK-NEXT:    ret218entry:219  %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.nxv4i16.nxv4i64(220    <vscale x 4 x i16> poison,221    ptr %0,222    <vscale x 4 x i64> %1,223    i64 %2)224 225  ret <vscale x 4 x i16> %a226}227 228define <vscale x 4 x i16> @intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i64(<vscale x 4 x i16> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {229; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i16_nxv4i16_nxv4i64:230; CHECK:       # %bb.0: # %entry231; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu232; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t233; CHECK-NEXT:    ret234entry:235  %a = call <vscale x 4 x i16> @llvm.riscv.vluxei.mask.nxv4i16.nxv4i64(236    <vscale x 4 x i16> %0,237    ptr %1,238    <vscale x 4 x i64> %2,239    <vscale x 4 x i1> %3,240    i64 %4, i64 1)241 242  ret <vscale x 4 x i16> %a243}244 245define <vscale x 8 x i16> @intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {246; CHECK-LABEL: intrinsic_vluxei_v_nxv8i16_nxv8i16_nxv8i64:247; CHECK:       # %bb.0: # %entry248; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma249; CHECK-NEXT:    vluxei64.v v16, (a0), v8250; CHECK-NEXT:    vmv.v.v v8, v16251; CHECK-NEXT:    ret252entry:253  %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.nxv8i16.nxv8i64(254    <vscale x 8 x i16> poison,255    ptr %0,256    <vscale x 8 x i64> %1,257    i64 %2)258 259  ret <vscale x 8 x i16> %a260}261 262define <vscale x 8 x i16> @intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i64(<vscale x 8 x i16> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {263; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i16_nxv8i16_nxv8i64:264; CHECK:       # %bb.0: # %entry265; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu266; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t267; CHECK-NEXT:    ret268entry:269  %a = call <vscale x 8 x i16> @llvm.riscv.vluxei.mask.nxv8i16.nxv8i64(270    <vscale x 8 x i16> %0,271    ptr %1,272    <vscale x 8 x i64> %2,273    <vscale x 8 x i1> %3,274    i64 %4, i64 1)275 276  ret <vscale x 8 x i16> %a277}278 279define <vscale x 1 x i32> @intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {280; CHECK-LABEL: intrinsic_vluxei_v_nxv1i32_nxv1i32_nxv1i64:281; CHECK:       # %bb.0: # %entry282; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma283; CHECK-NEXT:    vluxei64.v v9, (a0), v8284; CHECK-NEXT:    vmv1r.v v8, v9285; CHECK-NEXT:    ret286entry:287  %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.nxv1i32.nxv1i64(288    <vscale x 1 x i32> poison,289    ptr %0,290    <vscale x 1 x i64> %1,291    i64 %2)292 293  ret <vscale x 1 x i32> %a294}295 296define <vscale x 1 x i32> @intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i64(<vscale x 1 x i32> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {297; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i32_nxv1i32_nxv1i64:298; CHECK:       # %bb.0: # %entry299; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu300; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t301; CHECK-NEXT:    ret302entry:303  %a = call <vscale x 1 x i32> @llvm.riscv.vluxei.mask.nxv1i32.nxv1i64(304    <vscale x 1 x i32> %0,305    ptr %1,306    <vscale x 1 x i64> %2,307    <vscale x 1 x i1> %3,308    i64 %4, i64 1)309 310  ret <vscale x 1 x i32> %a311}312 313define <vscale x 2 x i32> @intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {314; CHECK-LABEL: intrinsic_vluxei_v_nxv2i32_nxv2i32_nxv2i64:315; CHECK:       # %bb.0: # %entry316; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma317; CHECK-NEXT:    vluxei64.v v10, (a0), v8318; CHECK-NEXT:    vmv.v.v v8, v10319; CHECK-NEXT:    ret320entry:321  %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.nxv2i32.nxv2i64(322    <vscale x 2 x i32> poison,323    ptr %0,324    <vscale x 2 x i64> %1,325    i64 %2)326 327  ret <vscale x 2 x i32> %a328}329 330define <vscale x 2 x i32> @intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i64(<vscale x 2 x i32> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {331; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i32_nxv2i32_nxv2i64:332; CHECK:       # %bb.0: # %entry333; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu334; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t335; CHECK-NEXT:    ret336entry:337  %a = call <vscale x 2 x i32> @llvm.riscv.vluxei.mask.nxv2i32.nxv2i64(338    <vscale x 2 x i32> %0,339    ptr %1,340    <vscale x 2 x i64> %2,341    <vscale x 2 x i1> %3,342    i64 %4, i64 1)343 344  ret <vscale x 2 x i32> %a345}346 347define <vscale x 4 x i32> @intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {348; CHECK-LABEL: intrinsic_vluxei_v_nxv4i32_nxv4i32_nxv4i64:349; CHECK:       # %bb.0: # %entry350; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma351; CHECK-NEXT:    vluxei64.v v12, (a0), v8352; CHECK-NEXT:    vmv.v.v v8, v12353; CHECK-NEXT:    ret354entry:355  %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.nxv4i32.nxv4i64(356    <vscale x 4 x i32> poison,357    ptr %0,358    <vscale x 4 x i64> %1,359    i64 %2)360 361  ret <vscale x 4 x i32> %a362}363 364define <vscale x 4 x i32> @intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i64(<vscale x 4 x i32> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {365; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i32_nxv4i32_nxv4i64:366; CHECK:       # %bb.0: # %entry367; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu368; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t369; CHECK-NEXT:    ret370entry:371  %a = call <vscale x 4 x i32> @llvm.riscv.vluxei.mask.nxv4i32.nxv4i64(372    <vscale x 4 x i32> %0,373    ptr %1,374    <vscale x 4 x i64> %2,375    <vscale x 4 x i1> %3,376    i64 %4, i64 1)377 378  ret <vscale x 4 x i32> %a379}380 381define <vscale x 8 x i32> @intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {382; CHECK-LABEL: intrinsic_vluxei_v_nxv8i32_nxv8i32_nxv8i64:383; CHECK:       # %bb.0: # %entry384; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma385; CHECK-NEXT:    vluxei64.v v16, (a0), v8386; CHECK-NEXT:    vmv.v.v v8, v16387; CHECK-NEXT:    ret388entry:389  %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.nxv8i32.nxv8i64(390    <vscale x 8 x i32> poison,391    ptr %0,392    <vscale x 8 x i64> %1,393    i64 %2)394 395  ret <vscale x 8 x i32> %a396}397 398define <vscale x 8 x i32> @intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i64(<vscale x 8 x i32> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {399; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i32_nxv8i32_nxv8i64:400; CHECK:       # %bb.0: # %entry401; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu402; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t403; CHECK-NEXT:    ret404entry:405  %a = call <vscale x 8 x i32> @llvm.riscv.vluxei.mask.nxv8i32.nxv8i64(406    <vscale x 8 x i32> %0,407    ptr %1,408    <vscale x 8 x i64> %2,409    <vscale x 8 x i1> %3,410    i64 %4, i64 1)411 412  ret <vscale x 8 x i32> %a413}414 415define <vscale x 1 x i64> @intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {416; CHECK-LABEL: intrinsic_vluxei_v_nxv1i64_nxv1i64_nxv1i64:417; CHECK:       # %bb.0: # %entry418; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma419; CHECK-NEXT:    vluxei64.v v8, (a0), v8420; CHECK-NEXT:    ret421entry:422  %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.nxv1i64.nxv1i64(423    <vscale x 1 x i64> poison,424    ptr %0,425    <vscale x 1 x i64> %1,426    i64 %2)427 428  ret <vscale x 1 x i64> %a429}430 431define <vscale x 1 x i64> @intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {432; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1i64_nxv1i64_nxv1i64:433; CHECK:       # %bb.0: # %entry434; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu435; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t436; CHECK-NEXT:    ret437entry:438  %a = call <vscale x 1 x i64> @llvm.riscv.vluxei.mask.nxv1i64.nxv1i64(439    <vscale x 1 x i64> %0,440    ptr %1,441    <vscale x 1 x i64> %2,442    <vscale x 1 x i1> %3,443    i64 %4, i64 1)444 445  ret <vscale x 1 x i64> %a446}447 448define <vscale x 2 x i64> @intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {449; CHECK-LABEL: intrinsic_vluxei_v_nxv2i64_nxv2i64_nxv2i64:450; CHECK:       # %bb.0: # %entry451; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma452; CHECK-NEXT:    vluxei64.v v8, (a0), v8453; CHECK-NEXT:    ret454entry:455  %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.nxv2i64.nxv2i64(456    <vscale x 2 x i64> poison,457    ptr %0,458    <vscale x 2 x i64> %1,459    i64 %2)460 461  ret <vscale x 2 x i64> %a462}463 464define <vscale x 2 x i64> @intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {465; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2i64_nxv2i64_nxv2i64:466; CHECK:       # %bb.0: # %entry467; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu468; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t469; CHECK-NEXT:    ret470entry:471  %a = call <vscale x 2 x i64> @llvm.riscv.vluxei.mask.nxv2i64.nxv2i64(472    <vscale x 2 x i64> %0,473    ptr %1,474    <vscale x 2 x i64> %2,475    <vscale x 2 x i1> %3,476    i64 %4, i64 1)477 478  ret <vscale x 2 x i64> %a479}480 481define <vscale x 4 x i64> @intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {482; CHECK-LABEL: intrinsic_vluxei_v_nxv4i64_nxv4i64_nxv4i64:483; CHECK:       # %bb.0: # %entry484; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma485; CHECK-NEXT:    vluxei64.v v8, (a0), v8486; CHECK-NEXT:    ret487entry:488  %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.nxv4i64.nxv4i64(489    <vscale x 4 x i64> poison,490    ptr %0,491    <vscale x 4 x i64> %1,492    i64 %2)493 494  ret <vscale x 4 x i64> %a495}496 497define <vscale x 4 x i64> @intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {498; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4i64_nxv4i64_nxv4i64:499; CHECK:       # %bb.0: # %entry500; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu501; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t502; CHECK-NEXT:    ret503entry:504  %a = call <vscale x 4 x i64> @llvm.riscv.vluxei.mask.nxv4i64.nxv4i64(505    <vscale x 4 x i64> %0,506    ptr %1,507    <vscale x 4 x i64> %2,508    <vscale x 4 x i1> %3,509    i64 %4, i64 1)510 511  ret <vscale x 4 x i64> %a512}513 514define <vscale x 8 x i64> @intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {515; CHECK-LABEL: intrinsic_vluxei_v_nxv8i64_nxv8i64_nxv8i64:516; CHECK:       # %bb.0: # %entry517; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma518; CHECK-NEXT:    vluxei64.v v8, (a0), v8519; CHECK-NEXT:    ret520entry:521  %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.nxv8i64.nxv8i64(522    <vscale x 8 x i64> poison,523    ptr %0,524    <vscale x 8 x i64> %1,525    i64 %2)526 527  ret <vscale x 8 x i64> %a528}529 530define <vscale x 8 x i64> @intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {531; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8i64_nxv8i64_nxv8i64:532; CHECK:       # %bb.0: # %entry533; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu534; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t535; CHECK-NEXT:    ret536entry:537  %a = call <vscale x 8 x i64> @llvm.riscv.vluxei.mask.nxv8i64.nxv8i64(538    <vscale x 8 x i64> %0,539    ptr %1,540    <vscale x 8 x i64> %2,541    <vscale x 8 x i1> %3,542    i64 %4, i64 1)543 544  ret <vscale x 8 x i64> %a545}546 547define <vscale x 1 x half> @intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {548; CHECK-LABEL: intrinsic_vluxei_v_nxv1f16_nxv1f16_nxv1i64:549; CHECK:       # %bb.0: # %entry550; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma551; CHECK-NEXT:    vluxei64.v v9, (a0), v8552; CHECK-NEXT:    vmv1r.v v8, v9553; CHECK-NEXT:    ret554entry:555  %a = call <vscale x 1 x half> @llvm.riscv.vluxei.nxv1f16.nxv1i64(556    <vscale x 1 x half> poison,557    ptr %0,558    <vscale x 1 x i64> %1,559    i64 %2)560 561  ret <vscale x 1 x half> %a562}563 564define <vscale x 1 x half> @intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i64(<vscale x 1 x half> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {565; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f16_nxv1f16_nxv1i64:566; CHECK:       # %bb.0: # %entry567; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu568; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t569; CHECK-NEXT:    ret570entry:571  %a = call <vscale x 1 x half> @llvm.riscv.vluxei.mask.nxv1f16.nxv1i64(572    <vscale x 1 x half> %0,573    ptr %1,574    <vscale x 1 x i64> %2,575    <vscale x 1 x i1> %3,576    i64 %4, i64 1)577 578  ret <vscale x 1 x half> %a579}580 581define <vscale x 2 x half> @intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {582; CHECK-LABEL: intrinsic_vluxei_v_nxv2f16_nxv2f16_nxv2i64:583; CHECK:       # %bb.0: # %entry584; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma585; CHECK-NEXT:    vluxei64.v v10, (a0), v8586; CHECK-NEXT:    vmv1r.v v8, v10587; CHECK-NEXT:    ret588entry:589  %a = call <vscale x 2 x half> @llvm.riscv.vluxei.nxv2f16.nxv2i64(590    <vscale x 2 x half> poison,591    ptr %0,592    <vscale x 2 x i64> %1,593    i64 %2)594 595  ret <vscale x 2 x half> %a596}597 598define <vscale x 2 x half> @intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i64(<vscale x 2 x half> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {599; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f16_nxv2f16_nxv2i64:600; CHECK:       # %bb.0: # %entry601; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu602; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t603; CHECK-NEXT:    ret604entry:605  %a = call <vscale x 2 x half> @llvm.riscv.vluxei.mask.nxv2f16.nxv2i64(606    <vscale x 2 x half> %0,607    ptr %1,608    <vscale x 2 x i64> %2,609    <vscale x 2 x i1> %3,610    i64 %4, i64 1)611 612  ret <vscale x 2 x half> %a613}614 615define <vscale x 4 x half> @intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {616; CHECK-LABEL: intrinsic_vluxei_v_nxv4f16_nxv4f16_nxv4i64:617; CHECK:       # %bb.0: # %entry618; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma619; CHECK-NEXT:    vluxei64.v v12, (a0), v8620; CHECK-NEXT:    vmv.v.v v8, v12621; CHECK-NEXT:    ret622entry:623  %a = call <vscale x 4 x half> @llvm.riscv.vluxei.nxv4f16.nxv4i64(624    <vscale x 4 x half> poison,625    ptr %0,626    <vscale x 4 x i64> %1,627    i64 %2)628 629  ret <vscale x 4 x half> %a630}631 632define <vscale x 4 x half> @intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i64(<vscale x 4 x half> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {633; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f16_nxv4f16_nxv4i64:634; CHECK:       # %bb.0: # %entry635; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu636; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t637; CHECK-NEXT:    ret638entry:639  %a = call <vscale x 4 x half> @llvm.riscv.vluxei.mask.nxv4f16.nxv4i64(640    <vscale x 4 x half> %0,641    ptr %1,642    <vscale x 4 x i64> %2,643    <vscale x 4 x i1> %3,644    i64 %4, i64 1)645 646  ret <vscale x 4 x half> %a647}648 649define <vscale x 8 x half> @intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {650; CHECK-LABEL: intrinsic_vluxei_v_nxv8f16_nxv8f16_nxv8i64:651; CHECK:       # %bb.0: # %entry652; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma653; CHECK-NEXT:    vluxei64.v v16, (a0), v8654; CHECK-NEXT:    vmv.v.v v8, v16655; CHECK-NEXT:    ret656entry:657  %a = call <vscale x 8 x half> @llvm.riscv.vluxei.nxv8f16.nxv8i64(658    <vscale x 8 x half> poison,659    ptr %0,660    <vscale x 8 x i64> %1,661    i64 %2)662 663  ret <vscale x 8 x half> %a664}665 666define <vscale x 8 x half> @intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i64(<vscale x 8 x half> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {667; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f16_nxv8f16_nxv8i64:668; CHECK:       # %bb.0: # %entry669; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu670; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t671; CHECK-NEXT:    ret672entry:673  %a = call <vscale x 8 x half> @llvm.riscv.vluxei.mask.nxv8f16.nxv8i64(674    <vscale x 8 x half> %0,675    ptr %1,676    <vscale x 8 x i64> %2,677    <vscale x 8 x i1> %3,678    i64 %4, i64 1)679 680  ret <vscale x 8 x half> %a681}682 683define <vscale x 1 x float> @intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {684; CHECK-LABEL: intrinsic_vluxei_v_nxv1f32_nxv1f32_nxv1i64:685; CHECK:       # %bb.0: # %entry686; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma687; CHECK-NEXT:    vluxei64.v v9, (a0), v8688; CHECK-NEXT:    vmv1r.v v8, v9689; CHECK-NEXT:    ret690entry:691  %a = call <vscale x 1 x float> @llvm.riscv.vluxei.nxv1f32.nxv1i64(692    <vscale x 1 x float> poison,693    ptr %0,694    <vscale x 1 x i64> %1,695    i64 %2)696 697  ret <vscale x 1 x float> %a698}699 700define <vscale x 1 x float> @intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i64(<vscale x 1 x float> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {701; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f32_nxv1f32_nxv1i64:702; CHECK:       # %bb.0: # %entry703; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu704; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t705; CHECK-NEXT:    ret706entry:707  %a = call <vscale x 1 x float> @llvm.riscv.vluxei.mask.nxv1f32.nxv1i64(708    <vscale x 1 x float> %0,709    ptr %1,710    <vscale x 1 x i64> %2,711    <vscale x 1 x i1> %3,712    i64 %4, i64 1)713 714  ret <vscale x 1 x float> %a715}716 717define <vscale x 2 x float> @intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {718; CHECK-LABEL: intrinsic_vluxei_v_nxv2f32_nxv2f32_nxv2i64:719; CHECK:       # %bb.0: # %entry720; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma721; CHECK-NEXT:    vluxei64.v v10, (a0), v8722; CHECK-NEXT:    vmv.v.v v8, v10723; CHECK-NEXT:    ret724entry:725  %a = call <vscale x 2 x float> @llvm.riscv.vluxei.nxv2f32.nxv2i64(726    <vscale x 2 x float> poison,727    ptr %0,728    <vscale x 2 x i64> %1,729    i64 %2)730 731  ret <vscale x 2 x float> %a732}733 734define <vscale x 2 x float> @intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i64(<vscale x 2 x float> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {735; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f32_nxv2f32_nxv2i64:736; CHECK:       # %bb.0: # %entry737; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu738; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t739; CHECK-NEXT:    ret740entry:741  %a = call <vscale x 2 x float> @llvm.riscv.vluxei.mask.nxv2f32.nxv2i64(742    <vscale x 2 x float> %0,743    ptr %1,744    <vscale x 2 x i64> %2,745    <vscale x 2 x i1> %3,746    i64 %4, i64 1)747 748  ret <vscale x 2 x float> %a749}750 751define <vscale x 4 x float> @intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {752; CHECK-LABEL: intrinsic_vluxei_v_nxv4f32_nxv4f32_nxv4i64:753; CHECK:       # %bb.0: # %entry754; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma755; CHECK-NEXT:    vluxei64.v v12, (a0), v8756; CHECK-NEXT:    vmv.v.v v8, v12757; CHECK-NEXT:    ret758entry:759  %a = call <vscale x 4 x float> @llvm.riscv.vluxei.nxv4f32.nxv4i64(760    <vscale x 4 x float> poison,761    ptr %0,762    <vscale x 4 x i64> %1,763    i64 %2)764 765  ret <vscale x 4 x float> %a766}767 768define <vscale x 4 x float> @intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i64(<vscale x 4 x float> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {769; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f32_nxv4f32_nxv4i64:770; CHECK:       # %bb.0: # %entry771; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu772; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t773; CHECK-NEXT:    ret774entry:775  %a = call <vscale x 4 x float> @llvm.riscv.vluxei.mask.nxv4f32.nxv4i64(776    <vscale x 4 x float> %0,777    ptr %1,778    <vscale x 4 x i64> %2,779    <vscale x 4 x i1> %3,780    i64 %4, i64 1)781 782  ret <vscale x 4 x float> %a783}784 785define <vscale x 8 x float> @intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {786; CHECK-LABEL: intrinsic_vluxei_v_nxv8f32_nxv8f32_nxv8i64:787; CHECK:       # %bb.0: # %entry788; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma789; CHECK-NEXT:    vluxei64.v v16, (a0), v8790; CHECK-NEXT:    vmv.v.v v8, v16791; CHECK-NEXT:    ret792entry:793  %a = call <vscale x 8 x float> @llvm.riscv.vluxei.nxv8f32.nxv8i64(794    <vscale x 8 x float> poison,795    ptr %0,796    <vscale x 8 x i64> %1,797    i64 %2)798 799  ret <vscale x 8 x float> %a800}801 802define <vscale x 8 x float> @intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i64(<vscale x 8 x float> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {803; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f32_nxv8f32_nxv8i64:804; CHECK:       # %bb.0: # %entry805; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu806; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t807; CHECK-NEXT:    ret808entry:809  %a = call <vscale x 8 x float> @llvm.riscv.vluxei.mask.nxv8f32.nxv8i64(810    <vscale x 8 x float> %0,811    ptr %1,812    <vscale x 8 x i64> %2,813    <vscale x 8 x i1> %3,814    i64 %4, i64 1)815 816  ret <vscale x 8 x float> %a817}818 819define <vscale x 1 x double> @intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i64(ptr %0, <vscale x 1 x i64> %1, i64 %2) nounwind {820; CHECK-LABEL: intrinsic_vluxei_v_nxv1f64_nxv1f64_nxv1i64:821; CHECK:       # %bb.0: # %entry822; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma823; CHECK-NEXT:    vluxei64.v v8, (a0), v8824; CHECK-NEXT:    ret825entry:826  %a = call <vscale x 1 x double> @llvm.riscv.vluxei.nxv1f64.nxv1i64(827    <vscale x 1 x double> poison,828    ptr %0,829    <vscale x 1 x i64> %1,830    i64 %2)831 832  ret <vscale x 1 x double> %a833}834 835define <vscale x 1 x double> @intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i64(<vscale x 1 x double> %0, ptr %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {836; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv1f64_nxv1f64_nxv1i64:837; CHECK:       # %bb.0: # %entry838; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu839; CHECK-NEXT:    vluxei64.v v8, (a0), v9, v0.t840; CHECK-NEXT:    ret841entry:842  %a = call <vscale x 1 x double> @llvm.riscv.vluxei.mask.nxv1f64.nxv1i64(843    <vscale x 1 x double> %0,844    ptr %1,845    <vscale x 1 x i64> %2,846    <vscale x 1 x i1> %3,847    i64 %4, i64 1)848 849  ret <vscale x 1 x double> %a850}851 852define <vscale x 2 x double> @intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i64(ptr %0, <vscale x 2 x i64> %1, i64 %2) nounwind {853; CHECK-LABEL: intrinsic_vluxei_v_nxv2f64_nxv2f64_nxv2i64:854; CHECK:       # %bb.0: # %entry855; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma856; CHECK-NEXT:    vluxei64.v v8, (a0), v8857; CHECK-NEXT:    ret858entry:859  %a = call <vscale x 2 x double> @llvm.riscv.vluxei.nxv2f64.nxv2i64(860    <vscale x 2 x double> poison,861    ptr %0,862    <vscale x 2 x i64> %1,863    i64 %2)864 865  ret <vscale x 2 x double> %a866}867 868define <vscale x 2 x double> @intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i64(<vscale x 2 x double> %0, ptr %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {869; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv2f64_nxv2f64_nxv2i64:870; CHECK:       # %bb.0: # %entry871; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu872; CHECK-NEXT:    vluxei64.v v8, (a0), v10, v0.t873; CHECK-NEXT:    ret874entry:875  %a = call <vscale x 2 x double> @llvm.riscv.vluxei.mask.nxv2f64.nxv2i64(876    <vscale x 2 x double> %0,877    ptr %1,878    <vscale x 2 x i64> %2,879    <vscale x 2 x i1> %3,880    i64 %4, i64 1)881 882  ret <vscale x 2 x double> %a883}884 885define <vscale x 4 x double> @intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i64(ptr %0, <vscale x 4 x i64> %1, i64 %2) nounwind {886; CHECK-LABEL: intrinsic_vluxei_v_nxv4f64_nxv4f64_nxv4i64:887; CHECK:       # %bb.0: # %entry888; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma889; CHECK-NEXT:    vluxei64.v v8, (a0), v8890; CHECK-NEXT:    ret891entry:892  %a = call <vscale x 4 x double> @llvm.riscv.vluxei.nxv4f64.nxv4i64(893    <vscale x 4 x double> poison,894    ptr %0,895    <vscale x 4 x i64> %1,896    i64 %2)897 898  ret <vscale x 4 x double> %a899}900 901define <vscale x 4 x double> @intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i64(<vscale x 4 x double> %0, ptr %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {902; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv4f64_nxv4f64_nxv4i64:903; CHECK:       # %bb.0: # %entry904; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu905; CHECK-NEXT:    vluxei64.v v8, (a0), v12, v0.t906; CHECK-NEXT:    ret907entry:908  %a = call <vscale x 4 x double> @llvm.riscv.vluxei.mask.nxv4f64.nxv4i64(909    <vscale x 4 x double> %0,910    ptr %1,911    <vscale x 4 x i64> %2,912    <vscale x 4 x i1> %3,913    i64 %4, i64 1)914 915  ret <vscale x 4 x double> %a916}917 918define <vscale x 8 x double> @intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i64(ptr %0, <vscale x 8 x i64> %1, i64 %2) nounwind {919; CHECK-LABEL: intrinsic_vluxei_v_nxv8f64_nxv8f64_nxv8i64:920; CHECK:       # %bb.0: # %entry921; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma922; CHECK-NEXT:    vluxei64.v v8, (a0), v8923; CHECK-NEXT:    ret924entry:925  %a = call <vscale x 8 x double> @llvm.riscv.vluxei.nxv8f64.nxv8i64(926    <vscale x 8 x double> poison,927    ptr %0,928    <vscale x 8 x i64> %1,929    i64 %2)930 931  ret <vscale x 8 x double> %a932}933 934define <vscale x 8 x double> @intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i64(<vscale x 8 x double> %0, ptr %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {935; CHECK-LABEL: intrinsic_vluxei_mask_v_nxv8f64_nxv8f64_nxv8i64:936; CHECK:       # %bb.0: # %entry937; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu938; CHECK-NEXT:    vluxei64.v v8, (a0), v16, v0.t939; CHECK-NEXT:    ret940entry:941  %a = call <vscale x 8 x double> @llvm.riscv.vluxei.mask.nxv8f64.nxv8i64(942    <vscale x 8 x double> %0,943    ptr %1,944    <vscale x 8 x i64> %2,945    <vscale x 8 x i1> %3,946    i64 %4, i64 1)947 948  ret <vscale x 8 x double> %a949}950