brintos

brintos / llvm-project-archived public Read only

0
0
Text · 253.7 KiB · 3f6b65b Raw
3965 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+zve64d,+f,+d,+zvfh,+zvfbfmin \3; RUN:     -verify-machineinstrs < %s | FileCheck %s4 5define <vscale x 1 x i8> @test_vlsseg2_nxv1i8_triscv.vector.tuple_nxv1i8_2t(ptr %base, i32 %offset, i32 %vl) {6; CHECK-LABEL: test_vlsseg2_nxv1i8_triscv.vector.tuple_nxv1i8_2t:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma9; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a110; CHECK-NEXT:    ret11entry:12  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 3)13  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %0, i32 1)14  ret <vscale x 1 x i8> %115}16 17define <vscale x 1 x i8> @test_vlsseg2_mask_nxv1i8_triscv.vector.tuple_nxv1i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {18; CHECK-LABEL: test_vlsseg2_mask_nxv1i8_triscv.vector.tuple_nxv1i8_2t:19; CHECK:       # %bb.0: # %entry20; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma21; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a1, v0.t22; CHECK-NEXT:    ret23entry:24  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv1i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)25  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %0, i32 1)26  ret <vscale x 1 x i8> %127}28 29define <vscale x 2 x i8> @test_vlsseg2_nxv2i8_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl) {30; CHECK-LABEL: test_vlsseg2_nxv2i8_triscv.vector.tuple_nxv2i8_2t:31; CHECK:       # %bb.0: # %entry32; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma33; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a134; CHECK-NEXT:    ret35entry:36  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 3)37  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)38  ret <vscale x 2 x i8> %139}40 41define <vscale x 2 x i8> @test_vlsseg2_mask_nxv2i8_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {42; CHECK-LABEL: test_vlsseg2_mask_nxv2i8_triscv.vector.tuple_nxv2i8_2t:43; CHECK:       # %bb.0: # %entry44; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma45; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a1, v0.t46; CHECK-NEXT:    ret47entry:48  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)49  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)50  ret <vscale x 2 x i8> %151}52 53define <vscale x 4 x i8> @test_vlsseg2_nxv4i8_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl) {54; CHECK-LABEL: test_vlsseg2_nxv4i8_triscv.vector.tuple_nxv4i8_2t:55; CHECK:       # %bb.0: # %entry56; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma57; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a158; CHECK-NEXT:    ret59entry:60  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 3)61  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)62  ret <vscale x 4 x i8> %163}64 65define <vscale x 4 x i8> @test_vlsseg2_mask_nxv4i8_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {66; CHECK-LABEL: test_vlsseg2_mask_nxv4i8_triscv.vector.tuple_nxv4i8_2t:67; CHECK:       # %bb.0: # %entry68; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma69; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a1, v0.t70; CHECK-NEXT:    ret71entry:72  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)73  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)74  ret <vscale x 4 x i8> %175}76 77define <vscale x 8 x i8> @test_vlsseg2_nxv8i8_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {78; CHECK-LABEL: test_vlsseg2_nxv8i8_triscv.vector.tuple_nxv8i8_2t:79; CHECK:       # %bb.0: # %entry80; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma81; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a182; CHECK-NEXT:    ret83entry:84  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 3)85  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)86  ret <vscale x 8 x i8> %187}88 89define <vscale x 8 x i8> @test_vlsseg2_mask_nxv8i8_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {90; CHECK-LABEL: test_vlsseg2_mask_nxv8i8_triscv.vector.tuple_nxv8i8_2t:91; CHECK:       # %bb.0: # %entry92; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma93; CHECK-NEXT:    vlsseg2e8.v v7, (a0), a1, v0.t94; CHECK-NEXT:    ret95entry:96  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)97  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)98  ret <vscale x 8 x i8> %199}100 101define <vscale x 16 x i8> @test_vlsseg2_nxv16i8_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {102; CHECK-LABEL: test_vlsseg2_nxv16i8_triscv.vector.tuple_nxv16i8_2t:103; CHECK:       # %bb.0: # %entry104; CHECK-NEXT:    vsetvli zero, a2, e8, m2, ta, ma105; CHECK-NEXT:    vlsseg2e8.v v6, (a0), a1106; CHECK-NEXT:    ret107entry:108  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 3)109  %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)110  ret <vscale x 16 x i8> %1111}112 113define <vscale x 16 x i8> @test_vlsseg2_mask_nxv16i8_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 16 x i1> %mask) {114; CHECK-LABEL: test_vlsseg2_mask_nxv16i8_triscv.vector.tuple_nxv16i8_2t:115; CHECK:       # %bb.0: # %entry116; CHECK-NEXT:    vsetvli zero, a2, e8, m2, ta, ma117; CHECK-NEXT:    vlsseg2e8.v v6, (a0), a1, v0.t118; CHECK-NEXT:    ret119entry:120  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 16 x i1> %mask, i32 %vl, i32 1, i32 3)121  %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)122  ret <vscale x 16 x i8> %1123}124 125define <vscale x 32 x i8> @test_vlsseg2_nxv32i8_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {126; CHECK-LABEL: test_vlsseg2_nxv32i8_triscv.vector.tuple_nxv32i8_2t:127; CHECK:       # %bb.0: # %entry128; CHECK-NEXT:    vsetvli zero, a2, e8, m4, ta, ma129; CHECK-NEXT:    vlsseg2e8.v v4, (a0), a1130; CHECK-NEXT:    ret131entry:132  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 3)133  %1 = call <vscale x 32 x i8> @llvm.riscv.tuple.extract.nxv32i8.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)134  ret <vscale x 32 x i8> %1135}136 137define <vscale x 32 x i8> @test_vlsseg2_mask_nxv32i8_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 32 x i1> %mask) {138; CHECK-LABEL: test_vlsseg2_mask_nxv32i8_triscv.vector.tuple_nxv32i8_2t:139; CHECK:       # %bb.0: # %entry140; CHECK-NEXT:    vsetvli zero, a2, e8, m4, ta, ma141; CHECK-NEXT:    vlsseg2e8.v v4, (a0), a1, v0.t142; CHECK-NEXT:    ret143entry:144  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv32i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 32 x i1> %mask, i32 %vl, i32 1, i32 3)145  %1 = call <vscale x 32 x i8> @llvm.riscv.tuple.extract.nxv32i8.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)146  ret <vscale x 32 x i8> %1147}148 149define <vscale x 1 x i8> @test_vlsseg3_nxv1i8_triscv.vector.tuple_nxv1i8_3t(ptr %base, i32 %offset, i32 %vl) {150; CHECK-LABEL: test_vlsseg3_nxv1i8_triscv.vector.tuple_nxv1i8_3t:151; CHECK:       # %bb.0: # %entry152; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma153; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1154; CHECK-NEXT:    ret155entry:156  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 3)157  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %0, i32 1)158  ret <vscale x 1 x i8> %1159}160 161define <vscale x 1 x i8> @test_vlsseg3_mask_nxv1i8_triscv.vector.tuple_nxv1i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {162; CHECK-LABEL: test_vlsseg3_mask_nxv1i8_triscv.vector.tuple_nxv1i8_3t:163; CHECK:       # %bb.0: # %entry164; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma165; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1, v0.t166; CHECK-NEXT:    ret167entry:168  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv1i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)169  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %0, i32 1)170  ret <vscale x 1 x i8> %1171}172 173define <vscale x 2 x i8> @test_vlsseg3_nxv2i8_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl) {174; CHECK-LABEL: test_vlsseg3_nxv2i8_triscv.vector.tuple_nxv2i8_3t:175; CHECK:       # %bb.0: # %entry176; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma177; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1178; CHECK-NEXT:    ret179entry:180  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 3)181  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)182  ret <vscale x 2 x i8> %1183}184 185define <vscale x 2 x i8> @test_vlsseg3_mask_nxv2i8_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {186; CHECK-LABEL: test_vlsseg3_mask_nxv2i8_triscv.vector.tuple_nxv2i8_3t:187; CHECK:       # %bb.0: # %entry188; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma189; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1, v0.t190; CHECK-NEXT:    ret191entry:192  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)193  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)194  ret <vscale x 2 x i8> %1195}196 197define <vscale x 4 x i8> @test_vlsseg3_nxv4i8_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl) {198; CHECK-LABEL: test_vlsseg3_nxv4i8_triscv.vector.tuple_nxv4i8_3t:199; CHECK:       # %bb.0: # %entry200; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma201; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1202; CHECK-NEXT:    ret203entry:204  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 3)205  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)206  ret <vscale x 4 x i8> %1207}208 209define <vscale x 4 x i8> @test_vlsseg3_mask_nxv4i8_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {210; CHECK-LABEL: test_vlsseg3_mask_nxv4i8_triscv.vector.tuple_nxv4i8_3t:211; CHECK:       # %bb.0: # %entry212; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma213; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1, v0.t214; CHECK-NEXT:    ret215entry:216  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)217  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)218  ret <vscale x 4 x i8> %1219}220 221define <vscale x 8 x i8> @test_vlsseg3_nxv8i8_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {222; CHECK-LABEL: test_vlsseg3_nxv8i8_triscv.vector.tuple_nxv8i8_3t:223; CHECK:       # %bb.0: # %entry224; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma225; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1226; CHECK-NEXT:    ret227entry:228  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 3)229  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)230  ret <vscale x 8 x i8> %1231}232 233define <vscale x 8 x i8> @test_vlsseg3_mask_nxv8i8_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {234; CHECK-LABEL: test_vlsseg3_mask_nxv8i8_triscv.vector.tuple_nxv8i8_3t:235; CHECK:       # %bb.0: # %entry236; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma237; CHECK-NEXT:    vlsseg3e8.v v7, (a0), a1, v0.t238; CHECK-NEXT:    ret239entry:240  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)241  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)242  ret <vscale x 8 x i8> %1243}244 245define <vscale x 16 x i8> @test_vlsseg3_nxv16i8_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {246; CHECK-LABEL: test_vlsseg3_nxv16i8_triscv.vector.tuple_nxv16i8_3t:247; CHECK:       # %bb.0: # %entry248; CHECK-NEXT:    vsetvli zero, a2, e8, m2, ta, ma249; CHECK-NEXT:    vlsseg3e8.v v6, (a0), a1250; CHECK-NEXT:    ret251entry:252  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 3)253  %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)254  ret <vscale x 16 x i8> %1255}256 257define <vscale x 16 x i8> @test_vlsseg3_mask_nxv16i8_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 16 x i1> %mask) {258; CHECK-LABEL: test_vlsseg3_mask_nxv16i8_triscv.vector.tuple_nxv16i8_3t:259; CHECK:       # %bb.0: # %entry260; CHECK-NEXT:    vsetvli zero, a2, e8, m2, ta, ma261; CHECK-NEXT:    vlsseg3e8.v v6, (a0), a1, v0.t262; CHECK-NEXT:    ret263entry:264  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 16 x i1> %mask, i32 %vl, i32 1, i32 3)265  %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)266  ret <vscale x 16 x i8> %1267}268 269define <vscale x 1 x i8> @test_vlsseg4_nxv1i8_triscv.vector.tuple_nxv1i8_4t(ptr %base, i32 %offset, i32 %vl) {270; CHECK-LABEL: test_vlsseg4_nxv1i8_triscv.vector.tuple_nxv1i8_4t:271; CHECK:       # %bb.0: # %entry272; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma273; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1274; CHECK-NEXT:    ret275entry:276  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 3)277  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %0, i32 1)278  ret <vscale x 1 x i8> %1279}280 281define <vscale x 1 x i8> @test_vlsseg4_mask_nxv1i8_triscv.vector.tuple_nxv1i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {282; CHECK-LABEL: test_vlsseg4_mask_nxv1i8_triscv.vector.tuple_nxv1i8_4t:283; CHECK:       # %bb.0: # %entry284; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma285; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1, v0.t286; CHECK-NEXT:    ret287entry:288  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv1i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)289  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %0, i32 1)290  ret <vscale x 1 x i8> %1291}292 293define <vscale x 2 x i8> @test_vlsseg4_nxv2i8_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl) {294; CHECK-LABEL: test_vlsseg4_nxv2i8_triscv.vector.tuple_nxv2i8_4t:295; CHECK:       # %bb.0: # %entry296; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma297; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1298; CHECK-NEXT:    ret299entry:300  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 3)301  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)302  ret <vscale x 2 x i8> %1303}304 305define <vscale x 2 x i8> @test_vlsseg4_mask_nxv2i8_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {306; CHECK-LABEL: test_vlsseg4_mask_nxv2i8_triscv.vector.tuple_nxv2i8_4t:307; CHECK:       # %bb.0: # %entry308; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma309; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1, v0.t310; CHECK-NEXT:    ret311entry:312  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)313  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)314  ret <vscale x 2 x i8> %1315}316 317define <vscale x 4 x i8> @test_vlsseg4_nxv4i8_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl) {318; CHECK-LABEL: test_vlsseg4_nxv4i8_triscv.vector.tuple_nxv4i8_4t:319; CHECK:       # %bb.0: # %entry320; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma321; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1322; CHECK-NEXT:    ret323entry:324  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 3)325  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)326  ret <vscale x 4 x i8> %1327}328 329define <vscale x 4 x i8> @test_vlsseg4_mask_nxv4i8_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {330; CHECK-LABEL: test_vlsseg4_mask_nxv4i8_triscv.vector.tuple_nxv4i8_4t:331; CHECK:       # %bb.0: # %entry332; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma333; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1, v0.t334; CHECK-NEXT:    ret335entry:336  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)337  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)338  ret <vscale x 4 x i8> %1339}340 341define <vscale x 8 x i8> @test_vlsseg4_nxv8i8_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {342; CHECK-LABEL: test_vlsseg4_nxv8i8_triscv.vector.tuple_nxv8i8_4t:343; CHECK:       # %bb.0: # %entry344; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma345; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1346; CHECK-NEXT:    ret347entry:348  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 3)349  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)350  ret <vscale x 8 x i8> %1351}352 353define <vscale x 8 x i8> @test_vlsseg4_mask_nxv8i8_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {354; CHECK-LABEL: test_vlsseg4_mask_nxv8i8_triscv.vector.tuple_nxv8i8_4t:355; CHECK:       # %bb.0: # %entry356; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma357; CHECK-NEXT:    vlsseg4e8.v v7, (a0), a1, v0.t358; CHECK-NEXT:    ret359entry:360  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)361  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)362  ret <vscale x 8 x i8> %1363}364 365define <vscale x 16 x i8> @test_vlsseg4_nxv16i8_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {366; CHECK-LABEL: test_vlsseg4_nxv16i8_triscv.vector.tuple_nxv16i8_4t:367; CHECK:       # %bb.0: # %entry368; CHECK-NEXT:    vsetvli zero, a2, e8, m2, ta, ma369; CHECK-NEXT:    vlsseg4e8.v v6, (a0), a1370; CHECK-NEXT:    ret371entry:372  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 3)373  %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)374  ret <vscale x 16 x i8> %1375}376 377define <vscale x 16 x i8> @test_vlsseg4_mask_nxv16i8_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 16 x i1> %mask) {378; CHECK-LABEL: test_vlsseg4_mask_nxv16i8_triscv.vector.tuple_nxv16i8_4t:379; CHECK:       # %bb.0: # %entry380; CHECK-NEXT:    vsetvli zero, a2, e8, m2, ta, ma381; CHECK-NEXT:    vlsseg4e8.v v6, (a0), a1, v0.t382; CHECK-NEXT:    ret383entry:384  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 16 x i1> %mask, i32 %vl, i32 1, i32 3)385  %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)386  ret <vscale x 16 x i8> %1387}388 389define <vscale x 1 x i8> @test_vlsseg5_nxv1i8_triscv.vector.tuple_nxv1i8_5t(ptr %base, i32 %offset, i32 %vl) {390; CHECK-LABEL: test_vlsseg5_nxv1i8_triscv.vector.tuple_nxv1i8_5t:391; CHECK:       # %bb.0: # %entry392; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma393; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1394; CHECK-NEXT:    ret395entry:396  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 3)397  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %0, i32 1)398  ret <vscale x 1 x i8> %1399}400 401define <vscale x 1 x i8> @test_vlsseg5_mask_nxv1i8_triscv.vector.tuple_nxv1i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {402; CHECK-LABEL: test_vlsseg5_mask_nxv1i8_triscv.vector.tuple_nxv1i8_5t:403; CHECK:       # %bb.0: # %entry404; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma405; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1, v0.t406; CHECK-NEXT:    ret407entry:408  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv1i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)409  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %0, i32 1)410  ret <vscale x 1 x i8> %1411}412 413define <vscale x 2 x i8> @test_vlsseg5_nxv2i8_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl) {414; CHECK-LABEL: test_vlsseg5_nxv2i8_triscv.vector.tuple_nxv2i8_5t:415; CHECK:       # %bb.0: # %entry416; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma417; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1418; CHECK-NEXT:    ret419entry:420  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 3)421  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)422  ret <vscale x 2 x i8> %1423}424 425define <vscale x 2 x i8> @test_vlsseg5_mask_nxv2i8_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {426; CHECK-LABEL: test_vlsseg5_mask_nxv2i8_triscv.vector.tuple_nxv2i8_5t:427; CHECK:       # %bb.0: # %entry428; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma429; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1, v0.t430; CHECK-NEXT:    ret431entry:432  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)433  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)434  ret <vscale x 2 x i8> %1435}436 437define <vscale x 4 x i8> @test_vlsseg5_nxv4i8_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl) {438; CHECK-LABEL: test_vlsseg5_nxv4i8_triscv.vector.tuple_nxv4i8_5t:439; CHECK:       # %bb.0: # %entry440; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma441; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1442; CHECK-NEXT:    ret443entry:444  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 3)445  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)446  ret <vscale x 4 x i8> %1447}448 449define <vscale x 4 x i8> @test_vlsseg5_mask_nxv4i8_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {450; CHECK-LABEL: test_vlsseg5_mask_nxv4i8_triscv.vector.tuple_nxv4i8_5t:451; CHECK:       # %bb.0: # %entry452; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma453; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1, v0.t454; CHECK-NEXT:    ret455entry:456  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)457  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)458  ret <vscale x 4 x i8> %1459}460 461define <vscale x 8 x i8> @test_vlsseg5_nxv8i8_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {462; CHECK-LABEL: test_vlsseg5_nxv8i8_triscv.vector.tuple_nxv8i8_5t:463; CHECK:       # %bb.0: # %entry464; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma465; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1466; CHECK-NEXT:    ret467entry:468  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 3)469  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)470  ret <vscale x 8 x i8> %1471}472 473define <vscale x 8 x i8> @test_vlsseg5_mask_nxv8i8_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {474; CHECK-LABEL: test_vlsseg5_mask_nxv8i8_triscv.vector.tuple_nxv8i8_5t:475; CHECK:       # %bb.0: # %entry476; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma477; CHECK-NEXT:    vlsseg5e8.v v7, (a0), a1, v0.t478; CHECK-NEXT:    ret479entry:480  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)481  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)482  ret <vscale x 8 x i8> %1483}484 485define <vscale x 1 x i8> @test_vlsseg6_nxv1i8_triscv.vector.tuple_nxv1i8_6t(ptr %base, i32 %offset, i32 %vl) {486; CHECK-LABEL: test_vlsseg6_nxv1i8_triscv.vector.tuple_nxv1i8_6t:487; CHECK:       # %bb.0: # %entry488; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma489; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1490; CHECK-NEXT:    ret491entry:492  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 3)493  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %0, i32 1)494  ret <vscale x 1 x i8> %1495}496 497define <vscale x 1 x i8> @test_vlsseg6_mask_nxv1i8_triscv.vector.tuple_nxv1i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {498; CHECK-LABEL: test_vlsseg6_mask_nxv1i8_triscv.vector.tuple_nxv1i8_6t:499; CHECK:       # %bb.0: # %entry500; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma501; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1, v0.t502; CHECK-NEXT:    ret503entry:504  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv1i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)505  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %0, i32 1)506  ret <vscale x 1 x i8> %1507}508 509define <vscale x 2 x i8> @test_vlsseg6_nxv2i8_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl) {510; CHECK-LABEL: test_vlsseg6_nxv2i8_triscv.vector.tuple_nxv2i8_6t:511; CHECK:       # %bb.0: # %entry512; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma513; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1514; CHECK-NEXT:    ret515entry:516  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 3)517  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)518  ret <vscale x 2 x i8> %1519}520 521define <vscale x 2 x i8> @test_vlsseg6_mask_nxv2i8_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {522; CHECK-LABEL: test_vlsseg6_mask_nxv2i8_triscv.vector.tuple_nxv2i8_6t:523; CHECK:       # %bb.0: # %entry524; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma525; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1, v0.t526; CHECK-NEXT:    ret527entry:528  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)529  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)530  ret <vscale x 2 x i8> %1531}532 533define <vscale x 4 x i8> @test_vlsseg6_nxv4i8_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl) {534; CHECK-LABEL: test_vlsseg6_nxv4i8_triscv.vector.tuple_nxv4i8_6t:535; CHECK:       # %bb.0: # %entry536; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma537; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1538; CHECK-NEXT:    ret539entry:540  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 3)541  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)542  ret <vscale x 4 x i8> %1543}544 545define <vscale x 4 x i8> @test_vlsseg6_mask_nxv4i8_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {546; CHECK-LABEL: test_vlsseg6_mask_nxv4i8_triscv.vector.tuple_nxv4i8_6t:547; CHECK:       # %bb.0: # %entry548; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma549; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1, v0.t550; CHECK-NEXT:    ret551entry:552  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)553  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)554  ret <vscale x 4 x i8> %1555}556 557define <vscale x 8 x i8> @test_vlsseg6_nxv8i8_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {558; CHECK-LABEL: test_vlsseg6_nxv8i8_triscv.vector.tuple_nxv8i8_6t:559; CHECK:       # %bb.0: # %entry560; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma561; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1562; CHECK-NEXT:    ret563entry:564  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 3)565  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)566  ret <vscale x 8 x i8> %1567}568 569define <vscale x 8 x i8> @test_vlsseg6_mask_nxv8i8_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {570; CHECK-LABEL: test_vlsseg6_mask_nxv8i8_triscv.vector.tuple_nxv8i8_6t:571; CHECK:       # %bb.0: # %entry572; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma573; CHECK-NEXT:    vlsseg6e8.v v7, (a0), a1, v0.t574; CHECK-NEXT:    ret575entry:576  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)577  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)578  ret <vscale x 8 x i8> %1579}580 581define <vscale x 1 x i8> @test_vlsseg7_nxv1i8_triscv.vector.tuple_nxv1i8_7t(ptr %base, i32 %offset, i32 %vl) {582; CHECK-LABEL: test_vlsseg7_nxv1i8_triscv.vector.tuple_nxv1i8_7t:583; CHECK:       # %bb.0: # %entry584; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma585; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1586; CHECK-NEXT:    ret587entry:588  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 3)589  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %0, i32 1)590  ret <vscale x 1 x i8> %1591}592 593define <vscale x 1 x i8> @test_vlsseg7_mask_nxv1i8_triscv.vector.tuple_nxv1i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {594; CHECK-LABEL: test_vlsseg7_mask_nxv1i8_triscv.vector.tuple_nxv1i8_7t:595; CHECK:       # %bb.0: # %entry596; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma597; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1, v0.t598; CHECK-NEXT:    ret599entry:600  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv1i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)601  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %0, i32 1)602  ret <vscale x 1 x i8> %1603}604 605define <vscale x 2 x i8> @test_vlsseg7_nxv2i8_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl) {606; CHECK-LABEL: test_vlsseg7_nxv2i8_triscv.vector.tuple_nxv2i8_7t:607; CHECK:       # %bb.0: # %entry608; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma609; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1610; CHECK-NEXT:    ret611entry:612  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 3)613  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)614  ret <vscale x 2 x i8> %1615}616 617define <vscale x 2 x i8> @test_vlsseg7_mask_nxv2i8_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {618; CHECK-LABEL: test_vlsseg7_mask_nxv2i8_triscv.vector.tuple_nxv2i8_7t:619; CHECK:       # %bb.0: # %entry620; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma621; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1, v0.t622; CHECK-NEXT:    ret623entry:624  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)625  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)626  ret <vscale x 2 x i8> %1627}628 629define <vscale x 4 x i8> @test_vlsseg7_nxv4i8_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl) {630; CHECK-LABEL: test_vlsseg7_nxv4i8_triscv.vector.tuple_nxv4i8_7t:631; CHECK:       # %bb.0: # %entry632; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma633; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1634; CHECK-NEXT:    ret635entry:636  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 3)637  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)638  ret <vscale x 4 x i8> %1639}640 641define <vscale x 4 x i8> @test_vlsseg7_mask_nxv4i8_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {642; CHECK-LABEL: test_vlsseg7_mask_nxv4i8_triscv.vector.tuple_nxv4i8_7t:643; CHECK:       # %bb.0: # %entry644; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma645; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1, v0.t646; CHECK-NEXT:    ret647entry:648  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)649  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)650  ret <vscale x 4 x i8> %1651}652 653define <vscale x 8 x i8> @test_vlsseg7_nxv8i8_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {654; CHECK-LABEL: test_vlsseg7_nxv8i8_triscv.vector.tuple_nxv8i8_7t:655; CHECK:       # %bb.0: # %entry656; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma657; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1658; CHECK-NEXT:    ret659entry:660  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 3)661  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)662  ret <vscale x 8 x i8> %1663}664 665define <vscale x 8 x i8> @test_vlsseg7_mask_nxv8i8_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {666; CHECK-LABEL: test_vlsseg7_mask_nxv8i8_triscv.vector.tuple_nxv8i8_7t:667; CHECK:       # %bb.0: # %entry668; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma669; CHECK-NEXT:    vlsseg7e8.v v7, (a0), a1, v0.t670; CHECK-NEXT:    ret671entry:672  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)673  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)674  ret <vscale x 8 x i8> %1675}676 677define <vscale x 1 x i8> @test_vlsseg8_nxv1i8_triscv.vector.tuple_nxv1i8_8t(ptr %base, i32 %offset, i32 %vl) {678; CHECK-LABEL: test_vlsseg8_nxv1i8_triscv.vector.tuple_nxv1i8_8t:679; CHECK:       # %bb.0: # %entry680; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma681; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1682; CHECK-NEXT:    ret683entry:684  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 3)685  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %0, i32 1)686  ret <vscale x 1 x i8> %1687}688 689define <vscale x 1 x i8> @test_vlsseg8_mask_nxv1i8_triscv.vector.tuple_nxv1i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {690; CHECK-LABEL: test_vlsseg8_mask_nxv1i8_triscv.vector.tuple_nxv1i8_8t:691; CHECK:       # %bb.0: # %entry692; CHECK-NEXT:    vsetvli zero, a2, e8, mf8, ta, ma693; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1, v0.t694; CHECK-NEXT:    ret695entry:696  %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv1i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 3)697  %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %0, i32 1)698  ret <vscale x 1 x i8> %1699}700 701define <vscale x 2 x i8> @test_vlsseg8_nxv2i8_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl) {702; CHECK-LABEL: test_vlsseg8_nxv2i8_triscv.vector.tuple_nxv2i8_8t:703; CHECK:       # %bb.0: # %entry704; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma705; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1706; CHECK-NEXT:    ret707entry:708  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 3)709  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)710  ret <vscale x 2 x i8> %1711}712 713define <vscale x 2 x i8> @test_vlsseg8_mask_nxv2i8_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {714; CHECK-LABEL: test_vlsseg8_mask_nxv2i8_triscv.vector.tuple_nxv2i8_8t:715; CHECK:       # %bb.0: # %entry716; CHECK-NEXT:    vsetvli zero, a2, e8, mf4, ta, ma717; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1, v0.t718; CHECK-NEXT:    ret719entry:720  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 3)721  %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)722  ret <vscale x 2 x i8> %1723}724 725define <vscale x 4 x i8> @test_vlsseg8_nxv4i8_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl) {726; CHECK-LABEL: test_vlsseg8_nxv4i8_triscv.vector.tuple_nxv4i8_8t:727; CHECK:       # %bb.0: # %entry728; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma729; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1730; CHECK-NEXT:    ret731entry:732  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 3)733  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)734  ret <vscale x 4 x i8> %1735}736 737define <vscale x 4 x i8> @test_vlsseg8_mask_nxv4i8_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {738; CHECK-LABEL: test_vlsseg8_mask_nxv4i8_triscv.vector.tuple_nxv4i8_8t:739; CHECK:       # %bb.0: # %entry740; CHECK-NEXT:    vsetvli zero, a2, e8, mf2, ta, ma741; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1, v0.t742; CHECK-NEXT:    ret743entry:744  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 3)745  %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)746  ret <vscale x 4 x i8> %1747}748 749define <vscale x 8 x i8> @test_vlsseg8_nxv8i8_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {750; CHECK-LABEL: test_vlsseg8_nxv8i8_triscv.vector.tuple_nxv8i8_8t:751; CHECK:       # %bb.0: # %entry752; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma753; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1754; CHECK-NEXT:    ret755entry:756  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 3)757  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)758  ret <vscale x 8 x i8> %1759}760 761define <vscale x 8 x i8> @test_vlsseg8_mask_nxv8i8_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {762; CHECK-LABEL: test_vlsseg8_mask_nxv8i8_triscv.vector.tuple_nxv8i8_8t:763; CHECK:       # %bb.0: # %entry764; CHECK-NEXT:    vsetvli zero, a2, e8, m1, ta, ma765; CHECK-NEXT:    vlsseg8e8.v v7, (a0), a1, v0.t766; CHECK-NEXT:    ret767entry:768  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 3)769  %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)770  ret <vscale x 8 x i8> %1771}772 773define <vscale x 1 x i16> @test_vlsseg2_nxv1i16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl) {774; CHECK-LABEL: test_vlsseg2_nxv1i16_triscv.vector.tuple_nxv2i8_2t:775; CHECK:       # %bb.0: # %entry776; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma777; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1778; CHECK-NEXT:    ret779entry:780  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)781  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)782  ret <vscale x 1 x i16> %1783}784 785define <vscale x 1 x i16> @test_vlsseg2_mask_nxv1i16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {786; CHECK-LABEL: test_vlsseg2_mask_nxv1i16_triscv.vector.tuple_nxv2i8_2t:787; CHECK:       # %bb.0: # %entry788; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma789; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t790; CHECK-NEXT:    ret791entry:792  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)793  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)794  ret <vscale x 1 x i16> %1795}796 797define <vscale x 2 x i16> @test_vlsseg2_nxv2i16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl) {798; CHECK-LABEL: test_vlsseg2_nxv2i16_triscv.vector.tuple_nxv4i8_2t:799; CHECK:       # %bb.0: # %entry800; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma801; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1802; CHECK-NEXT:    ret803entry:804  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)805  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)806  ret <vscale x 2 x i16> %1807}808 809define <vscale x 2 x i16> @test_vlsseg2_mask_nxv2i16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {810; CHECK-LABEL: test_vlsseg2_mask_nxv2i16_triscv.vector.tuple_nxv4i8_2t:811; CHECK:       # %bb.0: # %entry812; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma813; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t814; CHECK-NEXT:    ret815entry:816  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)817  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)818  ret <vscale x 2 x i16> %1819}820 821define <vscale x 4 x i16> @test_vlsseg2_nxv4i16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {822; CHECK-LABEL: test_vlsseg2_nxv4i16_triscv.vector.tuple_nxv8i8_2t:823; CHECK:       # %bb.0: # %entry824; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma825; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1826; CHECK-NEXT:    ret827entry:828  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)829  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)830  ret <vscale x 4 x i16> %1831}832 833define <vscale x 4 x i16> @test_vlsseg2_mask_nxv4i16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {834; CHECK-LABEL: test_vlsseg2_mask_nxv4i16_triscv.vector.tuple_nxv8i8_2t:835; CHECK:       # %bb.0: # %entry836; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma837; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t838; CHECK-NEXT:    ret839entry:840  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)841  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)842  ret <vscale x 4 x i16> %1843}844 845define <vscale x 8 x i16> @test_vlsseg2_nxv8i16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {846; CHECK-LABEL: test_vlsseg2_nxv8i16_triscv.vector.tuple_nxv16i8_2t:847; CHECK:       # %bb.0: # %entry848; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma849; CHECK-NEXT:    vlsseg2e16.v v6, (a0), a1850; CHECK-NEXT:    ret851entry:852  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)853  %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)854  ret <vscale x 8 x i16> %1855}856 857define <vscale x 8 x i16> @test_vlsseg2_mask_nxv8i16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {858; CHECK-LABEL: test_vlsseg2_mask_nxv8i16_triscv.vector.tuple_nxv16i8_2t:859; CHECK:       # %bb.0: # %entry860; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma861; CHECK-NEXT:    vlsseg2e16.v v6, (a0), a1, v0.t862; CHECK-NEXT:    ret863entry:864  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)865  %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)866  ret <vscale x 8 x i16> %1867}868 869define <vscale x 16 x i16> @test_vlsseg2_nxv16i16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {870; CHECK-LABEL: test_vlsseg2_nxv16i16_triscv.vector.tuple_nxv32i8_2t:871; CHECK:       # %bb.0: # %entry872; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma873; CHECK-NEXT:    vlsseg2e16.v v4, (a0), a1874; CHECK-NEXT:    ret875entry:876  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)877  %1 = call <vscale x 16 x i16> @llvm.riscv.tuple.extract.nxv16i16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)878  ret <vscale x 16 x i16> %1879}880 881define <vscale x 16 x i16> @test_vlsseg2_mask_nxv16i16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 16 x i1> %mask) {882; CHECK-LABEL: test_vlsseg2_mask_nxv16i16_triscv.vector.tuple_nxv32i8_2t:883; CHECK:       # %bb.0: # %entry884; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma885; CHECK-NEXT:    vlsseg2e16.v v4, (a0), a1, v0.t886; CHECK-NEXT:    ret887entry:888  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 16 x i1> %mask, i32 %vl, i32 1, i32 4)889  %1 = call <vscale x 16 x i16> @llvm.riscv.tuple.extract.nxv16i16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)890  ret <vscale x 16 x i16> %1891}892 893define <vscale x 1 x i16> @test_vlsseg3_nxv1i16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl) {894; CHECK-LABEL: test_vlsseg3_nxv1i16_triscv.vector.tuple_nxv2i8_3t:895; CHECK:       # %bb.0: # %entry896; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma897; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1898; CHECK-NEXT:    ret899entry:900  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)901  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)902  ret <vscale x 1 x i16> %1903}904 905define <vscale x 1 x i16> @test_vlsseg3_mask_nxv1i16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {906; CHECK-LABEL: test_vlsseg3_mask_nxv1i16_triscv.vector.tuple_nxv2i8_3t:907; CHECK:       # %bb.0: # %entry908; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma909; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t910; CHECK-NEXT:    ret911entry:912  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)913  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)914  ret <vscale x 1 x i16> %1915}916 917define <vscale x 2 x i16> @test_vlsseg3_nxv2i16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl) {918; CHECK-LABEL: test_vlsseg3_nxv2i16_triscv.vector.tuple_nxv4i8_3t:919; CHECK:       # %bb.0: # %entry920; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma921; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1922; CHECK-NEXT:    ret923entry:924  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)925  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)926  ret <vscale x 2 x i16> %1927}928 929define <vscale x 2 x i16> @test_vlsseg3_mask_nxv2i16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {930; CHECK-LABEL: test_vlsseg3_mask_nxv2i16_triscv.vector.tuple_nxv4i8_3t:931; CHECK:       # %bb.0: # %entry932; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma933; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t934; CHECK-NEXT:    ret935entry:936  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)937  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)938  ret <vscale x 2 x i16> %1939}940 941define <vscale x 4 x i16> @test_vlsseg3_nxv4i16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {942; CHECK-LABEL: test_vlsseg3_nxv4i16_triscv.vector.tuple_nxv8i8_3t:943; CHECK:       # %bb.0: # %entry944; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma945; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1946; CHECK-NEXT:    ret947entry:948  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)949  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)950  ret <vscale x 4 x i16> %1951}952 953define <vscale x 4 x i16> @test_vlsseg3_mask_nxv4i16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {954; CHECK-LABEL: test_vlsseg3_mask_nxv4i16_triscv.vector.tuple_nxv8i8_3t:955; CHECK:       # %bb.0: # %entry956; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma957; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t958; CHECK-NEXT:    ret959entry:960  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)961  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)962  ret <vscale x 4 x i16> %1963}964 965define <vscale x 8 x i16> @test_vlsseg3_nxv8i16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {966; CHECK-LABEL: test_vlsseg3_nxv8i16_triscv.vector.tuple_nxv16i8_3t:967; CHECK:       # %bb.0: # %entry968; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma969; CHECK-NEXT:    vlsseg3e16.v v6, (a0), a1970; CHECK-NEXT:    ret971entry:972  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)973  %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)974  ret <vscale x 8 x i16> %1975}976 977define <vscale x 8 x i16> @test_vlsseg3_mask_nxv8i16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {978; CHECK-LABEL: test_vlsseg3_mask_nxv8i16_triscv.vector.tuple_nxv16i8_3t:979; CHECK:       # %bb.0: # %entry980; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma981; CHECK-NEXT:    vlsseg3e16.v v6, (a0), a1, v0.t982; CHECK-NEXT:    ret983entry:984  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)985  %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)986  ret <vscale x 8 x i16> %1987}988 989define <vscale x 1 x i16> @test_vlsseg4_nxv1i16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl) {990; CHECK-LABEL: test_vlsseg4_nxv1i16_triscv.vector.tuple_nxv2i8_4t:991; CHECK:       # %bb.0: # %entry992; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma993; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1994; CHECK-NEXT:    ret995entry:996  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)997  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)998  ret <vscale x 1 x i16> %1999}1000 1001define <vscale x 1 x i16> @test_vlsseg4_mask_nxv1i16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1002; CHECK-LABEL: test_vlsseg4_mask_nxv1i16_triscv.vector.tuple_nxv2i8_4t:1003; CHECK:       # %bb.0: # %entry1004; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1005; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t1006; CHECK-NEXT:    ret1007entry:1008  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)1009  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)1010  ret <vscale x 1 x i16> %11011}1012 1013define <vscale x 2 x i16> @test_vlsseg4_nxv2i16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl) {1014; CHECK-LABEL: test_vlsseg4_nxv2i16_triscv.vector.tuple_nxv4i8_4t:1015; CHECK:       # %bb.0: # %entry1016; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1017; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a11018; CHECK-NEXT:    ret1019entry:1020  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1021  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)1022  ret <vscale x 2 x i16> %11023}1024 1025define <vscale x 2 x i16> @test_vlsseg4_mask_nxv2i16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1026; CHECK-LABEL: test_vlsseg4_mask_nxv2i16_triscv.vector.tuple_nxv4i8_4t:1027; CHECK:       # %bb.0: # %entry1028; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1029; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t1030; CHECK-NEXT:    ret1031entry:1032  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)1033  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)1034  ret <vscale x 2 x i16> %11035}1036 1037define <vscale x 4 x i16> @test_vlsseg4_nxv4i16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {1038; CHECK-LABEL: test_vlsseg4_nxv4i16_triscv.vector.tuple_nxv8i8_4t:1039; CHECK:       # %bb.0: # %entry1040; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1041; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a11042; CHECK-NEXT:    ret1043entry:1044  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1045  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)1046  ret <vscale x 4 x i16> %11047}1048 1049define <vscale x 4 x i16> @test_vlsseg4_mask_nxv4i16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1050; CHECK-LABEL: test_vlsseg4_mask_nxv4i16_triscv.vector.tuple_nxv8i8_4t:1051; CHECK:       # %bb.0: # %entry1052; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1053; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t1054; CHECK-NEXT:    ret1055entry:1056  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)1057  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)1058  ret <vscale x 4 x i16> %11059}1060 1061define <vscale x 8 x i16> @test_vlsseg4_nxv8i16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {1062; CHECK-LABEL: test_vlsseg4_nxv8i16_triscv.vector.tuple_nxv16i8_4t:1063; CHECK:       # %bb.0: # %entry1064; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma1065; CHECK-NEXT:    vlsseg4e16.v v6, (a0), a11066; CHECK-NEXT:    ret1067entry:1068  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1069  %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)1070  ret <vscale x 8 x i16> %11071}1072 1073define <vscale x 8 x i16> @test_vlsseg4_mask_nxv8i16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {1074; CHECK-LABEL: test_vlsseg4_mask_nxv8i16_triscv.vector.tuple_nxv16i8_4t:1075; CHECK:       # %bb.0: # %entry1076; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma1077; CHECK-NEXT:    vlsseg4e16.v v6, (a0), a1, v0.t1078; CHECK-NEXT:    ret1079entry:1080  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)1081  %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)1082  ret <vscale x 8 x i16> %11083}1084 1085define <vscale x 1 x i16> @test_vlsseg5_nxv1i16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl) {1086; CHECK-LABEL: test_vlsseg5_nxv1i16_triscv.vector.tuple_nxv2i8_5t:1087; CHECK:       # %bb.0: # %entry1088; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1089; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a11090; CHECK-NEXT:    ret1091entry:1092  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1093  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)1094  ret <vscale x 1 x i16> %11095}1096 1097define <vscale x 1 x i16> @test_vlsseg5_mask_nxv1i16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1098; CHECK-LABEL: test_vlsseg5_mask_nxv1i16_triscv.vector.tuple_nxv2i8_5t:1099; CHECK:       # %bb.0: # %entry1100; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1101; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t1102; CHECK-NEXT:    ret1103entry:1104  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)1105  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)1106  ret <vscale x 1 x i16> %11107}1108 1109define <vscale x 2 x i16> @test_vlsseg5_nxv2i16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl) {1110; CHECK-LABEL: test_vlsseg5_nxv2i16_triscv.vector.tuple_nxv4i8_5t:1111; CHECK:       # %bb.0: # %entry1112; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1113; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a11114; CHECK-NEXT:    ret1115entry:1116  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1117  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)1118  ret <vscale x 2 x i16> %11119}1120 1121define <vscale x 2 x i16> @test_vlsseg5_mask_nxv2i16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1122; CHECK-LABEL: test_vlsseg5_mask_nxv2i16_triscv.vector.tuple_nxv4i8_5t:1123; CHECK:       # %bb.0: # %entry1124; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1125; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t1126; CHECK-NEXT:    ret1127entry:1128  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)1129  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)1130  ret <vscale x 2 x i16> %11131}1132 1133define <vscale x 4 x i16> @test_vlsseg5_nxv4i16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {1134; CHECK-LABEL: test_vlsseg5_nxv4i16_triscv.vector.tuple_nxv8i8_5t:1135; CHECK:       # %bb.0: # %entry1136; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1137; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a11138; CHECK-NEXT:    ret1139entry:1140  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1141  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)1142  ret <vscale x 4 x i16> %11143}1144 1145define <vscale x 4 x i16> @test_vlsseg5_mask_nxv4i16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1146; CHECK-LABEL: test_vlsseg5_mask_nxv4i16_triscv.vector.tuple_nxv8i8_5t:1147; CHECK:       # %bb.0: # %entry1148; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1149; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t1150; CHECK-NEXT:    ret1151entry:1152  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)1153  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)1154  ret <vscale x 4 x i16> %11155}1156 1157define <vscale x 1 x i16> @test_vlsseg6_nxv1i16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl) {1158; CHECK-LABEL: test_vlsseg6_nxv1i16_triscv.vector.tuple_nxv2i8_6t:1159; CHECK:       # %bb.0: # %entry1160; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1161; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a11162; CHECK-NEXT:    ret1163entry:1164  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1165  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)1166  ret <vscale x 1 x i16> %11167}1168 1169define <vscale x 1 x i16> @test_vlsseg6_mask_nxv1i16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1170; CHECK-LABEL: test_vlsseg6_mask_nxv1i16_triscv.vector.tuple_nxv2i8_6t:1171; CHECK:       # %bb.0: # %entry1172; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1173; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t1174; CHECK-NEXT:    ret1175entry:1176  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)1177  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)1178  ret <vscale x 1 x i16> %11179}1180 1181define <vscale x 2 x i16> @test_vlsseg6_nxv2i16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl) {1182; CHECK-LABEL: test_vlsseg6_nxv2i16_triscv.vector.tuple_nxv4i8_6t:1183; CHECK:       # %bb.0: # %entry1184; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1185; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a11186; CHECK-NEXT:    ret1187entry:1188  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1189  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)1190  ret <vscale x 2 x i16> %11191}1192 1193define <vscale x 2 x i16> @test_vlsseg6_mask_nxv2i16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1194; CHECK-LABEL: test_vlsseg6_mask_nxv2i16_triscv.vector.tuple_nxv4i8_6t:1195; CHECK:       # %bb.0: # %entry1196; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1197; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t1198; CHECK-NEXT:    ret1199entry:1200  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)1201  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)1202  ret <vscale x 2 x i16> %11203}1204 1205define <vscale x 4 x i16> @test_vlsseg6_nxv4i16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {1206; CHECK-LABEL: test_vlsseg6_nxv4i16_triscv.vector.tuple_nxv8i8_6t:1207; CHECK:       # %bb.0: # %entry1208; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1209; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a11210; CHECK-NEXT:    ret1211entry:1212  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1213  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)1214  ret <vscale x 4 x i16> %11215}1216 1217define <vscale x 4 x i16> @test_vlsseg6_mask_nxv4i16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1218; CHECK-LABEL: test_vlsseg6_mask_nxv4i16_triscv.vector.tuple_nxv8i8_6t:1219; CHECK:       # %bb.0: # %entry1220; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1221; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t1222; CHECK-NEXT:    ret1223entry:1224  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)1225  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)1226  ret <vscale x 4 x i16> %11227}1228 1229define <vscale x 1 x i16> @test_vlsseg7_nxv1i16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl) {1230; CHECK-LABEL: test_vlsseg7_nxv1i16_triscv.vector.tuple_nxv2i8_7t:1231; CHECK:       # %bb.0: # %entry1232; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1233; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a11234; CHECK-NEXT:    ret1235entry:1236  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1237  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)1238  ret <vscale x 1 x i16> %11239}1240 1241define <vscale x 1 x i16> @test_vlsseg7_mask_nxv1i16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1242; CHECK-LABEL: test_vlsseg7_mask_nxv1i16_triscv.vector.tuple_nxv2i8_7t:1243; CHECK:       # %bb.0: # %entry1244; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1245; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t1246; CHECK-NEXT:    ret1247entry:1248  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)1249  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)1250  ret <vscale x 1 x i16> %11251}1252 1253define <vscale x 2 x i16> @test_vlsseg7_nxv2i16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl) {1254; CHECK-LABEL: test_vlsseg7_nxv2i16_triscv.vector.tuple_nxv4i8_7t:1255; CHECK:       # %bb.0: # %entry1256; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1257; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a11258; CHECK-NEXT:    ret1259entry:1260  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1261  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)1262  ret <vscale x 2 x i16> %11263}1264 1265define <vscale x 2 x i16> @test_vlsseg7_mask_nxv2i16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1266; CHECK-LABEL: test_vlsseg7_mask_nxv2i16_triscv.vector.tuple_nxv4i8_7t:1267; CHECK:       # %bb.0: # %entry1268; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1269; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t1270; CHECK-NEXT:    ret1271entry:1272  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)1273  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)1274  ret <vscale x 2 x i16> %11275}1276 1277define <vscale x 4 x i16> @test_vlsseg7_nxv4i16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {1278; CHECK-LABEL: test_vlsseg7_nxv4i16_triscv.vector.tuple_nxv8i8_7t:1279; CHECK:       # %bb.0: # %entry1280; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1281; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a11282; CHECK-NEXT:    ret1283entry:1284  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1285  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)1286  ret <vscale x 4 x i16> %11287}1288 1289define <vscale x 4 x i16> @test_vlsseg7_mask_nxv4i16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1290; CHECK-LABEL: test_vlsseg7_mask_nxv4i16_triscv.vector.tuple_nxv8i8_7t:1291; CHECK:       # %bb.0: # %entry1292; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1293; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t1294; CHECK-NEXT:    ret1295entry:1296  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)1297  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)1298  ret <vscale x 4 x i16> %11299}1300 1301define <vscale x 1 x i16> @test_vlsseg8_nxv1i16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl) {1302; CHECK-LABEL: test_vlsseg8_nxv1i16_triscv.vector.tuple_nxv2i8_8t:1303; CHECK:       # %bb.0: # %entry1304; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1305; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a11306; CHECK-NEXT:    ret1307entry:1308  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1309  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)1310  ret <vscale x 1 x i16> %11311}1312 1313define <vscale x 1 x i16> @test_vlsseg8_mask_nxv1i16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1314; CHECK-LABEL: test_vlsseg8_mask_nxv1i16_triscv.vector.tuple_nxv2i8_8t:1315; CHECK:       # %bb.0: # %entry1316; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma1317; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t1318; CHECK-NEXT:    ret1319entry:1320  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)1321  %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)1322  ret <vscale x 1 x i16> %11323}1324 1325define <vscale x 2 x i16> @test_vlsseg8_nxv2i16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl) {1326; CHECK-LABEL: test_vlsseg8_nxv2i16_triscv.vector.tuple_nxv4i8_8t:1327; CHECK:       # %bb.0: # %entry1328; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1329; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a11330; CHECK-NEXT:    ret1331entry:1332  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1333  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)1334  ret <vscale x 2 x i16> %11335}1336 1337define <vscale x 2 x i16> @test_vlsseg8_mask_nxv2i16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1338; CHECK-LABEL: test_vlsseg8_mask_nxv2i16_triscv.vector.tuple_nxv4i8_8t:1339; CHECK:       # %bb.0: # %entry1340; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma1341; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t1342; CHECK-NEXT:    ret1343entry:1344  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)1345  %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)1346  ret <vscale x 2 x i16> %11347}1348 1349define <vscale x 4 x i16> @test_vlsseg8_nxv4i16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {1350; CHECK-LABEL: test_vlsseg8_nxv4i16_triscv.vector.tuple_nxv8i8_8t:1351; CHECK:       # %bb.0: # %entry1352; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1353; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a11354; CHECK-NEXT:    ret1355entry:1356  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)1357  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)1358  ret <vscale x 4 x i16> %11359}1360 1361define <vscale x 4 x i16> @test_vlsseg8_mask_nxv4i16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1362; CHECK-LABEL: test_vlsseg8_mask_nxv4i16_triscv.vector.tuple_nxv8i8_8t:1363; CHECK:       # %bb.0: # %entry1364; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma1365; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t1366; CHECK-NEXT:    ret1367entry:1368  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)1369  %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)1370  ret <vscale x 4 x i16> %11371}1372 1373define <vscale x 1 x i32> @test_vlsseg2_nxv1i32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl) {1374; CHECK-LABEL: test_vlsseg2_nxv1i32_triscv.vector.tuple_nxv4i8_2t:1375; CHECK:       # %bb.0: # %entry1376; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1377; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a11378; CHECK-NEXT:    ret1379entry:1380  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1381  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)1382  ret <vscale x 1 x i32> %11383}1384 1385define <vscale x 1 x i32> @test_vlsseg2_mask_nxv1i32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1386; CHECK-LABEL: test_vlsseg2_mask_nxv1i32_triscv.vector.tuple_nxv4i8_2t:1387; CHECK:       # %bb.0: # %entry1388; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1389; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a1, v0.t1390; CHECK-NEXT:    ret1391entry:1392  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1393  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)1394  ret <vscale x 1 x i32> %11395}1396 1397define <vscale x 2 x i32> @test_vlsseg2_nxv2i32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {1398; CHECK-LABEL: test_vlsseg2_nxv2i32_triscv.vector.tuple_nxv8i8_2t:1399; CHECK:       # %bb.0: # %entry1400; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1401; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a11402; CHECK-NEXT:    ret1403entry:1404  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1405  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)1406  ret <vscale x 2 x i32> %11407}1408 1409define <vscale x 2 x i32> @test_vlsseg2_mask_nxv2i32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1410; CHECK-LABEL: test_vlsseg2_mask_nxv2i32_triscv.vector.tuple_nxv8i8_2t:1411; CHECK:       # %bb.0: # %entry1412; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1413; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a1, v0.t1414; CHECK-NEXT:    ret1415entry:1416  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1417  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)1418  ret <vscale x 2 x i32> %11419}1420 1421define <vscale x 4 x i32> @test_vlsseg2_nxv4i32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {1422; CHECK-LABEL: test_vlsseg2_nxv4i32_triscv.vector.tuple_nxv16i8_2t:1423; CHECK:       # %bb.0: # %entry1424; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma1425; CHECK-NEXT:    vlsseg2e32.v v6, (a0), a11426; CHECK-NEXT:    ret1427entry:1428  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1429  %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)1430  ret <vscale x 4 x i32> %11431}1432 1433define <vscale x 4 x i32> @test_vlsseg2_mask_nxv4i32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1434; CHECK-LABEL: test_vlsseg2_mask_nxv4i32_triscv.vector.tuple_nxv16i8_2t:1435; CHECK:       # %bb.0: # %entry1436; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma1437; CHECK-NEXT:    vlsseg2e32.v v6, (a0), a1, v0.t1438; CHECK-NEXT:    ret1439entry:1440  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 5)1441  %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)1442  ret <vscale x 4 x i32> %11443}1444 1445define <vscale x 8 x i32> @test_vlsseg2_nxv8i32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {1446; CHECK-LABEL: test_vlsseg2_nxv8i32_triscv.vector.tuple_nxv32i8_2t:1447; CHECK:       # %bb.0: # %entry1448; CHECK-NEXT:    vsetvli zero, a2, e32, m4, ta, ma1449; CHECK-NEXT:    vlsseg2e32.v v4, (a0), a11450; CHECK-NEXT:    ret1451entry:1452  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1453  %1 = call <vscale x 8 x i32> @llvm.riscv.tuple.extract.nxv8i32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)1454  ret <vscale x 8 x i32> %11455}1456 1457define <vscale x 8 x i32> @test_vlsseg2_mask_nxv8i32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {1458; CHECK-LABEL: test_vlsseg2_mask_nxv8i32_triscv.vector.tuple_nxv32i8_2t:1459; CHECK:       # %bb.0: # %entry1460; CHECK-NEXT:    vsetvli zero, a2, e32, m4, ta, ma1461; CHECK-NEXT:    vlsseg2e32.v v4, (a0), a1, v0.t1462; CHECK-NEXT:    ret1463entry:1464  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 5)1465  %1 = call <vscale x 8 x i32> @llvm.riscv.tuple.extract.nxv8i32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)1466  ret <vscale x 8 x i32> %11467}1468 1469define <vscale x 1 x i32> @test_vlsseg3_nxv1i32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl) {1470; CHECK-LABEL: test_vlsseg3_nxv1i32_triscv.vector.tuple_nxv4i8_3t:1471; CHECK:       # %bb.0: # %entry1472; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1473; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a11474; CHECK-NEXT:    ret1475entry:1476  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1477  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)1478  ret <vscale x 1 x i32> %11479}1480 1481define <vscale x 1 x i32> @test_vlsseg3_mask_nxv1i32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1482; CHECK-LABEL: test_vlsseg3_mask_nxv1i32_triscv.vector.tuple_nxv4i8_3t:1483; CHECK:       # %bb.0: # %entry1484; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1485; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a1, v0.t1486; CHECK-NEXT:    ret1487entry:1488  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1489  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)1490  ret <vscale x 1 x i32> %11491}1492 1493define <vscale x 2 x i32> @test_vlsseg3_nxv2i32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {1494; CHECK-LABEL: test_vlsseg3_nxv2i32_triscv.vector.tuple_nxv8i8_3t:1495; CHECK:       # %bb.0: # %entry1496; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1497; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a11498; CHECK-NEXT:    ret1499entry:1500  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1501  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)1502  ret <vscale x 2 x i32> %11503}1504 1505define <vscale x 2 x i32> @test_vlsseg3_mask_nxv2i32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1506; CHECK-LABEL: test_vlsseg3_mask_nxv2i32_triscv.vector.tuple_nxv8i8_3t:1507; CHECK:       # %bb.0: # %entry1508; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1509; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a1, v0.t1510; CHECK-NEXT:    ret1511entry:1512  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1513  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)1514  ret <vscale x 2 x i32> %11515}1516 1517define <vscale x 4 x i32> @test_vlsseg3_nxv4i32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {1518; CHECK-LABEL: test_vlsseg3_nxv4i32_triscv.vector.tuple_nxv16i8_3t:1519; CHECK:       # %bb.0: # %entry1520; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma1521; CHECK-NEXT:    vlsseg3e32.v v6, (a0), a11522; CHECK-NEXT:    ret1523entry:1524  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1525  %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)1526  ret <vscale x 4 x i32> %11527}1528 1529define <vscale x 4 x i32> @test_vlsseg3_mask_nxv4i32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1530; CHECK-LABEL: test_vlsseg3_mask_nxv4i32_triscv.vector.tuple_nxv16i8_3t:1531; CHECK:       # %bb.0: # %entry1532; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma1533; CHECK-NEXT:    vlsseg3e32.v v6, (a0), a1, v0.t1534; CHECK-NEXT:    ret1535entry:1536  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 5)1537  %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)1538  ret <vscale x 4 x i32> %11539}1540 1541define <vscale x 1 x i32> @test_vlsseg4_nxv1i32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl) {1542; CHECK-LABEL: test_vlsseg4_nxv1i32_triscv.vector.tuple_nxv4i8_4t:1543; CHECK:       # %bb.0: # %entry1544; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1545; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a11546; CHECK-NEXT:    ret1547entry:1548  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1549  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)1550  ret <vscale x 1 x i32> %11551}1552 1553define <vscale x 1 x i32> @test_vlsseg4_mask_nxv1i32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1554; CHECK-LABEL: test_vlsseg4_mask_nxv1i32_triscv.vector.tuple_nxv4i8_4t:1555; CHECK:       # %bb.0: # %entry1556; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1557; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a1, v0.t1558; CHECK-NEXT:    ret1559entry:1560  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1561  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)1562  ret <vscale x 1 x i32> %11563}1564 1565define <vscale x 2 x i32> @test_vlsseg4_nxv2i32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {1566; CHECK-LABEL: test_vlsseg4_nxv2i32_triscv.vector.tuple_nxv8i8_4t:1567; CHECK:       # %bb.0: # %entry1568; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1569; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a11570; CHECK-NEXT:    ret1571entry:1572  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1573  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)1574  ret <vscale x 2 x i32> %11575}1576 1577define <vscale x 2 x i32> @test_vlsseg4_mask_nxv2i32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1578; CHECK-LABEL: test_vlsseg4_mask_nxv2i32_triscv.vector.tuple_nxv8i8_4t:1579; CHECK:       # %bb.0: # %entry1580; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1581; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a1, v0.t1582; CHECK-NEXT:    ret1583entry:1584  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1585  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)1586  ret <vscale x 2 x i32> %11587}1588 1589define <vscale x 4 x i32> @test_vlsseg4_nxv4i32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {1590; CHECK-LABEL: test_vlsseg4_nxv4i32_triscv.vector.tuple_nxv16i8_4t:1591; CHECK:       # %bb.0: # %entry1592; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma1593; CHECK-NEXT:    vlsseg4e32.v v6, (a0), a11594; CHECK-NEXT:    ret1595entry:1596  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1597  %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)1598  ret <vscale x 4 x i32> %11599}1600 1601define <vscale x 4 x i32> @test_vlsseg4_mask_nxv4i32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1602; CHECK-LABEL: test_vlsseg4_mask_nxv4i32_triscv.vector.tuple_nxv16i8_4t:1603; CHECK:       # %bb.0: # %entry1604; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma1605; CHECK-NEXT:    vlsseg4e32.v v6, (a0), a1, v0.t1606; CHECK-NEXT:    ret1607entry:1608  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 5)1609  %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)1610  ret <vscale x 4 x i32> %11611}1612 1613define <vscale x 1 x i32> @test_vlsseg5_nxv1i32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl) {1614; CHECK-LABEL: test_vlsseg5_nxv1i32_triscv.vector.tuple_nxv4i8_5t:1615; CHECK:       # %bb.0: # %entry1616; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1617; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a11618; CHECK-NEXT:    ret1619entry:1620  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1621  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)1622  ret <vscale x 1 x i32> %11623}1624 1625define <vscale x 1 x i32> @test_vlsseg5_mask_nxv1i32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1626; CHECK-LABEL: test_vlsseg5_mask_nxv1i32_triscv.vector.tuple_nxv4i8_5t:1627; CHECK:       # %bb.0: # %entry1628; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1629; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a1, v0.t1630; CHECK-NEXT:    ret1631entry:1632  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1633  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)1634  ret <vscale x 1 x i32> %11635}1636 1637define <vscale x 2 x i32> @test_vlsseg5_nxv2i32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {1638; CHECK-LABEL: test_vlsseg5_nxv2i32_triscv.vector.tuple_nxv8i8_5t:1639; CHECK:       # %bb.0: # %entry1640; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1641; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a11642; CHECK-NEXT:    ret1643entry:1644  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1645  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)1646  ret <vscale x 2 x i32> %11647}1648 1649define <vscale x 2 x i32> @test_vlsseg5_mask_nxv2i32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1650; CHECK-LABEL: test_vlsseg5_mask_nxv2i32_triscv.vector.tuple_nxv8i8_5t:1651; CHECK:       # %bb.0: # %entry1652; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1653; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a1, v0.t1654; CHECK-NEXT:    ret1655entry:1656  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1657  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)1658  ret <vscale x 2 x i32> %11659}1660 1661define <vscale x 1 x i32> @test_vlsseg6_nxv1i32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl) {1662; CHECK-LABEL: test_vlsseg6_nxv1i32_triscv.vector.tuple_nxv4i8_6t:1663; CHECK:       # %bb.0: # %entry1664; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1665; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a11666; CHECK-NEXT:    ret1667entry:1668  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1669  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)1670  ret <vscale x 1 x i32> %11671}1672 1673define <vscale x 1 x i32> @test_vlsseg6_mask_nxv1i32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1674; CHECK-LABEL: test_vlsseg6_mask_nxv1i32_triscv.vector.tuple_nxv4i8_6t:1675; CHECK:       # %bb.0: # %entry1676; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1677; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a1, v0.t1678; CHECK-NEXT:    ret1679entry:1680  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1681  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)1682  ret <vscale x 1 x i32> %11683}1684 1685define <vscale x 2 x i32> @test_vlsseg6_nxv2i32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {1686; CHECK-LABEL: test_vlsseg6_nxv2i32_triscv.vector.tuple_nxv8i8_6t:1687; CHECK:       # %bb.0: # %entry1688; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1689; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a11690; CHECK-NEXT:    ret1691entry:1692  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1693  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)1694  ret <vscale x 2 x i32> %11695}1696 1697define <vscale x 2 x i32> @test_vlsseg6_mask_nxv2i32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1698; CHECK-LABEL: test_vlsseg6_mask_nxv2i32_triscv.vector.tuple_nxv8i8_6t:1699; CHECK:       # %bb.0: # %entry1700; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1701; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a1, v0.t1702; CHECK-NEXT:    ret1703entry:1704  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1705  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)1706  ret <vscale x 2 x i32> %11707}1708 1709define <vscale x 1 x i32> @test_vlsseg7_nxv1i32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl) {1710; CHECK-LABEL: test_vlsseg7_nxv1i32_triscv.vector.tuple_nxv4i8_7t:1711; CHECK:       # %bb.0: # %entry1712; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1713; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a11714; CHECK-NEXT:    ret1715entry:1716  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1717  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)1718  ret <vscale x 1 x i32> %11719}1720 1721define <vscale x 1 x i32> @test_vlsseg7_mask_nxv1i32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1722; CHECK-LABEL: test_vlsseg7_mask_nxv1i32_triscv.vector.tuple_nxv4i8_7t:1723; CHECK:       # %bb.0: # %entry1724; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1725; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a1, v0.t1726; CHECK-NEXT:    ret1727entry:1728  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1729  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)1730  ret <vscale x 1 x i32> %11731}1732 1733define <vscale x 2 x i32> @test_vlsseg7_nxv2i32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {1734; CHECK-LABEL: test_vlsseg7_nxv2i32_triscv.vector.tuple_nxv8i8_7t:1735; CHECK:       # %bb.0: # %entry1736; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1737; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a11738; CHECK-NEXT:    ret1739entry:1740  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1741  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)1742  ret <vscale x 2 x i32> %11743}1744 1745define <vscale x 2 x i32> @test_vlsseg7_mask_nxv2i32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1746; CHECK-LABEL: test_vlsseg7_mask_nxv2i32_triscv.vector.tuple_nxv8i8_7t:1747; CHECK:       # %bb.0: # %entry1748; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1749; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a1, v0.t1750; CHECK-NEXT:    ret1751entry:1752  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1753  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)1754  ret <vscale x 2 x i32> %11755}1756 1757define <vscale x 1 x i32> @test_vlsseg8_nxv1i32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl) {1758; CHECK-LABEL: test_vlsseg8_nxv1i32_triscv.vector.tuple_nxv4i8_8t:1759; CHECK:       # %bb.0: # %entry1760; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1761; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a11762; CHECK-NEXT:    ret1763entry:1764  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1765  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)1766  ret <vscale x 1 x i32> %11767}1768 1769define <vscale x 1 x i32> @test_vlsseg8_mask_nxv1i32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1770; CHECK-LABEL: test_vlsseg8_mask_nxv1i32_triscv.vector.tuple_nxv4i8_8t:1771; CHECK:       # %bb.0: # %entry1772; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma1773; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a1, v0.t1774; CHECK-NEXT:    ret1775entry:1776  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)1777  %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)1778  ret <vscale x 1 x i32> %11779}1780 1781define <vscale x 2 x i32> @test_vlsseg8_nxv2i32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {1782; CHECK-LABEL: test_vlsseg8_nxv2i32_triscv.vector.tuple_nxv8i8_8t:1783; CHECK:       # %bb.0: # %entry1784; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1785; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a11786; CHECK-NEXT:    ret1787entry:1788  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 5)1789  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)1790  ret <vscale x 2 x i32> %11791}1792 1793define <vscale x 2 x i32> @test_vlsseg8_mask_nxv2i32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1794; CHECK-LABEL: test_vlsseg8_mask_nxv2i32_triscv.vector.tuple_nxv8i8_8t:1795; CHECK:       # %bb.0: # %entry1796; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma1797; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a1, v0.t1798; CHECK-NEXT:    ret1799entry:1800  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)1801  %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)1802  ret <vscale x 2 x i32> %11803}1804 1805define <vscale x 1 x i64> @test_vlsseg2_nxv1i64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {1806; CHECK-LABEL: test_vlsseg2_nxv1i64_triscv.vector.tuple_nxv8i8_2t:1807; CHECK:       # %bb.0: # %entry1808; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1809; CHECK-NEXT:    vlsseg2e64.v v7, (a0), a11810; CHECK-NEXT:    ret1811entry:1812  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1813  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)1814  ret <vscale x 1 x i64> %11815}1816 1817define <vscale x 1 x i64> @test_vlsseg2_mask_nxv1i64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1818; CHECK-LABEL: test_vlsseg2_mask_nxv1i64_triscv.vector.tuple_nxv8i8_2t:1819; CHECK:       # %bb.0: # %entry1820; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1821; CHECK-NEXT:    vlsseg2e64.v v7, (a0), a1, v0.t1822; CHECK-NEXT:    ret1823entry:1824  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)1825  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)1826  ret <vscale x 1 x i64> %11827}1828 1829define <vscale x 2 x i64> @test_vlsseg2_nxv2i64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {1830; CHECK-LABEL: test_vlsseg2_nxv2i64_triscv.vector.tuple_nxv16i8_2t:1831; CHECK:       # %bb.0: # %entry1832; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1833; CHECK-NEXT:    vlsseg2e64.v v6, (a0), a11834; CHECK-NEXT:    ret1835entry:1836  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1837  %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)1838  ret <vscale x 2 x i64> %11839}1840 1841define <vscale x 2 x i64> @test_vlsseg2_mask_nxv2i64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1842; CHECK-LABEL: test_vlsseg2_mask_nxv2i64_triscv.vector.tuple_nxv16i8_2t:1843; CHECK:       # %bb.0: # %entry1844; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1845; CHECK-NEXT:    vlsseg2e64.v v6, (a0), a1, v0.t1846; CHECK-NEXT:    ret1847entry:1848  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 6)1849  %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)1850  ret <vscale x 2 x i64> %11851}1852 1853define <vscale x 4 x i64> @test_vlsseg2_nxv4i64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {1854; CHECK-LABEL: test_vlsseg2_nxv4i64_triscv.vector.tuple_nxv32i8_2t:1855; CHECK:       # %bb.0: # %entry1856; CHECK-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1857; CHECK-NEXT:    vlsseg2e64.v v4, (a0), a11858; CHECK-NEXT:    ret1859entry:1860  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1861  %1 = call <vscale x 4 x i64> @llvm.riscv.tuple.extract.nxv4i64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)1862  ret <vscale x 4 x i64> %11863}1864 1865define <vscale x 4 x i64> @test_vlsseg2_mask_nxv4i64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {1866; CHECK-LABEL: test_vlsseg2_mask_nxv4i64_triscv.vector.tuple_nxv32i8_2t:1867; CHECK:       # %bb.0: # %entry1868; CHECK-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1869; CHECK-NEXT:    vlsseg2e64.v v4, (a0), a1, v0.t1870; CHECK-NEXT:    ret1871entry:1872  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 6)1873  %1 = call <vscale x 4 x i64> @llvm.riscv.tuple.extract.nxv4i64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)1874  ret <vscale x 4 x i64> %11875}1876 1877define <vscale x 1 x i64> @test_vlsseg3_nxv1i64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {1878; CHECK-LABEL: test_vlsseg3_nxv1i64_triscv.vector.tuple_nxv8i8_3t:1879; CHECK:       # %bb.0: # %entry1880; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1881; CHECK-NEXT:    vlsseg3e64.v v7, (a0), a11882; CHECK-NEXT:    ret1883entry:1884  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1885  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)1886  ret <vscale x 1 x i64> %11887}1888 1889define <vscale x 1 x i64> @test_vlsseg3_mask_nxv1i64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1890; CHECK-LABEL: test_vlsseg3_mask_nxv1i64_triscv.vector.tuple_nxv8i8_3t:1891; CHECK:       # %bb.0: # %entry1892; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1893; CHECK-NEXT:    vlsseg3e64.v v7, (a0), a1, v0.t1894; CHECK-NEXT:    ret1895entry:1896  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)1897  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)1898  ret <vscale x 1 x i64> %11899}1900 1901define <vscale x 2 x i64> @test_vlsseg3_nxv2i64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {1902; CHECK-LABEL: test_vlsseg3_nxv2i64_triscv.vector.tuple_nxv16i8_3t:1903; CHECK:       # %bb.0: # %entry1904; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1905; CHECK-NEXT:    vlsseg3e64.v v6, (a0), a11906; CHECK-NEXT:    ret1907entry:1908  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1909  %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)1910  ret <vscale x 2 x i64> %11911}1912 1913define <vscale x 2 x i64> @test_vlsseg3_mask_nxv2i64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1914; CHECK-LABEL: test_vlsseg3_mask_nxv2i64_triscv.vector.tuple_nxv16i8_3t:1915; CHECK:       # %bb.0: # %entry1916; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1917; CHECK-NEXT:    vlsseg3e64.v v6, (a0), a1, v0.t1918; CHECK-NEXT:    ret1919entry:1920  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 6)1921  %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)1922  ret <vscale x 2 x i64> %11923}1924 1925define <vscale x 1 x i64> @test_vlsseg4_nxv1i64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {1926; CHECK-LABEL: test_vlsseg4_nxv1i64_triscv.vector.tuple_nxv8i8_4t:1927; CHECK:       # %bb.0: # %entry1928; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1929; CHECK-NEXT:    vlsseg4e64.v v7, (a0), a11930; CHECK-NEXT:    ret1931entry:1932  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1933  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)1934  ret <vscale x 1 x i64> %11935}1936 1937define <vscale x 1 x i64> @test_vlsseg4_mask_nxv1i64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1938; CHECK-LABEL: test_vlsseg4_mask_nxv1i64_triscv.vector.tuple_nxv8i8_4t:1939; CHECK:       # %bb.0: # %entry1940; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1941; CHECK-NEXT:    vlsseg4e64.v v7, (a0), a1, v0.t1942; CHECK-NEXT:    ret1943entry:1944  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)1945  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)1946  ret <vscale x 1 x i64> %11947}1948 1949define <vscale x 2 x i64> @test_vlsseg4_nxv2i64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {1950; CHECK-LABEL: test_vlsseg4_nxv2i64_triscv.vector.tuple_nxv16i8_4t:1951; CHECK:       # %bb.0: # %entry1952; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1953; CHECK-NEXT:    vlsseg4e64.v v6, (a0), a11954; CHECK-NEXT:    ret1955entry:1956  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1957  %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)1958  ret <vscale x 2 x i64> %11959}1960 1961define <vscale x 2 x i64> @test_vlsseg4_mask_nxv2i64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {1962; CHECK-LABEL: test_vlsseg4_mask_nxv2i64_triscv.vector.tuple_nxv16i8_4t:1963; CHECK:       # %bb.0: # %entry1964; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1965; CHECK-NEXT:    vlsseg4e64.v v6, (a0), a1, v0.t1966; CHECK-NEXT:    ret1967entry:1968  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 6)1969  %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)1970  ret <vscale x 2 x i64> %11971}1972 1973define <vscale x 1 x i64> @test_vlsseg5_nxv1i64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {1974; CHECK-LABEL: test_vlsseg5_nxv1i64_triscv.vector.tuple_nxv8i8_5t:1975; CHECK:       # %bb.0: # %entry1976; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1977; CHECK-NEXT:    vlsseg5e64.v v7, (a0), a11978; CHECK-NEXT:    ret1979entry:1980  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 6)1981  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)1982  ret <vscale x 1 x i64> %11983}1984 1985define <vscale x 1 x i64> @test_vlsseg5_mask_nxv1i64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {1986; CHECK-LABEL: test_vlsseg5_mask_nxv1i64_triscv.vector.tuple_nxv8i8_5t:1987; CHECK:       # %bb.0: # %entry1988; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1989; CHECK-NEXT:    vlsseg5e64.v v7, (a0), a1, v0.t1990; CHECK-NEXT:    ret1991entry:1992  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)1993  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)1994  ret <vscale x 1 x i64> %11995}1996 1997define <vscale x 1 x i64> @test_vlsseg6_nxv1i64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {1998; CHECK-LABEL: test_vlsseg6_nxv1i64_triscv.vector.tuple_nxv8i8_6t:1999; CHECK:       # %bb.0: # %entry2000; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma2001; CHECK-NEXT:    vlsseg6e64.v v7, (a0), a12002; CHECK-NEXT:    ret2003entry:2004  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 6)2005  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)2006  ret <vscale x 1 x i64> %12007}2008 2009define <vscale x 1 x i64> @test_vlsseg6_mask_nxv1i64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2010; CHECK-LABEL: test_vlsseg6_mask_nxv1i64_triscv.vector.tuple_nxv8i8_6t:2011; CHECK:       # %bb.0: # %entry2012; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma2013; CHECK-NEXT:    vlsseg6e64.v v7, (a0), a1, v0.t2014; CHECK-NEXT:    ret2015entry:2016  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)2017  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)2018  ret <vscale x 1 x i64> %12019}2020 2021define <vscale x 1 x i64> @test_vlsseg7_nxv1i64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {2022; CHECK-LABEL: test_vlsseg7_nxv1i64_triscv.vector.tuple_nxv8i8_7t:2023; CHECK:       # %bb.0: # %entry2024; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma2025; CHECK-NEXT:    vlsseg7e64.v v7, (a0), a12026; CHECK-NEXT:    ret2027entry:2028  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 6)2029  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)2030  ret <vscale x 1 x i64> %12031}2032 2033define <vscale x 1 x i64> @test_vlsseg7_mask_nxv1i64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2034; CHECK-LABEL: test_vlsseg7_mask_nxv1i64_triscv.vector.tuple_nxv8i8_7t:2035; CHECK:       # %bb.0: # %entry2036; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma2037; CHECK-NEXT:    vlsseg7e64.v v7, (a0), a1, v0.t2038; CHECK-NEXT:    ret2039entry:2040  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)2041  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)2042  ret <vscale x 1 x i64> %12043}2044 2045define <vscale x 1 x i64> @test_vlsseg8_nxv1i64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {2046; CHECK-LABEL: test_vlsseg8_nxv1i64_triscv.vector.tuple_nxv8i8_8t:2047; CHECK:       # %bb.0: # %entry2048; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma2049; CHECK-NEXT:    vlsseg8e64.v v7, (a0), a12050; CHECK-NEXT:    ret2051entry:2052  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 6)2053  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)2054  ret <vscale x 1 x i64> %12055}2056 2057define <vscale x 1 x i64> @test_vlsseg8_mask_nxv1i64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2058; CHECK-LABEL: test_vlsseg8_mask_nxv1i64_triscv.vector.tuple_nxv8i8_8t:2059; CHECK:       # %bb.0: # %entry2060; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma2061; CHECK-NEXT:    vlsseg8e64.v v7, (a0), a1, v0.t2062; CHECK-NEXT:    ret2063entry:2064  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)2065  %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)2066  ret <vscale x 1 x i64> %12067}2068 2069define <vscale x 1 x half> @test_vlsseg2_nxv1f16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl) {2070; CHECK-LABEL: test_vlsseg2_nxv1f16_triscv.vector.tuple_nxv2i8_2t:2071; CHECK:       # %bb.0: # %entry2072; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2073; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a12074; CHECK-NEXT:    ret2075entry:2076  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2077  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)2078  ret <vscale x 1 x half> %12079}2080 2081define <vscale x 1 x half> @test_vlsseg2_mask_nxv1f16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2082; CHECK-LABEL: test_vlsseg2_mask_nxv1f16_triscv.vector.tuple_nxv2i8_2t:2083; CHECK:       # %bb.0: # %entry2084; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2085; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t2086; CHECK-NEXT:    ret2087entry:2088  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2089  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)2090  ret <vscale x 1 x half> %12091}2092 2093define <vscale x 2 x half> @test_vlsseg2_nxv2f16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl) {2094; CHECK-LABEL: test_vlsseg2_nxv2f16_triscv.vector.tuple_nxv4i8_2t:2095; CHECK:       # %bb.0: # %entry2096; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2097; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a12098; CHECK-NEXT:    ret2099entry:2100  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2101  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)2102  ret <vscale x 2 x half> %12103}2104 2105define <vscale x 2 x half> @test_vlsseg2_mask_nxv2f16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2106; CHECK-LABEL: test_vlsseg2_mask_nxv2f16_triscv.vector.tuple_nxv4i8_2t:2107; CHECK:       # %bb.0: # %entry2108; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2109; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t2110; CHECK-NEXT:    ret2111entry:2112  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2113  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)2114  ret <vscale x 2 x half> %12115}2116 2117define <vscale x 4 x half> @test_vlsseg2_nxv4f16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {2118; CHECK-LABEL: test_vlsseg2_nxv4f16_triscv.vector.tuple_nxv8i8_2t:2119; CHECK:       # %bb.0: # %entry2120; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2121; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a12122; CHECK-NEXT:    ret2123entry:2124  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2125  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)2126  ret <vscale x 4 x half> %12127}2128 2129define <vscale x 4 x half> @test_vlsseg2_mask_nxv4f16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2130; CHECK-LABEL: test_vlsseg2_mask_nxv4f16_triscv.vector.tuple_nxv8i8_2t:2131; CHECK:       # %bb.0: # %entry2132; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2133; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t2134; CHECK-NEXT:    ret2135entry:2136  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2137  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)2138  ret <vscale x 4 x half> %12139}2140 2141define <vscale x 8 x half> @test_vlsseg2_nxv8f16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {2142; CHECK-LABEL: test_vlsseg2_nxv8f16_triscv.vector.tuple_nxv16i8_2t:2143; CHECK:       # %bb.0: # %entry2144; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma2145; CHECK-NEXT:    vlsseg2e16.v v6, (a0), a12146; CHECK-NEXT:    ret2147entry:2148  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2149  %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)2150  ret <vscale x 8 x half> %12151}2152 2153define <vscale x 8 x half> @test_vlsseg2_mask_nxv8f16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {2154; CHECK-LABEL: test_vlsseg2_mask_nxv8f16_triscv.vector.tuple_nxv16i8_2t:2155; CHECK:       # %bb.0: # %entry2156; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma2157; CHECK-NEXT:    vlsseg2e16.v v6, (a0), a1, v0.t2158; CHECK-NEXT:    ret2159entry:2160  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)2161  %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)2162  ret <vscale x 8 x half> %12163}2164 2165define <vscale x 16 x half> @test_vlsseg2_nxv16f16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {2166; CHECK-LABEL: test_vlsseg2_nxv16f16_triscv.vector.tuple_nxv32i8_2t:2167; CHECK:       # %bb.0: # %entry2168; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma2169; CHECK-NEXT:    vlsseg2e16.v v4, (a0), a12170; CHECK-NEXT:    ret2171entry:2172  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2173  %1 = call <vscale x 16 x half> @llvm.riscv.tuple.extract.nxv16f16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)2174  ret <vscale x 16 x half> %12175}2176 2177define <vscale x 16 x half> @test_vlsseg2_mask_nxv16f16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 16 x i1> %mask) {2178; CHECK-LABEL: test_vlsseg2_mask_nxv16f16_triscv.vector.tuple_nxv32i8_2t:2179; CHECK:       # %bb.0: # %entry2180; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma2181; CHECK-NEXT:    vlsseg2e16.v v4, (a0), a1, v0.t2182; CHECK-NEXT:    ret2183entry:2184  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 16 x i1> %mask, i32 %vl, i32 1, i32 4)2185  %1 = call <vscale x 16 x half> @llvm.riscv.tuple.extract.nxv16f16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)2186  ret <vscale x 16 x half> %12187}2188 2189define <vscale x 1 x half> @test_vlsseg3_nxv1f16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl) {2190; CHECK-LABEL: test_vlsseg3_nxv1f16_triscv.vector.tuple_nxv2i8_3t:2191; CHECK:       # %bb.0: # %entry2192; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2193; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a12194; CHECK-NEXT:    ret2195entry:2196  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2197  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)2198  ret <vscale x 1 x half> %12199}2200 2201define <vscale x 1 x half> @test_vlsseg3_mask_nxv1f16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2202; CHECK-LABEL: test_vlsseg3_mask_nxv1f16_triscv.vector.tuple_nxv2i8_3t:2203; CHECK:       # %bb.0: # %entry2204; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2205; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t2206; CHECK-NEXT:    ret2207entry:2208  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2209  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)2210  ret <vscale x 1 x half> %12211}2212 2213define <vscale x 2 x half> @test_vlsseg3_nxv2f16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl) {2214; CHECK-LABEL: test_vlsseg3_nxv2f16_triscv.vector.tuple_nxv4i8_3t:2215; CHECK:       # %bb.0: # %entry2216; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2217; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a12218; CHECK-NEXT:    ret2219entry:2220  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2221  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)2222  ret <vscale x 2 x half> %12223}2224 2225define <vscale x 2 x half> @test_vlsseg3_mask_nxv2f16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2226; CHECK-LABEL: test_vlsseg3_mask_nxv2f16_triscv.vector.tuple_nxv4i8_3t:2227; CHECK:       # %bb.0: # %entry2228; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2229; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t2230; CHECK-NEXT:    ret2231entry:2232  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2233  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)2234  ret <vscale x 2 x half> %12235}2236 2237define <vscale x 4 x half> @test_vlsseg3_nxv4f16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {2238; CHECK-LABEL: test_vlsseg3_nxv4f16_triscv.vector.tuple_nxv8i8_3t:2239; CHECK:       # %bb.0: # %entry2240; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2241; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a12242; CHECK-NEXT:    ret2243entry:2244  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2245  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)2246  ret <vscale x 4 x half> %12247}2248 2249define <vscale x 4 x half> @test_vlsseg3_mask_nxv4f16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2250; CHECK-LABEL: test_vlsseg3_mask_nxv4f16_triscv.vector.tuple_nxv8i8_3t:2251; CHECK:       # %bb.0: # %entry2252; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2253; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t2254; CHECK-NEXT:    ret2255entry:2256  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2257  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)2258  ret <vscale x 4 x half> %12259}2260 2261define <vscale x 8 x half> @test_vlsseg3_nxv8f16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {2262; CHECK-LABEL: test_vlsseg3_nxv8f16_triscv.vector.tuple_nxv16i8_3t:2263; CHECK:       # %bb.0: # %entry2264; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma2265; CHECK-NEXT:    vlsseg3e16.v v6, (a0), a12266; CHECK-NEXT:    ret2267entry:2268  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2269  %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)2270  ret <vscale x 8 x half> %12271}2272 2273define <vscale x 8 x half> @test_vlsseg3_mask_nxv8f16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {2274; CHECK-LABEL: test_vlsseg3_mask_nxv8f16_triscv.vector.tuple_nxv16i8_3t:2275; CHECK:       # %bb.0: # %entry2276; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma2277; CHECK-NEXT:    vlsseg3e16.v v6, (a0), a1, v0.t2278; CHECK-NEXT:    ret2279entry:2280  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)2281  %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)2282  ret <vscale x 8 x half> %12283}2284 2285define <vscale x 1 x half> @test_vlsseg4_nxv1f16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl) {2286; CHECK-LABEL: test_vlsseg4_nxv1f16_triscv.vector.tuple_nxv2i8_4t:2287; CHECK:       # %bb.0: # %entry2288; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2289; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a12290; CHECK-NEXT:    ret2291entry:2292  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2293  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)2294  ret <vscale x 1 x half> %12295}2296 2297define <vscale x 1 x half> @test_vlsseg4_mask_nxv1f16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2298; CHECK-LABEL: test_vlsseg4_mask_nxv1f16_triscv.vector.tuple_nxv2i8_4t:2299; CHECK:       # %bb.0: # %entry2300; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2301; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t2302; CHECK-NEXT:    ret2303entry:2304  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2305  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)2306  ret <vscale x 1 x half> %12307}2308 2309define <vscale x 2 x half> @test_vlsseg4_nxv2f16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl) {2310; CHECK-LABEL: test_vlsseg4_nxv2f16_triscv.vector.tuple_nxv4i8_4t:2311; CHECK:       # %bb.0: # %entry2312; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2313; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a12314; CHECK-NEXT:    ret2315entry:2316  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2317  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)2318  ret <vscale x 2 x half> %12319}2320 2321define <vscale x 2 x half> @test_vlsseg4_mask_nxv2f16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2322; CHECK-LABEL: test_vlsseg4_mask_nxv2f16_triscv.vector.tuple_nxv4i8_4t:2323; CHECK:       # %bb.0: # %entry2324; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2325; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t2326; CHECK-NEXT:    ret2327entry:2328  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2329  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)2330  ret <vscale x 2 x half> %12331}2332 2333define <vscale x 4 x half> @test_vlsseg4_nxv4f16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {2334; CHECK-LABEL: test_vlsseg4_nxv4f16_triscv.vector.tuple_nxv8i8_4t:2335; CHECK:       # %bb.0: # %entry2336; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2337; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a12338; CHECK-NEXT:    ret2339entry:2340  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2341  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)2342  ret <vscale x 4 x half> %12343}2344 2345define <vscale x 4 x half> @test_vlsseg4_mask_nxv4f16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2346; CHECK-LABEL: test_vlsseg4_mask_nxv4f16_triscv.vector.tuple_nxv8i8_4t:2347; CHECK:       # %bb.0: # %entry2348; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2349; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t2350; CHECK-NEXT:    ret2351entry:2352  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2353  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)2354  ret <vscale x 4 x half> %12355}2356 2357define <vscale x 8 x half> @test_vlsseg4_nxv8f16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {2358; CHECK-LABEL: test_vlsseg4_nxv8f16_triscv.vector.tuple_nxv16i8_4t:2359; CHECK:       # %bb.0: # %entry2360; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma2361; CHECK-NEXT:    vlsseg4e16.v v6, (a0), a12362; CHECK-NEXT:    ret2363entry:2364  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2365  %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)2366  ret <vscale x 8 x half> %12367}2368 2369define <vscale x 8 x half> @test_vlsseg4_mask_nxv8f16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {2370; CHECK-LABEL: test_vlsseg4_mask_nxv8f16_triscv.vector.tuple_nxv16i8_4t:2371; CHECK:       # %bb.0: # %entry2372; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma2373; CHECK-NEXT:    vlsseg4e16.v v6, (a0), a1, v0.t2374; CHECK-NEXT:    ret2375entry:2376  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)2377  %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)2378  ret <vscale x 8 x half> %12379}2380 2381define <vscale x 1 x half> @test_vlsseg5_nxv1f16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl) {2382; CHECK-LABEL: test_vlsseg5_nxv1f16_triscv.vector.tuple_nxv2i8_5t:2383; CHECK:       # %bb.0: # %entry2384; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2385; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a12386; CHECK-NEXT:    ret2387entry:2388  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2389  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)2390  ret <vscale x 1 x half> %12391}2392 2393define <vscale x 1 x half> @test_vlsseg5_mask_nxv1f16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2394; CHECK-LABEL: test_vlsseg5_mask_nxv1f16_triscv.vector.tuple_nxv2i8_5t:2395; CHECK:       # %bb.0: # %entry2396; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2397; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t2398; CHECK-NEXT:    ret2399entry:2400  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2401  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)2402  ret <vscale x 1 x half> %12403}2404 2405define <vscale x 2 x half> @test_vlsseg5_nxv2f16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl) {2406; CHECK-LABEL: test_vlsseg5_nxv2f16_triscv.vector.tuple_nxv4i8_5t:2407; CHECK:       # %bb.0: # %entry2408; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2409; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a12410; CHECK-NEXT:    ret2411entry:2412  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2413  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)2414  ret <vscale x 2 x half> %12415}2416 2417define <vscale x 2 x half> @test_vlsseg5_mask_nxv2f16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2418; CHECK-LABEL: test_vlsseg5_mask_nxv2f16_triscv.vector.tuple_nxv4i8_5t:2419; CHECK:       # %bb.0: # %entry2420; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2421; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t2422; CHECK-NEXT:    ret2423entry:2424  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2425  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)2426  ret <vscale x 2 x half> %12427}2428 2429define <vscale x 4 x half> @test_vlsseg5_nxv4f16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {2430; CHECK-LABEL: test_vlsseg5_nxv4f16_triscv.vector.tuple_nxv8i8_5t:2431; CHECK:       # %bb.0: # %entry2432; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2433; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a12434; CHECK-NEXT:    ret2435entry:2436  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2437  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)2438  ret <vscale x 4 x half> %12439}2440 2441define <vscale x 4 x half> @test_vlsseg5_mask_nxv4f16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2442; CHECK-LABEL: test_vlsseg5_mask_nxv4f16_triscv.vector.tuple_nxv8i8_5t:2443; CHECK:       # %bb.0: # %entry2444; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2445; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t2446; CHECK-NEXT:    ret2447entry:2448  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2449  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)2450  ret <vscale x 4 x half> %12451}2452 2453define <vscale x 1 x half> @test_vlsseg6_nxv1f16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl) {2454; CHECK-LABEL: test_vlsseg6_nxv1f16_triscv.vector.tuple_nxv2i8_6t:2455; CHECK:       # %bb.0: # %entry2456; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2457; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a12458; CHECK-NEXT:    ret2459entry:2460  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2461  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)2462  ret <vscale x 1 x half> %12463}2464 2465define <vscale x 1 x half> @test_vlsseg6_mask_nxv1f16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2466; CHECK-LABEL: test_vlsseg6_mask_nxv1f16_triscv.vector.tuple_nxv2i8_6t:2467; CHECK:       # %bb.0: # %entry2468; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2469; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t2470; CHECK-NEXT:    ret2471entry:2472  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2473  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)2474  ret <vscale x 1 x half> %12475}2476 2477define <vscale x 2 x half> @test_vlsseg6_nxv2f16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl) {2478; CHECK-LABEL: test_vlsseg6_nxv2f16_triscv.vector.tuple_nxv4i8_6t:2479; CHECK:       # %bb.0: # %entry2480; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2481; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a12482; CHECK-NEXT:    ret2483entry:2484  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2485  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)2486  ret <vscale x 2 x half> %12487}2488 2489define <vscale x 2 x half> @test_vlsseg6_mask_nxv2f16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2490; CHECK-LABEL: test_vlsseg6_mask_nxv2f16_triscv.vector.tuple_nxv4i8_6t:2491; CHECK:       # %bb.0: # %entry2492; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2493; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t2494; CHECK-NEXT:    ret2495entry:2496  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2497  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)2498  ret <vscale x 2 x half> %12499}2500 2501define <vscale x 4 x half> @test_vlsseg6_nxv4f16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {2502; CHECK-LABEL: test_vlsseg6_nxv4f16_triscv.vector.tuple_nxv8i8_6t:2503; CHECK:       # %bb.0: # %entry2504; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2505; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a12506; CHECK-NEXT:    ret2507entry:2508  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2509  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)2510  ret <vscale x 4 x half> %12511}2512 2513define <vscale x 4 x half> @test_vlsseg6_mask_nxv4f16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2514; CHECK-LABEL: test_vlsseg6_mask_nxv4f16_triscv.vector.tuple_nxv8i8_6t:2515; CHECK:       # %bb.0: # %entry2516; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2517; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t2518; CHECK-NEXT:    ret2519entry:2520  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2521  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)2522  ret <vscale x 4 x half> %12523}2524 2525define <vscale x 1 x half> @test_vlsseg7_nxv1f16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl) {2526; CHECK-LABEL: test_vlsseg7_nxv1f16_triscv.vector.tuple_nxv2i8_7t:2527; CHECK:       # %bb.0: # %entry2528; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2529; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a12530; CHECK-NEXT:    ret2531entry:2532  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2533  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)2534  ret <vscale x 1 x half> %12535}2536 2537define <vscale x 1 x half> @test_vlsseg7_mask_nxv1f16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2538; CHECK-LABEL: test_vlsseg7_mask_nxv1f16_triscv.vector.tuple_nxv2i8_7t:2539; CHECK:       # %bb.0: # %entry2540; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2541; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t2542; CHECK-NEXT:    ret2543entry:2544  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2545  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)2546  ret <vscale x 1 x half> %12547}2548 2549define <vscale x 2 x half> @test_vlsseg7_nxv2f16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl) {2550; CHECK-LABEL: test_vlsseg7_nxv2f16_triscv.vector.tuple_nxv4i8_7t:2551; CHECK:       # %bb.0: # %entry2552; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2553; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a12554; CHECK-NEXT:    ret2555entry:2556  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2557  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)2558  ret <vscale x 2 x half> %12559}2560 2561define <vscale x 2 x half> @test_vlsseg7_mask_nxv2f16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2562; CHECK-LABEL: test_vlsseg7_mask_nxv2f16_triscv.vector.tuple_nxv4i8_7t:2563; CHECK:       # %bb.0: # %entry2564; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2565; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t2566; CHECK-NEXT:    ret2567entry:2568  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2569  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)2570  ret <vscale x 2 x half> %12571}2572 2573define <vscale x 4 x half> @test_vlsseg7_nxv4f16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {2574; CHECK-LABEL: test_vlsseg7_nxv4f16_triscv.vector.tuple_nxv8i8_7t:2575; CHECK:       # %bb.0: # %entry2576; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2577; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a12578; CHECK-NEXT:    ret2579entry:2580  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2581  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)2582  ret <vscale x 4 x half> %12583}2584 2585define <vscale x 4 x half> @test_vlsseg7_mask_nxv4f16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2586; CHECK-LABEL: test_vlsseg7_mask_nxv4f16_triscv.vector.tuple_nxv8i8_7t:2587; CHECK:       # %bb.0: # %entry2588; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2589; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t2590; CHECK-NEXT:    ret2591entry:2592  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2593  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)2594  ret <vscale x 4 x half> %12595}2596 2597define <vscale x 1 x half> @test_vlsseg8_nxv1f16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl) {2598; CHECK-LABEL: test_vlsseg8_nxv1f16_triscv.vector.tuple_nxv2i8_8t:2599; CHECK:       # %bb.0: # %entry2600; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2601; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a12602; CHECK-NEXT:    ret2603entry:2604  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2605  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)2606  ret <vscale x 1 x half> %12607}2608 2609define <vscale x 1 x half> @test_vlsseg8_mask_nxv1f16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2610; CHECK-LABEL: test_vlsseg8_mask_nxv1f16_triscv.vector.tuple_nxv2i8_8t:2611; CHECK:       # %bb.0: # %entry2612; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma2613; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t2614; CHECK-NEXT:    ret2615entry:2616  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)2617  %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)2618  ret <vscale x 1 x half> %12619}2620 2621define <vscale x 2 x half> @test_vlsseg8_nxv2f16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl) {2622; CHECK-LABEL: test_vlsseg8_nxv2f16_triscv.vector.tuple_nxv4i8_8t:2623; CHECK:       # %bb.0: # %entry2624; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2625; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a12626; CHECK-NEXT:    ret2627entry:2628  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2629  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)2630  ret <vscale x 2 x half> %12631}2632 2633define <vscale x 2 x half> @test_vlsseg8_mask_nxv2f16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2634; CHECK-LABEL: test_vlsseg8_mask_nxv2f16_triscv.vector.tuple_nxv4i8_8t:2635; CHECK:       # %bb.0: # %entry2636; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma2637; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t2638; CHECK-NEXT:    ret2639entry:2640  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)2641  %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)2642  ret <vscale x 2 x half> %12643}2644 2645define <vscale x 4 x half> @test_vlsseg8_nxv4f16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {2646; CHECK-LABEL: test_vlsseg8_nxv4f16_triscv.vector.tuple_nxv8i8_8t:2647; CHECK:       # %bb.0: # %entry2648; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2649; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a12650; CHECK-NEXT:    ret2651entry:2652  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)2653  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)2654  ret <vscale x 4 x half> %12655}2656 2657define <vscale x 4 x half> @test_vlsseg8_mask_nxv4f16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2658; CHECK-LABEL: test_vlsseg8_mask_nxv4f16_triscv.vector.tuple_nxv8i8_8t:2659; CHECK:       # %bb.0: # %entry2660; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma2661; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t2662; CHECK-NEXT:    ret2663entry:2664  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)2665  %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)2666  ret <vscale x 4 x half> %12667}2668 2669define <vscale x 1 x float> @test_vlsseg2_nxv1f32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl) {2670; CHECK-LABEL: test_vlsseg2_nxv1f32_triscv.vector.tuple_nxv4i8_2t:2671; CHECK:       # %bb.0: # %entry2672; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2673; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a12674; CHECK-NEXT:    ret2675entry:2676  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2677  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)2678  ret <vscale x 1 x float> %12679}2680 2681define <vscale x 1 x float> @test_vlsseg2_mask_nxv1f32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2682; CHECK-LABEL: test_vlsseg2_mask_nxv1f32_triscv.vector.tuple_nxv4i8_2t:2683; CHECK:       # %bb.0: # %entry2684; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2685; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a1, v0.t2686; CHECK-NEXT:    ret2687entry:2688  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)2689  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)2690  ret <vscale x 1 x float> %12691}2692 2693define <vscale x 2 x float> @test_vlsseg2_nxv2f32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {2694; CHECK-LABEL: test_vlsseg2_nxv2f32_triscv.vector.tuple_nxv8i8_2t:2695; CHECK:       # %bb.0: # %entry2696; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2697; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a12698; CHECK-NEXT:    ret2699entry:2700  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2701  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)2702  ret <vscale x 2 x float> %12703}2704 2705define <vscale x 2 x float> @test_vlsseg2_mask_nxv2f32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2706; CHECK-LABEL: test_vlsseg2_mask_nxv2f32_triscv.vector.tuple_nxv8i8_2t:2707; CHECK:       # %bb.0: # %entry2708; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2709; CHECK-NEXT:    vlsseg2e32.v v7, (a0), a1, v0.t2710; CHECK-NEXT:    ret2711entry:2712  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)2713  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)2714  ret <vscale x 2 x float> %12715}2716 2717define <vscale x 4 x float> @test_vlsseg2_nxv4f32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {2718; CHECK-LABEL: test_vlsseg2_nxv4f32_triscv.vector.tuple_nxv16i8_2t:2719; CHECK:       # %bb.0: # %entry2720; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma2721; CHECK-NEXT:    vlsseg2e32.v v6, (a0), a12722; CHECK-NEXT:    ret2723entry:2724  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2725  %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)2726  ret <vscale x 4 x float> %12727}2728 2729define <vscale x 4 x float> @test_vlsseg2_mask_nxv4f32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2730; CHECK-LABEL: test_vlsseg2_mask_nxv4f32_triscv.vector.tuple_nxv16i8_2t:2731; CHECK:       # %bb.0: # %entry2732; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma2733; CHECK-NEXT:    vlsseg2e32.v v6, (a0), a1, v0.t2734; CHECK-NEXT:    ret2735entry:2736  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 5)2737  %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)2738  ret <vscale x 4 x float> %12739}2740 2741define <vscale x 8 x float> @test_vlsseg2_nxv8f32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {2742; CHECK-LABEL: test_vlsseg2_nxv8f32_triscv.vector.tuple_nxv32i8_2t:2743; CHECK:       # %bb.0: # %entry2744; CHECK-NEXT:    vsetvli zero, a2, e32, m4, ta, ma2745; CHECK-NEXT:    vlsseg2e32.v v4, (a0), a12746; CHECK-NEXT:    ret2747entry:2748  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2749  %1 = call <vscale x 8 x float> @llvm.riscv.tuple.extract.nxv8f32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)2750  ret <vscale x 8 x float> %12751}2752 2753define <vscale x 8 x float> @test_vlsseg2_mask_nxv8f32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {2754; CHECK-LABEL: test_vlsseg2_mask_nxv8f32_triscv.vector.tuple_nxv32i8_2t:2755; CHECK:       # %bb.0: # %entry2756; CHECK-NEXT:    vsetvli zero, a2, e32, m4, ta, ma2757; CHECK-NEXT:    vlsseg2e32.v v4, (a0), a1, v0.t2758; CHECK-NEXT:    ret2759entry:2760  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 5)2761  %1 = call <vscale x 8 x float> @llvm.riscv.tuple.extract.nxv8f32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)2762  ret <vscale x 8 x float> %12763}2764 2765define <vscale x 1 x float> @test_vlsseg3_nxv1f32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl) {2766; CHECK-LABEL: test_vlsseg3_nxv1f32_triscv.vector.tuple_nxv4i8_3t:2767; CHECK:       # %bb.0: # %entry2768; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2769; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a12770; CHECK-NEXT:    ret2771entry:2772  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2773  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)2774  ret <vscale x 1 x float> %12775}2776 2777define <vscale x 1 x float> @test_vlsseg3_mask_nxv1f32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2778; CHECK-LABEL: test_vlsseg3_mask_nxv1f32_triscv.vector.tuple_nxv4i8_3t:2779; CHECK:       # %bb.0: # %entry2780; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2781; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a1, v0.t2782; CHECK-NEXT:    ret2783entry:2784  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)2785  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)2786  ret <vscale x 1 x float> %12787}2788 2789define <vscale x 2 x float> @test_vlsseg3_nxv2f32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {2790; CHECK-LABEL: test_vlsseg3_nxv2f32_triscv.vector.tuple_nxv8i8_3t:2791; CHECK:       # %bb.0: # %entry2792; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2793; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a12794; CHECK-NEXT:    ret2795entry:2796  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2797  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)2798  ret <vscale x 2 x float> %12799}2800 2801define <vscale x 2 x float> @test_vlsseg3_mask_nxv2f32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2802; CHECK-LABEL: test_vlsseg3_mask_nxv2f32_triscv.vector.tuple_nxv8i8_3t:2803; CHECK:       # %bb.0: # %entry2804; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2805; CHECK-NEXT:    vlsseg3e32.v v7, (a0), a1, v0.t2806; CHECK-NEXT:    ret2807entry:2808  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)2809  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)2810  ret <vscale x 2 x float> %12811}2812 2813define <vscale x 4 x float> @test_vlsseg3_nxv4f32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {2814; CHECK-LABEL: test_vlsseg3_nxv4f32_triscv.vector.tuple_nxv16i8_3t:2815; CHECK:       # %bb.0: # %entry2816; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma2817; CHECK-NEXT:    vlsseg3e32.v v6, (a0), a12818; CHECK-NEXT:    ret2819entry:2820  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2821  %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)2822  ret <vscale x 4 x float> %12823}2824 2825define <vscale x 4 x float> @test_vlsseg3_mask_nxv4f32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2826; CHECK-LABEL: test_vlsseg3_mask_nxv4f32_triscv.vector.tuple_nxv16i8_3t:2827; CHECK:       # %bb.0: # %entry2828; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma2829; CHECK-NEXT:    vlsseg3e32.v v6, (a0), a1, v0.t2830; CHECK-NEXT:    ret2831entry:2832  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 5)2833  %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)2834  ret <vscale x 4 x float> %12835}2836 2837define <vscale x 1 x float> @test_vlsseg4_nxv1f32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl) {2838; CHECK-LABEL: test_vlsseg4_nxv1f32_triscv.vector.tuple_nxv4i8_4t:2839; CHECK:       # %bb.0: # %entry2840; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2841; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a12842; CHECK-NEXT:    ret2843entry:2844  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2845  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)2846  ret <vscale x 1 x float> %12847}2848 2849define <vscale x 1 x float> @test_vlsseg4_mask_nxv1f32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2850; CHECK-LABEL: test_vlsseg4_mask_nxv1f32_triscv.vector.tuple_nxv4i8_4t:2851; CHECK:       # %bb.0: # %entry2852; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2853; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a1, v0.t2854; CHECK-NEXT:    ret2855entry:2856  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)2857  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)2858  ret <vscale x 1 x float> %12859}2860 2861define <vscale x 2 x float> @test_vlsseg4_nxv2f32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {2862; CHECK-LABEL: test_vlsseg4_nxv2f32_triscv.vector.tuple_nxv8i8_4t:2863; CHECK:       # %bb.0: # %entry2864; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2865; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a12866; CHECK-NEXT:    ret2867entry:2868  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2869  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)2870  ret <vscale x 2 x float> %12871}2872 2873define <vscale x 2 x float> @test_vlsseg4_mask_nxv2f32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2874; CHECK-LABEL: test_vlsseg4_mask_nxv2f32_triscv.vector.tuple_nxv8i8_4t:2875; CHECK:       # %bb.0: # %entry2876; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2877; CHECK-NEXT:    vlsseg4e32.v v7, (a0), a1, v0.t2878; CHECK-NEXT:    ret2879entry:2880  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)2881  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)2882  ret <vscale x 2 x float> %12883}2884 2885define <vscale x 4 x float> @test_vlsseg4_nxv4f32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {2886; CHECK-LABEL: test_vlsseg4_nxv4f32_triscv.vector.tuple_nxv16i8_4t:2887; CHECK:       # %bb.0: # %entry2888; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma2889; CHECK-NEXT:    vlsseg4e32.v v6, (a0), a12890; CHECK-NEXT:    ret2891entry:2892  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2893  %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)2894  ret <vscale x 4 x float> %12895}2896 2897define <vscale x 4 x float> @test_vlsseg4_mask_nxv4f32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {2898; CHECK-LABEL: test_vlsseg4_mask_nxv4f32_triscv.vector.tuple_nxv16i8_4t:2899; CHECK:       # %bb.0: # %entry2900; CHECK-NEXT:    vsetvli zero, a2, e32, m2, ta, ma2901; CHECK-NEXT:    vlsseg4e32.v v6, (a0), a1, v0.t2902; CHECK-NEXT:    ret2903entry:2904  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 5)2905  %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)2906  ret <vscale x 4 x float> %12907}2908 2909define <vscale x 1 x float> @test_vlsseg5_nxv1f32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl) {2910; CHECK-LABEL: test_vlsseg5_nxv1f32_triscv.vector.tuple_nxv4i8_5t:2911; CHECK:       # %bb.0: # %entry2912; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2913; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a12914; CHECK-NEXT:    ret2915entry:2916  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2917  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)2918  ret <vscale x 1 x float> %12919}2920 2921define <vscale x 1 x float> @test_vlsseg5_mask_nxv1f32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2922; CHECK-LABEL: test_vlsseg5_mask_nxv1f32_triscv.vector.tuple_nxv4i8_5t:2923; CHECK:       # %bb.0: # %entry2924; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2925; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a1, v0.t2926; CHECK-NEXT:    ret2927entry:2928  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)2929  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)2930  ret <vscale x 1 x float> %12931}2932 2933define <vscale x 2 x float> @test_vlsseg5_nxv2f32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {2934; CHECK-LABEL: test_vlsseg5_nxv2f32_triscv.vector.tuple_nxv8i8_5t:2935; CHECK:       # %bb.0: # %entry2936; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2937; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a12938; CHECK-NEXT:    ret2939entry:2940  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2941  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)2942  ret <vscale x 2 x float> %12943}2944 2945define <vscale x 2 x float> @test_vlsseg5_mask_nxv2f32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2946; CHECK-LABEL: test_vlsseg5_mask_nxv2f32_triscv.vector.tuple_nxv8i8_5t:2947; CHECK:       # %bb.0: # %entry2948; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2949; CHECK-NEXT:    vlsseg5e32.v v7, (a0), a1, v0.t2950; CHECK-NEXT:    ret2951entry:2952  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)2953  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)2954  ret <vscale x 2 x float> %12955}2956 2957define <vscale x 1 x float> @test_vlsseg6_nxv1f32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl) {2958; CHECK-LABEL: test_vlsseg6_nxv1f32_triscv.vector.tuple_nxv4i8_6t:2959; CHECK:       # %bb.0: # %entry2960; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2961; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a12962; CHECK-NEXT:    ret2963entry:2964  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2965  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)2966  ret <vscale x 1 x float> %12967}2968 2969define <vscale x 1 x float> @test_vlsseg6_mask_nxv1f32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {2970; CHECK-LABEL: test_vlsseg6_mask_nxv1f32_triscv.vector.tuple_nxv4i8_6t:2971; CHECK:       # %bb.0: # %entry2972; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma2973; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a1, v0.t2974; CHECK-NEXT:    ret2975entry:2976  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)2977  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)2978  ret <vscale x 1 x float> %12979}2980 2981define <vscale x 2 x float> @test_vlsseg6_nxv2f32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {2982; CHECK-LABEL: test_vlsseg6_nxv2f32_triscv.vector.tuple_nxv8i8_6t:2983; CHECK:       # %bb.0: # %entry2984; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2985; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a12986; CHECK-NEXT:    ret2987entry:2988  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 5)2989  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)2990  ret <vscale x 2 x float> %12991}2992 2993define <vscale x 2 x float> @test_vlsseg6_mask_nxv2f32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {2994; CHECK-LABEL: test_vlsseg6_mask_nxv2f32_triscv.vector.tuple_nxv8i8_6t:2995; CHECK:       # %bb.0: # %entry2996; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma2997; CHECK-NEXT:    vlsseg6e32.v v7, (a0), a1, v0.t2998; CHECK-NEXT:    ret2999entry:3000  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)3001  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)3002  ret <vscale x 2 x float> %13003}3004 3005define <vscale x 1 x float> @test_vlsseg7_nxv1f32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl) {3006; CHECK-LABEL: test_vlsseg7_nxv1f32_triscv.vector.tuple_nxv4i8_7t:3007; CHECK:       # %bb.0: # %entry3008; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma3009; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a13010; CHECK-NEXT:    ret3011entry:3012  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 5)3013  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)3014  ret <vscale x 1 x float> %13015}3016 3017define <vscale x 1 x float> @test_vlsseg7_mask_nxv1f32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3018; CHECK-LABEL: test_vlsseg7_mask_nxv1f32_triscv.vector.tuple_nxv4i8_7t:3019; CHECK:       # %bb.0: # %entry3020; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma3021; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a1, v0.t3022; CHECK-NEXT:    ret3023entry:3024  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)3025  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)3026  ret <vscale x 1 x float> %13027}3028 3029define <vscale x 2 x float> @test_vlsseg7_nxv2f32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {3030; CHECK-LABEL: test_vlsseg7_nxv2f32_triscv.vector.tuple_nxv8i8_7t:3031; CHECK:       # %bb.0: # %entry3032; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma3033; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a13034; CHECK-NEXT:    ret3035entry:3036  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 5)3037  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)3038  ret <vscale x 2 x float> %13039}3040 3041define <vscale x 2 x float> @test_vlsseg7_mask_nxv2f32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3042; CHECK-LABEL: test_vlsseg7_mask_nxv2f32_triscv.vector.tuple_nxv8i8_7t:3043; CHECK:       # %bb.0: # %entry3044; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma3045; CHECK-NEXT:    vlsseg7e32.v v7, (a0), a1, v0.t3046; CHECK-NEXT:    ret3047entry:3048  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)3049  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)3050  ret <vscale x 2 x float> %13051}3052 3053define <vscale x 1 x float> @test_vlsseg8_nxv1f32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl) {3054; CHECK-LABEL: test_vlsseg8_nxv1f32_triscv.vector.tuple_nxv4i8_8t:3055; CHECK:       # %bb.0: # %entry3056; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma3057; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a13058; CHECK-NEXT:    ret3059entry:3060  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 5)3061  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)3062  ret <vscale x 1 x float> %13063}3064 3065define <vscale x 1 x float> @test_vlsseg8_mask_nxv1f32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3066; CHECK-LABEL: test_vlsseg8_mask_nxv1f32_triscv.vector.tuple_nxv4i8_8t:3067; CHECK:       # %bb.0: # %entry3068; CHECK-NEXT:    vsetvli zero, a2, e32, mf2, ta, ma3069; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a1, v0.t3070; CHECK-NEXT:    ret3071entry:3072  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 5)3073  %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)3074  ret <vscale x 1 x float> %13075}3076 3077define <vscale x 2 x float> @test_vlsseg8_nxv2f32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {3078; CHECK-LABEL: test_vlsseg8_nxv2f32_triscv.vector.tuple_nxv8i8_8t:3079; CHECK:       # %bb.0: # %entry3080; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma3081; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a13082; CHECK-NEXT:    ret3083entry:3084  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 5)3085  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)3086  ret <vscale x 2 x float> %13087}3088 3089define <vscale x 2 x float> @test_vlsseg8_mask_nxv2f32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3090; CHECK-LABEL: test_vlsseg8_mask_nxv2f32_triscv.vector.tuple_nxv8i8_8t:3091; CHECK:       # %bb.0: # %entry3092; CHECK-NEXT:    vsetvli zero, a2, e32, m1, ta, ma3093; CHECK-NEXT:    vlsseg8e32.v v7, (a0), a1, v0.t3094; CHECK-NEXT:    ret3095entry:3096  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 5)3097  %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)3098  ret <vscale x 2 x float> %13099}3100 3101define <vscale x 1 x double> @test_vlsseg2_nxv1f64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {3102; CHECK-LABEL: test_vlsseg2_nxv1f64_triscv.vector.tuple_nxv8i8_2t:3103; CHECK:       # %bb.0: # %entry3104; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3105; CHECK-NEXT:    vlsseg2e64.v v7, (a0), a13106; CHECK-NEXT:    ret3107entry:3108  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3109  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)3110  ret <vscale x 1 x double> %13111}3112 3113define <vscale x 1 x double> @test_vlsseg2_mask_nxv1f64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3114; CHECK-LABEL: test_vlsseg2_mask_nxv1f64_triscv.vector.tuple_nxv8i8_2t:3115; CHECK:       # %bb.0: # %entry3116; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3117; CHECK-NEXT:    vlsseg2e64.v v7, (a0), a1, v0.t3118; CHECK-NEXT:    ret3119entry:3120  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3121  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)3122  ret <vscale x 1 x double> %13123}3124 3125define <vscale x 2 x double> @test_vlsseg2_nxv2f64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {3126; CHECK-LABEL: test_vlsseg2_nxv2f64_triscv.vector.tuple_nxv16i8_2t:3127; CHECK:       # %bb.0: # %entry3128; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma3129; CHECK-NEXT:    vlsseg2e64.v v6, (a0), a13130; CHECK-NEXT:    ret3131entry:3132  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3133  %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)3134  ret <vscale x 2 x double> %13135}3136 3137define <vscale x 2 x double> @test_vlsseg2_mask_nxv2f64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3138; CHECK-LABEL: test_vlsseg2_mask_nxv2f64_triscv.vector.tuple_nxv16i8_2t:3139; CHECK:       # %bb.0: # %entry3140; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma3141; CHECK-NEXT:    vlsseg2e64.v v6, (a0), a1, v0.t3142; CHECK-NEXT:    ret3143entry:3144  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 6)3145  %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)3146  ret <vscale x 2 x double> %13147}3148 3149define <vscale x 4 x double> @test_vlsseg2_nxv4f64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {3150; CHECK-LABEL: test_vlsseg2_nxv4f64_triscv.vector.tuple_nxv32i8_2t:3151; CHECK:       # %bb.0: # %entry3152; CHECK-NEXT:    vsetvli zero, a2, e64, m4, ta, ma3153; CHECK-NEXT:    vlsseg2e64.v v4, (a0), a13154; CHECK-NEXT:    ret3155entry:3156  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3157  %1 = call <vscale x 4 x double> @llvm.riscv.tuple.extract.nxv4f64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)3158  ret <vscale x 4 x double> %13159}3160 3161define <vscale x 4 x double> @test_vlsseg2_mask_nxv4f64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3162; CHECK-LABEL: test_vlsseg2_mask_nxv4f64_triscv.vector.tuple_nxv32i8_2t:3163; CHECK:       # %bb.0: # %entry3164; CHECK-NEXT:    vsetvli zero, a2, e64, m4, ta, ma3165; CHECK-NEXT:    vlsseg2e64.v v4, (a0), a1, v0.t3166; CHECK-NEXT:    ret3167entry:3168  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 6)3169  %1 = call <vscale x 4 x double> @llvm.riscv.tuple.extract.nxv4f64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)3170  ret <vscale x 4 x double> %13171}3172 3173define <vscale x 1 x double> @test_vlsseg3_nxv1f64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {3174; CHECK-LABEL: test_vlsseg3_nxv1f64_triscv.vector.tuple_nxv8i8_3t:3175; CHECK:       # %bb.0: # %entry3176; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3177; CHECK-NEXT:    vlsseg3e64.v v7, (a0), a13178; CHECK-NEXT:    ret3179entry:3180  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3181  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)3182  ret <vscale x 1 x double> %13183}3184 3185define <vscale x 1 x double> @test_vlsseg3_mask_nxv1f64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3186; CHECK-LABEL: test_vlsseg3_mask_nxv1f64_triscv.vector.tuple_nxv8i8_3t:3187; CHECK:       # %bb.0: # %entry3188; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3189; CHECK-NEXT:    vlsseg3e64.v v7, (a0), a1, v0.t3190; CHECK-NEXT:    ret3191entry:3192  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3193  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)3194  ret <vscale x 1 x double> %13195}3196 3197define <vscale x 2 x double> @test_vlsseg3_nxv2f64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {3198; CHECK-LABEL: test_vlsseg3_nxv2f64_triscv.vector.tuple_nxv16i8_3t:3199; CHECK:       # %bb.0: # %entry3200; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma3201; CHECK-NEXT:    vlsseg3e64.v v6, (a0), a13202; CHECK-NEXT:    ret3203entry:3204  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3205  %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)3206  ret <vscale x 2 x double> %13207}3208 3209define <vscale x 2 x double> @test_vlsseg3_mask_nxv2f64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3210; CHECK-LABEL: test_vlsseg3_mask_nxv2f64_triscv.vector.tuple_nxv16i8_3t:3211; CHECK:       # %bb.0: # %entry3212; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma3213; CHECK-NEXT:    vlsseg3e64.v v6, (a0), a1, v0.t3214; CHECK-NEXT:    ret3215entry:3216  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 6)3217  %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)3218  ret <vscale x 2 x double> %13219}3220 3221define <vscale x 1 x double> @test_vlsseg4_nxv1f64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {3222; CHECK-LABEL: test_vlsseg4_nxv1f64_triscv.vector.tuple_nxv8i8_4t:3223; CHECK:       # %bb.0: # %entry3224; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3225; CHECK-NEXT:    vlsseg4e64.v v7, (a0), a13226; CHECK-NEXT:    ret3227entry:3228  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3229  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)3230  ret <vscale x 1 x double> %13231}3232 3233define <vscale x 1 x double> @test_vlsseg4_mask_nxv1f64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3234; CHECK-LABEL: test_vlsseg4_mask_nxv1f64_triscv.vector.tuple_nxv8i8_4t:3235; CHECK:       # %bb.0: # %entry3236; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3237; CHECK-NEXT:    vlsseg4e64.v v7, (a0), a1, v0.t3238; CHECK-NEXT:    ret3239entry:3240  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3241  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)3242  ret <vscale x 1 x double> %13243}3244 3245define <vscale x 2 x double> @test_vlsseg4_nxv2f64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {3246; CHECK-LABEL: test_vlsseg4_nxv2f64_triscv.vector.tuple_nxv16i8_4t:3247; CHECK:       # %bb.0: # %entry3248; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma3249; CHECK-NEXT:    vlsseg4e64.v v6, (a0), a13250; CHECK-NEXT:    ret3251entry:3252  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3253  %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)3254  ret <vscale x 2 x double> %13255}3256 3257define <vscale x 2 x double> @test_vlsseg4_mask_nxv2f64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3258; CHECK-LABEL: test_vlsseg4_mask_nxv2f64_triscv.vector.tuple_nxv16i8_4t:3259; CHECK:       # %bb.0: # %entry3260; CHECK-NEXT:    vsetvli zero, a2, e64, m2, ta, ma3261; CHECK-NEXT:    vlsseg4e64.v v6, (a0), a1, v0.t3262; CHECK-NEXT:    ret3263entry:3264  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 6)3265  %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)3266  ret <vscale x 2 x double> %13267}3268 3269define <vscale x 1 x double> @test_vlsseg5_nxv1f64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {3270; CHECK-LABEL: test_vlsseg5_nxv1f64_triscv.vector.tuple_nxv8i8_5t:3271; CHECK:       # %bb.0: # %entry3272; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3273; CHECK-NEXT:    vlsseg5e64.v v7, (a0), a13274; CHECK-NEXT:    ret3275entry:3276  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3277  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)3278  ret <vscale x 1 x double> %13279}3280 3281define <vscale x 1 x double> @test_vlsseg5_mask_nxv1f64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3282; CHECK-LABEL: test_vlsseg5_mask_nxv1f64_triscv.vector.tuple_nxv8i8_5t:3283; CHECK:       # %bb.0: # %entry3284; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3285; CHECK-NEXT:    vlsseg5e64.v v7, (a0), a1, v0.t3286; CHECK-NEXT:    ret3287entry:3288  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3289  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)3290  ret <vscale x 1 x double> %13291}3292 3293define <vscale x 1 x double> @test_vlsseg6_nxv1f64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {3294; CHECK-LABEL: test_vlsseg6_nxv1f64_triscv.vector.tuple_nxv8i8_6t:3295; CHECK:       # %bb.0: # %entry3296; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3297; CHECK-NEXT:    vlsseg6e64.v v7, (a0), a13298; CHECK-NEXT:    ret3299entry:3300  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3301  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)3302  ret <vscale x 1 x double> %13303}3304 3305define <vscale x 1 x double> @test_vlsseg6_mask_nxv1f64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3306; CHECK-LABEL: test_vlsseg6_mask_nxv1f64_triscv.vector.tuple_nxv8i8_6t:3307; CHECK:       # %bb.0: # %entry3308; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3309; CHECK-NEXT:    vlsseg6e64.v v7, (a0), a1, v0.t3310; CHECK-NEXT:    ret3311entry:3312  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3313  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)3314  ret <vscale x 1 x double> %13315}3316 3317define <vscale x 1 x double> @test_vlsseg7_nxv1f64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {3318; CHECK-LABEL: test_vlsseg7_nxv1f64_triscv.vector.tuple_nxv8i8_7t:3319; CHECK:       # %bb.0: # %entry3320; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3321; CHECK-NEXT:    vlsseg7e64.v v7, (a0), a13322; CHECK-NEXT:    ret3323entry:3324  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3325  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)3326  ret <vscale x 1 x double> %13327}3328 3329define <vscale x 1 x double> @test_vlsseg7_mask_nxv1f64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3330; CHECK-LABEL: test_vlsseg7_mask_nxv1f64_triscv.vector.tuple_nxv8i8_7t:3331; CHECK:       # %bb.0: # %entry3332; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3333; CHECK-NEXT:    vlsseg7e64.v v7, (a0), a1, v0.t3334; CHECK-NEXT:    ret3335entry:3336  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3337  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)3338  ret <vscale x 1 x double> %13339}3340 3341define <vscale x 1 x double> @test_vlsseg8_nxv1f64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {3342; CHECK-LABEL: test_vlsseg8_nxv1f64_triscv.vector.tuple_nxv8i8_8t:3343; CHECK:       # %bb.0: # %entry3344; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3345; CHECK-NEXT:    vlsseg8e64.v v7, (a0), a13346; CHECK-NEXT:    ret3347entry:3348  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 6)3349  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)3350  ret <vscale x 1 x double> %13351}3352 3353define <vscale x 1 x double> @test_vlsseg8_mask_nxv1f64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3354; CHECK-LABEL: test_vlsseg8_mask_nxv1f64_triscv.vector.tuple_nxv8i8_8t:3355; CHECK:       # %bb.0: # %entry3356; CHECK-NEXT:    vsetvli zero, a2, e64, m1, ta, ma3357; CHECK-NEXT:    vlsseg8e64.v v7, (a0), a1, v0.t3358; CHECK-NEXT:    ret3359entry:3360  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 6)3361  %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)3362  ret <vscale x 1 x double> %13363}3364 3365define <vscale x 1 x bfloat> @test_vlsseg2_nxv1bf16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl) {3366; CHECK-LABEL: test_vlsseg2_nxv1bf16_triscv.vector.tuple_nxv2i8_2t:3367; CHECK:       # %bb.0: # %entry3368; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3369; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a13370; CHECK-NEXT:    ret3371entry:3372  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3373  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)3374  ret <vscale x 1 x bfloat> %13375}3376 3377define <vscale x 1 x bfloat> @test_vlsseg2_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3378; CHECK-LABEL: test_vlsseg2_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_2t:3379; CHECK:       # %bb.0: # %entry3380; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3381; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t3382; CHECK-NEXT:    ret3383entry:3384  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3385  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)3386  ret <vscale x 1 x bfloat> %13387}3388 3389define <vscale x 2 x bfloat> @test_vlsseg2_nxv2bf16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl) {3390; CHECK-LABEL: test_vlsseg2_nxv2bf16_triscv.vector.tuple_nxv4i8_2t:3391; CHECK:       # %bb.0: # %entry3392; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3393; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a13394; CHECK-NEXT:    ret3395entry:3396  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3397  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)3398  ret <vscale x 2 x bfloat> %13399}3400 3401define <vscale x 2 x bfloat> @test_vlsseg2_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3402; CHECK-LABEL: test_vlsseg2_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_2t:3403; CHECK:       # %bb.0: # %entry3404; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3405; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t3406; CHECK-NEXT:    ret3407entry:3408  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3409  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)3410  ret <vscale x 2 x bfloat> %13411}3412 3413define <vscale x 4 x bfloat> @test_vlsseg2_nxv4bf16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl) {3414; CHECK-LABEL: test_vlsseg2_nxv4bf16_triscv.vector.tuple_nxv8i8_2t:3415; CHECK:       # %bb.0: # %entry3416; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3417; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a13418; CHECK-NEXT:    ret3419entry:3420  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3421  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)3422  ret <vscale x 4 x bfloat> %13423}3424 3425define <vscale x 4 x bfloat> @test_vlsseg2_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3426; CHECK-LABEL: test_vlsseg2_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_2t:3427; CHECK:       # %bb.0: # %entry3428; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3429; CHECK-NEXT:    vlsseg2e16.v v7, (a0), a1, v0.t3430; CHECK-NEXT:    ret3431entry:3432  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3433  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)3434  ret <vscale x 4 x bfloat> %13435}3436 3437define <vscale x 8 x bfloat> @test_vlsseg2_nxv8bf16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl) {3438; CHECK-LABEL: test_vlsseg2_nxv8bf16_triscv.vector.tuple_nxv16i8_2t:3439; CHECK:       # %bb.0: # %entry3440; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma3441; CHECK-NEXT:    vlsseg2e16.v v6, (a0), a13442; CHECK-NEXT:    ret3443entry:3444  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3445  %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)3446  ret <vscale x 8 x bfloat> %13447}3448 3449define <vscale x 8 x bfloat> @test_vlsseg2_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {3450; CHECK-LABEL: test_vlsseg2_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_2t:3451; CHECK:       # %bb.0: # %entry3452; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma3453; CHECK-NEXT:    vlsseg2e16.v v6, (a0), a1, v0.t3454; CHECK-NEXT:    ret3455entry:3456  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)3457  %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)3458  ret <vscale x 8 x bfloat> %13459}3460 3461define <vscale x 16 x bfloat> @test_vlsseg2_nxv16bf16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl) {3462; CHECK-LABEL: test_vlsseg2_nxv16bf16_triscv.vector.tuple_nxv32i8_2t:3463; CHECK:       # %bb.0: # %entry3464; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma3465; CHECK-NEXT:    vlsseg2e16.v v4, (a0), a13466; CHECK-NEXT:    ret3467entry:3468  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3469  %1 = call <vscale x 16 x bfloat> @llvm.riscv.tuple.extract.nxv16bf16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)3470  ret <vscale x 16 x bfloat> %13471}3472 3473define <vscale x 16 x bfloat> @test_vlsseg2_mask_nxv16bf16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i32 %offset, i32 %vl, <vscale x 16 x i1> %mask) {3474; CHECK-LABEL: test_vlsseg2_mask_nxv16bf16_triscv.vector.tuple_nxv32i8_2t:3475; CHECK:       # %bb.0: # %entry3476; CHECK-NEXT:    vsetvli zero, a2, e16, m4, ta, ma3477; CHECK-NEXT:    vlsseg2e16.v v4, (a0), a1, v0.t3478; CHECK-NEXT:    ret3479entry:3480  %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) poison, ptr %base, i32 %offset, <vscale x 16 x i1> %mask, i32 %vl, i32 1, i32 4)3481  %1 = call <vscale x 16 x bfloat> @llvm.riscv.tuple.extract.nxv16bf16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)3482  ret <vscale x 16 x bfloat> %13483}3484 3485define <vscale x 1 x bfloat> @test_vlsseg3_nxv1bf16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl) {3486; CHECK-LABEL: test_vlsseg3_nxv1bf16_triscv.vector.tuple_nxv2i8_3t:3487; CHECK:       # %bb.0: # %entry3488; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3489; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a13490; CHECK-NEXT:    ret3491entry:3492  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3493  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)3494  ret <vscale x 1 x bfloat> %13495}3496 3497define <vscale x 1 x bfloat> @test_vlsseg3_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3498; CHECK-LABEL: test_vlsseg3_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_3t:3499; CHECK:       # %bb.0: # %entry3500; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3501; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t3502; CHECK-NEXT:    ret3503entry:3504  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3505  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)3506  ret <vscale x 1 x bfloat> %13507}3508 3509define <vscale x 2 x bfloat> @test_vlsseg3_nxv2bf16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl) {3510; CHECK-LABEL: test_vlsseg3_nxv2bf16_triscv.vector.tuple_nxv4i8_3t:3511; CHECK:       # %bb.0: # %entry3512; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3513; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a13514; CHECK-NEXT:    ret3515entry:3516  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3517  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)3518  ret <vscale x 2 x bfloat> %13519}3520 3521define <vscale x 2 x bfloat> @test_vlsseg3_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3522; CHECK-LABEL: test_vlsseg3_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_3t:3523; CHECK:       # %bb.0: # %entry3524; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3525; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t3526; CHECK-NEXT:    ret3527entry:3528  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3529  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)3530  ret <vscale x 2 x bfloat> %13531}3532 3533define <vscale x 4 x bfloat> @test_vlsseg3_nxv4bf16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl) {3534; CHECK-LABEL: test_vlsseg3_nxv4bf16_triscv.vector.tuple_nxv8i8_3t:3535; CHECK:       # %bb.0: # %entry3536; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3537; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a13538; CHECK-NEXT:    ret3539entry:3540  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3541  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)3542  ret <vscale x 4 x bfloat> %13543}3544 3545define <vscale x 4 x bfloat> @test_vlsseg3_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3546; CHECK-LABEL: test_vlsseg3_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_3t:3547; CHECK:       # %bb.0: # %entry3548; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3549; CHECK-NEXT:    vlsseg3e16.v v7, (a0), a1, v0.t3550; CHECK-NEXT:    ret3551entry:3552  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3553  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)3554  ret <vscale x 4 x bfloat> %13555}3556 3557define <vscale x 8 x bfloat> @test_vlsseg3_nxv8bf16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl) {3558; CHECK-LABEL: test_vlsseg3_nxv8bf16_triscv.vector.tuple_nxv16i8_3t:3559; CHECK:       # %bb.0: # %entry3560; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma3561; CHECK-NEXT:    vlsseg3e16.v v6, (a0), a13562; CHECK-NEXT:    ret3563entry:3564  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3565  %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)3566  ret <vscale x 8 x bfloat> %13567}3568 3569define <vscale x 8 x bfloat> @test_vlsseg3_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {3570; CHECK-LABEL: test_vlsseg3_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_3t:3571; CHECK:       # %bb.0: # %entry3572; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma3573; CHECK-NEXT:    vlsseg3e16.v v6, (a0), a1, v0.t3574; CHECK-NEXT:    ret3575entry:3576  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)3577  %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)3578  ret <vscale x 8 x bfloat> %13579}3580 3581define <vscale x 1 x bfloat> @test_vlsseg4_nxv1bf16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl) {3582; CHECK-LABEL: test_vlsseg4_nxv1bf16_triscv.vector.tuple_nxv2i8_4t:3583; CHECK:       # %bb.0: # %entry3584; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3585; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a13586; CHECK-NEXT:    ret3587entry:3588  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3589  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)3590  ret <vscale x 1 x bfloat> %13591}3592 3593define <vscale x 1 x bfloat> @test_vlsseg4_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3594; CHECK-LABEL: test_vlsseg4_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_4t:3595; CHECK:       # %bb.0: # %entry3596; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3597; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t3598; CHECK-NEXT:    ret3599entry:3600  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3601  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)3602  ret <vscale x 1 x bfloat> %13603}3604 3605define <vscale x 2 x bfloat> @test_vlsseg4_nxv2bf16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl) {3606; CHECK-LABEL: test_vlsseg4_nxv2bf16_triscv.vector.tuple_nxv4i8_4t:3607; CHECK:       # %bb.0: # %entry3608; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3609; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a13610; CHECK-NEXT:    ret3611entry:3612  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3613  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)3614  ret <vscale x 2 x bfloat> %13615}3616 3617define <vscale x 2 x bfloat> @test_vlsseg4_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3618; CHECK-LABEL: test_vlsseg4_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_4t:3619; CHECK:       # %bb.0: # %entry3620; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3621; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t3622; CHECK-NEXT:    ret3623entry:3624  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3625  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)3626  ret <vscale x 2 x bfloat> %13627}3628 3629define <vscale x 4 x bfloat> @test_vlsseg4_nxv4bf16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl) {3630; CHECK-LABEL: test_vlsseg4_nxv4bf16_triscv.vector.tuple_nxv8i8_4t:3631; CHECK:       # %bb.0: # %entry3632; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3633; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a13634; CHECK-NEXT:    ret3635entry:3636  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3637  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)3638  ret <vscale x 4 x bfloat> %13639}3640 3641define <vscale x 4 x bfloat> @test_vlsseg4_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3642; CHECK-LABEL: test_vlsseg4_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_4t:3643; CHECK:       # %bb.0: # %entry3644; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3645; CHECK-NEXT:    vlsseg4e16.v v7, (a0), a1, v0.t3646; CHECK-NEXT:    ret3647entry:3648  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3649  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)3650  ret <vscale x 4 x bfloat> %13651}3652 3653define <vscale x 8 x bfloat> @test_vlsseg4_nxv8bf16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl) {3654; CHECK-LABEL: test_vlsseg4_nxv8bf16_triscv.vector.tuple_nxv16i8_4t:3655; CHECK:       # %bb.0: # %entry3656; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma3657; CHECK-NEXT:    vlsseg4e16.v v6, (a0), a13658; CHECK-NEXT:    ret3659entry:3660  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3661  %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)3662  ret <vscale x 8 x bfloat> %13663}3664 3665define <vscale x 8 x bfloat> @test_vlsseg4_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i32 %offset, i32 %vl, <vscale x 8 x i1> %mask) {3666; CHECK-LABEL: test_vlsseg4_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_4t:3667; CHECK:       # %bb.0: # %entry3668; CHECK-NEXT:    vsetvli zero, a2, e16, m2, ta, ma3669; CHECK-NEXT:    vlsseg4e16.v v6, (a0), a1, v0.t3670; CHECK-NEXT:    ret3671entry:3672  %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) poison, ptr %base, i32 %offset, <vscale x 8 x i1> %mask, i32 %vl, i32 1, i32 4)3673  %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)3674  ret <vscale x 8 x bfloat> %13675}3676 3677define <vscale x 1 x bfloat> @test_vlsseg5_nxv1bf16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl) {3678; CHECK-LABEL: test_vlsseg5_nxv1bf16_triscv.vector.tuple_nxv2i8_5t:3679; CHECK:       # %bb.0: # %entry3680; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3681; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a13682; CHECK-NEXT:    ret3683entry:3684  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3685  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)3686  ret <vscale x 1 x bfloat> %13687}3688 3689define <vscale x 1 x bfloat> @test_vlsseg5_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3690; CHECK-LABEL: test_vlsseg5_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_5t:3691; CHECK:       # %bb.0: # %entry3692; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3693; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t3694; CHECK-NEXT:    ret3695entry:3696  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3697  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)3698  ret <vscale x 1 x bfloat> %13699}3700 3701define <vscale x 2 x bfloat> @test_vlsseg5_nxv2bf16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl) {3702; CHECK-LABEL: test_vlsseg5_nxv2bf16_triscv.vector.tuple_nxv4i8_5t:3703; CHECK:       # %bb.0: # %entry3704; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3705; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a13706; CHECK-NEXT:    ret3707entry:3708  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3709  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)3710  ret <vscale x 2 x bfloat> %13711}3712 3713define <vscale x 2 x bfloat> @test_vlsseg5_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3714; CHECK-LABEL: test_vlsseg5_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_5t:3715; CHECK:       # %bb.0: # %entry3716; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3717; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t3718; CHECK-NEXT:    ret3719entry:3720  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3721  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)3722  ret <vscale x 2 x bfloat> %13723}3724 3725define <vscale x 4 x bfloat> @test_vlsseg5_nxv4bf16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl) {3726; CHECK-LABEL: test_vlsseg5_nxv4bf16_triscv.vector.tuple_nxv8i8_5t:3727; CHECK:       # %bb.0: # %entry3728; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3729; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a13730; CHECK-NEXT:    ret3731entry:3732  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3733  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)3734  ret <vscale x 4 x bfloat> %13735}3736 3737define <vscale x 4 x bfloat> @test_vlsseg5_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3738; CHECK-LABEL: test_vlsseg5_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_5t:3739; CHECK:       # %bb.0: # %entry3740; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3741; CHECK-NEXT:    vlsseg5e16.v v7, (a0), a1, v0.t3742; CHECK-NEXT:    ret3743entry:3744  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3745  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)3746  ret <vscale x 4 x bfloat> %13747}3748 3749define <vscale x 1 x bfloat> @test_vlsseg6_nxv1bf16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl) {3750; CHECK-LABEL: test_vlsseg6_nxv1bf16_triscv.vector.tuple_nxv2i8_6t:3751; CHECK:       # %bb.0: # %entry3752; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3753; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a13754; CHECK-NEXT:    ret3755entry:3756  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3757  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)3758  ret <vscale x 1 x bfloat> %13759}3760 3761define <vscale x 1 x bfloat> @test_vlsseg6_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3762; CHECK-LABEL: test_vlsseg6_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_6t:3763; CHECK:       # %bb.0: # %entry3764; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3765; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t3766; CHECK-NEXT:    ret3767entry:3768  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3769  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)3770  ret <vscale x 1 x bfloat> %13771}3772 3773define <vscale x 2 x bfloat> @test_vlsseg6_nxv2bf16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl) {3774; CHECK-LABEL: test_vlsseg6_nxv2bf16_triscv.vector.tuple_nxv4i8_6t:3775; CHECK:       # %bb.0: # %entry3776; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3777; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a13778; CHECK-NEXT:    ret3779entry:3780  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3781  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)3782  ret <vscale x 2 x bfloat> %13783}3784 3785define <vscale x 2 x bfloat> @test_vlsseg6_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3786; CHECK-LABEL: test_vlsseg6_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_6t:3787; CHECK:       # %bb.0: # %entry3788; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3789; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t3790; CHECK-NEXT:    ret3791entry:3792  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3793  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)3794  ret <vscale x 2 x bfloat> %13795}3796 3797define <vscale x 4 x bfloat> @test_vlsseg6_nxv4bf16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl) {3798; CHECK-LABEL: test_vlsseg6_nxv4bf16_triscv.vector.tuple_nxv8i8_6t:3799; CHECK:       # %bb.0: # %entry3800; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3801; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a13802; CHECK-NEXT:    ret3803entry:3804  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3805  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)3806  ret <vscale x 4 x bfloat> %13807}3808 3809define <vscale x 4 x bfloat> @test_vlsseg6_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3810; CHECK-LABEL: test_vlsseg6_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_6t:3811; CHECK:       # %bb.0: # %entry3812; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3813; CHECK-NEXT:    vlsseg6e16.v v7, (a0), a1, v0.t3814; CHECK-NEXT:    ret3815entry:3816  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3817  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)3818  ret <vscale x 4 x bfloat> %13819}3820 3821define <vscale x 1 x bfloat> @test_vlsseg7_nxv1bf16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl) {3822; CHECK-LABEL: test_vlsseg7_nxv1bf16_triscv.vector.tuple_nxv2i8_7t:3823; CHECK:       # %bb.0: # %entry3824; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3825; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a13826; CHECK-NEXT:    ret3827entry:3828  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3829  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)3830  ret <vscale x 1 x bfloat> %13831}3832 3833define <vscale x 1 x bfloat> @test_vlsseg7_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3834; CHECK-LABEL: test_vlsseg7_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_7t:3835; CHECK:       # %bb.0: # %entry3836; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3837; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t3838; CHECK-NEXT:    ret3839entry:3840  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3841  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)3842  ret <vscale x 1 x bfloat> %13843}3844 3845define <vscale x 2 x bfloat> @test_vlsseg7_nxv2bf16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl) {3846; CHECK-LABEL: test_vlsseg7_nxv2bf16_triscv.vector.tuple_nxv4i8_7t:3847; CHECK:       # %bb.0: # %entry3848; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3849; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a13850; CHECK-NEXT:    ret3851entry:3852  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3853  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)3854  ret <vscale x 2 x bfloat> %13855}3856 3857define <vscale x 2 x bfloat> @test_vlsseg7_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3858; CHECK-LABEL: test_vlsseg7_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_7t:3859; CHECK:       # %bb.0: # %entry3860; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3861; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t3862; CHECK-NEXT:    ret3863entry:3864  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3865  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)3866  ret <vscale x 2 x bfloat> %13867}3868 3869define <vscale x 4 x bfloat> @test_vlsseg7_nxv4bf16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl) {3870; CHECK-LABEL: test_vlsseg7_nxv4bf16_triscv.vector.tuple_nxv8i8_7t:3871; CHECK:       # %bb.0: # %entry3872; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3873; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a13874; CHECK-NEXT:    ret3875entry:3876  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3877  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)3878  ret <vscale x 4 x bfloat> %13879}3880 3881define <vscale x 4 x bfloat> @test_vlsseg7_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3882; CHECK-LABEL: test_vlsseg7_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_7t:3883; CHECK:       # %bb.0: # %entry3884; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3885; CHECK-NEXT:    vlsseg7e16.v v7, (a0), a1, v0.t3886; CHECK-NEXT:    ret3887entry:3888  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3889  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)3890  ret <vscale x 4 x bfloat> %13891}3892 3893define <vscale x 1 x bfloat> @test_vlsseg8_nxv1bf16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl) {3894; CHECK-LABEL: test_vlsseg8_nxv1bf16_triscv.vector.tuple_nxv2i8_8t:3895; CHECK:       # %bb.0: # %entry3896; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3897; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a13898; CHECK-NEXT:    ret3899entry:3900  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3901  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)3902  ret <vscale x 1 x bfloat> %13903}3904 3905define <vscale x 1 x bfloat> @test_vlsseg8_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 1 x i1> %mask) {3906; CHECK-LABEL: test_vlsseg8_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_8t:3907; CHECK:       # %bb.0: # %entry3908; CHECK-NEXT:    vsetvli zero, a2, e16, mf4, ta, ma3909; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t3910; CHECK-NEXT:    ret3911entry:3912  %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 1 x i1> %mask, i32 %vl, i32 1, i32 4)3913  %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)3914  ret <vscale x 1 x bfloat> %13915}3916 3917define <vscale x 2 x bfloat> @test_vlsseg8_nxv2bf16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl) {3918; CHECK-LABEL: test_vlsseg8_nxv2bf16_triscv.vector.tuple_nxv4i8_8t:3919; CHECK:       # %bb.0: # %entry3920; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3921; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a13922; CHECK-NEXT:    ret3923entry:3924  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3925  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)3926  ret <vscale x 2 x bfloat> %13927}3928 3929define <vscale x 2 x bfloat> @test_vlsseg8_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 2 x i1> %mask) {3930; CHECK-LABEL: test_vlsseg8_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_8t:3931; CHECK:       # %bb.0: # %entry3932; CHECK-NEXT:    vsetvli zero, a2, e16, mf2, ta, ma3933; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t3934; CHECK-NEXT:    ret3935entry:3936  %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 2 x i1> %mask, i32 %vl, i32 1, i32 4)3937  %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)3938  ret <vscale x 2 x bfloat> %13939}3940 3941define <vscale x 4 x bfloat> @test_vlsseg8_nxv4bf16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl) {3942; CHECK-LABEL: test_vlsseg8_nxv4bf16_triscv.vector.tuple_nxv8i8_8t:3943; CHECK:       # %bb.0: # %entry3944; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3945; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a13946; CHECK-NEXT:    ret3947entry:3948  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, i32 %vl, i32 4)3949  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)3950  ret <vscale x 4 x bfloat> %13951}3952 3953define <vscale x 4 x bfloat> @test_vlsseg8_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i32 %offset, i32 %vl, <vscale x 4 x i1> %mask) {3954; CHECK-LABEL: test_vlsseg8_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_8t:3955; CHECK:       # %bb.0: # %entry3956; CHECK-NEXT:    vsetvli zero, a2, e16, m1, ta, ma3957; CHECK-NEXT:    vlsseg8e16.v v7, (a0), a1, v0.t3958; CHECK-NEXT:    ret3959entry:3960  %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) poison, ptr %base, i32 %offset, <vscale x 4 x i1> %mask, i32 %vl, i32 1, i32 4)3961  %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)3962  ret <vscale x 4 x bfloat> %13963}3964 3965