brintos

brintos / llvm-project-archived public Read only

0
0
Text · 185.6 KiB · 420d048 Raw
3712 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -mattr=+zve64d,+f,+d,+zvfh,+zvfbfmin \3; RUN:     -verify-machineinstrs < %s | FileCheck %s4 5define void @test_vsseg2_nxv1i8_triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %val, ptr %base, i64 %vl) {6; CHECK-LABEL: test_vsseg2_nxv1i8_triscv.vector.tuple_nxv1i8_2t:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma9; CHECK-NEXT:    vsseg2e8.v v8, (a0)10; CHECK-NEXT:    ret11entry:12  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %val, ptr %base, i64 %vl, i64 3)13  ret void14}15 16define void @test_vsseg2_mask_nxv1i8_triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {17; CHECK-LABEL: test_vsseg2_mask_nxv1i8_triscv.vector.tuple_nxv1i8_2t:18; CHECK:       # %bb.0: # %entry19; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma20; CHECK-NEXT:    vsseg2e8.v v8, (a0), v0.t21; CHECK-NEXT:    ret22entry:23  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv1i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)24  ret void25}26 27define void @test_vsseg2_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {28; CHECK-LABEL: test_vsseg2_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_2t:29; CHECK:       # %bb.0: # %entry30; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma31; CHECK-NEXT:    vsseg2e8.v v8, (a0)32; CHECK-NEXT:    ret33entry:34  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv1i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> splat (i1 true), i64 %vl, i64 3)35  ret void36}37 38define void @test_vsseg2_nxv2i8_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl) {39; CHECK-LABEL: test_vsseg2_nxv2i8_triscv.vector.tuple_nxv2i8_2t:40; CHECK:       # %bb.0: # %entry41; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma42; CHECK-NEXT:    vsseg2e8.v v8, (a0)43; CHECK-NEXT:    ret44entry:45  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, i64 3)46  ret void47}48 49define void @test_vsseg2_mask_nxv2i8_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {50; CHECK-LABEL: test_vsseg2_mask_nxv2i8_triscv.vector.tuple_nxv2i8_2t:51; CHECK:       # %bb.0: # %entry52; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma53; CHECK-NEXT:    vsseg2e8.v v8, (a0), v0.t54; CHECK-NEXT:    ret55entry:56  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)57  ret void58}59 60define void @test_vsseg2_nxv4i8_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl) {61; CHECK-LABEL: test_vsseg2_nxv4i8_triscv.vector.tuple_nxv4i8_2t:62; CHECK:       # %bb.0: # %entry63; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma64; CHECK-NEXT:    vsseg2e8.v v8, (a0)65; CHECK-NEXT:    ret66entry:67  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, i64 3)68  ret void69}70 71define void @test_vsseg2_mask_nxv4i8_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {72; CHECK-LABEL: test_vsseg2_mask_nxv4i8_triscv.vector.tuple_nxv4i8_2t:73; CHECK:       # %bb.0: # %entry74; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma75; CHECK-NEXT:    vsseg2e8.v v8, (a0), v0.t76; CHECK-NEXT:    ret77entry:78  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)79  ret void80}81 82define void @test_vsseg2_nxv8i8_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {83; CHECK-LABEL: test_vsseg2_nxv8i8_triscv.vector.tuple_nxv8i8_2t:84; CHECK:       # %bb.0: # %entry85; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma86; CHECK-NEXT:    vsseg2e8.v v8, (a0)87; CHECK-NEXT:    ret88entry:89  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 3)90  ret void91}92 93define void @test_vsseg2_mask_nxv8i8_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {94; CHECK-LABEL: test_vsseg2_mask_nxv8i8_triscv.vector.tuple_nxv8i8_2t:95; CHECK:       # %bb.0: # %entry96; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma97; CHECK-NEXT:    vsseg2e8.v v8, (a0), v0.t98; CHECK-NEXT:    ret99entry:100  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)101  ret void102}103 104define void @test_vsseg2_nxv16i8_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {105; CHECK-LABEL: test_vsseg2_nxv16i8_triscv.vector.tuple_nxv16i8_2t:106; CHECK:       # %bb.0: # %entry107; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma108; CHECK-NEXT:    vsseg2e8.v v8, (a0)109; CHECK-NEXT:    ret110entry:111  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 3)112  ret void113}114 115define void @test_vsseg2_mask_nxv16i8_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {116; CHECK-LABEL: test_vsseg2_mask_nxv16i8_triscv.vector.tuple_nxv16i8_2t:117; CHECK:       # %bb.0: # %entry118; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma119; CHECK-NEXT:    vsseg2e8.v v8, (a0), v0.t120; CHECK-NEXT:    ret121entry:122  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 16 x i1> %mask, i64 %vl, i64 3)123  ret void124}125 126define void @test_vsseg2_nxv32i8_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {127; CHECK-LABEL: test_vsseg2_nxv32i8_triscv.vector.tuple_nxv32i8_2t:128; CHECK:       # %bb.0: # %entry129; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma130; CHECK-NEXT:    vsseg2e8.v v8, (a0)131; CHECK-NEXT:    ret132entry:133  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 3)134  ret void135}136 137define void @test_vsseg2_mask_nxv32i8_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 32 x i1> %mask) {138; CHECK-LABEL: test_vsseg2_mask_nxv32i8_triscv.vector.tuple_nxv32i8_2t:139; CHECK:       # %bb.0: # %entry140; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma141; CHECK-NEXT:    vsseg2e8.v v8, (a0), v0.t142; CHECK-NEXT:    ret143entry:144  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv32i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 32 x i1> %mask, i64 %vl, i64 3)145  ret void146}147 148define void @test_vsseg3_nxv1i8_triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %val, ptr %base, i64 %vl) {149; CHECK-LABEL: test_vsseg3_nxv1i8_triscv.vector.tuple_nxv1i8_3t:150; CHECK:       # %bb.0: # %entry151; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma152; CHECK-NEXT:    vsseg3e8.v v8, (a0)153; CHECK-NEXT:    ret154entry:155  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %val, ptr %base, i64 %vl, i64 3)156  ret void157}158 159define void @test_vsseg3_mask_nxv1i8_triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {160; CHECK-LABEL: test_vsseg3_mask_nxv1i8_triscv.vector.tuple_nxv1i8_3t:161; CHECK:       # %bb.0: # %entry162; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma163; CHECK-NEXT:    vsseg3e8.v v8, (a0), v0.t164; CHECK-NEXT:    ret165entry:166  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv1i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)167  ret void168}169 170define void @test_vsseg3_nxv2i8_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl) {171; CHECK-LABEL: test_vsseg3_nxv2i8_triscv.vector.tuple_nxv2i8_3t:172; CHECK:       # %bb.0: # %entry173; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma174; CHECK-NEXT:    vsseg3e8.v v8, (a0)175; CHECK-NEXT:    ret176entry:177  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, i64 3)178  ret void179}180 181define void @test_vsseg3_mask_nxv2i8_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {182; CHECK-LABEL: test_vsseg3_mask_nxv2i8_triscv.vector.tuple_nxv2i8_3t:183; CHECK:       # %bb.0: # %entry184; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma185; CHECK-NEXT:    vsseg3e8.v v8, (a0), v0.t186; CHECK-NEXT:    ret187entry:188  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)189  ret void190}191 192define void @test_vsseg3_nxv4i8_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl) {193; CHECK-LABEL: test_vsseg3_nxv4i8_triscv.vector.tuple_nxv4i8_3t:194; CHECK:       # %bb.0: # %entry195; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma196; CHECK-NEXT:    vsseg3e8.v v8, (a0)197; CHECK-NEXT:    ret198entry:199  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, i64 3)200  ret void201}202 203define void @test_vsseg3_mask_nxv4i8_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {204; CHECK-LABEL: test_vsseg3_mask_nxv4i8_triscv.vector.tuple_nxv4i8_3t:205; CHECK:       # %bb.0: # %entry206; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma207; CHECK-NEXT:    vsseg3e8.v v8, (a0), v0.t208; CHECK-NEXT:    ret209entry:210  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)211  ret void212}213 214define void @test_vsseg3_nxv8i8_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {215; CHECK-LABEL: test_vsseg3_nxv8i8_triscv.vector.tuple_nxv8i8_3t:216; CHECK:       # %bb.0: # %entry217; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma218; CHECK-NEXT:    vsseg3e8.v v8, (a0)219; CHECK-NEXT:    ret220entry:221  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 3)222  ret void223}224 225define void @test_vsseg3_mask_nxv8i8_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {226; CHECK-LABEL: test_vsseg3_mask_nxv8i8_triscv.vector.tuple_nxv8i8_3t:227; CHECK:       # %bb.0: # %entry228; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma229; CHECK-NEXT:    vsseg3e8.v v8, (a0), v0.t230; CHECK-NEXT:    ret231entry:232  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)233  ret void234}235 236define void @test_vsseg3_nxv16i8_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {237; CHECK-LABEL: test_vsseg3_nxv16i8_triscv.vector.tuple_nxv16i8_3t:238; CHECK:       # %bb.0: # %entry239; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma240; CHECK-NEXT:    vsseg3e8.v v8, (a0)241; CHECK-NEXT:    ret242entry:243  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 3)244  ret void245}246 247define void @test_vsseg3_mask_nxv16i8_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {248; CHECK-LABEL: test_vsseg3_mask_nxv16i8_triscv.vector.tuple_nxv16i8_3t:249; CHECK:       # %bb.0: # %entry250; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma251; CHECK-NEXT:    vsseg3e8.v v8, (a0), v0.t252; CHECK-NEXT:    ret253entry:254  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 16 x i1> %mask, i64 %vl, i64 3)255  ret void256}257 258define void @test_vsseg3_allonesmask_nxv16i8_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {259; CHECK-LABEL: test_vsseg3_allonesmask_nxv16i8_triscv.vector.tuple_nxv16i8_3t:260; CHECK:       # %bb.0: # %entry261; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma262; CHECK-NEXT:    vsseg3e8.v v8, (a0)263; CHECK-NEXT:    ret264entry:265  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 16 x i1> splat (i1 true), i64 %vl, i64 3)266  ret void267}268 269define void @test_vsseg4_nxv1i8_triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %val, ptr %base, i64 %vl) {270; CHECK-LABEL: test_vsseg4_nxv1i8_triscv.vector.tuple_nxv1i8_4t:271; CHECK:       # %bb.0: # %entry272; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma273; CHECK-NEXT:    vsseg4e8.v v8, (a0)274; CHECK-NEXT:    ret275entry:276  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %val, ptr %base, i64 %vl, i64 3)277  ret void278}279 280define void @test_vsseg4_mask_nxv1i8_triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {281; CHECK-LABEL: test_vsseg4_mask_nxv1i8_triscv.vector.tuple_nxv1i8_4t:282; CHECK:       # %bb.0: # %entry283; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma284; CHECK-NEXT:    vsseg4e8.v v8, (a0), v0.t285; CHECK-NEXT:    ret286entry:287  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv1i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)288  ret void289}290 291define void @test_vsseg4_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {292; CHECK-LABEL: test_vsseg4_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_4t:293; CHECK:       # %bb.0: # %entry294; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma295; CHECK-NEXT:    vsseg4e8.v v8, (a0)296; CHECK-NEXT:    ret297entry:298  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv1i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> splat (i1 true), i64 %vl, i64 3)299  ret void300}301 302define void @test_vsseg4_nxv2i8_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl) {303; CHECK-LABEL: test_vsseg4_nxv2i8_triscv.vector.tuple_nxv2i8_4t:304; CHECK:       # %bb.0: # %entry305; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma306; CHECK-NEXT:    vsseg4e8.v v8, (a0)307; CHECK-NEXT:    ret308entry:309  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, i64 3)310  ret void311}312 313define void @test_vsseg4_mask_nxv2i8_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {314; CHECK-LABEL: test_vsseg4_mask_nxv2i8_triscv.vector.tuple_nxv2i8_4t:315; CHECK:       # %bb.0: # %entry316; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma317; CHECK-NEXT:    vsseg4e8.v v8, (a0), v0.t318; CHECK-NEXT:    ret319entry:320  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)321  ret void322}323 324define void @test_vsseg4_nxv4i8_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl) {325; CHECK-LABEL: test_vsseg4_nxv4i8_triscv.vector.tuple_nxv4i8_4t:326; CHECK:       # %bb.0: # %entry327; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma328; CHECK-NEXT:    vsseg4e8.v v8, (a0)329; CHECK-NEXT:    ret330entry:331  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, i64 3)332  ret void333}334 335define void @test_vsseg4_mask_nxv4i8_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {336; CHECK-LABEL: test_vsseg4_mask_nxv4i8_triscv.vector.tuple_nxv4i8_4t:337; CHECK:       # %bb.0: # %entry338; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma339; CHECK-NEXT:    vsseg4e8.v v8, (a0), v0.t340; CHECK-NEXT:    ret341entry:342  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)343  ret void344}345 346define void @test_vsseg4_nxv8i8_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {347; CHECK-LABEL: test_vsseg4_nxv8i8_triscv.vector.tuple_nxv8i8_4t:348; CHECK:       # %bb.0: # %entry349; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma350; CHECK-NEXT:    vsseg4e8.v v8, (a0)351; CHECK-NEXT:    ret352entry:353  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 3)354  ret void355}356 357define void @test_vsseg4_mask_nxv8i8_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {358; CHECK-LABEL: test_vsseg4_mask_nxv8i8_triscv.vector.tuple_nxv8i8_4t:359; CHECK:       # %bb.0: # %entry360; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma361; CHECK-NEXT:    vsseg4e8.v v8, (a0), v0.t362; CHECK-NEXT:    ret363entry:364  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)365  ret void366}367 368define void @test_vsseg4_nxv16i8_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {369; CHECK-LABEL: test_vsseg4_nxv16i8_triscv.vector.tuple_nxv16i8_4t:370; CHECK:       # %bb.0: # %entry371; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma372; CHECK-NEXT:    vsseg4e8.v v8, (a0)373; CHECK-NEXT:    ret374entry:375  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 3)376  ret void377}378 379define void @test_vsseg4_mask_nxv16i8_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {380; CHECK-LABEL: test_vsseg4_mask_nxv16i8_triscv.vector.tuple_nxv16i8_4t:381; CHECK:       # %bb.0: # %entry382; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma383; CHECK-NEXT:    vsseg4e8.v v8, (a0), v0.t384; CHECK-NEXT:    ret385entry:386  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 16 x i1> %mask, i64 %vl, i64 3)387  ret void388}389 390define void @test_vsseg5_nxv1i8_triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %val, ptr %base, i64 %vl) {391; CHECK-LABEL: test_vsseg5_nxv1i8_triscv.vector.tuple_nxv1i8_5t:392; CHECK:       # %bb.0: # %entry393; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma394; CHECK-NEXT:    vsseg5e8.v v8, (a0)395; CHECK-NEXT:    ret396entry:397  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %val, ptr %base, i64 %vl, i64 3)398  ret void399}400 401define void @test_vsseg5_mask_nxv1i8_triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {402; CHECK-LABEL: test_vsseg5_mask_nxv1i8_triscv.vector.tuple_nxv1i8_5t:403; CHECK:       # %bb.0: # %entry404; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma405; CHECK-NEXT:    vsseg5e8.v v8, (a0), v0.t406; CHECK-NEXT:    ret407entry:408  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv1i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)409  ret void410}411 412define void @test_vsseg5_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {413; CHECK-LABEL: test_vsseg5_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_5t:414; CHECK:       # %bb.0: # %entry415; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma416; CHECK-NEXT:    vsseg5e8.v v8, (a0)417; CHECK-NEXT:    ret418entry:419  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv1i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> splat (i1 true), i64 %vl, i64 3)420  ret void421}422 423define void @test_vsseg5_nxv2i8_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl) {424; CHECK-LABEL: test_vsseg5_nxv2i8_triscv.vector.tuple_nxv2i8_5t:425; CHECK:       # %bb.0: # %entry426; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma427; CHECK-NEXT:    vsseg5e8.v v8, (a0)428; CHECK-NEXT:    ret429entry:430  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, i64 3)431  ret void432}433 434define void @test_vsseg5_mask_nxv2i8_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {435; CHECK-LABEL: test_vsseg5_mask_nxv2i8_triscv.vector.tuple_nxv2i8_5t:436; CHECK:       # %bb.0: # %entry437; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma438; CHECK-NEXT:    vsseg5e8.v v8, (a0), v0.t439; CHECK-NEXT:    ret440entry:441  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)442  ret void443}444 445define void @test_vsseg5_nxv4i8_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl) {446; CHECK-LABEL: test_vsseg5_nxv4i8_triscv.vector.tuple_nxv4i8_5t:447; CHECK:       # %bb.0: # %entry448; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma449; CHECK-NEXT:    vsseg5e8.v v8, (a0)450; CHECK-NEXT:    ret451entry:452  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, i64 3)453  ret void454}455 456define void @test_vsseg5_mask_nxv4i8_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {457; CHECK-LABEL: test_vsseg5_mask_nxv4i8_triscv.vector.tuple_nxv4i8_5t:458; CHECK:       # %bb.0: # %entry459; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma460; CHECK-NEXT:    vsseg5e8.v v8, (a0), v0.t461; CHECK-NEXT:    ret462entry:463  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)464  ret void465}466 467define void @test_vsseg5_nxv8i8_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {468; CHECK-LABEL: test_vsseg5_nxv8i8_triscv.vector.tuple_nxv8i8_5t:469; CHECK:       # %bb.0: # %entry470; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma471; CHECK-NEXT:    vsseg5e8.v v8, (a0)472; CHECK-NEXT:    ret473entry:474  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 3)475  ret void476}477 478define void @test_vsseg5_mask_nxv8i8_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {479; CHECK-LABEL: test_vsseg5_mask_nxv8i8_triscv.vector.tuple_nxv8i8_5t:480; CHECK:       # %bb.0: # %entry481; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma482; CHECK-NEXT:    vsseg5e8.v v8, (a0), v0.t483; CHECK-NEXT:    ret484entry:485  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)486  ret void487}488 489define void @test_vsseg6_nxv1i8_triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %val, ptr %base, i64 %vl) {490; CHECK-LABEL: test_vsseg6_nxv1i8_triscv.vector.tuple_nxv1i8_6t:491; CHECK:       # %bb.0: # %entry492; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma493; CHECK-NEXT:    vsseg6e8.v v8, (a0)494; CHECK-NEXT:    ret495entry:496  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %val, ptr %base, i64 %vl, i64 3)497  ret void498}499 500define void @test_vsseg6_mask_nxv1i8_triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {501; CHECK-LABEL: test_vsseg6_mask_nxv1i8_triscv.vector.tuple_nxv1i8_6t:502; CHECK:       # %bb.0: # %entry503; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma504; CHECK-NEXT:    vsseg6e8.v v8, (a0), v0.t505; CHECK-NEXT:    ret506entry:507  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv1i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)508  ret void509}510 511define void @test_vsseg6_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {512; CHECK-LABEL: test_vsseg6_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_6t:513; CHECK:       # %bb.0: # %entry514; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma515; CHECK-NEXT:    vsseg6e8.v v8, (a0)516; CHECK-NEXT:    ret517entry:518  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv1i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> splat (i1 true), i64 %vl, i64 3)519  ret void520}521 522define void @test_vsseg6_nxv2i8_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl) {523; CHECK-LABEL: test_vsseg6_nxv2i8_triscv.vector.tuple_nxv2i8_6t:524; CHECK:       # %bb.0: # %entry525; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma526; CHECK-NEXT:    vsseg6e8.v v8, (a0)527; CHECK-NEXT:    ret528entry:529  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, i64 3)530  ret void531}532 533define void @test_vsseg6_mask_nxv2i8_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {534; CHECK-LABEL: test_vsseg6_mask_nxv2i8_triscv.vector.tuple_nxv2i8_6t:535; CHECK:       # %bb.0: # %entry536; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma537; CHECK-NEXT:    vsseg6e8.v v8, (a0), v0.t538; CHECK-NEXT:    ret539entry:540  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)541  ret void542}543 544define void @test_vsseg6_nxv4i8_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl) {545; CHECK-LABEL: test_vsseg6_nxv4i8_triscv.vector.tuple_nxv4i8_6t:546; CHECK:       # %bb.0: # %entry547; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma548; CHECK-NEXT:    vsseg6e8.v v8, (a0)549; CHECK-NEXT:    ret550entry:551  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, i64 3)552  ret void553}554 555define void @test_vsseg6_mask_nxv4i8_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {556; CHECK-LABEL: test_vsseg6_mask_nxv4i8_triscv.vector.tuple_nxv4i8_6t:557; CHECK:       # %bb.0: # %entry558; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma559; CHECK-NEXT:    vsseg6e8.v v8, (a0), v0.t560; CHECK-NEXT:    ret561entry:562  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)563  ret void564}565 566define void @test_vsseg6_nxv8i8_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {567; CHECK-LABEL: test_vsseg6_nxv8i8_triscv.vector.tuple_nxv8i8_6t:568; CHECK:       # %bb.0: # %entry569; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma570; CHECK-NEXT:    vsseg6e8.v v8, (a0)571; CHECK-NEXT:    ret572entry:573  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 3)574  ret void575}576 577define void @test_vsseg6_mask_nxv8i8_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {578; CHECK-LABEL: test_vsseg6_mask_nxv8i8_triscv.vector.tuple_nxv8i8_6t:579; CHECK:       # %bb.0: # %entry580; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma581; CHECK-NEXT:    vsseg6e8.v v8, (a0), v0.t582; CHECK-NEXT:    ret583entry:584  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)585  ret void586}587 588define void @test_vsseg7_nxv1i8_triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %val, ptr %base, i64 %vl) {589; CHECK-LABEL: test_vsseg7_nxv1i8_triscv.vector.tuple_nxv1i8_7t:590; CHECK:       # %bb.0: # %entry591; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma592; CHECK-NEXT:    vsseg7e8.v v8, (a0)593; CHECK-NEXT:    ret594entry:595  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %val, ptr %base, i64 %vl, i64 3)596  ret void597}598 599define void @test_vsseg7_mask_nxv1i8_triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {600; CHECK-LABEL: test_vsseg7_mask_nxv1i8_triscv.vector.tuple_nxv1i8_7t:601; CHECK:       # %bb.0: # %entry602; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma603; CHECK-NEXT:    vsseg7e8.v v8, (a0), v0.t604; CHECK-NEXT:    ret605entry:606  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv1i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)607  ret void608}609 610define void @test_vsseg7_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {611; CHECK-LABEL: test_vsseg7_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_7t:612; CHECK:       # %bb.0: # %entry613; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma614; CHECK-NEXT:    vsseg7e8.v v8, (a0)615; CHECK-NEXT:    ret616entry:617  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv1i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> splat (i1 true), i64 %vl, i64 3)618  ret void619}620 621define void @test_vsseg7_nxv2i8_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl) {622; CHECK-LABEL: test_vsseg7_nxv2i8_triscv.vector.tuple_nxv2i8_7t:623; CHECK:       # %bb.0: # %entry624; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma625; CHECK-NEXT:    vsseg7e8.v v8, (a0)626; CHECK-NEXT:    ret627entry:628  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, i64 3)629  ret void630}631 632define void @test_vsseg7_mask_nxv2i8_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {633; CHECK-LABEL: test_vsseg7_mask_nxv2i8_triscv.vector.tuple_nxv2i8_7t:634; CHECK:       # %bb.0: # %entry635; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma636; CHECK-NEXT:    vsseg7e8.v v8, (a0), v0.t637; CHECK-NEXT:    ret638entry:639  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)640  ret void641}642 643define void @test_vsseg7_nxv4i8_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl) {644; CHECK-LABEL: test_vsseg7_nxv4i8_triscv.vector.tuple_nxv4i8_7t:645; CHECK:       # %bb.0: # %entry646; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma647; CHECK-NEXT:    vsseg7e8.v v8, (a0)648; CHECK-NEXT:    ret649entry:650  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, i64 3)651  ret void652}653 654define void @test_vsseg7_mask_nxv4i8_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {655; CHECK-LABEL: test_vsseg7_mask_nxv4i8_triscv.vector.tuple_nxv4i8_7t:656; CHECK:       # %bb.0: # %entry657; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma658; CHECK-NEXT:    vsseg7e8.v v8, (a0), v0.t659; CHECK-NEXT:    ret660entry:661  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)662  ret void663}664 665define void @test_vsseg7_nxv8i8_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {666; CHECK-LABEL: test_vsseg7_nxv8i8_triscv.vector.tuple_nxv8i8_7t:667; CHECK:       # %bb.0: # %entry668; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma669; CHECK-NEXT:    vsseg7e8.v v8, (a0)670; CHECK-NEXT:    ret671entry:672  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 3)673  ret void674}675 676define void @test_vsseg7_mask_nxv8i8_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {677; CHECK-LABEL: test_vsseg7_mask_nxv8i8_triscv.vector.tuple_nxv8i8_7t:678; CHECK:       # %bb.0: # %entry679; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma680; CHECK-NEXT:    vsseg7e8.v v8, (a0), v0.t681; CHECK-NEXT:    ret682entry:683  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)684  ret void685}686 687define void @test_vsseg8_nxv1i8_triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %val, ptr %base, i64 %vl) {688; CHECK-LABEL: test_vsseg8_nxv1i8_triscv.vector.tuple_nxv1i8_8t:689; CHECK:       # %bb.0: # %entry690; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma691; CHECK-NEXT:    vsseg8e8.v v8, (a0)692; CHECK-NEXT:    ret693entry:694  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %val, ptr %base, i64 %vl, i64 3)695  ret void696}697 698define void @test_vsseg8_mask_nxv1i8_triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {699; CHECK-LABEL: test_vsseg8_mask_nxv1i8_triscv.vector.tuple_nxv1i8_8t:700; CHECK:       # %bb.0: # %entry701; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma702; CHECK-NEXT:    vsseg8e8.v v8, (a0), v0.t703; CHECK-NEXT:    ret704entry:705  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv1i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 3)706  ret void707}708 709define void @test_vsseg8_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {710; CHECK-LABEL: test_vsseg8_allonesmask_nxv1i8_triscv.vector.tuple_nxv1i8_8t:711; CHECK:       # %bb.0: # %entry712; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma713; CHECK-NEXT:    vsseg8e8.v v8, (a0)714; CHECK-NEXT:    ret715entry:716  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv1i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> splat (i1 true), i64 %vl, i64 3)717  ret void718}719 720define void @test_vsseg8_nxv2i8_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl) {721; CHECK-LABEL: test_vsseg8_nxv2i8_triscv.vector.tuple_nxv2i8_8t:722; CHECK:       # %bb.0: # %entry723; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma724; CHECK-NEXT:    vsseg8e8.v v8, (a0)725; CHECK-NEXT:    ret726entry:727  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, i64 3)728  ret void729}730 731define void @test_vsseg8_mask_nxv2i8_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {732; CHECK-LABEL: test_vsseg8_mask_nxv2i8_triscv.vector.tuple_nxv2i8_8t:733; CHECK:       # %bb.0: # %entry734; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma735; CHECK-NEXT:    vsseg8e8.v v8, (a0), v0.t736; CHECK-NEXT:    ret737entry:738  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 3)739  ret void740}741 742define void @test_vsseg8_nxv4i8_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl) {743; CHECK-LABEL: test_vsseg8_nxv4i8_triscv.vector.tuple_nxv4i8_8t:744; CHECK:       # %bb.0: # %entry745; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma746; CHECK-NEXT:    vsseg8e8.v v8, (a0)747; CHECK-NEXT:    ret748entry:749  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, i64 3)750  ret void751}752 753define void @test_vsseg8_mask_nxv4i8_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {754; CHECK-LABEL: test_vsseg8_mask_nxv4i8_triscv.vector.tuple_nxv4i8_8t:755; CHECK:       # %bb.0: # %entry756; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma757; CHECK-NEXT:    vsseg8e8.v v8, (a0), v0.t758; CHECK-NEXT:    ret759entry:760  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 3)761  ret void762}763 764define void @test_vsseg8_nxv8i8_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {765; CHECK-LABEL: test_vsseg8_nxv8i8_triscv.vector.tuple_nxv8i8_8t:766; CHECK:       # %bb.0: # %entry767; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma768; CHECK-NEXT:    vsseg8e8.v v8, (a0)769; CHECK-NEXT:    ret770entry:771  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 3)772  ret void773}774 775define void @test_vsseg8_mask_nxv8i8_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {776; CHECK-LABEL: test_vsseg8_mask_nxv8i8_triscv.vector.tuple_nxv8i8_8t:777; CHECK:       # %bb.0: # %entry778; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma779; CHECK-NEXT:    vsseg8e8.v v8, (a0), v0.t780; CHECK-NEXT:    ret781entry:782  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 3)783  ret void784}785 786define void @test_vsseg2_nxv1i16_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl) {787; CHECK-LABEL: test_vsseg2_nxv1i16_triscv.vector.tuple_nxv2i8_2t:788; CHECK:       # %bb.0: # %entry789; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma790; CHECK-NEXT:    vsseg2e16.v v8, (a0)791; CHECK-NEXT:    ret792entry:793  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)794  ret void795}796 797define void @test_vsseg2_mask_nxv1i16_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {798; CHECK-LABEL: test_vsseg2_mask_nxv1i16_triscv.vector.tuple_nxv2i8_2t:799; CHECK:       # %bb.0: # %entry800; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma801; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t802; CHECK-NEXT:    ret803entry:804  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)805  ret void806}807 808define void @test_vsseg2_nxv2i16_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl) {809; CHECK-LABEL: test_vsseg2_nxv2i16_triscv.vector.tuple_nxv4i8_2t:810; CHECK:       # %bb.0: # %entry811; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma812; CHECK-NEXT:    vsseg2e16.v v8, (a0)813; CHECK-NEXT:    ret814entry:815  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)816  ret void817}818 819define void @test_vsseg2_mask_nxv2i16_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {820; CHECK-LABEL: test_vsseg2_mask_nxv2i16_triscv.vector.tuple_nxv4i8_2t:821; CHECK:       # %bb.0: # %entry822; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma823; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t824; CHECK-NEXT:    ret825entry:826  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)827  ret void828}829 830define void @test_vsseg2_nxv4i16_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {831; CHECK-LABEL: test_vsseg2_nxv4i16_triscv.vector.tuple_nxv8i8_2t:832; CHECK:       # %bb.0: # %entry833; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma834; CHECK-NEXT:    vsseg2e16.v v8, (a0)835; CHECK-NEXT:    ret836entry:837  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)838  ret void839}840 841define void @test_vsseg2_mask_nxv4i16_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {842; CHECK-LABEL: test_vsseg2_mask_nxv4i16_triscv.vector.tuple_nxv8i8_2t:843; CHECK:       # %bb.0: # %entry844; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma845; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t846; CHECK-NEXT:    ret847entry:848  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)849  ret void850}851 852define void @test_vsseg2_nxv8i16_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {853; CHECK-LABEL: test_vsseg2_nxv8i16_triscv.vector.tuple_nxv16i8_2t:854; CHECK:       # %bb.0: # %entry855; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma856; CHECK-NEXT:    vsseg2e16.v v8, (a0)857; CHECK-NEXT:    ret858entry:859  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)860  ret void861}862 863define void @test_vsseg2_mask_nxv8i16_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {864; CHECK-LABEL: test_vsseg2_mask_nxv8i16_triscv.vector.tuple_nxv16i8_2t:865; CHECK:       # %bb.0: # %entry866; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma867; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t868; CHECK-NEXT:    ret869entry:870  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)871  ret void872}873 874define void @test_vsseg2_nxv16i16_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {875; CHECK-LABEL: test_vsseg2_nxv16i16_triscv.vector.tuple_nxv32i8_2t:876; CHECK:       # %bb.0: # %entry877; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma878; CHECK-NEXT:    vsseg2e16.v v8, (a0)879; CHECK-NEXT:    ret880entry:881  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)882  ret void883}884 885define void @test_vsseg2_mask_nxv16i16_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {886; CHECK-LABEL: test_vsseg2_mask_nxv16i16_triscv.vector.tuple_nxv32i8_2t:887; CHECK:       # %bb.0: # %entry888; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma889; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t890; CHECK-NEXT:    ret891entry:892  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 16 x i1> %mask, i64 %vl, i64 4)893  ret void894}895 896define void @test_vsseg3_nxv1i16_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl) {897; CHECK-LABEL: test_vsseg3_nxv1i16_triscv.vector.tuple_nxv2i8_3t:898; CHECK:       # %bb.0: # %entry899; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma900; CHECK-NEXT:    vsseg3e16.v v8, (a0)901; CHECK-NEXT:    ret902entry:903  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)904  ret void905}906 907define void @test_vsseg3_mask_nxv1i16_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {908; CHECK-LABEL: test_vsseg3_mask_nxv1i16_triscv.vector.tuple_nxv2i8_3t:909; CHECK:       # %bb.0: # %entry910; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma911; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t912; CHECK-NEXT:    ret913entry:914  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)915  ret void916}917 918define void @test_vsseg3_nxv2i16_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl) {919; CHECK-LABEL: test_vsseg3_nxv2i16_triscv.vector.tuple_nxv4i8_3t:920; CHECK:       # %bb.0: # %entry921; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma922; CHECK-NEXT:    vsseg3e16.v v8, (a0)923; CHECK-NEXT:    ret924entry:925  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)926  ret void927}928 929define void @test_vsseg3_mask_nxv2i16_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {930; CHECK-LABEL: test_vsseg3_mask_nxv2i16_triscv.vector.tuple_nxv4i8_3t:931; CHECK:       # %bb.0: # %entry932; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma933; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t934; CHECK-NEXT:    ret935entry:936  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)937  ret void938}939 940define void @test_vsseg3_nxv4i16_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {941; CHECK-LABEL: test_vsseg3_nxv4i16_triscv.vector.tuple_nxv8i8_3t:942; CHECK:       # %bb.0: # %entry943; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma944; CHECK-NEXT:    vsseg3e16.v v8, (a0)945; CHECK-NEXT:    ret946entry:947  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)948  ret void949}950 951define void @test_vsseg3_mask_nxv4i16_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {952; CHECK-LABEL: test_vsseg3_mask_nxv4i16_triscv.vector.tuple_nxv8i8_3t:953; CHECK:       # %bb.0: # %entry954; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma955; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t956; CHECK-NEXT:    ret957entry:958  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)959  ret void960}961 962define void @test_vsseg3_nxv8i16_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {963; CHECK-LABEL: test_vsseg3_nxv8i16_triscv.vector.tuple_nxv16i8_3t:964; CHECK:       # %bb.0: # %entry965; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma966; CHECK-NEXT:    vsseg3e16.v v8, (a0)967; CHECK-NEXT:    ret968entry:969  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)970  ret void971}972 973define void @test_vsseg3_mask_nxv8i16_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {974; CHECK-LABEL: test_vsseg3_mask_nxv8i16_triscv.vector.tuple_nxv16i8_3t:975; CHECK:       # %bb.0: # %entry976; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma977; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t978; CHECK-NEXT:    ret979entry:980  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)981  ret void982}983 984define void @test_vsseg4_nxv1i16_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl) {985; CHECK-LABEL: test_vsseg4_nxv1i16_triscv.vector.tuple_nxv2i8_4t:986; CHECK:       # %bb.0: # %entry987; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma988; CHECK-NEXT:    vsseg4e16.v v8, (a0)989; CHECK-NEXT:    ret990entry:991  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)992  ret void993}994 995define void @test_vsseg4_mask_nxv1i16_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {996; CHECK-LABEL: test_vsseg4_mask_nxv1i16_triscv.vector.tuple_nxv2i8_4t:997; CHECK:       # %bb.0: # %entry998; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma999; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t1000; CHECK-NEXT:    ret1001entry:1002  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)1003  ret void1004}1005 1006define void @test_vsseg4_nxv2i16_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl) {1007; CHECK-LABEL: test_vsseg4_nxv2i16_triscv.vector.tuple_nxv4i8_4t:1008; CHECK:       # %bb.0: # %entry1009; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1010; CHECK-NEXT:    vsseg4e16.v v8, (a0)1011; CHECK-NEXT:    ret1012entry:1013  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)1014  ret void1015}1016 1017define void @test_vsseg4_mask_nxv2i16_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1018; CHECK-LABEL: test_vsseg4_mask_nxv2i16_triscv.vector.tuple_nxv4i8_4t:1019; CHECK:       # %bb.0: # %entry1020; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1021; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t1022; CHECK-NEXT:    ret1023entry:1024  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)1025  ret void1026}1027 1028define void @test_vsseg4_nxv4i16_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {1029; CHECK-LABEL: test_vsseg4_nxv4i16_triscv.vector.tuple_nxv8i8_4t:1030; CHECK:       # %bb.0: # %entry1031; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1032; CHECK-NEXT:    vsseg4e16.v v8, (a0)1033; CHECK-NEXT:    ret1034entry:1035  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)1036  ret void1037}1038 1039define void @test_vsseg4_mask_nxv4i16_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1040; CHECK-LABEL: test_vsseg4_mask_nxv4i16_triscv.vector.tuple_nxv8i8_4t:1041; CHECK:       # %bb.0: # %entry1042; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1043; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t1044; CHECK-NEXT:    ret1045entry:1046  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)1047  ret void1048}1049 1050define void @test_vsseg4_nxv8i16_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {1051; CHECK-LABEL: test_vsseg4_nxv8i16_triscv.vector.tuple_nxv16i8_4t:1052; CHECK:       # %bb.0: # %entry1053; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma1054; CHECK-NEXT:    vsseg4e16.v v8, (a0)1055; CHECK-NEXT:    ret1056entry:1057  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)1058  ret void1059}1060 1061define void @test_vsseg4_mask_nxv8i16_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {1062; CHECK-LABEL: test_vsseg4_mask_nxv8i16_triscv.vector.tuple_nxv16i8_4t:1063; CHECK:       # %bb.0: # %entry1064; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma1065; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t1066; CHECK-NEXT:    ret1067entry:1068  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)1069  ret void1070}1071 1072define void @test_vsseg5_nxv1i16_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl) {1073; CHECK-LABEL: test_vsseg5_nxv1i16_triscv.vector.tuple_nxv2i8_5t:1074; CHECK:       # %bb.0: # %entry1075; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1076; CHECK-NEXT:    vsseg5e16.v v8, (a0)1077; CHECK-NEXT:    ret1078entry:1079  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)1080  ret void1081}1082 1083define void @test_vsseg5_mask_nxv1i16_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1084; CHECK-LABEL: test_vsseg5_mask_nxv1i16_triscv.vector.tuple_nxv2i8_5t:1085; CHECK:       # %bb.0: # %entry1086; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1087; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t1088; CHECK-NEXT:    ret1089entry:1090  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)1091  ret void1092}1093 1094define void @test_vsseg5_nxv2i16_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl) {1095; CHECK-LABEL: test_vsseg5_nxv2i16_triscv.vector.tuple_nxv4i8_5t:1096; CHECK:       # %bb.0: # %entry1097; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1098; CHECK-NEXT:    vsseg5e16.v v8, (a0)1099; CHECK-NEXT:    ret1100entry:1101  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)1102  ret void1103}1104 1105define void @test_vsseg5_mask_nxv2i16_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1106; CHECK-LABEL: test_vsseg5_mask_nxv2i16_triscv.vector.tuple_nxv4i8_5t:1107; CHECK:       # %bb.0: # %entry1108; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1109; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t1110; CHECK-NEXT:    ret1111entry:1112  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)1113  ret void1114}1115 1116define void @test_vsseg5_nxv4i16_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {1117; CHECK-LABEL: test_vsseg5_nxv4i16_triscv.vector.tuple_nxv8i8_5t:1118; CHECK:       # %bb.0: # %entry1119; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1120; CHECK-NEXT:    vsseg5e16.v v8, (a0)1121; CHECK-NEXT:    ret1122entry:1123  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)1124  ret void1125}1126 1127define void @test_vsseg5_mask_nxv4i16_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1128; CHECK-LABEL: test_vsseg5_mask_nxv4i16_triscv.vector.tuple_nxv8i8_5t:1129; CHECK:       # %bb.0: # %entry1130; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1131; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t1132; CHECK-NEXT:    ret1133entry:1134  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)1135  ret void1136}1137 1138define void @test_vsseg6_nxv1i16_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl) {1139; CHECK-LABEL: test_vsseg6_nxv1i16_triscv.vector.tuple_nxv2i8_6t:1140; CHECK:       # %bb.0: # %entry1141; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1142; CHECK-NEXT:    vsseg6e16.v v8, (a0)1143; CHECK-NEXT:    ret1144entry:1145  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)1146  ret void1147}1148 1149define void @test_vsseg6_mask_nxv1i16_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1150; CHECK-LABEL: test_vsseg6_mask_nxv1i16_triscv.vector.tuple_nxv2i8_6t:1151; CHECK:       # %bb.0: # %entry1152; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1153; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t1154; CHECK-NEXT:    ret1155entry:1156  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)1157  ret void1158}1159 1160define void @test_vsseg6_nxv2i16_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl) {1161; CHECK-LABEL: test_vsseg6_nxv2i16_triscv.vector.tuple_nxv4i8_6t:1162; CHECK:       # %bb.0: # %entry1163; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1164; CHECK-NEXT:    vsseg6e16.v v8, (a0)1165; CHECK-NEXT:    ret1166entry:1167  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)1168  ret void1169}1170 1171define void @test_vsseg6_mask_nxv2i16_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1172; CHECK-LABEL: test_vsseg6_mask_nxv2i16_triscv.vector.tuple_nxv4i8_6t:1173; CHECK:       # %bb.0: # %entry1174; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1175; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t1176; CHECK-NEXT:    ret1177entry:1178  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)1179  ret void1180}1181 1182define void @test_vsseg6_nxv4i16_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {1183; CHECK-LABEL: test_vsseg6_nxv4i16_triscv.vector.tuple_nxv8i8_6t:1184; CHECK:       # %bb.0: # %entry1185; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1186; CHECK-NEXT:    vsseg6e16.v v8, (a0)1187; CHECK-NEXT:    ret1188entry:1189  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)1190  ret void1191}1192 1193define void @test_vsseg6_mask_nxv4i16_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1194; CHECK-LABEL: test_vsseg6_mask_nxv4i16_triscv.vector.tuple_nxv8i8_6t:1195; CHECK:       # %bb.0: # %entry1196; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1197; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t1198; CHECK-NEXT:    ret1199entry:1200  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)1201  ret void1202}1203 1204define void @test_vsseg7_nxv1i16_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl) {1205; CHECK-LABEL: test_vsseg7_nxv1i16_triscv.vector.tuple_nxv2i8_7t:1206; CHECK:       # %bb.0: # %entry1207; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1208; CHECK-NEXT:    vsseg7e16.v v8, (a0)1209; CHECK-NEXT:    ret1210entry:1211  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)1212  ret void1213}1214 1215define void @test_vsseg7_mask_nxv1i16_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1216; CHECK-LABEL: test_vsseg7_mask_nxv1i16_triscv.vector.tuple_nxv2i8_7t:1217; CHECK:       # %bb.0: # %entry1218; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1219; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t1220; CHECK-NEXT:    ret1221entry:1222  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)1223  ret void1224}1225 1226define void @test_vsseg7_nxv2i16_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl) {1227; CHECK-LABEL: test_vsseg7_nxv2i16_triscv.vector.tuple_nxv4i8_7t:1228; CHECK:       # %bb.0: # %entry1229; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1230; CHECK-NEXT:    vsseg7e16.v v8, (a0)1231; CHECK-NEXT:    ret1232entry:1233  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)1234  ret void1235}1236 1237define void @test_vsseg7_mask_nxv2i16_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1238; CHECK-LABEL: test_vsseg7_mask_nxv2i16_triscv.vector.tuple_nxv4i8_7t:1239; CHECK:       # %bb.0: # %entry1240; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1241; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t1242; CHECK-NEXT:    ret1243entry:1244  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)1245  ret void1246}1247 1248define void @test_vsseg7_nxv4i16_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {1249; CHECK-LABEL: test_vsseg7_nxv4i16_triscv.vector.tuple_nxv8i8_7t:1250; CHECK:       # %bb.0: # %entry1251; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1252; CHECK-NEXT:    vsseg7e16.v v8, (a0)1253; CHECK-NEXT:    ret1254entry:1255  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)1256  ret void1257}1258 1259define void @test_vsseg7_mask_nxv4i16_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1260; CHECK-LABEL: test_vsseg7_mask_nxv4i16_triscv.vector.tuple_nxv8i8_7t:1261; CHECK:       # %bb.0: # %entry1262; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1263; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t1264; CHECK-NEXT:    ret1265entry:1266  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)1267  ret void1268}1269 1270define void @test_vsseg8_nxv1i16_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl) {1271; CHECK-LABEL: test_vsseg8_nxv1i16_triscv.vector.tuple_nxv2i8_8t:1272; CHECK:       # %bb.0: # %entry1273; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1274; CHECK-NEXT:    vsseg8e16.v v8, (a0)1275; CHECK-NEXT:    ret1276entry:1277  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)1278  ret void1279}1280 1281define void @test_vsseg8_mask_nxv1i16_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1282; CHECK-LABEL: test_vsseg8_mask_nxv1i16_triscv.vector.tuple_nxv2i8_8t:1283; CHECK:       # %bb.0: # %entry1284; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1285; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t1286; CHECK-NEXT:    ret1287entry:1288  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)1289  ret void1290}1291 1292define void @test_vsseg8_nxv2i16_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl) {1293; CHECK-LABEL: test_vsseg8_nxv2i16_triscv.vector.tuple_nxv4i8_8t:1294; CHECK:       # %bb.0: # %entry1295; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1296; CHECK-NEXT:    vsseg8e16.v v8, (a0)1297; CHECK-NEXT:    ret1298entry:1299  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)1300  ret void1301}1302 1303define void @test_vsseg8_mask_nxv2i16_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1304; CHECK-LABEL: test_vsseg8_mask_nxv2i16_triscv.vector.tuple_nxv4i8_8t:1305; CHECK:       # %bb.0: # %entry1306; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma1307; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t1308; CHECK-NEXT:    ret1309entry:1310  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)1311  ret void1312}1313 1314define void @test_vsseg8_nxv4i16_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {1315; CHECK-LABEL: test_vsseg8_nxv4i16_triscv.vector.tuple_nxv8i8_8t:1316; CHECK:       # %bb.0: # %entry1317; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1318; CHECK-NEXT:    vsseg8e16.v v8, (a0)1319; CHECK-NEXT:    ret1320entry:1321  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)1322  ret void1323}1324 1325define void @test_vsseg8_mask_nxv4i16_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1326; CHECK-LABEL: test_vsseg8_mask_nxv4i16_triscv.vector.tuple_nxv8i8_8t:1327; CHECK:       # %bb.0: # %entry1328; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma1329; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t1330; CHECK-NEXT:    ret1331entry:1332  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)1333  ret void1334}1335 1336define void @test_vsseg2_nxv1i32_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl) {1337; CHECK-LABEL: test_vsseg2_nxv1i32_triscv.vector.tuple_nxv4i8_2t:1338; CHECK:       # %bb.0: # %entry1339; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1340; CHECK-NEXT:    vsseg2e32.v v8, (a0)1341; CHECK-NEXT:    ret1342entry:1343  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)1344  ret void1345}1346 1347define void @test_vsseg2_mask_nxv1i32_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1348; CHECK-LABEL: test_vsseg2_mask_nxv1i32_triscv.vector.tuple_nxv4i8_2t:1349; CHECK:       # %bb.0: # %entry1350; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1351; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t1352; CHECK-NEXT:    ret1353entry:1354  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1355  ret void1356}1357 1358define void @test_vsseg2_nxv2i32_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {1359; CHECK-LABEL: test_vsseg2_nxv2i32_triscv.vector.tuple_nxv8i8_2t:1360; CHECK:       # %bb.0: # %entry1361; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1362; CHECK-NEXT:    vsseg2e32.v v8, (a0)1363; CHECK-NEXT:    ret1364entry:1365  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)1366  ret void1367}1368 1369define void @test_vsseg2_mask_nxv2i32_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1370; CHECK-LABEL: test_vsseg2_mask_nxv2i32_triscv.vector.tuple_nxv8i8_2t:1371; CHECK:       # %bb.0: # %entry1372; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1373; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t1374; CHECK-NEXT:    ret1375entry:1376  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1377  ret void1378}1379 1380define void @test_vsseg2_nxv4i32_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {1381; CHECK-LABEL: test_vsseg2_nxv4i32_triscv.vector.tuple_nxv16i8_2t:1382; CHECK:       # %bb.0: # %entry1383; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1384; CHECK-NEXT:    vsseg2e32.v v8, (a0)1385; CHECK-NEXT:    ret1386entry:1387  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)1388  ret void1389}1390 1391define void @test_vsseg2_mask_nxv4i32_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1392; CHECK-LABEL: test_vsseg2_mask_nxv4i32_triscv.vector.tuple_nxv16i8_2t:1393; CHECK:       # %bb.0: # %entry1394; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1395; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t1396; CHECK-NEXT:    ret1397entry:1398  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 5)1399  ret void1400}1401 1402define void @test_vsseg2_nxv8i32_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {1403; CHECK-LABEL: test_vsseg2_nxv8i32_triscv.vector.tuple_nxv32i8_2t:1404; CHECK:       # %bb.0: # %entry1405; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma1406; CHECK-NEXT:    vsseg2e32.v v8, (a0)1407; CHECK-NEXT:    ret1408entry:1409  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)1410  ret void1411}1412 1413define void @test_vsseg2_mask_nxv8i32_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {1414; CHECK-LABEL: test_vsseg2_mask_nxv8i32_triscv.vector.tuple_nxv32i8_2t:1415; CHECK:       # %bb.0: # %entry1416; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma1417; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t1418; CHECK-NEXT:    ret1419entry:1420  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 5)1421  ret void1422}1423 1424define void @test_vsseg3_nxv1i32_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl) {1425; CHECK-LABEL: test_vsseg3_nxv1i32_triscv.vector.tuple_nxv4i8_3t:1426; CHECK:       # %bb.0: # %entry1427; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1428; CHECK-NEXT:    vsseg3e32.v v8, (a0)1429; CHECK-NEXT:    ret1430entry:1431  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, i64 5)1432  ret void1433}1434 1435define void @test_vsseg3_mask_nxv1i32_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1436; CHECK-LABEL: test_vsseg3_mask_nxv1i32_triscv.vector.tuple_nxv4i8_3t:1437; CHECK:       # %bb.0: # %entry1438; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1439; CHECK-NEXT:    vsseg3e32.v v8, (a0), v0.t1440; CHECK-NEXT:    ret1441entry:1442  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1443  ret void1444}1445 1446define void @test_vsseg3_nxv2i32_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {1447; CHECK-LABEL: test_vsseg3_nxv2i32_triscv.vector.tuple_nxv8i8_3t:1448; CHECK:       # %bb.0: # %entry1449; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1450; CHECK-NEXT:    vsseg3e32.v v8, (a0)1451; CHECK-NEXT:    ret1452entry:1453  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 5)1454  ret void1455}1456 1457define void @test_vsseg3_mask_nxv2i32_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1458; CHECK-LABEL: test_vsseg3_mask_nxv2i32_triscv.vector.tuple_nxv8i8_3t:1459; CHECK:       # %bb.0: # %entry1460; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1461; CHECK-NEXT:    vsseg3e32.v v8, (a0), v0.t1462; CHECK-NEXT:    ret1463entry:1464  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1465  ret void1466}1467 1468define void @test_vsseg3_nxv4i32_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {1469; CHECK-LABEL: test_vsseg3_nxv4i32_triscv.vector.tuple_nxv16i8_3t:1470; CHECK:       # %bb.0: # %entry1471; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1472; CHECK-NEXT:    vsseg3e32.v v8, (a0)1473; CHECK-NEXT:    ret1474entry:1475  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 5)1476  ret void1477}1478 1479define void @test_vsseg3_mask_nxv4i32_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1480; CHECK-LABEL: test_vsseg3_mask_nxv4i32_triscv.vector.tuple_nxv16i8_3t:1481; CHECK:       # %bb.0: # %entry1482; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1483; CHECK-NEXT:    vsseg3e32.v v8, (a0), v0.t1484; CHECK-NEXT:    ret1485entry:1486  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 5)1487  ret void1488}1489 1490define void @test_vsseg4_nxv1i32_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl) {1491; CHECK-LABEL: test_vsseg4_nxv1i32_triscv.vector.tuple_nxv4i8_4t:1492; CHECK:       # %bb.0: # %entry1493; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1494; CHECK-NEXT:    vsseg4e32.v v8, (a0)1495; CHECK-NEXT:    ret1496entry:1497  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, i64 5)1498  ret void1499}1500 1501define void @test_vsseg4_mask_nxv1i32_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1502; CHECK-LABEL: test_vsseg4_mask_nxv1i32_triscv.vector.tuple_nxv4i8_4t:1503; CHECK:       # %bb.0: # %entry1504; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1505; CHECK-NEXT:    vsseg4e32.v v8, (a0), v0.t1506; CHECK-NEXT:    ret1507entry:1508  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1509  ret void1510}1511 1512define void @test_vsseg4_nxv2i32_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {1513; CHECK-LABEL: test_vsseg4_nxv2i32_triscv.vector.tuple_nxv8i8_4t:1514; CHECK:       # %bb.0: # %entry1515; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1516; CHECK-NEXT:    vsseg4e32.v v8, (a0)1517; CHECK-NEXT:    ret1518entry:1519  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 5)1520  ret void1521}1522 1523define void @test_vsseg4_mask_nxv2i32_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1524; CHECK-LABEL: test_vsseg4_mask_nxv2i32_triscv.vector.tuple_nxv8i8_4t:1525; CHECK:       # %bb.0: # %entry1526; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1527; CHECK-NEXT:    vsseg4e32.v v8, (a0), v0.t1528; CHECK-NEXT:    ret1529entry:1530  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1531  ret void1532}1533 1534define void @test_vsseg4_nxv4i32_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {1535; CHECK-LABEL: test_vsseg4_nxv4i32_triscv.vector.tuple_nxv16i8_4t:1536; CHECK:       # %bb.0: # %entry1537; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1538; CHECK-NEXT:    vsseg4e32.v v8, (a0)1539; CHECK-NEXT:    ret1540entry:1541  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 5)1542  ret void1543}1544 1545define void @test_vsseg4_mask_nxv4i32_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1546; CHECK-LABEL: test_vsseg4_mask_nxv4i32_triscv.vector.tuple_nxv16i8_4t:1547; CHECK:       # %bb.0: # %entry1548; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1549; CHECK-NEXT:    vsseg4e32.v v8, (a0), v0.t1550; CHECK-NEXT:    ret1551entry:1552  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 5)1553  ret void1554}1555 1556define void @test_vsseg5_nxv1i32_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl) {1557; CHECK-LABEL: test_vsseg5_nxv1i32_triscv.vector.tuple_nxv4i8_5t:1558; CHECK:       # %bb.0: # %entry1559; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1560; CHECK-NEXT:    vsseg5e32.v v8, (a0)1561; CHECK-NEXT:    ret1562entry:1563  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, i64 5)1564  ret void1565}1566 1567define void @test_vsseg5_mask_nxv1i32_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1568; CHECK-LABEL: test_vsseg5_mask_nxv1i32_triscv.vector.tuple_nxv4i8_5t:1569; CHECK:       # %bb.0: # %entry1570; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1571; CHECK-NEXT:    vsseg5e32.v v8, (a0), v0.t1572; CHECK-NEXT:    ret1573entry:1574  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1575  ret void1576}1577 1578define void @test_vsseg5_nxv2i32_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {1579; CHECK-LABEL: test_vsseg5_nxv2i32_triscv.vector.tuple_nxv8i8_5t:1580; CHECK:       # %bb.0: # %entry1581; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1582; CHECK-NEXT:    vsseg5e32.v v8, (a0)1583; CHECK-NEXT:    ret1584entry:1585  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 5)1586  ret void1587}1588 1589define void @test_vsseg5_mask_nxv2i32_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1590; CHECK-LABEL: test_vsseg5_mask_nxv2i32_triscv.vector.tuple_nxv8i8_5t:1591; CHECK:       # %bb.0: # %entry1592; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1593; CHECK-NEXT:    vsseg5e32.v v8, (a0), v0.t1594; CHECK-NEXT:    ret1595entry:1596  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1597  ret void1598}1599 1600define void @test_vsseg6_nxv1i32_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl) {1601; CHECK-LABEL: test_vsseg6_nxv1i32_triscv.vector.tuple_nxv4i8_6t:1602; CHECK:       # %bb.0: # %entry1603; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1604; CHECK-NEXT:    vsseg6e32.v v8, (a0)1605; CHECK-NEXT:    ret1606entry:1607  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, i64 5)1608  ret void1609}1610 1611define void @test_vsseg6_mask_nxv1i32_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1612; CHECK-LABEL: test_vsseg6_mask_nxv1i32_triscv.vector.tuple_nxv4i8_6t:1613; CHECK:       # %bb.0: # %entry1614; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1615; CHECK-NEXT:    vsseg6e32.v v8, (a0), v0.t1616; CHECK-NEXT:    ret1617entry:1618  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1619  ret void1620}1621 1622define void @test_vsseg6_nxv2i32_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {1623; CHECK-LABEL: test_vsseg6_nxv2i32_triscv.vector.tuple_nxv8i8_6t:1624; CHECK:       # %bb.0: # %entry1625; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1626; CHECK-NEXT:    vsseg6e32.v v8, (a0)1627; CHECK-NEXT:    ret1628entry:1629  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 5)1630  ret void1631}1632 1633define void @test_vsseg6_mask_nxv2i32_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1634; CHECK-LABEL: test_vsseg6_mask_nxv2i32_triscv.vector.tuple_nxv8i8_6t:1635; CHECK:       # %bb.0: # %entry1636; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1637; CHECK-NEXT:    vsseg6e32.v v8, (a0), v0.t1638; CHECK-NEXT:    ret1639entry:1640  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1641  ret void1642}1643 1644define void @test_vsseg7_nxv1i32_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl) {1645; CHECK-LABEL: test_vsseg7_nxv1i32_triscv.vector.tuple_nxv4i8_7t:1646; CHECK:       # %bb.0: # %entry1647; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1648; CHECK-NEXT:    vsseg7e32.v v8, (a0)1649; CHECK-NEXT:    ret1650entry:1651  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, i64 5)1652  ret void1653}1654 1655define void @test_vsseg7_mask_nxv1i32_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1656; CHECK-LABEL: test_vsseg7_mask_nxv1i32_triscv.vector.tuple_nxv4i8_7t:1657; CHECK:       # %bb.0: # %entry1658; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1659; CHECK-NEXT:    vsseg7e32.v v8, (a0), v0.t1660; CHECK-NEXT:    ret1661entry:1662  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1663  ret void1664}1665 1666define void @test_vsseg7_nxv2i32_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {1667; CHECK-LABEL: test_vsseg7_nxv2i32_triscv.vector.tuple_nxv8i8_7t:1668; CHECK:       # %bb.0: # %entry1669; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1670; CHECK-NEXT:    vsseg7e32.v v8, (a0)1671; CHECK-NEXT:    ret1672entry:1673  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 5)1674  ret void1675}1676 1677define void @test_vsseg7_mask_nxv2i32_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1678; CHECK-LABEL: test_vsseg7_mask_nxv2i32_triscv.vector.tuple_nxv8i8_7t:1679; CHECK:       # %bb.0: # %entry1680; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1681; CHECK-NEXT:    vsseg7e32.v v8, (a0), v0.t1682; CHECK-NEXT:    ret1683entry:1684  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1685  ret void1686}1687 1688define void @test_vsseg8_nxv1i32_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl) {1689; CHECK-LABEL: test_vsseg8_nxv1i32_triscv.vector.tuple_nxv4i8_8t:1690; CHECK:       # %bb.0: # %entry1691; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1692; CHECK-NEXT:    vsseg8e32.v v8, (a0)1693; CHECK-NEXT:    ret1694entry:1695  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, i64 5)1696  ret void1697}1698 1699define void @test_vsseg8_mask_nxv1i32_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1700; CHECK-LABEL: test_vsseg8_mask_nxv1i32_triscv.vector.tuple_nxv4i8_8t:1701; CHECK:       # %bb.0: # %entry1702; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1703; CHECK-NEXT:    vsseg8e32.v v8, (a0), v0.t1704; CHECK-NEXT:    ret1705entry:1706  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)1707  ret void1708}1709 1710define void @test_vsseg8_nxv2i32_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {1711; CHECK-LABEL: test_vsseg8_nxv2i32_triscv.vector.tuple_nxv8i8_8t:1712; CHECK:       # %bb.0: # %entry1713; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1714; CHECK-NEXT:    vsseg8e32.v v8, (a0)1715; CHECK-NEXT:    ret1716entry:1717  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 5)1718  ret void1719}1720 1721define void @test_vsseg8_mask_nxv2i32_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1722; CHECK-LABEL: test_vsseg8_mask_nxv2i32_triscv.vector.tuple_nxv8i8_8t:1723; CHECK:       # %bb.0: # %entry1724; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1725; CHECK-NEXT:    vsseg8e32.v v8, (a0), v0.t1726; CHECK-NEXT:    ret1727entry:1728  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)1729  ret void1730}1731 1732define void @test_vsseg2_nxv1i64_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {1733; CHECK-LABEL: test_vsseg2_nxv1i64_triscv.vector.tuple_nxv8i8_2t:1734; CHECK:       # %bb.0: # %entry1735; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1736; CHECK-NEXT:    vsseg2e64.v v8, (a0)1737; CHECK-NEXT:    ret1738entry:1739  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 6)1740  ret void1741}1742 1743define void @test_vsseg2_mask_nxv1i64_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1744; CHECK-LABEL: test_vsseg2_mask_nxv1i64_triscv.vector.tuple_nxv8i8_2t:1745; CHECK:       # %bb.0: # %entry1746; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1747; CHECK-NEXT:    vsseg2e64.v v8, (a0), v0.t1748; CHECK-NEXT:    ret1749entry:1750  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1751  ret void1752}1753 1754define void @test_vsseg2_nxv2i64_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {1755; CHECK-LABEL: test_vsseg2_nxv2i64_triscv.vector.tuple_nxv16i8_2t:1756; CHECK:       # %bb.0: # %entry1757; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1758; CHECK-NEXT:    vsseg2e64.v v8, (a0)1759; CHECK-NEXT:    ret1760entry:1761  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 6)1762  ret void1763}1764 1765define void @test_vsseg2_mask_nxv2i64_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1766; CHECK-LABEL: test_vsseg2_mask_nxv2i64_triscv.vector.tuple_nxv16i8_2t:1767; CHECK:       # %bb.0: # %entry1768; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1769; CHECK-NEXT:    vsseg2e64.v v8, (a0), v0.t1770; CHECK-NEXT:    ret1771entry:1772  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 6)1773  ret void1774}1775 1776define void @test_vsseg2_nxv4i64_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {1777; CHECK-LABEL: test_vsseg2_nxv4i64_triscv.vector.tuple_nxv32i8_2t:1778; CHECK:       # %bb.0: # %entry1779; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1780; CHECK-NEXT:    vsseg2e64.v v8, (a0)1781; CHECK-NEXT:    ret1782entry:1783  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 6)1784  ret void1785}1786 1787define void @test_vsseg2_mask_nxv4i64_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {1788; CHECK-LABEL: test_vsseg2_mask_nxv4i64_triscv.vector.tuple_nxv32i8_2t:1789; CHECK:       # %bb.0: # %entry1790; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1791; CHECK-NEXT:    vsseg2e64.v v8, (a0), v0.t1792; CHECK-NEXT:    ret1793entry:1794  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 6)1795  ret void1796}1797 1798define void @test_vsseg3_nxv1i64_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {1799; CHECK-LABEL: test_vsseg3_nxv1i64_triscv.vector.tuple_nxv8i8_3t:1800; CHECK:       # %bb.0: # %entry1801; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1802; CHECK-NEXT:    vsseg3e64.v v8, (a0)1803; CHECK-NEXT:    ret1804entry:1805  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 6)1806  ret void1807}1808 1809define void @test_vsseg3_mask_nxv1i64_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1810; CHECK-LABEL: test_vsseg3_mask_nxv1i64_triscv.vector.tuple_nxv8i8_3t:1811; CHECK:       # %bb.0: # %entry1812; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1813; CHECK-NEXT:    vsseg3e64.v v8, (a0), v0.t1814; CHECK-NEXT:    ret1815entry:1816  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1817  ret void1818}1819 1820define void @test_vsseg3_nxv2i64_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {1821; CHECK-LABEL: test_vsseg3_nxv2i64_triscv.vector.tuple_nxv16i8_3t:1822; CHECK:       # %bb.0: # %entry1823; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1824; CHECK-NEXT:    vsseg3e64.v v8, (a0)1825; CHECK-NEXT:    ret1826entry:1827  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 6)1828  ret void1829}1830 1831define void @test_vsseg3_mask_nxv2i64_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1832; CHECK-LABEL: test_vsseg3_mask_nxv2i64_triscv.vector.tuple_nxv16i8_3t:1833; CHECK:       # %bb.0: # %entry1834; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1835; CHECK-NEXT:    vsseg3e64.v v8, (a0), v0.t1836; CHECK-NEXT:    ret1837entry:1838  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 6)1839  ret void1840}1841 1842define void @test_vsseg4_nxv1i64_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {1843; CHECK-LABEL: test_vsseg4_nxv1i64_triscv.vector.tuple_nxv8i8_4t:1844; CHECK:       # %bb.0: # %entry1845; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1846; CHECK-NEXT:    vsseg4e64.v v8, (a0)1847; CHECK-NEXT:    ret1848entry:1849  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 6)1850  ret void1851}1852 1853define void @test_vsseg4_mask_nxv1i64_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1854; CHECK-LABEL: test_vsseg4_mask_nxv1i64_triscv.vector.tuple_nxv8i8_4t:1855; CHECK:       # %bb.0: # %entry1856; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1857; CHECK-NEXT:    vsseg4e64.v v8, (a0), v0.t1858; CHECK-NEXT:    ret1859entry:1860  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1861  ret void1862}1863 1864define void @test_vsseg4_nxv2i64_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {1865; CHECK-LABEL: test_vsseg4_nxv2i64_triscv.vector.tuple_nxv16i8_4t:1866; CHECK:       # %bb.0: # %entry1867; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1868; CHECK-NEXT:    vsseg4e64.v v8, (a0)1869; CHECK-NEXT:    ret1870entry:1871  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 6)1872  ret void1873}1874 1875define void @test_vsseg4_mask_nxv2i64_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {1876; CHECK-LABEL: test_vsseg4_mask_nxv2i64_triscv.vector.tuple_nxv16i8_4t:1877; CHECK:       # %bb.0: # %entry1878; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1879; CHECK-NEXT:    vsseg4e64.v v8, (a0), v0.t1880; CHECK-NEXT:    ret1881entry:1882  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 6)1883  ret void1884}1885 1886define void @test_vsseg5_nxv1i64_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {1887; CHECK-LABEL: test_vsseg5_nxv1i64_triscv.vector.tuple_nxv8i8_5t:1888; CHECK:       # %bb.0: # %entry1889; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1890; CHECK-NEXT:    vsseg5e64.v v8, (a0)1891; CHECK-NEXT:    ret1892entry:1893  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 6)1894  ret void1895}1896 1897define void @test_vsseg5_mask_nxv1i64_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1898; CHECK-LABEL: test_vsseg5_mask_nxv1i64_triscv.vector.tuple_nxv8i8_5t:1899; CHECK:       # %bb.0: # %entry1900; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1901; CHECK-NEXT:    vsseg5e64.v v8, (a0), v0.t1902; CHECK-NEXT:    ret1903entry:1904  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1905  ret void1906}1907 1908define void @test_vsseg6_nxv1i64_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {1909; CHECK-LABEL: test_vsseg6_nxv1i64_triscv.vector.tuple_nxv8i8_6t:1910; CHECK:       # %bb.0: # %entry1911; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1912; CHECK-NEXT:    vsseg6e64.v v8, (a0)1913; CHECK-NEXT:    ret1914entry:1915  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 6)1916  ret void1917}1918 1919define void @test_vsseg6_mask_nxv1i64_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1920; CHECK-LABEL: test_vsseg6_mask_nxv1i64_triscv.vector.tuple_nxv8i8_6t:1921; CHECK:       # %bb.0: # %entry1922; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1923; CHECK-NEXT:    vsseg6e64.v v8, (a0), v0.t1924; CHECK-NEXT:    ret1925entry:1926  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1927  ret void1928}1929 1930define void @test_vsseg7_nxv1i64_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {1931; CHECK-LABEL: test_vsseg7_nxv1i64_triscv.vector.tuple_nxv8i8_7t:1932; CHECK:       # %bb.0: # %entry1933; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1934; CHECK-NEXT:    vsseg7e64.v v8, (a0)1935; CHECK-NEXT:    ret1936entry:1937  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 6)1938  ret void1939}1940 1941define void @test_vsseg7_mask_nxv1i64_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1942; CHECK-LABEL: test_vsseg7_mask_nxv1i64_triscv.vector.tuple_nxv8i8_7t:1943; CHECK:       # %bb.0: # %entry1944; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1945; CHECK-NEXT:    vsseg7e64.v v8, (a0), v0.t1946; CHECK-NEXT:    ret1947entry:1948  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1949  ret void1950}1951 1952define void @test_vsseg8_nxv1i64_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {1953; CHECK-LABEL: test_vsseg8_nxv1i64_triscv.vector.tuple_nxv8i8_8t:1954; CHECK:       # %bb.0: # %entry1955; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1956; CHECK-NEXT:    vsseg8e64.v v8, (a0)1957; CHECK-NEXT:    ret1958entry:1959  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 6)1960  ret void1961}1962 1963define void @test_vsseg8_mask_nxv1i64_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1964; CHECK-LABEL: test_vsseg8_mask_nxv1i64_triscv.vector.tuple_nxv8i8_8t:1965; CHECK:       # %bb.0: # %entry1966; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1967; CHECK-NEXT:    vsseg8e64.v v8, (a0), v0.t1968; CHECK-NEXT:    ret1969entry:1970  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)1971  ret void1972}1973 1974define void @test_vsseg2_nxv1f16_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl) {1975; CHECK-LABEL: test_vsseg2_nxv1f16_triscv.vector.tuple_nxv2i8_2t:1976; CHECK:       # %bb.0: # %entry1977; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1978; CHECK-NEXT:    vsseg2e16.v v8, (a0)1979; CHECK-NEXT:    ret1980entry:1981  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)1982  ret void1983}1984 1985define void @test_vsseg2_mask_nxv1f16_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {1986; CHECK-LABEL: test_vsseg2_mask_nxv1f16_triscv.vector.tuple_nxv2i8_2t:1987; CHECK:       # %bb.0: # %entry1988; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma1989; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t1990; CHECK-NEXT:    ret1991entry:1992  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)1993  ret void1994}1995 1996define void @test_vsseg2_nxv2f16_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl) {1997; CHECK-LABEL: test_vsseg2_nxv2f16_triscv.vector.tuple_nxv4i8_2t:1998; CHECK:       # %bb.0: # %entry1999; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2000; CHECK-NEXT:    vsseg2e16.v v8, (a0)2001; CHECK-NEXT:    ret2002entry:2003  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)2004  ret void2005}2006 2007define void @test_vsseg2_mask_nxv2f16_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2008; CHECK-LABEL: test_vsseg2_mask_nxv2f16_triscv.vector.tuple_nxv4i8_2t:2009; CHECK:       # %bb.0: # %entry2010; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2011; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t2012; CHECK-NEXT:    ret2013entry:2014  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2015  ret void2016}2017 2018define void @test_vsseg2_nxv4f16_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {2019; CHECK-LABEL: test_vsseg2_nxv4f16_triscv.vector.tuple_nxv8i8_2t:2020; CHECK:       # %bb.0: # %entry2021; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2022; CHECK-NEXT:    vsseg2e16.v v8, (a0)2023; CHECK-NEXT:    ret2024entry:2025  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)2026  ret void2027}2028 2029define void @test_vsseg2_mask_nxv4f16_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2030; CHECK-LABEL: test_vsseg2_mask_nxv4f16_triscv.vector.tuple_nxv8i8_2t:2031; CHECK:       # %bb.0: # %entry2032; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2033; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t2034; CHECK-NEXT:    ret2035entry:2036  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2037  ret void2038}2039 2040define void @test_vsseg2_nxv8f16_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {2041; CHECK-LABEL: test_vsseg2_nxv8f16_triscv.vector.tuple_nxv16i8_2t:2042; CHECK:       # %bb.0: # %entry2043; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2044; CHECK-NEXT:    vsseg2e16.v v8, (a0)2045; CHECK-NEXT:    ret2046entry:2047  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)2048  ret void2049}2050 2051define void @test_vsseg2_mask_nxv8f16_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {2052; CHECK-LABEL: test_vsseg2_mask_nxv8f16_triscv.vector.tuple_nxv16i8_2t:2053; CHECK:       # %bb.0: # %entry2054; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2055; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t2056; CHECK-NEXT:    ret2057entry:2058  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)2059  ret void2060}2061 2062define void @test_vsseg2_nxv16f16_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {2063; CHECK-LABEL: test_vsseg2_nxv16f16_triscv.vector.tuple_nxv32i8_2t:2064; CHECK:       # %bb.0: # %entry2065; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma2066; CHECK-NEXT:    vsseg2e16.v v8, (a0)2067; CHECK-NEXT:    ret2068entry:2069  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)2070  ret void2071}2072 2073define void @test_vsseg2_mask_nxv16f16_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {2074; CHECK-LABEL: test_vsseg2_mask_nxv16f16_triscv.vector.tuple_nxv32i8_2t:2075; CHECK:       # %bb.0: # %entry2076; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma2077; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t2078; CHECK-NEXT:    ret2079entry:2080  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 16 x i1> %mask, i64 %vl, i64 4)2081  ret void2082}2083 2084define void @test_vsseg3_nxv1f16_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl) {2085; CHECK-LABEL: test_vsseg3_nxv1f16_triscv.vector.tuple_nxv2i8_3t:2086; CHECK:       # %bb.0: # %entry2087; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2088; CHECK-NEXT:    vsseg3e16.v v8, (a0)2089; CHECK-NEXT:    ret2090entry:2091  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)2092  ret void2093}2094 2095define void @test_vsseg3_mask_nxv1f16_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2096; CHECK-LABEL: test_vsseg3_mask_nxv1f16_triscv.vector.tuple_nxv2i8_3t:2097; CHECK:       # %bb.0: # %entry2098; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2099; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t2100; CHECK-NEXT:    ret2101entry:2102  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)2103  ret void2104}2105 2106define void @test_vsseg3_nxv2f16_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl) {2107; CHECK-LABEL: test_vsseg3_nxv2f16_triscv.vector.tuple_nxv4i8_3t:2108; CHECK:       # %bb.0: # %entry2109; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2110; CHECK-NEXT:    vsseg3e16.v v8, (a0)2111; CHECK-NEXT:    ret2112entry:2113  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)2114  ret void2115}2116 2117define void @test_vsseg3_mask_nxv2f16_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2118; CHECK-LABEL: test_vsseg3_mask_nxv2f16_triscv.vector.tuple_nxv4i8_3t:2119; CHECK:       # %bb.0: # %entry2120; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2121; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t2122; CHECK-NEXT:    ret2123entry:2124  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2125  ret void2126}2127 2128define void @test_vsseg3_nxv4f16_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {2129; CHECK-LABEL: test_vsseg3_nxv4f16_triscv.vector.tuple_nxv8i8_3t:2130; CHECK:       # %bb.0: # %entry2131; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2132; CHECK-NEXT:    vsseg3e16.v v8, (a0)2133; CHECK-NEXT:    ret2134entry:2135  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)2136  ret void2137}2138 2139define void @test_vsseg3_mask_nxv4f16_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2140; CHECK-LABEL: test_vsseg3_mask_nxv4f16_triscv.vector.tuple_nxv8i8_3t:2141; CHECK:       # %bb.0: # %entry2142; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2143; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t2144; CHECK-NEXT:    ret2145entry:2146  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2147  ret void2148}2149 2150define void @test_vsseg3_nxv8f16_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {2151; CHECK-LABEL: test_vsseg3_nxv8f16_triscv.vector.tuple_nxv16i8_3t:2152; CHECK:       # %bb.0: # %entry2153; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2154; CHECK-NEXT:    vsseg3e16.v v8, (a0)2155; CHECK-NEXT:    ret2156entry:2157  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)2158  ret void2159}2160 2161define void @test_vsseg3_mask_nxv8f16_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {2162; CHECK-LABEL: test_vsseg3_mask_nxv8f16_triscv.vector.tuple_nxv16i8_3t:2163; CHECK:       # %bb.0: # %entry2164; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2165; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t2166; CHECK-NEXT:    ret2167entry:2168  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)2169  ret void2170}2171 2172define void @test_vsseg4_nxv1f16_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl) {2173; CHECK-LABEL: test_vsseg4_nxv1f16_triscv.vector.tuple_nxv2i8_4t:2174; CHECK:       # %bb.0: # %entry2175; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2176; CHECK-NEXT:    vsseg4e16.v v8, (a0)2177; CHECK-NEXT:    ret2178entry:2179  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)2180  ret void2181}2182 2183define void @test_vsseg4_mask_nxv1f16_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2184; CHECK-LABEL: test_vsseg4_mask_nxv1f16_triscv.vector.tuple_nxv2i8_4t:2185; CHECK:       # %bb.0: # %entry2186; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2187; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t2188; CHECK-NEXT:    ret2189entry:2190  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)2191  ret void2192}2193 2194define void @test_vsseg4_nxv2f16_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl) {2195; CHECK-LABEL: test_vsseg4_nxv2f16_triscv.vector.tuple_nxv4i8_4t:2196; CHECK:       # %bb.0: # %entry2197; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2198; CHECK-NEXT:    vsseg4e16.v v8, (a0)2199; CHECK-NEXT:    ret2200entry:2201  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)2202  ret void2203}2204 2205define void @test_vsseg4_mask_nxv2f16_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2206; CHECK-LABEL: test_vsseg4_mask_nxv2f16_triscv.vector.tuple_nxv4i8_4t:2207; CHECK:       # %bb.0: # %entry2208; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2209; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t2210; CHECK-NEXT:    ret2211entry:2212  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2213  ret void2214}2215 2216define void @test_vsseg4_nxv4f16_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {2217; CHECK-LABEL: test_vsseg4_nxv4f16_triscv.vector.tuple_nxv8i8_4t:2218; CHECK:       # %bb.0: # %entry2219; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2220; CHECK-NEXT:    vsseg4e16.v v8, (a0)2221; CHECK-NEXT:    ret2222entry:2223  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)2224  ret void2225}2226 2227define void @test_vsseg4_mask_nxv4f16_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2228; CHECK-LABEL: test_vsseg4_mask_nxv4f16_triscv.vector.tuple_nxv8i8_4t:2229; CHECK:       # %bb.0: # %entry2230; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2231; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t2232; CHECK-NEXT:    ret2233entry:2234  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2235  ret void2236}2237 2238define void @test_vsseg4_nxv8f16_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {2239; CHECK-LABEL: test_vsseg4_nxv8f16_triscv.vector.tuple_nxv16i8_4t:2240; CHECK:       # %bb.0: # %entry2241; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2242; CHECK-NEXT:    vsseg4e16.v v8, (a0)2243; CHECK-NEXT:    ret2244entry:2245  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)2246  ret void2247}2248 2249define void @test_vsseg4_mask_nxv8f16_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {2250; CHECK-LABEL: test_vsseg4_mask_nxv8f16_triscv.vector.tuple_nxv16i8_4t:2251; CHECK:       # %bb.0: # %entry2252; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma2253; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t2254; CHECK-NEXT:    ret2255entry:2256  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)2257  ret void2258}2259 2260define void @test_vsseg5_nxv1f16_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl) {2261; CHECK-LABEL: test_vsseg5_nxv1f16_triscv.vector.tuple_nxv2i8_5t:2262; CHECK:       # %bb.0: # %entry2263; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2264; CHECK-NEXT:    vsseg5e16.v v8, (a0)2265; CHECK-NEXT:    ret2266entry:2267  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)2268  ret void2269}2270 2271define void @test_vsseg5_mask_nxv1f16_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2272; CHECK-LABEL: test_vsseg5_mask_nxv1f16_triscv.vector.tuple_nxv2i8_5t:2273; CHECK:       # %bb.0: # %entry2274; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2275; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t2276; CHECK-NEXT:    ret2277entry:2278  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)2279  ret void2280}2281 2282define void @test_vsseg5_nxv2f16_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl) {2283; CHECK-LABEL: test_vsseg5_nxv2f16_triscv.vector.tuple_nxv4i8_5t:2284; CHECK:       # %bb.0: # %entry2285; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2286; CHECK-NEXT:    vsseg5e16.v v8, (a0)2287; CHECK-NEXT:    ret2288entry:2289  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)2290  ret void2291}2292 2293define void @test_vsseg5_mask_nxv2f16_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2294; CHECK-LABEL: test_vsseg5_mask_nxv2f16_triscv.vector.tuple_nxv4i8_5t:2295; CHECK:       # %bb.0: # %entry2296; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2297; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t2298; CHECK-NEXT:    ret2299entry:2300  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2301  ret void2302}2303 2304define void @test_vsseg5_nxv4f16_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {2305; CHECK-LABEL: test_vsseg5_nxv4f16_triscv.vector.tuple_nxv8i8_5t:2306; CHECK:       # %bb.0: # %entry2307; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2308; CHECK-NEXT:    vsseg5e16.v v8, (a0)2309; CHECK-NEXT:    ret2310entry:2311  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)2312  ret void2313}2314 2315define void @test_vsseg5_mask_nxv4f16_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2316; CHECK-LABEL: test_vsseg5_mask_nxv4f16_triscv.vector.tuple_nxv8i8_5t:2317; CHECK:       # %bb.0: # %entry2318; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2319; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t2320; CHECK-NEXT:    ret2321entry:2322  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2323  ret void2324}2325 2326define void @test_vsseg6_nxv1f16_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl) {2327; CHECK-LABEL: test_vsseg6_nxv1f16_triscv.vector.tuple_nxv2i8_6t:2328; CHECK:       # %bb.0: # %entry2329; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2330; CHECK-NEXT:    vsseg6e16.v v8, (a0)2331; CHECK-NEXT:    ret2332entry:2333  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)2334  ret void2335}2336 2337define void @test_vsseg6_mask_nxv1f16_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2338; CHECK-LABEL: test_vsseg6_mask_nxv1f16_triscv.vector.tuple_nxv2i8_6t:2339; CHECK:       # %bb.0: # %entry2340; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2341; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t2342; CHECK-NEXT:    ret2343entry:2344  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)2345  ret void2346}2347 2348define void @test_vsseg6_nxv2f16_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl) {2349; CHECK-LABEL: test_vsseg6_nxv2f16_triscv.vector.tuple_nxv4i8_6t:2350; CHECK:       # %bb.0: # %entry2351; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2352; CHECK-NEXT:    vsseg6e16.v v8, (a0)2353; CHECK-NEXT:    ret2354entry:2355  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)2356  ret void2357}2358 2359define void @test_vsseg6_mask_nxv2f16_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2360; CHECK-LABEL: test_vsseg6_mask_nxv2f16_triscv.vector.tuple_nxv4i8_6t:2361; CHECK:       # %bb.0: # %entry2362; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2363; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t2364; CHECK-NEXT:    ret2365entry:2366  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2367  ret void2368}2369 2370define void @test_vsseg6_nxv4f16_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {2371; CHECK-LABEL: test_vsseg6_nxv4f16_triscv.vector.tuple_nxv8i8_6t:2372; CHECK:       # %bb.0: # %entry2373; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2374; CHECK-NEXT:    vsseg6e16.v v8, (a0)2375; CHECK-NEXT:    ret2376entry:2377  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)2378  ret void2379}2380 2381define void @test_vsseg6_mask_nxv4f16_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2382; CHECK-LABEL: test_vsseg6_mask_nxv4f16_triscv.vector.tuple_nxv8i8_6t:2383; CHECK:       # %bb.0: # %entry2384; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2385; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t2386; CHECK-NEXT:    ret2387entry:2388  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2389  ret void2390}2391 2392define void @test_vsseg7_nxv1f16_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl) {2393; CHECK-LABEL: test_vsseg7_nxv1f16_triscv.vector.tuple_nxv2i8_7t:2394; CHECK:       # %bb.0: # %entry2395; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2396; CHECK-NEXT:    vsseg7e16.v v8, (a0)2397; CHECK-NEXT:    ret2398entry:2399  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)2400  ret void2401}2402 2403define void @test_vsseg7_mask_nxv1f16_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2404; CHECK-LABEL: test_vsseg7_mask_nxv1f16_triscv.vector.tuple_nxv2i8_7t:2405; CHECK:       # %bb.0: # %entry2406; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2407; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t2408; CHECK-NEXT:    ret2409entry:2410  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)2411  ret void2412}2413 2414define void @test_vsseg7_nxv2f16_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl) {2415; CHECK-LABEL: test_vsseg7_nxv2f16_triscv.vector.tuple_nxv4i8_7t:2416; CHECK:       # %bb.0: # %entry2417; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2418; CHECK-NEXT:    vsseg7e16.v v8, (a0)2419; CHECK-NEXT:    ret2420entry:2421  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)2422  ret void2423}2424 2425define void @test_vsseg7_mask_nxv2f16_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2426; CHECK-LABEL: test_vsseg7_mask_nxv2f16_triscv.vector.tuple_nxv4i8_7t:2427; CHECK:       # %bb.0: # %entry2428; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2429; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t2430; CHECK-NEXT:    ret2431entry:2432  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2433  ret void2434}2435 2436define void @test_vsseg7_nxv4f16_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {2437; CHECK-LABEL: test_vsseg7_nxv4f16_triscv.vector.tuple_nxv8i8_7t:2438; CHECK:       # %bb.0: # %entry2439; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2440; CHECK-NEXT:    vsseg7e16.v v8, (a0)2441; CHECK-NEXT:    ret2442entry:2443  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)2444  ret void2445}2446 2447define void @test_vsseg7_mask_nxv4f16_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2448; CHECK-LABEL: test_vsseg7_mask_nxv4f16_triscv.vector.tuple_nxv8i8_7t:2449; CHECK:       # %bb.0: # %entry2450; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2451; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t2452; CHECK-NEXT:    ret2453entry:2454  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2455  ret void2456}2457 2458define void @test_vsseg8_nxv1f16_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl) {2459; CHECK-LABEL: test_vsseg8_nxv1f16_triscv.vector.tuple_nxv2i8_8t:2460; CHECK:       # %bb.0: # %entry2461; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2462; CHECK-NEXT:    vsseg8e16.v v8, (a0)2463; CHECK-NEXT:    ret2464entry:2465  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)2466  ret void2467}2468 2469define void @test_vsseg8_mask_nxv1f16_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2470; CHECK-LABEL: test_vsseg8_mask_nxv1f16_triscv.vector.tuple_nxv2i8_8t:2471; CHECK:       # %bb.0: # %entry2472; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma2473; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t2474; CHECK-NEXT:    ret2475entry:2476  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)2477  ret void2478}2479 2480define void @test_vsseg8_nxv2f16_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl) {2481; CHECK-LABEL: test_vsseg8_nxv2f16_triscv.vector.tuple_nxv4i8_8t:2482; CHECK:       # %bb.0: # %entry2483; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2484; CHECK-NEXT:    vsseg8e16.v v8, (a0)2485; CHECK-NEXT:    ret2486entry:2487  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)2488  ret void2489}2490 2491define void @test_vsseg8_mask_nxv2f16_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2492; CHECK-LABEL: test_vsseg8_mask_nxv2f16_triscv.vector.tuple_nxv4i8_8t:2493; CHECK:       # %bb.0: # %entry2494; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma2495; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t2496; CHECK-NEXT:    ret2497entry:2498  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)2499  ret void2500}2501 2502define void @test_vsseg8_nxv4f16_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {2503; CHECK-LABEL: test_vsseg8_nxv4f16_triscv.vector.tuple_nxv8i8_8t:2504; CHECK:       # %bb.0: # %entry2505; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2506; CHECK-NEXT:    vsseg8e16.v v8, (a0)2507; CHECK-NEXT:    ret2508entry:2509  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)2510  ret void2511}2512 2513define void @test_vsseg8_mask_nxv4f16_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2514; CHECK-LABEL: test_vsseg8_mask_nxv4f16_triscv.vector.tuple_nxv8i8_8t:2515; CHECK:       # %bb.0: # %entry2516; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma2517; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t2518; CHECK-NEXT:    ret2519entry:2520  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)2521  ret void2522}2523 2524define void @test_vsseg2_nxv1f32_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl) {2525; CHECK-LABEL: test_vsseg2_nxv1f32_triscv.vector.tuple_nxv4i8_2t:2526; CHECK:       # %bb.0: # %entry2527; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2528; CHECK-NEXT:    vsseg2e32.v v8, (a0)2529; CHECK-NEXT:    ret2530entry:2531  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)2532  ret void2533}2534 2535define void @test_vsseg2_mask_nxv1f32_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2536; CHECK-LABEL: test_vsseg2_mask_nxv1f32_triscv.vector.tuple_nxv4i8_2t:2537; CHECK:       # %bb.0: # %entry2538; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2539; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t2540; CHECK-NEXT:    ret2541entry:2542  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2543  ret void2544}2545 2546define void @test_vsseg2_nxv2f32_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {2547; CHECK-LABEL: test_vsseg2_nxv2f32_triscv.vector.tuple_nxv8i8_2t:2548; CHECK:       # %bb.0: # %entry2549; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2550; CHECK-NEXT:    vsseg2e32.v v8, (a0)2551; CHECK-NEXT:    ret2552entry:2553  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)2554  ret void2555}2556 2557define void @test_vsseg2_mask_nxv2f32_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2558; CHECK-LABEL: test_vsseg2_mask_nxv2f32_triscv.vector.tuple_nxv8i8_2t:2559; CHECK:       # %bb.0: # %entry2560; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2561; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t2562; CHECK-NEXT:    ret2563entry:2564  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2565  ret void2566}2567 2568define void @test_vsseg2_nxv4f32_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {2569; CHECK-LABEL: test_vsseg2_nxv4f32_triscv.vector.tuple_nxv16i8_2t:2570; CHECK:       # %bb.0: # %entry2571; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2572; CHECK-NEXT:    vsseg2e32.v v8, (a0)2573; CHECK-NEXT:    ret2574entry:2575  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)2576  ret void2577}2578 2579define void @test_vsseg2_mask_nxv4f32_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2580; CHECK-LABEL: test_vsseg2_mask_nxv4f32_triscv.vector.tuple_nxv16i8_2t:2581; CHECK:       # %bb.0: # %entry2582; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2583; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t2584; CHECK-NEXT:    ret2585entry:2586  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 5)2587  ret void2588}2589 2590define void @test_vsseg2_nxv8f32_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {2591; CHECK-LABEL: test_vsseg2_nxv8f32_triscv.vector.tuple_nxv32i8_2t:2592; CHECK:       # %bb.0: # %entry2593; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma2594; CHECK-NEXT:    vsseg2e32.v v8, (a0)2595; CHECK-NEXT:    ret2596entry:2597  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 5)2598  ret void2599}2600 2601define void @test_vsseg2_mask_nxv8f32_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {2602; CHECK-LABEL: test_vsseg2_mask_nxv8f32_triscv.vector.tuple_nxv32i8_2t:2603; CHECK:       # %bb.0: # %entry2604; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma2605; CHECK-NEXT:    vsseg2e32.v v8, (a0), v0.t2606; CHECK-NEXT:    ret2607entry:2608  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 5)2609  ret void2610}2611 2612define void @test_vsseg3_nxv1f32_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl) {2613; CHECK-LABEL: test_vsseg3_nxv1f32_triscv.vector.tuple_nxv4i8_3t:2614; CHECK:       # %bb.0: # %entry2615; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2616; CHECK-NEXT:    vsseg3e32.v v8, (a0)2617; CHECK-NEXT:    ret2618entry:2619  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, i64 5)2620  ret void2621}2622 2623define void @test_vsseg3_mask_nxv1f32_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2624; CHECK-LABEL: test_vsseg3_mask_nxv1f32_triscv.vector.tuple_nxv4i8_3t:2625; CHECK:       # %bb.0: # %entry2626; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2627; CHECK-NEXT:    vsseg3e32.v v8, (a0), v0.t2628; CHECK-NEXT:    ret2629entry:2630  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2631  ret void2632}2633 2634define void @test_vsseg3_nxv2f32_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {2635; CHECK-LABEL: test_vsseg3_nxv2f32_triscv.vector.tuple_nxv8i8_3t:2636; CHECK:       # %bb.0: # %entry2637; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2638; CHECK-NEXT:    vsseg3e32.v v8, (a0)2639; CHECK-NEXT:    ret2640entry:2641  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 5)2642  ret void2643}2644 2645define void @test_vsseg3_mask_nxv2f32_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2646; CHECK-LABEL: test_vsseg3_mask_nxv2f32_triscv.vector.tuple_nxv8i8_3t:2647; CHECK:       # %bb.0: # %entry2648; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2649; CHECK-NEXT:    vsseg3e32.v v8, (a0), v0.t2650; CHECK-NEXT:    ret2651entry:2652  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2653  ret void2654}2655 2656define void @test_vsseg3_nxv4f32_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {2657; CHECK-LABEL: test_vsseg3_nxv4f32_triscv.vector.tuple_nxv16i8_3t:2658; CHECK:       # %bb.0: # %entry2659; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2660; CHECK-NEXT:    vsseg3e32.v v8, (a0)2661; CHECK-NEXT:    ret2662entry:2663  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 5)2664  ret void2665}2666 2667define void @test_vsseg3_mask_nxv4f32_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2668; CHECK-LABEL: test_vsseg3_mask_nxv4f32_triscv.vector.tuple_nxv16i8_3t:2669; CHECK:       # %bb.0: # %entry2670; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2671; CHECK-NEXT:    vsseg3e32.v v8, (a0), v0.t2672; CHECK-NEXT:    ret2673entry:2674  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 5)2675  ret void2676}2677 2678define void @test_vsseg4_nxv1f32_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl) {2679; CHECK-LABEL: test_vsseg4_nxv1f32_triscv.vector.tuple_nxv4i8_4t:2680; CHECK:       # %bb.0: # %entry2681; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2682; CHECK-NEXT:    vsseg4e32.v v8, (a0)2683; CHECK-NEXT:    ret2684entry:2685  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, i64 5)2686  ret void2687}2688 2689define void @test_vsseg4_mask_nxv1f32_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2690; CHECK-LABEL: test_vsseg4_mask_nxv1f32_triscv.vector.tuple_nxv4i8_4t:2691; CHECK:       # %bb.0: # %entry2692; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2693; CHECK-NEXT:    vsseg4e32.v v8, (a0), v0.t2694; CHECK-NEXT:    ret2695entry:2696  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2697  ret void2698}2699 2700define void @test_vsseg4_nxv2f32_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {2701; CHECK-LABEL: test_vsseg4_nxv2f32_triscv.vector.tuple_nxv8i8_4t:2702; CHECK:       # %bb.0: # %entry2703; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2704; CHECK-NEXT:    vsseg4e32.v v8, (a0)2705; CHECK-NEXT:    ret2706entry:2707  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 5)2708  ret void2709}2710 2711define void @test_vsseg4_mask_nxv2f32_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2712; CHECK-LABEL: test_vsseg4_mask_nxv2f32_triscv.vector.tuple_nxv8i8_4t:2713; CHECK:       # %bb.0: # %entry2714; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2715; CHECK-NEXT:    vsseg4e32.v v8, (a0), v0.t2716; CHECK-NEXT:    ret2717entry:2718  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2719  ret void2720}2721 2722define void @test_vsseg4_nxv4f32_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {2723; CHECK-LABEL: test_vsseg4_nxv4f32_triscv.vector.tuple_nxv16i8_4t:2724; CHECK:       # %bb.0: # %entry2725; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2726; CHECK-NEXT:    vsseg4e32.v v8, (a0)2727; CHECK-NEXT:    ret2728entry:2729  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 5)2730  ret void2731}2732 2733define void @test_vsseg4_mask_nxv4f32_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2734; CHECK-LABEL: test_vsseg4_mask_nxv4f32_triscv.vector.tuple_nxv16i8_4t:2735; CHECK:       # %bb.0: # %entry2736; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma2737; CHECK-NEXT:    vsseg4e32.v v8, (a0), v0.t2738; CHECK-NEXT:    ret2739entry:2740  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 5)2741  ret void2742}2743 2744define void @test_vsseg5_nxv1f32_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl) {2745; CHECK-LABEL: test_vsseg5_nxv1f32_triscv.vector.tuple_nxv4i8_5t:2746; CHECK:       # %bb.0: # %entry2747; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2748; CHECK-NEXT:    vsseg5e32.v v8, (a0)2749; CHECK-NEXT:    ret2750entry:2751  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, i64 5)2752  ret void2753}2754 2755define void @test_vsseg5_mask_nxv1f32_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2756; CHECK-LABEL: test_vsseg5_mask_nxv1f32_triscv.vector.tuple_nxv4i8_5t:2757; CHECK:       # %bb.0: # %entry2758; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2759; CHECK-NEXT:    vsseg5e32.v v8, (a0), v0.t2760; CHECK-NEXT:    ret2761entry:2762  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2763  ret void2764}2765 2766define void @test_vsseg5_nxv2f32_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {2767; CHECK-LABEL: test_vsseg5_nxv2f32_triscv.vector.tuple_nxv8i8_5t:2768; CHECK:       # %bb.0: # %entry2769; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2770; CHECK-NEXT:    vsseg5e32.v v8, (a0)2771; CHECK-NEXT:    ret2772entry:2773  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 5)2774  ret void2775}2776 2777define void @test_vsseg5_mask_nxv2f32_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2778; CHECK-LABEL: test_vsseg5_mask_nxv2f32_triscv.vector.tuple_nxv8i8_5t:2779; CHECK:       # %bb.0: # %entry2780; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2781; CHECK-NEXT:    vsseg5e32.v v8, (a0), v0.t2782; CHECK-NEXT:    ret2783entry:2784  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2785  ret void2786}2787 2788define void @test_vsseg6_nxv1f32_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl) {2789; CHECK-LABEL: test_vsseg6_nxv1f32_triscv.vector.tuple_nxv4i8_6t:2790; CHECK:       # %bb.0: # %entry2791; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2792; CHECK-NEXT:    vsseg6e32.v v8, (a0)2793; CHECK-NEXT:    ret2794entry:2795  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, i64 5)2796  ret void2797}2798 2799define void @test_vsseg6_mask_nxv1f32_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2800; CHECK-LABEL: test_vsseg6_mask_nxv1f32_triscv.vector.tuple_nxv4i8_6t:2801; CHECK:       # %bb.0: # %entry2802; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2803; CHECK-NEXT:    vsseg6e32.v v8, (a0), v0.t2804; CHECK-NEXT:    ret2805entry:2806  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2807  ret void2808}2809 2810define void @test_vsseg6_nxv2f32_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {2811; CHECK-LABEL: test_vsseg6_nxv2f32_triscv.vector.tuple_nxv8i8_6t:2812; CHECK:       # %bb.0: # %entry2813; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2814; CHECK-NEXT:    vsseg6e32.v v8, (a0)2815; CHECK-NEXT:    ret2816entry:2817  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 5)2818  ret void2819}2820 2821define void @test_vsseg6_mask_nxv2f32_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2822; CHECK-LABEL: test_vsseg6_mask_nxv2f32_triscv.vector.tuple_nxv8i8_6t:2823; CHECK:       # %bb.0: # %entry2824; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2825; CHECK-NEXT:    vsseg6e32.v v8, (a0), v0.t2826; CHECK-NEXT:    ret2827entry:2828  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2829  ret void2830}2831 2832define void @test_vsseg7_nxv1f32_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl) {2833; CHECK-LABEL: test_vsseg7_nxv1f32_triscv.vector.tuple_nxv4i8_7t:2834; CHECK:       # %bb.0: # %entry2835; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2836; CHECK-NEXT:    vsseg7e32.v v8, (a0)2837; CHECK-NEXT:    ret2838entry:2839  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, i64 5)2840  ret void2841}2842 2843define void @test_vsseg7_mask_nxv1f32_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2844; CHECK-LABEL: test_vsseg7_mask_nxv1f32_triscv.vector.tuple_nxv4i8_7t:2845; CHECK:       # %bb.0: # %entry2846; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2847; CHECK-NEXT:    vsseg7e32.v v8, (a0), v0.t2848; CHECK-NEXT:    ret2849entry:2850  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2851  ret void2852}2853 2854define void @test_vsseg7_nxv2f32_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {2855; CHECK-LABEL: test_vsseg7_nxv2f32_triscv.vector.tuple_nxv8i8_7t:2856; CHECK:       # %bb.0: # %entry2857; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2858; CHECK-NEXT:    vsseg7e32.v v8, (a0)2859; CHECK-NEXT:    ret2860entry:2861  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 5)2862  ret void2863}2864 2865define void @test_vsseg7_mask_nxv2f32_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2866; CHECK-LABEL: test_vsseg7_mask_nxv2f32_triscv.vector.tuple_nxv8i8_7t:2867; CHECK:       # %bb.0: # %entry2868; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2869; CHECK-NEXT:    vsseg7e32.v v8, (a0), v0.t2870; CHECK-NEXT:    ret2871entry:2872  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2873  ret void2874}2875 2876define void @test_vsseg8_nxv1f32_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl) {2877; CHECK-LABEL: test_vsseg8_nxv1f32_triscv.vector.tuple_nxv4i8_8t:2878; CHECK:       # %bb.0: # %entry2879; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2880; CHECK-NEXT:    vsseg8e32.v v8, (a0)2881; CHECK-NEXT:    ret2882entry:2883  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, i64 5)2884  ret void2885}2886 2887define void @test_vsseg8_mask_nxv1f32_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2888; CHECK-LABEL: test_vsseg8_mask_nxv1f32_triscv.vector.tuple_nxv4i8_8t:2889; CHECK:       # %bb.0: # %entry2890; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma2891; CHECK-NEXT:    vsseg8e32.v v8, (a0), v0.t2892; CHECK-NEXT:    ret2893entry:2894  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 5)2895  ret void2896}2897 2898define void @test_vsseg8_nxv2f32_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {2899; CHECK-LABEL: test_vsseg8_nxv2f32_triscv.vector.tuple_nxv8i8_8t:2900; CHECK:       # %bb.0: # %entry2901; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2902; CHECK-NEXT:    vsseg8e32.v v8, (a0)2903; CHECK-NEXT:    ret2904entry:2905  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 5)2906  ret void2907}2908 2909define void @test_vsseg8_mask_nxv2f32_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2910; CHECK-LABEL: test_vsseg8_mask_nxv2f32_triscv.vector.tuple_nxv8i8_8t:2911; CHECK:       # %bb.0: # %entry2912; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma2913; CHECK-NEXT:    vsseg8e32.v v8, (a0), v0.t2914; CHECK-NEXT:    ret2915entry:2916  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 5)2917  ret void2918}2919 2920define void @test_vsseg2_nxv1f64_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {2921; CHECK-LABEL: test_vsseg2_nxv1f64_triscv.vector.tuple_nxv8i8_2t:2922; CHECK:       # %bb.0: # %entry2923; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma2924; CHECK-NEXT:    vsseg2e64.v v8, (a0)2925; CHECK-NEXT:    ret2926entry:2927  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 6)2928  ret void2929}2930 2931define void @test_vsseg2_mask_nxv1f64_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2932; CHECK-LABEL: test_vsseg2_mask_nxv1f64_triscv.vector.tuple_nxv8i8_2t:2933; CHECK:       # %bb.0: # %entry2934; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma2935; CHECK-NEXT:    vsseg2e64.v v8, (a0), v0.t2936; CHECK-NEXT:    ret2937entry:2938  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)2939  ret void2940}2941 2942define void @test_vsseg2_nxv2f64_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {2943; CHECK-LABEL: test_vsseg2_nxv2f64_triscv.vector.tuple_nxv16i8_2t:2944; CHECK:       # %bb.0: # %entry2945; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma2946; CHECK-NEXT:    vsseg2e64.v v8, (a0)2947; CHECK-NEXT:    ret2948entry:2949  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 6)2950  ret void2951}2952 2953define void @test_vsseg2_mask_nxv2f64_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {2954; CHECK-LABEL: test_vsseg2_mask_nxv2f64_triscv.vector.tuple_nxv16i8_2t:2955; CHECK:       # %bb.0: # %entry2956; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma2957; CHECK-NEXT:    vsseg2e64.v v8, (a0), v0.t2958; CHECK-NEXT:    ret2959entry:2960  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 6)2961  ret void2962}2963 2964define void @test_vsseg2_nxv4f64_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {2965; CHECK-LABEL: test_vsseg2_nxv4f64_triscv.vector.tuple_nxv32i8_2t:2966; CHECK:       # %bb.0: # %entry2967; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2968; CHECK-NEXT:    vsseg2e64.v v8, (a0)2969; CHECK-NEXT:    ret2970entry:2971  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 6)2972  ret void2973}2974 2975define void @test_vsseg2_mask_nxv4f64_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {2976; CHECK-LABEL: test_vsseg2_mask_nxv4f64_triscv.vector.tuple_nxv32i8_2t:2977; CHECK:       # %bb.0: # %entry2978; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma2979; CHECK-NEXT:    vsseg2e64.v v8, (a0), v0.t2980; CHECK-NEXT:    ret2981entry:2982  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 6)2983  ret void2984}2985 2986define void @test_vsseg3_nxv1f64_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {2987; CHECK-LABEL: test_vsseg3_nxv1f64_triscv.vector.tuple_nxv8i8_3t:2988; CHECK:       # %bb.0: # %entry2989; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma2990; CHECK-NEXT:    vsseg3e64.v v8, (a0)2991; CHECK-NEXT:    ret2992entry:2993  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 6)2994  ret void2995}2996 2997define void @test_vsseg3_mask_nxv1f64_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {2998; CHECK-LABEL: test_vsseg3_mask_nxv1f64_triscv.vector.tuple_nxv8i8_3t:2999; CHECK:       # %bb.0: # %entry3000; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3001; CHECK-NEXT:    vsseg3e64.v v8, (a0), v0.t3002; CHECK-NEXT:    ret3003entry:3004  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)3005  ret void3006}3007 3008define void @test_vsseg3_nxv2f64_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {3009; CHECK-LABEL: test_vsseg3_nxv2f64_triscv.vector.tuple_nxv16i8_3t:3010; CHECK:       # %bb.0: # %entry3011; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma3012; CHECK-NEXT:    vsseg3e64.v v8, (a0)3013; CHECK-NEXT:    ret3014entry:3015  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 6)3016  ret void3017}3018 3019define void @test_vsseg3_mask_nxv2f64_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3020; CHECK-LABEL: test_vsseg3_mask_nxv2f64_triscv.vector.tuple_nxv16i8_3t:3021; CHECK:       # %bb.0: # %entry3022; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma3023; CHECK-NEXT:    vsseg3e64.v v8, (a0), v0.t3024; CHECK-NEXT:    ret3025entry:3026  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 6)3027  ret void3028}3029 3030define void @test_vsseg4_nxv1f64_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {3031; CHECK-LABEL: test_vsseg4_nxv1f64_triscv.vector.tuple_nxv8i8_4t:3032; CHECK:       # %bb.0: # %entry3033; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3034; CHECK-NEXT:    vsseg4e64.v v8, (a0)3035; CHECK-NEXT:    ret3036entry:3037  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 6)3038  ret void3039}3040 3041define void @test_vsseg4_mask_nxv1f64_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3042; CHECK-LABEL: test_vsseg4_mask_nxv1f64_triscv.vector.tuple_nxv8i8_4t:3043; CHECK:       # %bb.0: # %entry3044; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3045; CHECK-NEXT:    vsseg4e64.v v8, (a0), v0.t3046; CHECK-NEXT:    ret3047entry:3048  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)3049  ret void3050}3051 3052define void @test_vsseg4_nxv2f64_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {3053; CHECK-LABEL: test_vsseg4_nxv2f64_triscv.vector.tuple_nxv16i8_4t:3054; CHECK:       # %bb.0: # %entry3055; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma3056; CHECK-NEXT:    vsseg4e64.v v8, (a0)3057; CHECK-NEXT:    ret3058entry:3059  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 6)3060  ret void3061}3062 3063define void @test_vsseg4_mask_nxv2f64_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3064; CHECK-LABEL: test_vsseg4_mask_nxv2f64_triscv.vector.tuple_nxv16i8_4t:3065; CHECK:       # %bb.0: # %entry3066; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma3067; CHECK-NEXT:    vsseg4e64.v v8, (a0), v0.t3068; CHECK-NEXT:    ret3069entry:3070  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 6)3071  ret void3072}3073 3074define void @test_vsseg5_nxv1f64_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {3075; CHECK-LABEL: test_vsseg5_nxv1f64_triscv.vector.tuple_nxv8i8_5t:3076; CHECK:       # %bb.0: # %entry3077; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3078; CHECK-NEXT:    vsseg5e64.v v8, (a0)3079; CHECK-NEXT:    ret3080entry:3081  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 6)3082  ret void3083}3084 3085define void @test_vsseg5_mask_nxv1f64_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3086; CHECK-LABEL: test_vsseg5_mask_nxv1f64_triscv.vector.tuple_nxv8i8_5t:3087; CHECK:       # %bb.0: # %entry3088; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3089; CHECK-NEXT:    vsseg5e64.v v8, (a0), v0.t3090; CHECK-NEXT:    ret3091entry:3092  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)3093  ret void3094}3095 3096define void @test_vsseg6_nxv1f64_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {3097; CHECK-LABEL: test_vsseg6_nxv1f64_triscv.vector.tuple_nxv8i8_6t:3098; CHECK:       # %bb.0: # %entry3099; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3100; CHECK-NEXT:    vsseg6e64.v v8, (a0)3101; CHECK-NEXT:    ret3102entry:3103  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 6)3104  ret void3105}3106 3107define void @test_vsseg6_mask_nxv1f64_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3108; CHECK-LABEL: test_vsseg6_mask_nxv1f64_triscv.vector.tuple_nxv8i8_6t:3109; CHECK:       # %bb.0: # %entry3110; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3111; CHECK-NEXT:    vsseg6e64.v v8, (a0), v0.t3112; CHECK-NEXT:    ret3113entry:3114  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)3115  ret void3116}3117 3118define void @test_vsseg7_nxv1f64_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {3119; CHECK-LABEL: test_vsseg7_nxv1f64_triscv.vector.tuple_nxv8i8_7t:3120; CHECK:       # %bb.0: # %entry3121; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3122; CHECK-NEXT:    vsseg7e64.v v8, (a0)3123; CHECK-NEXT:    ret3124entry:3125  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 6)3126  ret void3127}3128 3129define void @test_vsseg7_mask_nxv1f64_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3130; CHECK-LABEL: test_vsseg7_mask_nxv1f64_triscv.vector.tuple_nxv8i8_7t:3131; CHECK:       # %bb.0: # %entry3132; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3133; CHECK-NEXT:    vsseg7e64.v v8, (a0), v0.t3134; CHECK-NEXT:    ret3135entry:3136  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)3137  ret void3138}3139 3140define void @test_vsseg8_nxv1f64_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {3141; CHECK-LABEL: test_vsseg8_nxv1f64_triscv.vector.tuple_nxv8i8_8t:3142; CHECK:       # %bb.0: # %entry3143; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3144; CHECK-NEXT:    vsseg8e64.v v8, (a0)3145; CHECK-NEXT:    ret3146entry:3147  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 6)3148  ret void3149}3150 3151define void @test_vsseg8_mask_nxv1f64_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3152; CHECK-LABEL: test_vsseg8_mask_nxv1f64_triscv.vector.tuple_nxv8i8_8t:3153; CHECK:       # %bb.0: # %entry3154; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma3155; CHECK-NEXT:    vsseg8e64.v v8, (a0), v0.t3156; CHECK-NEXT:    ret3157entry:3158  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 6)3159  ret void3160}3161 3162define void @test_vsseg2_nxv1bf16_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl) {3163; CHECK-LABEL: test_vsseg2_nxv1bf16_triscv.vector.tuple_nxv2i8_2t:3164; CHECK:       # %bb.0: # %entry3165; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3166; CHECK-NEXT:    vsseg2e16.v v8, (a0)3167; CHECK-NEXT:    ret3168entry:3169  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)3170  ret void3171}3172 3173define void @test_vsseg2_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3174; CHECK-LABEL: test_vsseg2_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_2t:3175; CHECK:       # %bb.0: # %entry3176; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3177; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t3178; CHECK-NEXT:    ret3179entry:3180  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3181  ret void3182}3183 3184define void @test_vsseg2_nxv2bf16_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl) {3185; CHECK-LABEL: test_vsseg2_nxv2bf16_triscv.vector.tuple_nxv4i8_2t:3186; CHECK:       # %bb.0: # %entry3187; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3188; CHECK-NEXT:    vsseg2e16.v v8, (a0)3189; CHECK-NEXT:    ret3190entry:3191  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)3192  ret void3193}3194 3195define void @test_vsseg2_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3196; CHECK-LABEL: test_vsseg2_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_2t:3197; CHECK:       # %bb.0: # %entry3198; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3199; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t3200; CHECK-NEXT:    ret3201entry:3202  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3203  ret void3204}3205 3206define void @test_vsseg2_nxv4bf16_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl) {3207; CHECK-LABEL: test_vsseg2_nxv4bf16_triscv.vector.tuple_nxv8i8_2t:3208; CHECK:       # %bb.0: # %entry3209; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3210; CHECK-NEXT:    vsseg2e16.v v8, (a0)3211; CHECK-NEXT:    ret3212entry:3213  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)3214  ret void3215}3216 3217define void @test_vsseg2_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3218; CHECK-LABEL: test_vsseg2_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_2t:3219; CHECK:       # %bb.0: # %entry3220; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3221; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t3222; CHECK-NEXT:    ret3223entry:3224  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3225  ret void3226}3227 3228define void @test_vsseg2_nxv8bf16_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl) {3229; CHECK-LABEL: test_vsseg2_nxv8bf16_triscv.vector.tuple_nxv16i8_2t:3230; CHECK:       # %bb.0: # %entry3231; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3232; CHECK-NEXT:    vsseg2e16.v v8, (a0)3233; CHECK-NEXT:    ret3234entry:3235  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)3236  ret void3237}3238 3239define void @test_vsseg2_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {3240; CHECK-LABEL: test_vsseg2_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_2t:3241; CHECK:       # %bb.0: # %entry3242; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3243; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t3244; CHECK-NEXT:    ret3245entry:3246  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)3247  ret void3248}3249 3250define void @test_vsseg2_nxv16bf16_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl) {3251; CHECK-LABEL: test_vsseg2_nxv16bf16_triscv.vector.tuple_nxv32i8_2t:3252; CHECK:       # %bb.0: # %entry3253; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma3254; CHECK-NEXT:    vsseg2e16.v v8, (a0)3255; CHECK-NEXT:    ret3256entry:3257  tail call void @llvm.riscv.vsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, i64 4)3258  ret void3259}3260 3261define void @test_vsseg2_mask_nxv16bf16_triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, i64 %vl, <vscale x 16 x i1> %mask) {3262; CHECK-LABEL: test_vsseg2_mask_nxv16bf16_triscv.vector.tuple_nxv32i8_2t:3263; CHECK:       # %bb.0: # %entry3264; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma3265; CHECK-NEXT:    vsseg2e16.v v8, (a0), v0.t3266; CHECK-NEXT:    ret3267entry:3268  tail call void @llvm.riscv.vsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr %base, <vscale x 16 x i1> %mask, i64 %vl, i64 4)3269  ret void3270}3271 3272define void @test_vsseg3_nxv1bf16_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl) {3273; CHECK-LABEL: test_vsseg3_nxv1bf16_triscv.vector.tuple_nxv2i8_3t:3274; CHECK:       # %bb.0: # %entry3275; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3276; CHECK-NEXT:    vsseg3e16.v v8, (a0)3277; CHECK-NEXT:    ret3278entry:3279  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)3280  ret void3281}3282 3283define void @test_vsseg3_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3284; CHECK-LABEL: test_vsseg3_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_3t:3285; CHECK:       # %bb.0: # %entry3286; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3287; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t3288; CHECK-NEXT:    ret3289entry:3290  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3291  ret void3292}3293 3294define void @test_vsseg3_nxv2bf16_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl) {3295; CHECK-LABEL: test_vsseg3_nxv2bf16_triscv.vector.tuple_nxv4i8_3t:3296; CHECK:       # %bb.0: # %entry3297; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3298; CHECK-NEXT:    vsseg3e16.v v8, (a0)3299; CHECK-NEXT:    ret3300entry:3301  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)3302  ret void3303}3304 3305define void @test_vsseg3_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3306; CHECK-LABEL: test_vsseg3_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_3t:3307; CHECK:       # %bb.0: # %entry3308; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3309; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t3310; CHECK-NEXT:    ret3311entry:3312  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3313  ret void3314}3315 3316define void @test_vsseg3_nxv4bf16_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl) {3317; CHECK-LABEL: test_vsseg3_nxv4bf16_triscv.vector.tuple_nxv8i8_3t:3318; CHECK:       # %bb.0: # %entry3319; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3320; CHECK-NEXT:    vsseg3e16.v v8, (a0)3321; CHECK-NEXT:    ret3322entry:3323  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)3324  ret void3325}3326 3327define void @test_vsseg3_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3328; CHECK-LABEL: test_vsseg3_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_3t:3329; CHECK:       # %bb.0: # %entry3330; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3331; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t3332; CHECK-NEXT:    ret3333entry:3334  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3335  ret void3336}3337 3338define void @test_vsseg3_nxv8bf16_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl) {3339; CHECK-LABEL: test_vsseg3_nxv8bf16_triscv.vector.tuple_nxv16i8_3t:3340; CHECK:       # %bb.0: # %entry3341; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3342; CHECK-NEXT:    vsseg3e16.v v8, (a0)3343; CHECK-NEXT:    ret3344entry:3345  tail call void @llvm.riscv.vsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, i64 4)3346  ret void3347}3348 3349define void @test_vsseg3_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {3350; CHECK-LABEL: test_vsseg3_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_3t:3351; CHECK:       # %bb.0: # %entry3352; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3353; CHECK-NEXT:    vsseg3e16.v v8, (a0), v0.t3354; CHECK-NEXT:    ret3355entry:3356  tail call void @llvm.riscv.vsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)3357  ret void3358}3359 3360define void @test_vsseg4_nxv1bf16_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl) {3361; CHECK-LABEL: test_vsseg4_nxv1bf16_triscv.vector.tuple_nxv2i8_4t:3362; CHECK:       # %bb.0: # %entry3363; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3364; CHECK-NEXT:    vsseg4e16.v v8, (a0)3365; CHECK-NEXT:    ret3366entry:3367  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)3368  ret void3369}3370 3371define void @test_vsseg4_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3372; CHECK-LABEL: test_vsseg4_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_4t:3373; CHECK:       # %bb.0: # %entry3374; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3375; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t3376; CHECK-NEXT:    ret3377entry:3378  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3379  ret void3380}3381 3382define void @test_vsseg4_nxv2bf16_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl) {3383; CHECK-LABEL: test_vsseg4_nxv2bf16_triscv.vector.tuple_nxv4i8_4t:3384; CHECK:       # %bb.0: # %entry3385; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3386; CHECK-NEXT:    vsseg4e16.v v8, (a0)3387; CHECK-NEXT:    ret3388entry:3389  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)3390  ret void3391}3392 3393define void @test_vsseg4_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3394; CHECK-LABEL: test_vsseg4_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_4t:3395; CHECK:       # %bb.0: # %entry3396; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3397; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t3398; CHECK-NEXT:    ret3399entry:3400  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3401  ret void3402}3403 3404define void @test_vsseg4_nxv4bf16_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl) {3405; CHECK-LABEL: test_vsseg4_nxv4bf16_triscv.vector.tuple_nxv8i8_4t:3406; CHECK:       # %bb.0: # %entry3407; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3408; CHECK-NEXT:    vsseg4e16.v v8, (a0)3409; CHECK-NEXT:    ret3410entry:3411  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)3412  ret void3413}3414 3415define void @test_vsseg4_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3416; CHECK-LABEL: test_vsseg4_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_4t:3417; CHECK:       # %bb.0: # %entry3418; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3419; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t3420; CHECK-NEXT:    ret3421entry:3422  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3423  ret void3424}3425 3426define void @test_vsseg4_nxv8bf16_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl) {3427; CHECK-LABEL: test_vsseg4_nxv8bf16_triscv.vector.tuple_nxv16i8_4t:3428; CHECK:       # %bb.0: # %entry3429; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3430; CHECK-NEXT:    vsseg4e16.v v8, (a0)3431; CHECK-NEXT:    ret3432entry:3433  tail call void @llvm.riscv.vsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, i64 4)3434  ret void3435}3436 3437define void @test_vsseg4_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, i64 %vl, <vscale x 8 x i1> %mask) {3438; CHECK-LABEL: test_vsseg4_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_4t:3439; CHECK:       # %bb.0: # %entry3440; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma3441; CHECK-NEXT:    vsseg4e16.v v8, (a0), v0.t3442; CHECK-NEXT:    ret3443entry:3444  tail call void @llvm.riscv.vsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %val, ptr %base, <vscale x 8 x i1> %mask, i64 %vl, i64 4)3445  ret void3446}3447 3448define void @test_vsseg5_nxv1bf16_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl) {3449; CHECK-LABEL: test_vsseg5_nxv1bf16_triscv.vector.tuple_nxv2i8_5t:3450; CHECK:       # %bb.0: # %entry3451; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3452; CHECK-NEXT:    vsseg5e16.v v8, (a0)3453; CHECK-NEXT:    ret3454entry:3455  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)3456  ret void3457}3458 3459define void @test_vsseg5_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3460; CHECK-LABEL: test_vsseg5_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_5t:3461; CHECK:       # %bb.0: # %entry3462; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3463; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t3464; CHECK-NEXT:    ret3465entry:3466  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3467  ret void3468}3469 3470define void @test_vsseg5_nxv2bf16_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl) {3471; CHECK-LABEL: test_vsseg5_nxv2bf16_triscv.vector.tuple_nxv4i8_5t:3472; CHECK:       # %bb.0: # %entry3473; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3474; CHECK-NEXT:    vsseg5e16.v v8, (a0)3475; CHECK-NEXT:    ret3476entry:3477  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)3478  ret void3479}3480 3481define void @test_vsseg5_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3482; CHECK-LABEL: test_vsseg5_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_5t:3483; CHECK:       # %bb.0: # %entry3484; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3485; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t3486; CHECK-NEXT:    ret3487entry:3488  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3489  ret void3490}3491 3492define void @test_vsseg5_nxv4bf16_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl) {3493; CHECK-LABEL: test_vsseg5_nxv4bf16_triscv.vector.tuple_nxv8i8_5t:3494; CHECK:       # %bb.0: # %entry3495; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3496; CHECK-NEXT:    vsseg5e16.v v8, (a0)3497; CHECK-NEXT:    ret3498entry:3499  tail call void @llvm.riscv.vsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, i64 4)3500  ret void3501}3502 3503define void @test_vsseg5_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3504; CHECK-LABEL: test_vsseg5_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_5t:3505; CHECK:       # %bb.0: # %entry3506; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3507; CHECK-NEXT:    vsseg5e16.v v8, (a0), v0.t3508; CHECK-NEXT:    ret3509entry:3510  tail call void @llvm.riscv.vsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3511  ret void3512}3513 3514define void @test_vsseg6_nxv1bf16_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl) {3515; CHECK-LABEL: test_vsseg6_nxv1bf16_triscv.vector.tuple_nxv2i8_6t:3516; CHECK:       # %bb.0: # %entry3517; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3518; CHECK-NEXT:    vsseg6e16.v v8, (a0)3519; CHECK-NEXT:    ret3520entry:3521  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)3522  ret void3523}3524 3525define void @test_vsseg6_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3526; CHECK-LABEL: test_vsseg6_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_6t:3527; CHECK:       # %bb.0: # %entry3528; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3529; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t3530; CHECK-NEXT:    ret3531entry:3532  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3533  ret void3534}3535 3536define void @test_vsseg6_nxv2bf16_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl) {3537; CHECK-LABEL: test_vsseg6_nxv2bf16_triscv.vector.tuple_nxv4i8_6t:3538; CHECK:       # %bb.0: # %entry3539; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3540; CHECK-NEXT:    vsseg6e16.v v8, (a0)3541; CHECK-NEXT:    ret3542entry:3543  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)3544  ret void3545}3546 3547define void @test_vsseg6_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3548; CHECK-LABEL: test_vsseg6_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_6t:3549; CHECK:       # %bb.0: # %entry3550; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3551; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t3552; CHECK-NEXT:    ret3553entry:3554  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3555  ret void3556}3557 3558define void @test_vsseg6_nxv4bf16_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl) {3559; CHECK-LABEL: test_vsseg6_nxv4bf16_triscv.vector.tuple_nxv8i8_6t:3560; CHECK:       # %bb.0: # %entry3561; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3562; CHECK-NEXT:    vsseg6e16.v v8, (a0)3563; CHECK-NEXT:    ret3564entry:3565  tail call void @llvm.riscv.vsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, i64 4)3566  ret void3567}3568 3569define void @test_vsseg6_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3570; CHECK-LABEL: test_vsseg6_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_6t:3571; CHECK:       # %bb.0: # %entry3572; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3573; CHECK-NEXT:    vsseg6e16.v v8, (a0), v0.t3574; CHECK-NEXT:    ret3575entry:3576  tail call void @llvm.riscv.vsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3577  ret void3578}3579 3580define void @test_vsseg7_nxv1bf16_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl) {3581; CHECK-LABEL: test_vsseg7_nxv1bf16_triscv.vector.tuple_nxv2i8_7t:3582; CHECK:       # %bb.0: # %entry3583; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3584; CHECK-NEXT:    vsseg7e16.v v8, (a0)3585; CHECK-NEXT:    ret3586entry:3587  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)3588  ret void3589}3590 3591define void @test_vsseg7_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3592; CHECK-LABEL: test_vsseg7_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_7t:3593; CHECK:       # %bb.0: # %entry3594; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3595; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t3596; CHECK-NEXT:    ret3597entry:3598  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3599  ret void3600}3601 3602define void @test_vsseg7_nxv2bf16_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl) {3603; CHECK-LABEL: test_vsseg7_nxv2bf16_triscv.vector.tuple_nxv4i8_7t:3604; CHECK:       # %bb.0: # %entry3605; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3606; CHECK-NEXT:    vsseg7e16.v v8, (a0)3607; CHECK-NEXT:    ret3608entry:3609  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)3610  ret void3611}3612 3613define void @test_vsseg7_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3614; CHECK-LABEL: test_vsseg7_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_7t:3615; CHECK:       # %bb.0: # %entry3616; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3617; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t3618; CHECK-NEXT:    ret3619entry:3620  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3621  ret void3622}3623 3624define void @test_vsseg7_nxv4bf16_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl) {3625; CHECK-LABEL: test_vsseg7_nxv4bf16_triscv.vector.tuple_nxv8i8_7t:3626; CHECK:       # %bb.0: # %entry3627; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3628; CHECK-NEXT:    vsseg7e16.v v8, (a0)3629; CHECK-NEXT:    ret3630entry:3631  tail call void @llvm.riscv.vsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, i64 4)3632  ret void3633}3634 3635define void @test_vsseg7_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3636; CHECK-LABEL: test_vsseg7_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_7t:3637; CHECK:       # %bb.0: # %entry3638; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3639; CHECK-NEXT:    vsseg7e16.v v8, (a0), v0.t3640; CHECK-NEXT:    ret3641entry:3642  tail call void @llvm.riscv.vsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3643  ret void3644}3645 3646define void @test_vsseg8_nxv1bf16_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl) {3647; CHECK-LABEL: test_vsseg8_nxv1bf16_triscv.vector.tuple_nxv2i8_8t:3648; CHECK:       # %bb.0: # %entry3649; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3650; CHECK-NEXT:    vsseg8e16.v v8, (a0)3651; CHECK-NEXT:    ret3652entry:3653  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)3654  ret void3655}3656 3657define void @test_vsseg8_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 1 x i1> %mask) {3658; CHECK-LABEL: test_vsseg8_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_8t:3659; CHECK:       # %bb.0: # %entry3660; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma3661; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t3662; CHECK-NEXT:    ret3663entry:3664  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %val, ptr %base, <vscale x 1 x i1> %mask, i64 %vl, i64 4)3665  ret void3666}3667 3668define void @test_vsseg8_nxv2bf16_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl) {3669; CHECK-LABEL: test_vsseg8_nxv2bf16_triscv.vector.tuple_nxv4i8_8t:3670; CHECK:       # %bb.0: # %entry3671; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3672; CHECK-NEXT:    vsseg8e16.v v8, (a0)3673; CHECK-NEXT:    ret3674entry:3675  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)3676  ret void3677}3678 3679define void @test_vsseg8_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 2 x i1> %mask) {3680; CHECK-LABEL: test_vsseg8_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_8t:3681; CHECK:       # %bb.0: # %entry3682; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma3683; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t3684; CHECK-NEXT:    ret3685entry:3686  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %val, ptr %base, <vscale x 2 x i1> %mask, i64 %vl, i64 4)3687  ret void3688}3689 3690define void @test_vsseg8_nxv4bf16_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl) {3691; CHECK-LABEL: test_vsseg8_nxv4bf16_triscv.vector.tuple_nxv8i8_8t:3692; CHECK:       # %bb.0: # %entry3693; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3694; CHECK-NEXT:    vsseg8e16.v v8, (a0)3695; CHECK-NEXT:    ret3696entry:3697  tail call void @llvm.riscv.vsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, i64 4)3698  ret void3699}3700 3701define void @test_vsseg8_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, i64 %vl, <vscale x 4 x i1> %mask) {3702; CHECK-LABEL: test_vsseg8_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_8t:3703; CHECK:       # %bb.0: # %entry3704; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma3705; CHECK-NEXT:    vsseg8e16.v v8, (a0), v0.t3706; CHECK-NEXT:    ret3707entry:3708  tail call void @llvm.riscv.vsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %val, ptr %base, <vscale x 4 x i1> %mask, i64 %vl, i64 4)3709  ret void3710}3711 3712