1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv64 -mattr=+zve64d,+f,+d,+zvfh,+zvfbfmin \
3 ; RUN: -verify-machineinstrs < %s | FileCheck %s
5 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2), ptr, i64, i64, i64)
6 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv1i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 2), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
8 define <vscale x 1 x i8> @test_vlsseg2_nxv1i8_triscv.vector.tuple_nxv1i8_2t(ptr %base, i64 %offset, i64 %vl) {
9 ; CHECK-LABEL: test_vlsseg2_nxv1i8_triscv.vector.tuple_nxv1i8_2t:
10 ; CHECK: # %bb.0: # %entry
11 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
12 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1
15 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
16 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %0, i32 1)
17 ret <vscale x 1 x i8> %1
20 define <vscale x 1 x i8> @test_vlsseg2_mask_nxv1i8_triscv.vector.tuple_nxv1i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
21 ; CHECK-LABEL: test_vlsseg2_mask_nxv1i8_triscv.vector.tuple_nxv1i8_2t:
22 ; CHECK: # %bb.0: # %entry
23 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
24 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1, v0.t
27 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv1i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
28 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_2t(target("riscv.vector.tuple", <vscale x 1 x i8>, 2) %0, i32 1)
29 ret <vscale x 1 x i8> %1
32 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2), ptr, i64, i64, i64)
33 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
35 define <vscale x 2 x i8> @test_vlsseg2_nxv2i8_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl) {
36 ; CHECK-LABEL: test_vlsseg2_nxv2i8_triscv.vector.tuple_nxv2i8_2t:
37 ; CHECK: # %bb.0: # %entry
38 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
39 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1
42 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
43 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
44 ret <vscale x 2 x i8> %1
47 define <vscale x 2 x i8> @test_vlsseg2_mask_nxv2i8_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
48 ; CHECK-LABEL: test_vlsseg2_mask_nxv2i8_triscv.vector.tuple_nxv2i8_2t:
49 ; CHECK: # %bb.0: # %entry
50 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
51 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1, v0.t
54 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
55 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
56 ret <vscale x 2 x i8> %1
59 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2), ptr, i64, i64, i64)
60 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
62 define <vscale x 4 x i8> @test_vlsseg2_nxv4i8_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl) {
63 ; CHECK-LABEL: test_vlsseg2_nxv4i8_triscv.vector.tuple_nxv4i8_2t:
64 ; CHECK: # %bb.0: # %entry
65 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
66 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1
69 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
70 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
71 ret <vscale x 4 x i8> %1
74 define <vscale x 4 x i8> @test_vlsseg2_mask_nxv4i8_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
75 ; CHECK-LABEL: test_vlsseg2_mask_nxv4i8_triscv.vector.tuple_nxv4i8_2t:
76 ; CHECK: # %bb.0: # %entry
77 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
78 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1, v0.t
81 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
82 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
83 ret <vscale x 4 x i8> %1
86 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), ptr, i64, i64, i64)
87 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
89 define <vscale x 8 x i8> @test_vlsseg2_nxv8i8_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
90 ; CHECK-LABEL: test_vlsseg2_nxv8i8_triscv.vector.tuple_nxv8i8_2t:
91 ; CHECK: # %bb.0: # %entry
92 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
93 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1
96 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
97 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
98 ret <vscale x 8 x i8> %1
101 define <vscale x 8 x i8> @test_vlsseg2_mask_nxv8i8_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
102 ; CHECK-LABEL: test_vlsseg2_mask_nxv8i8_triscv.vector.tuple_nxv8i8_2t:
103 ; CHECK: # %bb.0: # %entry
104 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
105 ; CHECK-NEXT: vlsseg2e8.v v7, (a0), a1, v0.t
108 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
109 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
110 ret <vscale x 8 x i8> %1
113 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2), ptr, i64, i64, i64)
114 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2), ptr, i64, <vscale x 16 x i1>, i64, i64, i64)
116 define <vscale x 16 x i8> @test_vlsseg2_nxv16i8_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
117 ; CHECK-LABEL: test_vlsseg2_nxv16i8_triscv.vector.tuple_nxv16i8_2t:
118 ; CHECK: # %bb.0: # %entry
119 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
120 ; CHECK-NEXT: vlsseg2e8.v v6, (a0), a1
123 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
124 %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
125 ret <vscale x 16 x i8> %1
128 define <vscale x 16 x i8> @test_vlsseg2_mask_nxv16i8_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 16 x i1> %mask) {
129 ; CHECK-LABEL: test_vlsseg2_mask_nxv16i8_triscv.vector.tuple_nxv16i8_2t:
130 ; CHECK: # %bb.0: # %entry
131 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
132 ; CHECK-NEXT: vlsseg2e8.v v6, (a0), a1, v0.t
135 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 16 x i1> %mask, i64 %vl, i64 1, i64 3)
136 %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
137 ret <vscale x 16 x i8> %1
140 declare target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), ptr, i64, i64, i64)
141 declare target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv32i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), ptr, i64, <vscale x 32 x i1>, i64, i64, i64)
143 define <vscale x 32 x i8> @test_vlsseg2_nxv32i8_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
144 ; CHECK-LABEL: test_vlsseg2_nxv32i8_triscv.vector.tuple_nxv32i8_2t:
145 ; CHECK: # %bb.0: # %entry
146 ; CHECK-NEXT: vsetvli zero, a2, e8, m4, ta, ma
147 ; CHECK-NEXT: vlsseg2e8.v v4, (a0), a1
150 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
151 %1 = call <vscale x 32 x i8> @llvm.riscv.tuple.extract.nxv32i8.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
152 ret <vscale x 32 x i8> %1
155 define <vscale x 32 x i8> @test_vlsseg2_mask_nxv32i8_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 32 x i1> %mask) {
156 ; CHECK-LABEL: test_vlsseg2_mask_nxv32i8_triscv.vector.tuple_nxv32i8_2t:
157 ; CHECK: # %bb.0: # %entry
158 ; CHECK-NEXT: vsetvli zero, a2, e8, m4, ta, ma
159 ; CHECK-NEXT: vlsseg2e8.v v4, (a0), a1, v0.t
162 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv32i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 32 x i1> %mask, i64 %vl, i64 1, i64 3)
163 %1 = call <vscale x 32 x i8> @llvm.riscv.tuple.extract.nxv32i8.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
164 ret <vscale x 32 x i8> %1
167 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3), ptr, i64, i64, i64)
168 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv1i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 3), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
170 define <vscale x 1 x i8> @test_vlsseg3_nxv1i8_triscv.vector.tuple_nxv1i8_3t(ptr %base, i64 %offset, i64 %vl) {
171 ; CHECK-LABEL: test_vlsseg3_nxv1i8_triscv.vector.tuple_nxv1i8_3t:
172 ; CHECK: # %bb.0: # %entry
173 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
174 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1
177 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
178 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %0, i32 1)
179 ret <vscale x 1 x i8> %1
182 define <vscale x 1 x i8> @test_vlsseg3_mask_nxv1i8_triscv.vector.tuple_nxv1i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
183 ; CHECK-LABEL: test_vlsseg3_mask_nxv1i8_triscv.vector.tuple_nxv1i8_3t:
184 ; CHECK: # %bb.0: # %entry
185 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
186 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1, v0.t
189 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv1i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
190 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_3t(target("riscv.vector.tuple", <vscale x 1 x i8>, 3) %0, i32 1)
191 ret <vscale x 1 x i8> %1
194 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3), ptr, i64, i64, i64)
195 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
197 define <vscale x 2 x i8> @test_vlsseg3_nxv2i8_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl) {
198 ; CHECK-LABEL: test_vlsseg3_nxv2i8_triscv.vector.tuple_nxv2i8_3t:
199 ; CHECK: # %bb.0: # %entry
200 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
201 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1
204 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
205 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
206 ret <vscale x 2 x i8> %1
209 define <vscale x 2 x i8> @test_vlsseg3_mask_nxv2i8_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
210 ; CHECK-LABEL: test_vlsseg3_mask_nxv2i8_triscv.vector.tuple_nxv2i8_3t:
211 ; CHECK: # %bb.0: # %entry
212 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
213 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1, v0.t
216 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
217 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
218 ret <vscale x 2 x i8> %1
221 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3), ptr, i64, i64, i64)
222 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
224 define <vscale x 4 x i8> @test_vlsseg3_nxv4i8_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl) {
225 ; CHECK-LABEL: test_vlsseg3_nxv4i8_triscv.vector.tuple_nxv4i8_3t:
226 ; CHECK: # %bb.0: # %entry
227 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
228 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1
231 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
232 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
233 ret <vscale x 4 x i8> %1
236 define <vscale x 4 x i8> @test_vlsseg3_mask_nxv4i8_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
237 ; CHECK-LABEL: test_vlsseg3_mask_nxv4i8_triscv.vector.tuple_nxv4i8_3t:
238 ; CHECK: # %bb.0: # %entry
239 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
240 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1, v0.t
243 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
244 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
245 ret <vscale x 4 x i8> %1
248 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3), ptr, i64, i64, i64)
249 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
251 define <vscale x 8 x i8> @test_vlsseg3_nxv8i8_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
252 ; CHECK-LABEL: test_vlsseg3_nxv8i8_triscv.vector.tuple_nxv8i8_3t:
253 ; CHECK: # %bb.0: # %entry
254 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
255 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1
258 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
259 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
260 ret <vscale x 8 x i8> %1
263 define <vscale x 8 x i8> @test_vlsseg3_mask_nxv8i8_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
264 ; CHECK-LABEL: test_vlsseg3_mask_nxv8i8_triscv.vector.tuple_nxv8i8_3t:
265 ; CHECK: # %bb.0: # %entry
266 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
267 ; CHECK-NEXT: vlsseg3e8.v v7, (a0), a1, v0.t
270 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
271 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
272 ret <vscale x 8 x i8> %1
275 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3), ptr, i64, i64, i64)
276 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3), ptr, i64, <vscale x 16 x i1>, i64, i64, i64)
278 define <vscale x 16 x i8> @test_vlsseg3_nxv16i8_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
279 ; CHECK-LABEL: test_vlsseg3_nxv16i8_triscv.vector.tuple_nxv16i8_3t:
280 ; CHECK: # %bb.0: # %entry
281 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
282 ; CHECK-NEXT: vlsseg3e8.v v6, (a0), a1
285 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
286 %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
287 ret <vscale x 16 x i8> %1
290 define <vscale x 16 x i8> @test_vlsseg3_mask_nxv16i8_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 16 x i1> %mask) {
291 ; CHECK-LABEL: test_vlsseg3_mask_nxv16i8_triscv.vector.tuple_nxv16i8_3t:
292 ; CHECK: # %bb.0: # %entry
293 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
294 ; CHECK-NEXT: vlsseg3e8.v v6, (a0), a1, v0.t
297 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 16 x i1> %mask, i64 %vl, i64 1, i64 3)
298 %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
299 ret <vscale x 16 x i8> %1
302 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4), ptr, i64, i64, i64)
303 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv1i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 4), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
305 define <vscale x 1 x i8> @test_vlsseg4_nxv1i8_triscv.vector.tuple_nxv1i8_4t(ptr %base, i64 %offset, i64 %vl) {
306 ; CHECK-LABEL: test_vlsseg4_nxv1i8_triscv.vector.tuple_nxv1i8_4t:
307 ; CHECK: # %bb.0: # %entry
308 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
309 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1
312 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
313 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %0, i32 1)
314 ret <vscale x 1 x i8> %1
317 define <vscale x 1 x i8> @test_vlsseg4_mask_nxv1i8_triscv.vector.tuple_nxv1i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
318 ; CHECK-LABEL: test_vlsseg4_mask_nxv1i8_triscv.vector.tuple_nxv1i8_4t:
319 ; CHECK: # %bb.0: # %entry
320 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
321 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1, v0.t
324 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv1i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
325 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_4t(target("riscv.vector.tuple", <vscale x 1 x i8>, 4) %0, i32 1)
326 ret <vscale x 1 x i8> %1
329 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4), ptr, i64, i64, i64)
330 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
332 define <vscale x 2 x i8> @test_vlsseg4_nxv2i8_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl) {
333 ; CHECK-LABEL: test_vlsseg4_nxv2i8_triscv.vector.tuple_nxv2i8_4t:
334 ; CHECK: # %bb.0: # %entry
335 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
336 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1
339 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
340 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
341 ret <vscale x 2 x i8> %1
344 define <vscale x 2 x i8> @test_vlsseg4_mask_nxv2i8_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
345 ; CHECK-LABEL: test_vlsseg4_mask_nxv2i8_triscv.vector.tuple_nxv2i8_4t:
346 ; CHECK: # %bb.0: # %entry
347 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
348 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1, v0.t
351 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
352 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
353 ret <vscale x 2 x i8> %1
356 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4), ptr, i64, i64, i64)
357 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
359 define <vscale x 4 x i8> @test_vlsseg4_nxv4i8_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl) {
360 ; CHECK-LABEL: test_vlsseg4_nxv4i8_triscv.vector.tuple_nxv4i8_4t:
361 ; CHECK: # %bb.0: # %entry
362 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
363 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1
366 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
367 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
368 ret <vscale x 4 x i8> %1
371 define <vscale x 4 x i8> @test_vlsseg4_mask_nxv4i8_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
372 ; CHECK-LABEL: test_vlsseg4_mask_nxv4i8_triscv.vector.tuple_nxv4i8_4t:
373 ; CHECK: # %bb.0: # %entry
374 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
375 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1, v0.t
378 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
379 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
380 ret <vscale x 4 x i8> %1
383 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4), ptr, i64, i64, i64)
384 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
386 define <vscale x 8 x i8> @test_vlsseg4_nxv8i8_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
387 ; CHECK-LABEL: test_vlsseg4_nxv8i8_triscv.vector.tuple_nxv8i8_4t:
388 ; CHECK: # %bb.0: # %entry
389 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
390 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1
393 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
394 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
395 ret <vscale x 8 x i8> %1
398 define <vscale x 8 x i8> @test_vlsseg4_mask_nxv8i8_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
399 ; CHECK-LABEL: test_vlsseg4_mask_nxv8i8_triscv.vector.tuple_nxv8i8_4t:
400 ; CHECK: # %bb.0: # %entry
401 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
402 ; CHECK-NEXT: vlsseg4e8.v v7, (a0), a1, v0.t
405 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
406 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
407 ret <vscale x 8 x i8> %1
410 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4), ptr, i64, i64, i64)
411 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4), ptr, i64, <vscale x 16 x i1>, i64, i64, i64)
413 define <vscale x 16 x i8> @test_vlsseg4_nxv16i8_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
414 ; CHECK-LABEL: test_vlsseg4_nxv16i8_triscv.vector.tuple_nxv16i8_4t:
415 ; CHECK: # %bb.0: # %entry
416 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
417 ; CHECK-NEXT: vlsseg4e8.v v6, (a0), a1
420 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
421 %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
422 ret <vscale x 16 x i8> %1
425 define <vscale x 16 x i8> @test_vlsseg4_mask_nxv16i8_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 16 x i1> %mask) {
426 ; CHECK-LABEL: test_vlsseg4_mask_nxv16i8_triscv.vector.tuple_nxv16i8_4t:
427 ; CHECK: # %bb.0: # %entry
428 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
429 ; CHECK-NEXT: vlsseg4e8.v v6, (a0), a1, v0.t
432 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv16i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 16 x i1> %mask, i64 %vl, i64 1, i64 3)
433 %1 = call <vscale x 16 x i8> @llvm.riscv.tuple.extract.nxv16i8.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
434 ret <vscale x 16 x i8> %1
437 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5), ptr, i64, i64, i64)
438 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv1i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 5), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
440 define <vscale x 1 x i8> @test_vlsseg5_nxv1i8_triscv.vector.tuple_nxv1i8_5t(ptr %base, i64 %offset, i64 %vl) {
441 ; CHECK-LABEL: test_vlsseg5_nxv1i8_triscv.vector.tuple_nxv1i8_5t:
442 ; CHECK: # %bb.0: # %entry
443 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
444 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1
447 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
448 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %0, i32 1)
449 ret <vscale x 1 x i8> %1
452 define <vscale x 1 x i8> @test_vlsseg5_mask_nxv1i8_triscv.vector.tuple_nxv1i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
453 ; CHECK-LABEL: test_vlsseg5_mask_nxv1i8_triscv.vector.tuple_nxv1i8_5t:
454 ; CHECK: # %bb.0: # %entry
455 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
456 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1, v0.t
459 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv1i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
460 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_5t(target("riscv.vector.tuple", <vscale x 1 x i8>, 5) %0, i32 1)
461 ret <vscale x 1 x i8> %1
464 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5), ptr, i64, i64, i64)
465 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
467 define <vscale x 2 x i8> @test_vlsseg5_nxv2i8_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl) {
468 ; CHECK-LABEL: test_vlsseg5_nxv2i8_triscv.vector.tuple_nxv2i8_5t:
469 ; CHECK: # %bb.0: # %entry
470 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
471 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1
474 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
475 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
476 ret <vscale x 2 x i8> %1
479 define <vscale x 2 x i8> @test_vlsseg5_mask_nxv2i8_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
480 ; CHECK-LABEL: test_vlsseg5_mask_nxv2i8_triscv.vector.tuple_nxv2i8_5t:
481 ; CHECK: # %bb.0: # %entry
482 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
483 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1, v0.t
486 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
487 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
488 ret <vscale x 2 x i8> %1
491 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5), ptr, i64, i64, i64)
492 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
494 define <vscale x 4 x i8> @test_vlsseg5_nxv4i8_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl) {
495 ; CHECK-LABEL: test_vlsseg5_nxv4i8_triscv.vector.tuple_nxv4i8_5t:
496 ; CHECK: # %bb.0: # %entry
497 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
498 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1
501 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
502 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
503 ret <vscale x 4 x i8> %1
506 define <vscale x 4 x i8> @test_vlsseg5_mask_nxv4i8_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
507 ; CHECK-LABEL: test_vlsseg5_mask_nxv4i8_triscv.vector.tuple_nxv4i8_5t:
508 ; CHECK: # %bb.0: # %entry
509 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
510 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1, v0.t
513 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
514 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
515 ret <vscale x 4 x i8> %1
518 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5), ptr, i64, i64, i64)
519 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
521 define <vscale x 8 x i8> @test_vlsseg5_nxv8i8_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
522 ; CHECK-LABEL: test_vlsseg5_nxv8i8_triscv.vector.tuple_nxv8i8_5t:
523 ; CHECK: # %bb.0: # %entry
524 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
525 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1
528 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
529 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
530 ret <vscale x 8 x i8> %1
533 define <vscale x 8 x i8> @test_vlsseg5_mask_nxv8i8_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
534 ; CHECK-LABEL: test_vlsseg5_mask_nxv8i8_triscv.vector.tuple_nxv8i8_5t:
535 ; CHECK: # %bb.0: # %entry
536 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
537 ; CHECK-NEXT: vlsseg5e8.v v7, (a0), a1, v0.t
540 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
541 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
542 ret <vscale x 8 x i8> %1
545 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6), ptr, i64, i64, i64)
546 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv1i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 6), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
548 define <vscale x 1 x i8> @test_vlsseg6_nxv1i8_triscv.vector.tuple_nxv1i8_6t(ptr %base, i64 %offset, i64 %vl) {
549 ; CHECK-LABEL: test_vlsseg6_nxv1i8_triscv.vector.tuple_nxv1i8_6t:
550 ; CHECK: # %bb.0: # %entry
551 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
552 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1
555 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
556 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %0, i32 1)
557 ret <vscale x 1 x i8> %1
560 define <vscale x 1 x i8> @test_vlsseg6_mask_nxv1i8_triscv.vector.tuple_nxv1i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
561 ; CHECK-LABEL: test_vlsseg6_mask_nxv1i8_triscv.vector.tuple_nxv1i8_6t:
562 ; CHECK: # %bb.0: # %entry
563 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
564 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1, v0.t
567 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv1i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
568 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_6t(target("riscv.vector.tuple", <vscale x 1 x i8>, 6) %0, i32 1)
569 ret <vscale x 1 x i8> %1
572 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6), ptr, i64, i64, i64)
573 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
575 define <vscale x 2 x i8> @test_vlsseg6_nxv2i8_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl) {
576 ; CHECK-LABEL: test_vlsseg6_nxv2i8_triscv.vector.tuple_nxv2i8_6t:
577 ; CHECK: # %bb.0: # %entry
578 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
579 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1
582 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
583 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
584 ret <vscale x 2 x i8> %1
587 define <vscale x 2 x i8> @test_vlsseg6_mask_nxv2i8_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
588 ; CHECK-LABEL: test_vlsseg6_mask_nxv2i8_triscv.vector.tuple_nxv2i8_6t:
589 ; CHECK: # %bb.0: # %entry
590 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
591 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1, v0.t
594 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
595 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
596 ret <vscale x 2 x i8> %1
599 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6), ptr, i64, i64, i64)
600 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
602 define <vscale x 4 x i8> @test_vlsseg6_nxv4i8_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl) {
603 ; CHECK-LABEL: test_vlsseg6_nxv4i8_triscv.vector.tuple_nxv4i8_6t:
604 ; CHECK: # %bb.0: # %entry
605 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
606 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1
609 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
610 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
611 ret <vscale x 4 x i8> %1
614 define <vscale x 4 x i8> @test_vlsseg6_mask_nxv4i8_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
615 ; CHECK-LABEL: test_vlsseg6_mask_nxv4i8_triscv.vector.tuple_nxv4i8_6t:
616 ; CHECK: # %bb.0: # %entry
617 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
618 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1, v0.t
621 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
622 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
623 ret <vscale x 4 x i8> %1
626 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6), ptr, i64, i64, i64)
627 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
629 define <vscale x 8 x i8> @test_vlsseg6_nxv8i8_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
630 ; CHECK-LABEL: test_vlsseg6_nxv8i8_triscv.vector.tuple_nxv8i8_6t:
631 ; CHECK: # %bb.0: # %entry
632 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
633 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1
636 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
637 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
638 ret <vscale x 8 x i8> %1
641 define <vscale x 8 x i8> @test_vlsseg6_mask_nxv8i8_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
642 ; CHECK-LABEL: test_vlsseg6_mask_nxv8i8_triscv.vector.tuple_nxv8i8_6t:
643 ; CHECK: # %bb.0: # %entry
644 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
645 ; CHECK-NEXT: vlsseg6e8.v v7, (a0), a1, v0.t
648 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
649 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
650 ret <vscale x 8 x i8> %1
653 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7), ptr, i64, i64, i64)
654 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv1i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 7), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
656 define <vscale x 1 x i8> @test_vlsseg7_nxv1i8_triscv.vector.tuple_nxv1i8_7t(ptr %base, i64 %offset, i64 %vl) {
657 ; CHECK-LABEL: test_vlsseg7_nxv1i8_triscv.vector.tuple_nxv1i8_7t:
658 ; CHECK: # %bb.0: # %entry
659 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
660 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1
663 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
664 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %0, i32 1)
665 ret <vscale x 1 x i8> %1
668 define <vscale x 1 x i8> @test_vlsseg7_mask_nxv1i8_triscv.vector.tuple_nxv1i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
669 ; CHECK-LABEL: test_vlsseg7_mask_nxv1i8_triscv.vector.tuple_nxv1i8_7t:
670 ; CHECK: # %bb.0: # %entry
671 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
672 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1, v0.t
675 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv1i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
676 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_7t(target("riscv.vector.tuple", <vscale x 1 x i8>, 7) %0, i32 1)
677 ret <vscale x 1 x i8> %1
680 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7), ptr, i64, i64, i64)
681 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
683 define <vscale x 2 x i8> @test_vlsseg7_nxv2i8_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl) {
684 ; CHECK-LABEL: test_vlsseg7_nxv2i8_triscv.vector.tuple_nxv2i8_7t:
685 ; CHECK: # %bb.0: # %entry
686 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
687 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1
690 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
691 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
692 ret <vscale x 2 x i8> %1
695 define <vscale x 2 x i8> @test_vlsseg7_mask_nxv2i8_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
696 ; CHECK-LABEL: test_vlsseg7_mask_nxv2i8_triscv.vector.tuple_nxv2i8_7t:
697 ; CHECK: # %bb.0: # %entry
698 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
699 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1, v0.t
702 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
703 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
704 ret <vscale x 2 x i8> %1
707 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7), ptr, i64, i64, i64)
708 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
710 define <vscale x 4 x i8> @test_vlsseg7_nxv4i8_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl) {
711 ; CHECK-LABEL: test_vlsseg7_nxv4i8_triscv.vector.tuple_nxv4i8_7t:
712 ; CHECK: # %bb.0: # %entry
713 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
714 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1
717 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
718 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
719 ret <vscale x 4 x i8> %1
722 define <vscale x 4 x i8> @test_vlsseg7_mask_nxv4i8_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
723 ; CHECK-LABEL: test_vlsseg7_mask_nxv4i8_triscv.vector.tuple_nxv4i8_7t:
724 ; CHECK: # %bb.0: # %entry
725 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
726 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1, v0.t
729 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
730 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
731 ret <vscale x 4 x i8> %1
734 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7), ptr, i64, i64, i64)
735 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
737 define <vscale x 8 x i8> @test_vlsseg7_nxv8i8_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
738 ; CHECK-LABEL: test_vlsseg7_nxv8i8_triscv.vector.tuple_nxv8i8_7t:
739 ; CHECK: # %bb.0: # %entry
740 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
741 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1
744 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
745 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
746 ret <vscale x 8 x i8> %1
749 define <vscale x 8 x i8> @test_vlsseg7_mask_nxv8i8_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
750 ; CHECK-LABEL: test_vlsseg7_mask_nxv8i8_triscv.vector.tuple_nxv8i8_7t:
751 ; CHECK: # %bb.0: # %entry
752 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
753 ; CHECK-NEXT: vlsseg7e8.v v7, (a0), a1, v0.t
756 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
757 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
758 ret <vscale x 8 x i8> %1
761 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8), ptr, i64, i64, i64)
762 declare target("riscv.vector.tuple", <vscale x 1 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv1i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 8), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
764 define <vscale x 1 x i8> @test_vlsseg8_nxv1i8_triscv.vector.tuple_nxv1i8_8t(ptr %base, i64 %offset, i64 %vl) {
765 ; CHECK-LABEL: test_vlsseg8_nxv1i8_triscv.vector.tuple_nxv1i8_8t:
766 ; CHECK: # %bb.0: # %entry
767 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
768 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1
771 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
772 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %0, i32 1)
773 ret <vscale x 1 x i8> %1
776 define <vscale x 1 x i8> @test_vlsseg8_mask_nxv1i8_triscv.vector.tuple_nxv1i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
777 ; CHECK-LABEL: test_vlsseg8_mask_nxv1i8_triscv.vector.tuple_nxv1i8_8t:
778 ; CHECK: # %bb.0: # %entry
779 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
780 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1, v0.t
783 %0 = tail call target("riscv.vector.tuple", <vscale x 1 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv1i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 3)
784 %1 = call <vscale x 1 x i8> @llvm.riscv.tuple.extract.nxv1i8.triscv.vector.tuple_nxv1i8_8t(target("riscv.vector.tuple", <vscale x 1 x i8>, 8) %0, i32 1)
785 ret <vscale x 1 x i8> %1
788 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8), ptr, i64, i64, i64)
789 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
791 define <vscale x 2 x i8> @test_vlsseg8_nxv2i8_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl) {
792 ; CHECK-LABEL: test_vlsseg8_nxv2i8_triscv.vector.tuple_nxv2i8_8t:
793 ; CHECK: # %bb.0: # %entry
794 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
795 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1
798 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
799 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
800 ret <vscale x 2 x i8> %1
803 define <vscale x 2 x i8> @test_vlsseg8_mask_nxv2i8_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
804 ; CHECK-LABEL: test_vlsseg8_mask_nxv2i8_triscv.vector.tuple_nxv2i8_8t:
805 ; CHECK: # %bb.0: # %entry
806 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
807 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1, v0.t
810 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 3)
811 %1 = call <vscale x 2 x i8> @llvm.riscv.tuple.extract.nxv2i8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
812 ret <vscale x 2 x i8> %1
815 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8), ptr, i64, i64, i64)
816 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
818 define <vscale x 4 x i8> @test_vlsseg8_nxv4i8_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl) {
819 ; CHECK-LABEL: test_vlsseg8_nxv4i8_triscv.vector.tuple_nxv4i8_8t:
820 ; CHECK: # %bb.0: # %entry
821 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
822 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1
825 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
826 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
827 ret <vscale x 4 x i8> %1
830 define <vscale x 4 x i8> @test_vlsseg8_mask_nxv4i8_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
831 ; CHECK-LABEL: test_vlsseg8_mask_nxv4i8_triscv.vector.tuple_nxv4i8_8t:
832 ; CHECK: # %bb.0: # %entry
833 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
834 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1, v0.t
837 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 3)
838 %1 = call <vscale x 4 x i8> @llvm.riscv.tuple.extract.nxv4i8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
839 ret <vscale x 4 x i8> %1
842 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8), ptr, i64, i64, i64)
843 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
845 define <vscale x 8 x i8> @test_vlsseg8_nxv8i8_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
846 ; CHECK-LABEL: test_vlsseg8_nxv8i8_triscv.vector.tuple_nxv8i8_8t:
847 ; CHECK: # %bb.0: # %entry
848 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
849 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1
852 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 3)
853 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
854 ret <vscale x 8 x i8> %1
857 define <vscale x 8 x i8> @test_vlsseg8_mask_nxv8i8_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
858 ; CHECK-LABEL: test_vlsseg8_mask_nxv8i8_triscv.vector.tuple_nxv8i8_8t:
859 ; CHECK: # %bb.0: # %entry
860 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
861 ; CHECK-NEXT: vlsseg8e8.v v7, (a0), a1, v0.t
864 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv8i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 3)
865 %1 = call <vscale x 8 x i8> @llvm.riscv.tuple.extract.nxv8i8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
866 ret <vscale x 8 x i8> %1
869 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
871 define <vscale x 1 x i16> @test_vlsseg2_nxv1i16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl) {
872 ; CHECK-LABEL: test_vlsseg2_nxv1i16_triscv.vector.tuple_nxv2i8_2t:
873 ; CHECK: # %bb.0: # %entry
874 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
875 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
878 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
879 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
880 ret <vscale x 1 x i16> %1
883 define <vscale x 1 x i16> @test_vlsseg2_mask_nxv1i16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
884 ; CHECK-LABEL: test_vlsseg2_mask_nxv1i16_triscv.vector.tuple_nxv2i8_2t:
885 ; CHECK: # %bb.0: # %entry
886 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
887 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
890 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
891 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
892 ret <vscale x 1 x i16> %1
895 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
897 define <vscale x 2 x i16> @test_vlsseg2_nxv2i16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl) {
898 ; CHECK-LABEL: test_vlsseg2_nxv2i16_triscv.vector.tuple_nxv4i8_2t:
899 ; CHECK: # %bb.0: # %entry
900 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
901 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
904 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
905 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
906 ret <vscale x 2 x i16> %1
909 define <vscale x 2 x i16> @test_vlsseg2_mask_nxv2i16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
910 ; CHECK-LABEL: test_vlsseg2_mask_nxv2i16_triscv.vector.tuple_nxv4i8_2t:
911 ; CHECK: # %bb.0: # %entry
912 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
913 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
916 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
917 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
918 ret <vscale x 2 x i16> %1
921 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
923 define <vscale x 4 x i16> @test_vlsseg2_nxv4i16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
924 ; CHECK-LABEL: test_vlsseg2_nxv4i16_triscv.vector.tuple_nxv8i8_2t:
925 ; CHECK: # %bb.0: # %entry
926 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
927 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
930 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
931 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
932 ret <vscale x 4 x i16> %1
935 define <vscale x 4 x i16> @test_vlsseg2_mask_nxv4i16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
936 ; CHECK-LABEL: test_vlsseg2_mask_nxv4i16_triscv.vector.tuple_nxv8i8_2t:
937 ; CHECK: # %bb.0: # %entry
938 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
939 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
942 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
943 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
944 ret <vscale x 4 x i16> %1
947 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
949 define <vscale x 8 x i16> @test_vlsseg2_nxv8i16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
950 ; CHECK-LABEL: test_vlsseg2_nxv8i16_triscv.vector.tuple_nxv16i8_2t:
951 ; CHECK: # %bb.0: # %entry
952 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
953 ; CHECK-NEXT: vlsseg2e16.v v6, (a0), a1
956 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
957 %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
958 ret <vscale x 8 x i16> %1
961 define <vscale x 8 x i16> @test_vlsseg2_mask_nxv8i16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
962 ; CHECK-LABEL: test_vlsseg2_mask_nxv8i16_triscv.vector.tuple_nxv16i8_2t:
963 ; CHECK: # %bb.0: # %entry
964 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
965 ; CHECK-NEXT: vlsseg2e16.v v6, (a0), a1, v0.t
968 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
969 %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
970 ret <vscale x 8 x i16> %1
973 declare target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), ptr, i64, <vscale x 16 x i1>, i64, i64, i64)
975 define <vscale x 16 x i16> @test_vlsseg2_nxv16i16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
976 ; CHECK-LABEL: test_vlsseg2_nxv16i16_triscv.vector.tuple_nxv32i8_2t:
977 ; CHECK: # %bb.0: # %entry
978 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
979 ; CHECK-NEXT: vlsseg2e16.v v4, (a0), a1
982 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
983 %1 = call <vscale x 16 x i16> @llvm.riscv.tuple.extract.nxv16i16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
984 ret <vscale x 16 x i16> %1
987 define <vscale x 16 x i16> @test_vlsseg2_mask_nxv16i16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 16 x i1> %mask) {
988 ; CHECK-LABEL: test_vlsseg2_mask_nxv16i16_triscv.vector.tuple_nxv32i8_2t:
989 ; CHECK: # %bb.0: # %entry
990 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
991 ; CHECK-NEXT: vlsseg2e16.v v4, (a0), a1, v0.t
994 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 16 x i1> %mask, i64 %vl, i64 1, i64 4)
995 %1 = call <vscale x 16 x i16> @llvm.riscv.tuple.extract.nxv16i16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
996 ret <vscale x 16 x i16> %1
999 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1001 define <vscale x 1 x i16> @test_vlsseg3_nxv1i16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl) {
1002 ; CHECK-LABEL: test_vlsseg3_nxv1i16_triscv.vector.tuple_nxv2i8_3t:
1003 ; CHECK: # %bb.0: # %entry
1004 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1005 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
1008 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1009 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
1010 ret <vscale x 1 x i16> %1
1013 define <vscale x 1 x i16> @test_vlsseg3_mask_nxv1i16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1014 ; CHECK-LABEL: test_vlsseg3_mask_nxv1i16_triscv.vector.tuple_nxv2i8_3t:
1015 ; CHECK: # %bb.0: # %entry
1016 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1017 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
1020 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
1021 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
1022 ret <vscale x 1 x i16> %1
1025 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1027 define <vscale x 2 x i16> @test_vlsseg3_nxv2i16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl) {
1028 ; CHECK-LABEL: test_vlsseg3_nxv2i16_triscv.vector.tuple_nxv4i8_3t:
1029 ; CHECK: # %bb.0: # %entry
1030 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1031 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
1034 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1035 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
1036 ret <vscale x 2 x i16> %1
1039 define <vscale x 2 x i16> @test_vlsseg3_mask_nxv2i16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1040 ; CHECK-LABEL: test_vlsseg3_mask_nxv2i16_triscv.vector.tuple_nxv4i8_3t:
1041 ; CHECK: # %bb.0: # %entry
1042 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1043 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
1046 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
1047 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
1048 ret <vscale x 2 x i16> %1
1051 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1053 define <vscale x 4 x i16> @test_vlsseg3_nxv4i16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
1054 ; CHECK-LABEL: test_vlsseg3_nxv4i16_triscv.vector.tuple_nxv8i8_3t:
1055 ; CHECK: # %bb.0: # %entry
1056 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1057 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
1060 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1061 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
1062 ret <vscale x 4 x i16> %1
1065 define <vscale x 4 x i16> @test_vlsseg3_mask_nxv4i16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1066 ; CHECK-LABEL: test_vlsseg3_mask_nxv4i16_triscv.vector.tuple_nxv8i8_3t:
1067 ; CHECK: # %bb.0: # %entry
1068 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1069 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
1072 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
1073 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
1074 ret <vscale x 4 x i16> %1
1077 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
1079 define <vscale x 8 x i16> @test_vlsseg3_nxv8i16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
1080 ; CHECK-LABEL: test_vlsseg3_nxv8i16_triscv.vector.tuple_nxv16i8_3t:
1081 ; CHECK: # %bb.0: # %entry
1082 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
1083 ; CHECK-NEXT: vlsseg3e16.v v6, (a0), a1
1086 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1087 %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
1088 ret <vscale x 8 x i16> %1
1091 define <vscale x 8 x i16> @test_vlsseg3_mask_nxv8i16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
1092 ; CHECK-LABEL: test_vlsseg3_mask_nxv8i16_triscv.vector.tuple_nxv16i8_3t:
1093 ; CHECK: # %bb.0: # %entry
1094 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
1095 ; CHECK-NEXT: vlsseg3e16.v v6, (a0), a1, v0.t
1098 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
1099 %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
1100 ret <vscale x 8 x i16> %1
1103 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1105 define <vscale x 1 x i16> @test_vlsseg4_nxv1i16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl) {
1106 ; CHECK-LABEL: test_vlsseg4_nxv1i16_triscv.vector.tuple_nxv2i8_4t:
1107 ; CHECK: # %bb.0: # %entry
1108 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1109 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
1112 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1113 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
1114 ret <vscale x 1 x i16> %1
1117 define <vscale x 1 x i16> @test_vlsseg4_mask_nxv1i16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1118 ; CHECK-LABEL: test_vlsseg4_mask_nxv1i16_triscv.vector.tuple_nxv2i8_4t:
1119 ; CHECK: # %bb.0: # %entry
1120 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1121 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
1124 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
1125 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
1126 ret <vscale x 1 x i16> %1
1129 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1131 define <vscale x 2 x i16> @test_vlsseg4_nxv2i16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl) {
1132 ; CHECK-LABEL: test_vlsseg4_nxv2i16_triscv.vector.tuple_nxv4i8_4t:
1133 ; CHECK: # %bb.0: # %entry
1134 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1135 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
1138 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1139 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
1140 ret <vscale x 2 x i16> %1
1143 define <vscale x 2 x i16> @test_vlsseg4_mask_nxv2i16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1144 ; CHECK-LABEL: test_vlsseg4_mask_nxv2i16_triscv.vector.tuple_nxv4i8_4t:
1145 ; CHECK: # %bb.0: # %entry
1146 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1147 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
1150 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
1151 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
1152 ret <vscale x 2 x i16> %1
1155 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1157 define <vscale x 4 x i16> @test_vlsseg4_nxv4i16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
1158 ; CHECK-LABEL: test_vlsseg4_nxv4i16_triscv.vector.tuple_nxv8i8_4t:
1159 ; CHECK: # %bb.0: # %entry
1160 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1161 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
1164 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1165 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
1166 ret <vscale x 4 x i16> %1
1169 define <vscale x 4 x i16> @test_vlsseg4_mask_nxv4i16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1170 ; CHECK-LABEL: test_vlsseg4_mask_nxv4i16_triscv.vector.tuple_nxv8i8_4t:
1171 ; CHECK: # %bb.0: # %entry
1172 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1173 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
1176 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
1177 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
1178 ret <vscale x 4 x i16> %1
1181 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
1183 define <vscale x 8 x i16> @test_vlsseg4_nxv8i16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
1184 ; CHECK-LABEL: test_vlsseg4_nxv8i16_triscv.vector.tuple_nxv16i8_4t:
1185 ; CHECK: # %bb.0: # %entry
1186 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
1187 ; CHECK-NEXT: vlsseg4e16.v v6, (a0), a1
1190 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1191 %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
1192 ret <vscale x 8 x i16> %1
1195 define <vscale x 8 x i16> @test_vlsseg4_mask_nxv8i16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
1196 ; CHECK-LABEL: test_vlsseg4_mask_nxv8i16_triscv.vector.tuple_nxv16i8_4t:
1197 ; CHECK: # %bb.0: # %entry
1198 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
1199 ; CHECK-NEXT: vlsseg4e16.v v6, (a0), a1, v0.t
1202 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
1203 %1 = call <vscale x 8 x i16> @llvm.riscv.tuple.extract.nxv8i16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
1204 ret <vscale x 8 x i16> %1
1207 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1209 define <vscale x 1 x i16> @test_vlsseg5_nxv1i16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl) {
1210 ; CHECK-LABEL: test_vlsseg5_nxv1i16_triscv.vector.tuple_nxv2i8_5t:
1211 ; CHECK: # %bb.0: # %entry
1212 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1213 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
1216 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1217 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
1218 ret <vscale x 1 x i16> %1
1221 define <vscale x 1 x i16> @test_vlsseg5_mask_nxv1i16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1222 ; CHECK-LABEL: test_vlsseg5_mask_nxv1i16_triscv.vector.tuple_nxv2i8_5t:
1223 ; CHECK: # %bb.0: # %entry
1224 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1225 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
1228 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
1229 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
1230 ret <vscale x 1 x i16> %1
1233 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1235 define <vscale x 2 x i16> @test_vlsseg5_nxv2i16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl) {
1236 ; CHECK-LABEL: test_vlsseg5_nxv2i16_triscv.vector.tuple_nxv4i8_5t:
1237 ; CHECK: # %bb.0: # %entry
1238 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1239 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
1242 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1243 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
1244 ret <vscale x 2 x i16> %1
1247 define <vscale x 2 x i16> @test_vlsseg5_mask_nxv2i16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1248 ; CHECK-LABEL: test_vlsseg5_mask_nxv2i16_triscv.vector.tuple_nxv4i8_5t:
1249 ; CHECK: # %bb.0: # %entry
1250 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1251 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
1254 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
1255 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
1256 ret <vscale x 2 x i16> %1
1259 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1261 define <vscale x 4 x i16> @test_vlsseg5_nxv4i16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
1262 ; CHECK-LABEL: test_vlsseg5_nxv4i16_triscv.vector.tuple_nxv8i8_5t:
1263 ; CHECK: # %bb.0: # %entry
1264 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1265 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
1268 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1269 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
1270 ret <vscale x 4 x i16> %1
1273 define <vscale x 4 x i16> @test_vlsseg5_mask_nxv4i16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1274 ; CHECK-LABEL: test_vlsseg5_mask_nxv4i16_triscv.vector.tuple_nxv8i8_5t:
1275 ; CHECK: # %bb.0: # %entry
1276 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1277 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
1280 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
1281 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
1282 ret <vscale x 4 x i16> %1
1285 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1287 define <vscale x 1 x i16> @test_vlsseg6_nxv1i16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl) {
1288 ; CHECK-LABEL: test_vlsseg6_nxv1i16_triscv.vector.tuple_nxv2i8_6t:
1289 ; CHECK: # %bb.0: # %entry
1290 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1291 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
1294 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1295 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
1296 ret <vscale x 1 x i16> %1
1299 define <vscale x 1 x i16> @test_vlsseg6_mask_nxv1i16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1300 ; CHECK-LABEL: test_vlsseg6_mask_nxv1i16_triscv.vector.tuple_nxv2i8_6t:
1301 ; CHECK: # %bb.0: # %entry
1302 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1303 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
1306 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
1307 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
1308 ret <vscale x 1 x i16> %1
1311 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1313 define <vscale x 2 x i16> @test_vlsseg6_nxv2i16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl) {
1314 ; CHECK-LABEL: test_vlsseg6_nxv2i16_triscv.vector.tuple_nxv4i8_6t:
1315 ; CHECK: # %bb.0: # %entry
1316 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1317 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
1320 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1321 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
1322 ret <vscale x 2 x i16> %1
1325 define <vscale x 2 x i16> @test_vlsseg6_mask_nxv2i16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1326 ; CHECK-LABEL: test_vlsseg6_mask_nxv2i16_triscv.vector.tuple_nxv4i8_6t:
1327 ; CHECK: # %bb.0: # %entry
1328 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1329 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
1332 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
1333 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
1334 ret <vscale x 2 x i16> %1
1337 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1339 define <vscale x 4 x i16> @test_vlsseg6_nxv4i16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
1340 ; CHECK-LABEL: test_vlsseg6_nxv4i16_triscv.vector.tuple_nxv8i8_6t:
1341 ; CHECK: # %bb.0: # %entry
1342 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1343 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
1346 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1347 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
1348 ret <vscale x 4 x i16> %1
1351 define <vscale x 4 x i16> @test_vlsseg6_mask_nxv4i16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1352 ; CHECK-LABEL: test_vlsseg6_mask_nxv4i16_triscv.vector.tuple_nxv8i8_6t:
1353 ; CHECK: # %bb.0: # %entry
1354 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1355 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
1358 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
1359 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
1360 ret <vscale x 4 x i16> %1
1363 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1365 define <vscale x 1 x i16> @test_vlsseg7_nxv1i16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl) {
1366 ; CHECK-LABEL: test_vlsseg7_nxv1i16_triscv.vector.tuple_nxv2i8_7t:
1367 ; CHECK: # %bb.0: # %entry
1368 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1369 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
1372 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1373 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
1374 ret <vscale x 1 x i16> %1
1377 define <vscale x 1 x i16> @test_vlsseg7_mask_nxv1i16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1378 ; CHECK-LABEL: test_vlsseg7_mask_nxv1i16_triscv.vector.tuple_nxv2i8_7t:
1379 ; CHECK: # %bb.0: # %entry
1380 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1381 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
1384 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
1385 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
1386 ret <vscale x 1 x i16> %1
1389 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1391 define <vscale x 2 x i16> @test_vlsseg7_nxv2i16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl) {
1392 ; CHECK-LABEL: test_vlsseg7_nxv2i16_triscv.vector.tuple_nxv4i8_7t:
1393 ; CHECK: # %bb.0: # %entry
1394 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1395 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
1398 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1399 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
1400 ret <vscale x 2 x i16> %1
1403 define <vscale x 2 x i16> @test_vlsseg7_mask_nxv2i16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1404 ; CHECK-LABEL: test_vlsseg7_mask_nxv2i16_triscv.vector.tuple_nxv4i8_7t:
1405 ; CHECK: # %bb.0: # %entry
1406 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1407 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
1410 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
1411 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
1412 ret <vscale x 2 x i16> %1
1415 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1417 define <vscale x 4 x i16> @test_vlsseg7_nxv4i16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
1418 ; CHECK-LABEL: test_vlsseg7_nxv4i16_triscv.vector.tuple_nxv8i8_7t:
1419 ; CHECK: # %bb.0: # %entry
1420 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1421 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
1424 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1425 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
1426 ret <vscale x 4 x i16> %1
1429 define <vscale x 4 x i16> @test_vlsseg7_mask_nxv4i16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1430 ; CHECK-LABEL: test_vlsseg7_mask_nxv4i16_triscv.vector.tuple_nxv8i8_7t:
1431 ; CHECK: # %bb.0: # %entry
1432 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1433 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
1436 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
1437 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
1438 ret <vscale x 4 x i16> %1
1441 declare target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1443 define <vscale x 1 x i16> @test_vlsseg8_nxv1i16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl) {
1444 ; CHECK-LABEL: test_vlsseg8_nxv1i16_triscv.vector.tuple_nxv2i8_8t:
1445 ; CHECK: # %bb.0: # %entry
1446 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1447 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
1450 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1451 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
1452 ret <vscale x 1 x i16> %1
1455 define <vscale x 1 x i16> @test_vlsseg8_mask_nxv1i16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1456 ; CHECK-LABEL: test_vlsseg8_mask_nxv1i16_triscv.vector.tuple_nxv2i8_8t:
1457 ; CHECK: # %bb.0: # %entry
1458 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1459 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
1462 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
1463 %1 = call <vscale x 1 x i16> @llvm.riscv.tuple.extract.nxv1i16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
1464 ret <vscale x 1 x i16> %1
1467 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1469 define <vscale x 2 x i16> @test_vlsseg8_nxv2i16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl) {
1470 ; CHECK-LABEL: test_vlsseg8_nxv2i16_triscv.vector.tuple_nxv4i8_8t:
1471 ; CHECK: # %bb.0: # %entry
1472 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1473 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
1476 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1477 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
1478 ret <vscale x 2 x i16> %1
1481 define <vscale x 2 x i16> @test_vlsseg8_mask_nxv2i16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1482 ; CHECK-LABEL: test_vlsseg8_mask_nxv2i16_triscv.vector.tuple_nxv4i8_8t:
1483 ; CHECK: # %bb.0: # %entry
1484 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1485 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
1488 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
1489 %1 = call <vscale x 2 x i16> @llvm.riscv.tuple.extract.nxv2i16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
1490 ret <vscale x 2 x i16> %1
1493 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1495 define <vscale x 4 x i16> @test_vlsseg8_nxv4i16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
1496 ; CHECK-LABEL: test_vlsseg8_nxv4i16_triscv.vector.tuple_nxv8i8_8t:
1497 ; CHECK: # %bb.0: # %entry
1498 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1499 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
1502 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
1503 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
1504 ret <vscale x 4 x i16> %1
1507 define <vscale x 4 x i16> @test_vlsseg8_mask_nxv4i16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1508 ; CHECK-LABEL: test_vlsseg8_mask_nxv4i16_triscv.vector.tuple_nxv8i8_8t:
1509 ; CHECK: # %bb.0: # %entry
1510 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1511 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
1514 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
1515 %1 = call <vscale x 4 x i16> @llvm.riscv.tuple.extract.nxv4i16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
1516 ret <vscale x 4 x i16> %1
1519 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1521 define <vscale x 1 x i32> @test_vlsseg2_nxv1i32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl) {
1522 ; CHECK-LABEL: test_vlsseg2_nxv1i32_triscv.vector.tuple_nxv4i8_2t:
1523 ; CHECK: # %bb.0: # %entry
1524 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1525 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1
1528 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1529 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
1530 ret <vscale x 1 x i32> %1
1533 define <vscale x 1 x i32> @test_vlsseg2_mask_nxv1i32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1534 ; CHECK-LABEL: test_vlsseg2_mask_nxv1i32_triscv.vector.tuple_nxv4i8_2t:
1535 ; CHECK: # %bb.0: # %entry
1536 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1537 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1, v0.t
1540 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1541 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
1542 ret <vscale x 1 x i32> %1
1545 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1547 define <vscale x 2 x i32> @test_vlsseg2_nxv2i32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
1548 ; CHECK-LABEL: test_vlsseg2_nxv2i32_triscv.vector.tuple_nxv8i8_2t:
1549 ; CHECK: # %bb.0: # %entry
1550 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1551 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1
1554 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1555 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
1556 ret <vscale x 2 x i32> %1
1559 define <vscale x 2 x i32> @test_vlsseg2_mask_nxv2i32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1560 ; CHECK-LABEL: test_vlsseg2_mask_nxv2i32_triscv.vector.tuple_nxv8i8_2t:
1561 ; CHECK: # %bb.0: # %entry
1562 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1563 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1, v0.t
1566 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1567 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
1568 ret <vscale x 2 x i32> %1
1571 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1573 define <vscale x 4 x i32> @test_vlsseg2_nxv4i32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
1574 ; CHECK-LABEL: test_vlsseg2_nxv4i32_triscv.vector.tuple_nxv16i8_2t:
1575 ; CHECK: # %bb.0: # %entry
1576 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1577 ; CHECK-NEXT: vlsseg2e32.v v6, (a0), a1
1580 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1581 %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
1582 ret <vscale x 4 x i32> %1
1585 define <vscale x 4 x i32> @test_vlsseg2_mask_nxv4i32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1586 ; CHECK-LABEL: test_vlsseg2_mask_nxv4i32_triscv.vector.tuple_nxv16i8_2t:
1587 ; CHECK: # %bb.0: # %entry
1588 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1589 ; CHECK-NEXT: vlsseg2e32.v v6, (a0), a1, v0.t
1592 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 5)
1593 %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
1594 ret <vscale x 4 x i32> %1
1597 declare target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), ptr, i64, <vscale x 8 x i1>, i64, i64, i64)
1599 define <vscale x 8 x i32> @test_vlsseg2_nxv8i32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
1600 ; CHECK-LABEL: test_vlsseg2_nxv8i32_triscv.vector.tuple_nxv32i8_2t:
1601 ; CHECK: # %bb.0: # %entry
1602 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, ma
1603 ; CHECK-NEXT: vlsseg2e32.v v4, (a0), a1
1606 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1607 %1 = call <vscale x 8 x i32> @llvm.riscv.tuple.extract.nxv8i32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
1608 ret <vscale x 8 x i32> %1
1611 define <vscale x 8 x i32> @test_vlsseg2_mask_nxv8i32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
1612 ; CHECK-LABEL: test_vlsseg2_mask_nxv8i32_triscv.vector.tuple_nxv32i8_2t:
1613 ; CHECK: # %bb.0: # %entry
1614 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, ma
1615 ; CHECK-NEXT: vlsseg2e32.v v4, (a0), a1, v0.t
1618 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 5)
1619 %1 = call <vscale x 8 x i32> @llvm.riscv.tuple.extract.nxv8i32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
1620 ret <vscale x 8 x i32> %1
1623 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1625 define <vscale x 1 x i32> @test_vlsseg3_nxv1i32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl) {
1626 ; CHECK-LABEL: test_vlsseg3_nxv1i32_triscv.vector.tuple_nxv4i8_3t:
1627 ; CHECK: # %bb.0: # %entry
1628 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1629 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1
1632 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1633 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
1634 ret <vscale x 1 x i32> %1
1637 define <vscale x 1 x i32> @test_vlsseg3_mask_nxv1i32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1638 ; CHECK-LABEL: test_vlsseg3_mask_nxv1i32_triscv.vector.tuple_nxv4i8_3t:
1639 ; CHECK: # %bb.0: # %entry
1640 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1641 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1, v0.t
1644 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1645 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
1646 ret <vscale x 1 x i32> %1
1649 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1651 define <vscale x 2 x i32> @test_vlsseg3_nxv2i32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
1652 ; CHECK-LABEL: test_vlsseg3_nxv2i32_triscv.vector.tuple_nxv8i8_3t:
1653 ; CHECK: # %bb.0: # %entry
1654 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1655 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1
1658 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1659 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
1660 ret <vscale x 2 x i32> %1
1663 define <vscale x 2 x i32> @test_vlsseg3_mask_nxv2i32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1664 ; CHECK-LABEL: test_vlsseg3_mask_nxv2i32_triscv.vector.tuple_nxv8i8_3t:
1665 ; CHECK: # %bb.0: # %entry
1666 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1667 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1, v0.t
1670 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1671 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
1672 ret <vscale x 2 x i32> %1
1675 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1677 define <vscale x 4 x i32> @test_vlsseg3_nxv4i32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
1678 ; CHECK-LABEL: test_vlsseg3_nxv4i32_triscv.vector.tuple_nxv16i8_3t:
1679 ; CHECK: # %bb.0: # %entry
1680 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1681 ; CHECK-NEXT: vlsseg3e32.v v6, (a0), a1
1684 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1685 %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
1686 ret <vscale x 4 x i32> %1
1689 define <vscale x 4 x i32> @test_vlsseg3_mask_nxv4i32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1690 ; CHECK-LABEL: test_vlsseg3_mask_nxv4i32_triscv.vector.tuple_nxv16i8_3t:
1691 ; CHECK: # %bb.0: # %entry
1692 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1693 ; CHECK-NEXT: vlsseg3e32.v v6, (a0), a1, v0.t
1696 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 5)
1697 %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
1698 ret <vscale x 4 x i32> %1
1701 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1703 define <vscale x 1 x i32> @test_vlsseg4_nxv1i32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl) {
1704 ; CHECK-LABEL: test_vlsseg4_nxv1i32_triscv.vector.tuple_nxv4i8_4t:
1705 ; CHECK: # %bb.0: # %entry
1706 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1707 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1
1710 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1711 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
1712 ret <vscale x 1 x i32> %1
1715 define <vscale x 1 x i32> @test_vlsseg4_mask_nxv1i32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1716 ; CHECK-LABEL: test_vlsseg4_mask_nxv1i32_triscv.vector.tuple_nxv4i8_4t:
1717 ; CHECK: # %bb.0: # %entry
1718 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1719 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1, v0.t
1722 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1723 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
1724 ret <vscale x 1 x i32> %1
1727 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1729 define <vscale x 2 x i32> @test_vlsseg4_nxv2i32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
1730 ; CHECK-LABEL: test_vlsseg4_nxv2i32_triscv.vector.tuple_nxv8i8_4t:
1731 ; CHECK: # %bb.0: # %entry
1732 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1733 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1
1736 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1737 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
1738 ret <vscale x 2 x i32> %1
1741 define <vscale x 2 x i32> @test_vlsseg4_mask_nxv2i32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1742 ; CHECK-LABEL: test_vlsseg4_mask_nxv2i32_triscv.vector.tuple_nxv8i8_4t:
1743 ; CHECK: # %bb.0: # %entry
1744 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1745 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1, v0.t
1748 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1749 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
1750 ret <vscale x 2 x i32> %1
1753 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
1755 define <vscale x 4 x i32> @test_vlsseg4_nxv4i32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
1756 ; CHECK-LABEL: test_vlsseg4_nxv4i32_triscv.vector.tuple_nxv16i8_4t:
1757 ; CHECK: # %bb.0: # %entry
1758 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1759 ; CHECK-NEXT: vlsseg4e32.v v6, (a0), a1
1762 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1763 %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
1764 ret <vscale x 4 x i32> %1
1767 define <vscale x 4 x i32> @test_vlsseg4_mask_nxv4i32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
1768 ; CHECK-LABEL: test_vlsseg4_mask_nxv4i32_triscv.vector.tuple_nxv16i8_4t:
1769 ; CHECK: # %bb.0: # %entry
1770 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1771 ; CHECK-NEXT: vlsseg4e32.v v6, (a0), a1, v0.t
1774 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 5)
1775 %1 = call <vscale x 4 x i32> @llvm.riscv.tuple.extract.nxv4i32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
1776 ret <vscale x 4 x i32> %1
1779 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1781 define <vscale x 1 x i32> @test_vlsseg5_nxv1i32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl) {
1782 ; CHECK-LABEL: test_vlsseg5_nxv1i32_triscv.vector.tuple_nxv4i8_5t:
1783 ; CHECK: # %bb.0: # %entry
1784 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1785 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1
1788 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1789 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
1790 ret <vscale x 1 x i32> %1
1793 define <vscale x 1 x i32> @test_vlsseg5_mask_nxv1i32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1794 ; CHECK-LABEL: test_vlsseg5_mask_nxv1i32_triscv.vector.tuple_nxv4i8_5t:
1795 ; CHECK: # %bb.0: # %entry
1796 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1797 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1, v0.t
1800 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1801 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
1802 ret <vscale x 1 x i32> %1
1805 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1807 define <vscale x 2 x i32> @test_vlsseg5_nxv2i32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
1808 ; CHECK-LABEL: test_vlsseg5_nxv2i32_triscv.vector.tuple_nxv8i8_5t:
1809 ; CHECK: # %bb.0: # %entry
1810 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1811 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1
1814 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1815 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
1816 ret <vscale x 2 x i32> %1
1819 define <vscale x 2 x i32> @test_vlsseg5_mask_nxv2i32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1820 ; CHECK-LABEL: test_vlsseg5_mask_nxv2i32_triscv.vector.tuple_nxv8i8_5t:
1821 ; CHECK: # %bb.0: # %entry
1822 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1823 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1, v0.t
1826 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1827 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
1828 ret <vscale x 2 x i32> %1
1831 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1833 define <vscale x 1 x i32> @test_vlsseg6_nxv1i32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl) {
1834 ; CHECK-LABEL: test_vlsseg6_nxv1i32_triscv.vector.tuple_nxv4i8_6t:
1835 ; CHECK: # %bb.0: # %entry
1836 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1837 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1
1840 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1841 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
1842 ret <vscale x 1 x i32> %1
1845 define <vscale x 1 x i32> @test_vlsseg6_mask_nxv1i32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1846 ; CHECK-LABEL: test_vlsseg6_mask_nxv1i32_triscv.vector.tuple_nxv4i8_6t:
1847 ; CHECK: # %bb.0: # %entry
1848 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1849 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1, v0.t
1852 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1853 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
1854 ret <vscale x 1 x i32> %1
1857 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1859 define <vscale x 2 x i32> @test_vlsseg6_nxv2i32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
1860 ; CHECK-LABEL: test_vlsseg6_nxv2i32_triscv.vector.tuple_nxv8i8_6t:
1861 ; CHECK: # %bb.0: # %entry
1862 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1863 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1
1866 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1867 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
1868 ret <vscale x 2 x i32> %1
1871 define <vscale x 2 x i32> @test_vlsseg6_mask_nxv2i32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1872 ; CHECK-LABEL: test_vlsseg6_mask_nxv2i32_triscv.vector.tuple_nxv8i8_6t:
1873 ; CHECK: # %bb.0: # %entry
1874 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1875 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1, v0.t
1878 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1879 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
1880 ret <vscale x 2 x i32> %1
1883 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1885 define <vscale x 1 x i32> @test_vlsseg7_nxv1i32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl) {
1886 ; CHECK-LABEL: test_vlsseg7_nxv1i32_triscv.vector.tuple_nxv4i8_7t:
1887 ; CHECK: # %bb.0: # %entry
1888 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1889 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1
1892 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1893 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
1894 ret <vscale x 1 x i32> %1
1897 define <vscale x 1 x i32> @test_vlsseg7_mask_nxv1i32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1898 ; CHECK-LABEL: test_vlsseg7_mask_nxv1i32_triscv.vector.tuple_nxv4i8_7t:
1899 ; CHECK: # %bb.0: # %entry
1900 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1901 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1, v0.t
1904 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1905 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
1906 ret <vscale x 1 x i32> %1
1909 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1911 define <vscale x 2 x i32> @test_vlsseg7_nxv2i32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
1912 ; CHECK-LABEL: test_vlsseg7_nxv2i32_triscv.vector.tuple_nxv8i8_7t:
1913 ; CHECK: # %bb.0: # %entry
1914 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1915 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1
1918 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1919 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
1920 ret <vscale x 2 x i32> %1
1923 define <vscale x 2 x i32> @test_vlsseg7_mask_nxv2i32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1924 ; CHECK-LABEL: test_vlsseg7_mask_nxv2i32_triscv.vector.tuple_nxv8i8_7t:
1925 ; CHECK: # %bb.0: # %entry
1926 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1927 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1, v0.t
1930 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1931 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
1932 ret <vscale x 2 x i32> %1
1935 declare target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1937 define <vscale x 1 x i32> @test_vlsseg8_nxv1i32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl) {
1938 ; CHECK-LABEL: test_vlsseg8_nxv1i32_triscv.vector.tuple_nxv4i8_8t:
1939 ; CHECK: # %bb.0: # %entry
1940 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1941 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1
1944 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1945 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
1946 ret <vscale x 1 x i32> %1
1949 define <vscale x 1 x i32> @test_vlsseg8_mask_nxv1i32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
1950 ; CHECK-LABEL: test_vlsseg8_mask_nxv1i32_triscv.vector.tuple_nxv4i8_8t:
1951 ; CHECK: # %bb.0: # %entry
1952 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
1953 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1, v0.t
1956 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
1957 %1 = call <vscale x 1 x i32> @llvm.riscv.tuple.extract.nxv1i32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
1958 ret <vscale x 1 x i32> %1
1961 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
1963 define <vscale x 2 x i32> @test_vlsseg8_nxv2i32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
1964 ; CHECK-LABEL: test_vlsseg8_nxv2i32_triscv.vector.tuple_nxv8i8_8t:
1965 ; CHECK: # %bb.0: # %entry
1966 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1967 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1
1970 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
1971 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
1972 ret <vscale x 2 x i32> %1
1975 define <vscale x 2 x i32> @test_vlsseg8_mask_nxv2i32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
1976 ; CHECK-LABEL: test_vlsseg8_mask_nxv2i32_triscv.vector.tuple_nxv8i8_8t:
1977 ; CHECK: # %bb.0: # %entry
1978 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
1979 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1, v0.t
1982 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
1983 %1 = call <vscale x 2 x i32> @llvm.riscv.tuple.extract.nxv2i32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
1984 ret <vscale x 2 x i32> %1
1987 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
1989 define <vscale x 1 x i64> @test_vlsseg2_nxv1i64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
1990 ; CHECK-LABEL: test_vlsseg2_nxv1i64_triscv.vector.tuple_nxv8i8_2t:
1991 ; CHECK: # %bb.0: # %entry
1992 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
1993 ; CHECK-NEXT: vlsseg2e64.v v7, (a0), a1
1996 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
1997 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
1998 ret <vscale x 1 x i64> %1
2001 define <vscale x 1 x i64> @test_vlsseg2_mask_nxv1i64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2002 ; CHECK-LABEL: test_vlsseg2_mask_nxv1i64_triscv.vector.tuple_nxv8i8_2t:
2003 ; CHECK: # %bb.0: # %entry
2004 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2005 ; CHECK-NEXT: vlsseg2e64.v v7, (a0), a1, v0.t
2008 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2009 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
2010 ret <vscale x 1 x i64> %1
2013 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
2015 define <vscale x 2 x i64> @test_vlsseg2_nxv2i64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
2016 ; CHECK-LABEL: test_vlsseg2_nxv2i64_triscv.vector.tuple_nxv16i8_2t:
2017 ; CHECK: # %bb.0: # %entry
2018 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
2019 ; CHECK-NEXT: vlsseg2e64.v v6, (a0), a1
2022 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2023 %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
2024 ret <vscale x 2 x i64> %1
2027 define <vscale x 2 x i64> @test_vlsseg2_mask_nxv2i64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2028 ; CHECK-LABEL: test_vlsseg2_mask_nxv2i64_triscv.vector.tuple_nxv16i8_2t:
2029 ; CHECK: # %bb.0: # %entry
2030 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
2031 ; CHECK-NEXT: vlsseg2e64.v v6, (a0), a1, v0.t
2034 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 6)
2035 %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
2036 ret <vscale x 2 x i64> %1
2039 declare target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2), ptr, i64, <vscale x 4 x i1>, i64, i64, i64)
2041 define <vscale x 4 x i64> @test_vlsseg2_nxv4i64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
2042 ; CHECK-LABEL: test_vlsseg2_nxv4i64_triscv.vector.tuple_nxv32i8_2t:
2043 ; CHECK: # %bb.0: # %entry
2044 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, ma
2045 ; CHECK-NEXT: vlsseg2e64.v v4, (a0), a1
2048 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2049 %1 = call <vscale x 4 x i64> @llvm.riscv.tuple.extract.nxv4i64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
2050 ret <vscale x 4 x i64> %1
2053 define <vscale x 4 x i64> @test_vlsseg2_mask_nxv4i64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2054 ; CHECK-LABEL: test_vlsseg2_mask_nxv4i64_triscv.vector.tuple_nxv32i8_2t:
2055 ; CHECK: # %bb.0: # %entry
2056 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, ma
2057 ; CHECK-NEXT: vlsseg2e64.v v4, (a0), a1, v0.t
2060 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 6)
2061 %1 = call <vscale x 4 x i64> @llvm.riscv.tuple.extract.nxv4i64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
2062 ret <vscale x 4 x i64> %1
2065 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
2067 define <vscale x 1 x i64> @test_vlsseg3_nxv1i64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
2068 ; CHECK-LABEL: test_vlsseg3_nxv1i64_triscv.vector.tuple_nxv8i8_3t:
2069 ; CHECK: # %bb.0: # %entry
2070 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2071 ; CHECK-NEXT: vlsseg3e64.v v7, (a0), a1
2074 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2075 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
2076 ret <vscale x 1 x i64> %1
2079 define <vscale x 1 x i64> @test_vlsseg3_mask_nxv1i64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2080 ; CHECK-LABEL: test_vlsseg3_mask_nxv1i64_triscv.vector.tuple_nxv8i8_3t:
2081 ; CHECK: # %bb.0: # %entry
2082 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2083 ; CHECK-NEXT: vlsseg3e64.v v7, (a0), a1, v0.t
2086 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2087 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
2088 ret <vscale x 1 x i64> %1
2091 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
2093 define <vscale x 2 x i64> @test_vlsseg3_nxv2i64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
2094 ; CHECK-LABEL: test_vlsseg3_nxv2i64_triscv.vector.tuple_nxv16i8_3t:
2095 ; CHECK: # %bb.0: # %entry
2096 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
2097 ; CHECK-NEXT: vlsseg3e64.v v6, (a0), a1
2100 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2101 %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
2102 ret <vscale x 2 x i64> %1
2105 define <vscale x 2 x i64> @test_vlsseg3_mask_nxv2i64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2106 ; CHECK-LABEL: test_vlsseg3_mask_nxv2i64_triscv.vector.tuple_nxv16i8_3t:
2107 ; CHECK: # %bb.0: # %entry
2108 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
2109 ; CHECK-NEXT: vlsseg3e64.v v6, (a0), a1, v0.t
2112 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 6)
2113 %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
2114 ret <vscale x 2 x i64> %1
2117 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
2119 define <vscale x 1 x i64> @test_vlsseg4_nxv1i64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
2120 ; CHECK-LABEL: test_vlsseg4_nxv1i64_triscv.vector.tuple_nxv8i8_4t:
2121 ; CHECK: # %bb.0: # %entry
2122 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2123 ; CHECK-NEXT: vlsseg4e64.v v7, (a0), a1
2126 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2127 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
2128 ret <vscale x 1 x i64> %1
2131 define <vscale x 1 x i64> @test_vlsseg4_mask_nxv1i64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2132 ; CHECK-LABEL: test_vlsseg4_mask_nxv1i64_triscv.vector.tuple_nxv8i8_4t:
2133 ; CHECK: # %bb.0: # %entry
2134 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2135 ; CHECK-NEXT: vlsseg4e64.v v7, (a0), a1, v0.t
2138 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2139 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
2140 ret <vscale x 1 x i64> %1
2143 declare target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4), ptr, i64, <vscale x 2 x i1>, i64, i64, i64)
2145 define <vscale x 2 x i64> @test_vlsseg4_nxv2i64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
2146 ; CHECK-LABEL: test_vlsseg4_nxv2i64_triscv.vector.tuple_nxv16i8_4t:
2147 ; CHECK: # %bb.0: # %entry
2148 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
2149 ; CHECK-NEXT: vlsseg4e64.v v6, (a0), a1
2152 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2153 %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
2154 ret <vscale x 2 x i64> %1
2157 define <vscale x 2 x i64> @test_vlsseg4_mask_nxv2i64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2158 ; CHECK-LABEL: test_vlsseg4_mask_nxv2i64_triscv.vector.tuple_nxv16i8_4t:
2159 ; CHECK: # %bb.0: # %entry
2160 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
2161 ; CHECK-NEXT: vlsseg4e64.v v6, (a0), a1, v0.t
2164 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 6)
2165 %1 = call <vscale x 2 x i64> @llvm.riscv.tuple.extract.nxv2i64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
2166 ret <vscale x 2 x i64> %1
2169 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
2171 define <vscale x 1 x i64> @test_vlsseg5_nxv1i64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
2172 ; CHECK-LABEL: test_vlsseg5_nxv1i64_triscv.vector.tuple_nxv8i8_5t:
2173 ; CHECK: # %bb.0: # %entry
2174 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2175 ; CHECK-NEXT: vlsseg5e64.v v7, (a0), a1
2178 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2179 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
2180 ret <vscale x 1 x i64> %1
2183 define <vscale x 1 x i64> @test_vlsseg5_mask_nxv1i64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2184 ; CHECK-LABEL: test_vlsseg5_mask_nxv1i64_triscv.vector.tuple_nxv8i8_5t:
2185 ; CHECK: # %bb.0: # %entry
2186 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2187 ; CHECK-NEXT: vlsseg5e64.v v7, (a0), a1, v0.t
2190 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2191 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
2192 ret <vscale x 1 x i64> %1
2195 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
2197 define <vscale x 1 x i64> @test_vlsseg6_nxv1i64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
2198 ; CHECK-LABEL: test_vlsseg6_nxv1i64_triscv.vector.tuple_nxv8i8_6t:
2199 ; CHECK: # %bb.0: # %entry
2200 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2201 ; CHECK-NEXT: vlsseg6e64.v v7, (a0), a1
2204 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2205 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
2206 ret <vscale x 1 x i64> %1
2209 define <vscale x 1 x i64> @test_vlsseg6_mask_nxv1i64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2210 ; CHECK-LABEL: test_vlsseg6_mask_nxv1i64_triscv.vector.tuple_nxv8i8_6t:
2211 ; CHECK: # %bb.0: # %entry
2212 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2213 ; CHECK-NEXT: vlsseg6e64.v v7, (a0), a1, v0.t
2216 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2217 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
2218 ret <vscale x 1 x i64> %1
2221 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
2223 define <vscale x 1 x i64> @test_vlsseg7_nxv1i64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
2224 ; CHECK-LABEL: test_vlsseg7_nxv1i64_triscv.vector.tuple_nxv8i8_7t:
2225 ; CHECK: # %bb.0: # %entry
2226 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2227 ; CHECK-NEXT: vlsseg7e64.v v7, (a0), a1
2230 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2231 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
2232 ret <vscale x 1 x i64> %1
2235 define <vscale x 1 x i64> @test_vlsseg7_mask_nxv1i64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2236 ; CHECK-LABEL: test_vlsseg7_mask_nxv1i64_triscv.vector.tuple_nxv8i8_7t:
2237 ; CHECK: # %bb.0: # %entry
2238 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2239 ; CHECK-NEXT: vlsseg7e64.v v7, (a0), a1, v0.t
2242 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2243 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
2244 ret <vscale x 1 x i64> %1
2247 declare target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8), ptr, i64, <vscale x 1 x i1>, i64, i64, i64)
2249 define <vscale x 1 x i64> @test_vlsseg8_nxv1i64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
2250 ; CHECK-LABEL: test_vlsseg8_nxv1i64_triscv.vector.tuple_nxv8i8_8t:
2251 ; CHECK: # %bb.0: # %entry
2252 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2253 ; CHECK-NEXT: vlsseg8e64.v v7, (a0), a1
2256 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
2257 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
2258 ret <vscale x 1 x i64> %1
2261 define <vscale x 1 x i64> @test_vlsseg8_mask_nxv1i64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2262 ; CHECK-LABEL: test_vlsseg8_mask_nxv1i64_triscv.vector.tuple_nxv8i8_8t:
2263 ; CHECK: # %bb.0: # %entry
2264 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
2265 ; CHECK-NEXT: vlsseg8e64.v v7, (a0), a1, v0.t
2268 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
2269 %1 = call <vscale x 1 x i64> @llvm.riscv.tuple.extract.nxv1i64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
2270 ret <vscale x 1 x i64> %1
2274 define <vscale x 1 x half> @test_vlsseg2_nxv1f16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl) {
2275 ; CHECK-LABEL: test_vlsseg2_nxv1f16_triscv.vector.tuple_nxv2i8_2t:
2276 ; CHECK: # %bb.0: # %entry
2277 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2278 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
2281 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2282 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
2283 ret <vscale x 1 x half> %1
2286 define <vscale x 1 x half> @test_vlsseg2_mask_nxv1f16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2287 ; CHECK-LABEL: test_vlsseg2_mask_nxv1f16_triscv.vector.tuple_nxv2i8_2t:
2288 ; CHECK: # %bb.0: # %entry
2289 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2290 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
2293 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2294 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
2295 ret <vscale x 1 x half> %1
2299 define <vscale x 2 x half> @test_vlsseg2_nxv2f16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl) {
2300 ; CHECK-LABEL: test_vlsseg2_nxv2f16_triscv.vector.tuple_nxv4i8_2t:
2301 ; CHECK: # %bb.0: # %entry
2302 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2303 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
2306 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2307 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
2308 ret <vscale x 2 x half> %1
2311 define <vscale x 2 x half> @test_vlsseg2_mask_nxv2f16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2312 ; CHECK-LABEL: test_vlsseg2_mask_nxv2f16_triscv.vector.tuple_nxv4i8_2t:
2313 ; CHECK: # %bb.0: # %entry
2314 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2315 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
2318 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2319 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
2320 ret <vscale x 2 x half> %1
2324 define <vscale x 4 x half> @test_vlsseg2_nxv4f16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
2325 ; CHECK-LABEL: test_vlsseg2_nxv4f16_triscv.vector.tuple_nxv8i8_2t:
2326 ; CHECK: # %bb.0: # %entry
2327 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2328 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
2331 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2332 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
2333 ret <vscale x 4 x half> %1
2336 define <vscale x 4 x half> @test_vlsseg2_mask_nxv4f16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2337 ; CHECK-LABEL: test_vlsseg2_mask_nxv4f16_triscv.vector.tuple_nxv8i8_2t:
2338 ; CHECK: # %bb.0: # %entry
2339 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2340 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
2343 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2344 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
2345 ret <vscale x 4 x half> %1
2349 define <vscale x 8 x half> @test_vlsseg2_nxv8f16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
2350 ; CHECK-LABEL: test_vlsseg2_nxv8f16_triscv.vector.tuple_nxv16i8_2t:
2351 ; CHECK: # %bb.0: # %entry
2352 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
2353 ; CHECK-NEXT: vlsseg2e16.v v6, (a0), a1
2356 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2357 %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
2358 ret <vscale x 8 x half> %1
2361 define <vscale x 8 x half> @test_vlsseg2_mask_nxv8f16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
2362 ; CHECK-LABEL: test_vlsseg2_mask_nxv8f16_triscv.vector.tuple_nxv16i8_2t:
2363 ; CHECK: # %bb.0: # %entry
2364 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
2365 ; CHECK-NEXT: vlsseg2e16.v v6, (a0), a1, v0.t
2368 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
2369 %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
2370 ret <vscale x 8 x half> %1
2374 define <vscale x 16 x half> @test_vlsseg2_nxv16f16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
2375 ; CHECK-LABEL: test_vlsseg2_nxv16f16_triscv.vector.tuple_nxv32i8_2t:
2376 ; CHECK: # %bb.0: # %entry
2377 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
2378 ; CHECK-NEXT: vlsseg2e16.v v4, (a0), a1
2381 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2382 %1 = call <vscale x 16 x half> @llvm.riscv.tuple.extract.nxv16f16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
2383 ret <vscale x 16 x half> %1
2386 define <vscale x 16 x half> @test_vlsseg2_mask_nxv16f16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 16 x i1> %mask) {
2387 ; CHECK-LABEL: test_vlsseg2_mask_nxv16f16_triscv.vector.tuple_nxv32i8_2t:
2388 ; CHECK: # %bb.0: # %entry
2389 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
2390 ; CHECK-NEXT: vlsseg2e16.v v4, (a0), a1, v0.t
2393 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 16 x i1> %mask, i64 %vl, i64 1, i64 4)
2394 %1 = call <vscale x 16 x half> @llvm.riscv.tuple.extract.nxv16f16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
2395 ret <vscale x 16 x half> %1
2399 define <vscale x 1 x half> @test_vlsseg3_nxv1f16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl) {
2400 ; CHECK-LABEL: test_vlsseg3_nxv1f16_triscv.vector.tuple_nxv2i8_3t:
2401 ; CHECK: # %bb.0: # %entry
2402 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2403 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
2406 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2407 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
2408 ret <vscale x 1 x half> %1
2411 define <vscale x 1 x half> @test_vlsseg3_mask_nxv1f16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2412 ; CHECK-LABEL: test_vlsseg3_mask_nxv1f16_triscv.vector.tuple_nxv2i8_3t:
2413 ; CHECK: # %bb.0: # %entry
2414 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2415 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
2418 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2419 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
2420 ret <vscale x 1 x half> %1
2424 define <vscale x 2 x half> @test_vlsseg3_nxv2f16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl) {
2425 ; CHECK-LABEL: test_vlsseg3_nxv2f16_triscv.vector.tuple_nxv4i8_3t:
2426 ; CHECK: # %bb.0: # %entry
2427 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2428 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
2431 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2432 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
2433 ret <vscale x 2 x half> %1
2436 define <vscale x 2 x half> @test_vlsseg3_mask_nxv2f16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2437 ; CHECK-LABEL: test_vlsseg3_mask_nxv2f16_triscv.vector.tuple_nxv4i8_3t:
2438 ; CHECK: # %bb.0: # %entry
2439 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2440 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
2443 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2444 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
2445 ret <vscale x 2 x half> %1
2449 define <vscale x 4 x half> @test_vlsseg3_nxv4f16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
2450 ; CHECK-LABEL: test_vlsseg3_nxv4f16_triscv.vector.tuple_nxv8i8_3t:
2451 ; CHECK: # %bb.0: # %entry
2452 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2453 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
2456 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2457 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
2458 ret <vscale x 4 x half> %1
2461 define <vscale x 4 x half> @test_vlsseg3_mask_nxv4f16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2462 ; CHECK-LABEL: test_vlsseg3_mask_nxv4f16_triscv.vector.tuple_nxv8i8_3t:
2463 ; CHECK: # %bb.0: # %entry
2464 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2465 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
2468 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2469 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
2470 ret <vscale x 4 x half> %1
2474 define <vscale x 8 x half> @test_vlsseg3_nxv8f16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
2475 ; CHECK-LABEL: test_vlsseg3_nxv8f16_triscv.vector.tuple_nxv16i8_3t:
2476 ; CHECK: # %bb.0: # %entry
2477 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
2478 ; CHECK-NEXT: vlsseg3e16.v v6, (a0), a1
2481 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2482 %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
2483 ret <vscale x 8 x half> %1
2486 define <vscale x 8 x half> @test_vlsseg3_mask_nxv8f16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
2487 ; CHECK-LABEL: test_vlsseg3_mask_nxv8f16_triscv.vector.tuple_nxv16i8_3t:
2488 ; CHECK: # %bb.0: # %entry
2489 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
2490 ; CHECK-NEXT: vlsseg3e16.v v6, (a0), a1, v0.t
2493 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
2494 %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
2495 ret <vscale x 8 x half> %1
2499 define <vscale x 1 x half> @test_vlsseg4_nxv1f16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl) {
2500 ; CHECK-LABEL: test_vlsseg4_nxv1f16_triscv.vector.tuple_nxv2i8_4t:
2501 ; CHECK: # %bb.0: # %entry
2502 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2503 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
2506 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2507 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
2508 ret <vscale x 1 x half> %1
2511 define <vscale x 1 x half> @test_vlsseg4_mask_nxv1f16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2512 ; CHECK-LABEL: test_vlsseg4_mask_nxv1f16_triscv.vector.tuple_nxv2i8_4t:
2513 ; CHECK: # %bb.0: # %entry
2514 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2515 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
2518 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2519 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
2520 ret <vscale x 1 x half> %1
2524 define <vscale x 2 x half> @test_vlsseg4_nxv2f16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl) {
2525 ; CHECK-LABEL: test_vlsseg4_nxv2f16_triscv.vector.tuple_nxv4i8_4t:
2526 ; CHECK: # %bb.0: # %entry
2527 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2528 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
2531 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2532 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
2533 ret <vscale x 2 x half> %1
2536 define <vscale x 2 x half> @test_vlsseg4_mask_nxv2f16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2537 ; CHECK-LABEL: test_vlsseg4_mask_nxv2f16_triscv.vector.tuple_nxv4i8_4t:
2538 ; CHECK: # %bb.0: # %entry
2539 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2540 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
2543 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2544 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
2545 ret <vscale x 2 x half> %1
2549 define <vscale x 4 x half> @test_vlsseg4_nxv4f16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
2550 ; CHECK-LABEL: test_vlsseg4_nxv4f16_triscv.vector.tuple_nxv8i8_4t:
2551 ; CHECK: # %bb.0: # %entry
2552 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2553 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
2556 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2557 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
2558 ret <vscale x 4 x half> %1
2561 define <vscale x 4 x half> @test_vlsseg4_mask_nxv4f16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2562 ; CHECK-LABEL: test_vlsseg4_mask_nxv4f16_triscv.vector.tuple_nxv8i8_4t:
2563 ; CHECK: # %bb.0: # %entry
2564 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2565 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
2568 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2569 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
2570 ret <vscale x 4 x half> %1
2574 define <vscale x 8 x half> @test_vlsseg4_nxv8f16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
2575 ; CHECK-LABEL: test_vlsseg4_nxv8f16_triscv.vector.tuple_nxv16i8_4t:
2576 ; CHECK: # %bb.0: # %entry
2577 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
2578 ; CHECK-NEXT: vlsseg4e16.v v6, (a0), a1
2581 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2582 %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
2583 ret <vscale x 8 x half> %1
2586 define <vscale x 8 x half> @test_vlsseg4_mask_nxv8f16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
2587 ; CHECK-LABEL: test_vlsseg4_mask_nxv8f16_triscv.vector.tuple_nxv16i8_4t:
2588 ; CHECK: # %bb.0: # %entry
2589 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
2590 ; CHECK-NEXT: vlsseg4e16.v v6, (a0), a1, v0.t
2593 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
2594 %1 = call <vscale x 8 x half> @llvm.riscv.tuple.extract.nxv8f16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
2595 ret <vscale x 8 x half> %1
2599 define <vscale x 1 x half> @test_vlsseg5_nxv1f16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl) {
2600 ; CHECK-LABEL: test_vlsseg5_nxv1f16_triscv.vector.tuple_nxv2i8_5t:
2601 ; CHECK: # %bb.0: # %entry
2602 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2603 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
2606 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2607 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
2608 ret <vscale x 1 x half> %1
2611 define <vscale x 1 x half> @test_vlsseg5_mask_nxv1f16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2612 ; CHECK-LABEL: test_vlsseg5_mask_nxv1f16_triscv.vector.tuple_nxv2i8_5t:
2613 ; CHECK: # %bb.0: # %entry
2614 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2615 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
2618 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2619 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
2620 ret <vscale x 1 x half> %1
2624 define <vscale x 2 x half> @test_vlsseg5_nxv2f16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl) {
2625 ; CHECK-LABEL: test_vlsseg5_nxv2f16_triscv.vector.tuple_nxv4i8_5t:
2626 ; CHECK: # %bb.0: # %entry
2627 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2628 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
2631 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2632 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
2633 ret <vscale x 2 x half> %1
2636 define <vscale x 2 x half> @test_vlsseg5_mask_nxv2f16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2637 ; CHECK-LABEL: test_vlsseg5_mask_nxv2f16_triscv.vector.tuple_nxv4i8_5t:
2638 ; CHECK: # %bb.0: # %entry
2639 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2640 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
2643 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2644 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
2645 ret <vscale x 2 x half> %1
2649 define <vscale x 4 x half> @test_vlsseg5_nxv4f16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
2650 ; CHECK-LABEL: test_vlsseg5_nxv4f16_triscv.vector.tuple_nxv8i8_5t:
2651 ; CHECK: # %bb.0: # %entry
2652 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2653 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
2656 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2657 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
2658 ret <vscale x 4 x half> %1
2661 define <vscale x 4 x half> @test_vlsseg5_mask_nxv4f16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2662 ; CHECK-LABEL: test_vlsseg5_mask_nxv4f16_triscv.vector.tuple_nxv8i8_5t:
2663 ; CHECK: # %bb.0: # %entry
2664 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2665 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
2668 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2669 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
2670 ret <vscale x 4 x half> %1
2674 define <vscale x 1 x half> @test_vlsseg6_nxv1f16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl) {
2675 ; CHECK-LABEL: test_vlsseg6_nxv1f16_triscv.vector.tuple_nxv2i8_6t:
2676 ; CHECK: # %bb.0: # %entry
2677 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2678 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
2681 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2682 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
2683 ret <vscale x 1 x half> %1
2686 define <vscale x 1 x half> @test_vlsseg6_mask_nxv1f16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2687 ; CHECK-LABEL: test_vlsseg6_mask_nxv1f16_triscv.vector.tuple_nxv2i8_6t:
2688 ; CHECK: # %bb.0: # %entry
2689 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2690 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
2693 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2694 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
2695 ret <vscale x 1 x half> %1
2699 define <vscale x 2 x half> @test_vlsseg6_nxv2f16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl) {
2700 ; CHECK-LABEL: test_vlsseg6_nxv2f16_triscv.vector.tuple_nxv4i8_6t:
2701 ; CHECK: # %bb.0: # %entry
2702 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2703 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
2706 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2707 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
2708 ret <vscale x 2 x half> %1
2711 define <vscale x 2 x half> @test_vlsseg6_mask_nxv2f16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2712 ; CHECK-LABEL: test_vlsseg6_mask_nxv2f16_triscv.vector.tuple_nxv4i8_6t:
2713 ; CHECK: # %bb.0: # %entry
2714 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2715 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
2718 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2719 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
2720 ret <vscale x 2 x half> %1
2724 define <vscale x 4 x half> @test_vlsseg6_nxv4f16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
2725 ; CHECK-LABEL: test_vlsseg6_nxv4f16_triscv.vector.tuple_nxv8i8_6t:
2726 ; CHECK: # %bb.0: # %entry
2727 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2728 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
2731 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2732 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
2733 ret <vscale x 4 x half> %1
2736 define <vscale x 4 x half> @test_vlsseg6_mask_nxv4f16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2737 ; CHECK-LABEL: test_vlsseg6_mask_nxv4f16_triscv.vector.tuple_nxv8i8_6t:
2738 ; CHECK: # %bb.0: # %entry
2739 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2740 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
2743 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2744 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
2745 ret <vscale x 4 x half> %1
2749 define <vscale x 1 x half> @test_vlsseg7_nxv1f16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl) {
2750 ; CHECK-LABEL: test_vlsseg7_nxv1f16_triscv.vector.tuple_nxv2i8_7t:
2751 ; CHECK: # %bb.0: # %entry
2752 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2753 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
2756 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2757 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
2758 ret <vscale x 1 x half> %1
2761 define <vscale x 1 x half> @test_vlsseg7_mask_nxv1f16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2762 ; CHECK-LABEL: test_vlsseg7_mask_nxv1f16_triscv.vector.tuple_nxv2i8_7t:
2763 ; CHECK: # %bb.0: # %entry
2764 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2765 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
2768 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2769 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
2770 ret <vscale x 1 x half> %1
2774 define <vscale x 2 x half> @test_vlsseg7_nxv2f16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl) {
2775 ; CHECK-LABEL: test_vlsseg7_nxv2f16_triscv.vector.tuple_nxv4i8_7t:
2776 ; CHECK: # %bb.0: # %entry
2777 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2778 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
2781 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2782 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
2783 ret <vscale x 2 x half> %1
2786 define <vscale x 2 x half> @test_vlsseg7_mask_nxv2f16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2787 ; CHECK-LABEL: test_vlsseg7_mask_nxv2f16_triscv.vector.tuple_nxv4i8_7t:
2788 ; CHECK: # %bb.0: # %entry
2789 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2790 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
2793 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2794 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
2795 ret <vscale x 2 x half> %1
2799 define <vscale x 4 x half> @test_vlsseg7_nxv4f16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
2800 ; CHECK-LABEL: test_vlsseg7_nxv4f16_triscv.vector.tuple_nxv8i8_7t:
2801 ; CHECK: # %bb.0: # %entry
2802 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2803 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
2806 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2807 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
2808 ret <vscale x 4 x half> %1
2811 define <vscale x 4 x half> @test_vlsseg7_mask_nxv4f16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2812 ; CHECK-LABEL: test_vlsseg7_mask_nxv4f16_triscv.vector.tuple_nxv8i8_7t:
2813 ; CHECK: # %bb.0: # %entry
2814 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2815 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
2818 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2819 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
2820 ret <vscale x 4 x half> %1
2824 define <vscale x 1 x half> @test_vlsseg8_nxv1f16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl) {
2825 ; CHECK-LABEL: test_vlsseg8_nxv1f16_triscv.vector.tuple_nxv2i8_8t:
2826 ; CHECK: # %bb.0: # %entry
2827 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2828 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
2831 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2832 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
2833 ret <vscale x 1 x half> %1
2836 define <vscale x 1 x half> @test_vlsseg8_mask_nxv1f16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2837 ; CHECK-LABEL: test_vlsseg8_mask_nxv1f16_triscv.vector.tuple_nxv2i8_8t:
2838 ; CHECK: # %bb.0: # %entry
2839 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
2840 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
2843 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
2844 %1 = call <vscale x 1 x half> @llvm.riscv.tuple.extract.nxv1f16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
2845 ret <vscale x 1 x half> %1
2849 define <vscale x 2 x half> @test_vlsseg8_nxv2f16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl) {
2850 ; CHECK-LABEL: test_vlsseg8_nxv2f16_triscv.vector.tuple_nxv4i8_8t:
2851 ; CHECK: # %bb.0: # %entry
2852 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2853 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
2856 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2857 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
2858 ret <vscale x 2 x half> %1
2861 define <vscale x 2 x half> @test_vlsseg8_mask_nxv2f16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2862 ; CHECK-LABEL: test_vlsseg8_mask_nxv2f16_triscv.vector.tuple_nxv4i8_8t:
2863 ; CHECK: # %bb.0: # %entry
2864 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
2865 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
2868 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
2869 %1 = call <vscale x 2 x half> @llvm.riscv.tuple.extract.nxv2f16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
2870 ret <vscale x 2 x half> %1
2874 define <vscale x 4 x half> @test_vlsseg8_nxv4f16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
2875 ; CHECK-LABEL: test_vlsseg8_nxv4f16_triscv.vector.tuple_nxv8i8_8t:
2876 ; CHECK: # %bb.0: # %entry
2877 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2878 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
2881 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
2882 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
2883 ret <vscale x 4 x half> %1
2886 define <vscale x 4 x half> @test_vlsseg8_mask_nxv4f16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2887 ; CHECK-LABEL: test_vlsseg8_mask_nxv4f16_triscv.vector.tuple_nxv8i8_8t:
2888 ; CHECK: # %bb.0: # %entry
2889 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
2890 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
2893 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
2894 %1 = call <vscale x 4 x half> @llvm.riscv.tuple.extract.nxv4f16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
2895 ret <vscale x 4 x half> %1
2899 define <vscale x 1 x float> @test_vlsseg2_nxv1f32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl) {
2900 ; CHECK-LABEL: test_vlsseg2_nxv1f32_triscv.vector.tuple_nxv4i8_2t:
2901 ; CHECK: # %bb.0: # %entry
2902 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
2903 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1
2906 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
2907 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
2908 ret <vscale x 1 x float> %1
2911 define <vscale x 1 x float> @test_vlsseg2_mask_nxv1f32_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
2912 ; CHECK-LABEL: test_vlsseg2_mask_nxv1f32_triscv.vector.tuple_nxv4i8_2t:
2913 ; CHECK: # %bb.0: # %entry
2914 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
2915 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1, v0.t
2918 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
2919 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
2920 ret <vscale x 1 x float> %1
2924 define <vscale x 2 x float> @test_vlsseg2_nxv2f32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
2925 ; CHECK-LABEL: test_vlsseg2_nxv2f32_triscv.vector.tuple_nxv8i8_2t:
2926 ; CHECK: # %bb.0: # %entry
2927 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
2928 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1
2931 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
2932 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
2933 ret <vscale x 2 x float> %1
2936 define <vscale x 2 x float> @test_vlsseg2_mask_nxv2f32_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
2937 ; CHECK-LABEL: test_vlsseg2_mask_nxv2f32_triscv.vector.tuple_nxv8i8_2t:
2938 ; CHECK: # %bb.0: # %entry
2939 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
2940 ; CHECK-NEXT: vlsseg2e32.v v7, (a0), a1, v0.t
2943 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
2944 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
2945 ret <vscale x 2 x float> %1
2949 define <vscale x 4 x float> @test_vlsseg2_nxv4f32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
2950 ; CHECK-LABEL: test_vlsseg2_nxv4f32_triscv.vector.tuple_nxv16i8_2t:
2951 ; CHECK: # %bb.0: # %entry
2952 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
2953 ; CHECK-NEXT: vlsseg2e32.v v6, (a0), a1
2956 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
2957 %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
2958 ret <vscale x 4 x float> %1
2961 define <vscale x 4 x float> @test_vlsseg2_mask_nxv4f32_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
2962 ; CHECK-LABEL: test_vlsseg2_mask_nxv4f32_triscv.vector.tuple_nxv16i8_2t:
2963 ; CHECK: # %bb.0: # %entry
2964 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
2965 ; CHECK-NEXT: vlsseg2e32.v v6, (a0), a1, v0.t
2968 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 5)
2969 %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
2970 ret <vscale x 4 x float> %1
2974 define <vscale x 8 x float> @test_vlsseg2_nxv8f32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
2975 ; CHECK-LABEL: test_vlsseg2_nxv8f32_triscv.vector.tuple_nxv32i8_2t:
2976 ; CHECK: # %bb.0: # %entry
2977 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, ma
2978 ; CHECK-NEXT: vlsseg2e32.v v4, (a0), a1
2981 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
2982 %1 = call <vscale x 8 x float> @llvm.riscv.tuple.extract.nxv8f32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
2983 ret <vscale x 8 x float> %1
2986 define <vscale x 8 x float> @test_vlsseg2_mask_nxv8f32_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
2987 ; CHECK-LABEL: test_vlsseg2_mask_nxv8f32_triscv.vector.tuple_nxv32i8_2t:
2988 ; CHECK: # %bb.0: # %entry
2989 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, ma
2990 ; CHECK-NEXT: vlsseg2e32.v v4, (a0), a1, v0.t
2993 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 5)
2994 %1 = call <vscale x 8 x float> @llvm.riscv.tuple.extract.nxv8f32.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
2995 ret <vscale x 8 x float> %1
2999 define <vscale x 1 x float> @test_vlsseg3_nxv1f32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl) {
3000 ; CHECK-LABEL: test_vlsseg3_nxv1f32_triscv.vector.tuple_nxv4i8_3t:
3001 ; CHECK: # %bb.0: # %entry
3002 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3003 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1
3006 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3007 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
3008 ret <vscale x 1 x float> %1
3011 define <vscale x 1 x float> @test_vlsseg3_mask_nxv1f32_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3012 ; CHECK-LABEL: test_vlsseg3_mask_nxv1f32_triscv.vector.tuple_nxv4i8_3t:
3013 ; CHECK: # %bb.0: # %entry
3014 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3015 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1, v0.t
3018 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
3019 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
3020 ret <vscale x 1 x float> %1
3024 define <vscale x 2 x float> @test_vlsseg3_nxv2f32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
3025 ; CHECK-LABEL: test_vlsseg3_nxv2f32_triscv.vector.tuple_nxv8i8_3t:
3026 ; CHECK: # %bb.0: # %entry
3027 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3028 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1
3031 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3032 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
3033 ret <vscale x 2 x float> %1
3036 define <vscale x 2 x float> @test_vlsseg3_mask_nxv2f32_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3037 ; CHECK-LABEL: test_vlsseg3_mask_nxv2f32_triscv.vector.tuple_nxv8i8_3t:
3038 ; CHECK: # %bb.0: # %entry
3039 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3040 ; CHECK-NEXT: vlsseg3e32.v v7, (a0), a1, v0.t
3043 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
3044 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
3045 ret <vscale x 2 x float> %1
3049 define <vscale x 4 x float> @test_vlsseg3_nxv4f32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
3050 ; CHECK-LABEL: test_vlsseg3_nxv4f32_triscv.vector.tuple_nxv16i8_3t:
3051 ; CHECK: # %bb.0: # %entry
3052 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
3053 ; CHECK-NEXT: vlsseg3e32.v v6, (a0), a1
3056 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3057 %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
3058 ret <vscale x 4 x float> %1
3061 define <vscale x 4 x float> @test_vlsseg3_mask_nxv4f32_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
3062 ; CHECK-LABEL: test_vlsseg3_mask_nxv4f32_triscv.vector.tuple_nxv16i8_3t:
3063 ; CHECK: # %bb.0: # %entry
3064 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
3065 ; CHECK-NEXT: vlsseg3e32.v v6, (a0), a1, v0.t
3068 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 5)
3069 %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
3070 ret <vscale x 4 x float> %1
3074 define <vscale x 1 x float> @test_vlsseg4_nxv1f32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl) {
3075 ; CHECK-LABEL: test_vlsseg4_nxv1f32_triscv.vector.tuple_nxv4i8_4t:
3076 ; CHECK: # %bb.0: # %entry
3077 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3078 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1
3081 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3082 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
3083 ret <vscale x 1 x float> %1
3086 define <vscale x 1 x float> @test_vlsseg4_mask_nxv1f32_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3087 ; CHECK-LABEL: test_vlsseg4_mask_nxv1f32_triscv.vector.tuple_nxv4i8_4t:
3088 ; CHECK: # %bb.0: # %entry
3089 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3090 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1, v0.t
3093 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
3094 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
3095 ret <vscale x 1 x float> %1
3099 define <vscale x 2 x float> @test_vlsseg4_nxv2f32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
3100 ; CHECK-LABEL: test_vlsseg4_nxv2f32_triscv.vector.tuple_nxv8i8_4t:
3101 ; CHECK: # %bb.0: # %entry
3102 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3103 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1
3106 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3107 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
3108 ret <vscale x 2 x float> %1
3111 define <vscale x 2 x float> @test_vlsseg4_mask_nxv2f32_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3112 ; CHECK-LABEL: test_vlsseg4_mask_nxv2f32_triscv.vector.tuple_nxv8i8_4t:
3113 ; CHECK: # %bb.0: # %entry
3114 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3115 ; CHECK-NEXT: vlsseg4e32.v v7, (a0), a1, v0.t
3118 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
3119 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
3120 ret <vscale x 2 x float> %1
3124 define <vscale x 4 x float> @test_vlsseg4_nxv4f32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
3125 ; CHECK-LABEL: test_vlsseg4_nxv4f32_triscv.vector.tuple_nxv16i8_4t:
3126 ; CHECK: # %bb.0: # %entry
3127 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
3128 ; CHECK-NEXT: vlsseg4e32.v v6, (a0), a1
3131 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3132 %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
3133 ret <vscale x 4 x float> %1
3136 define <vscale x 4 x float> @test_vlsseg4_mask_nxv4f32_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
3137 ; CHECK-LABEL: test_vlsseg4_mask_nxv4f32_triscv.vector.tuple_nxv16i8_4t:
3138 ; CHECK: # %bb.0: # %entry
3139 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
3140 ; CHECK-NEXT: vlsseg4e32.v v6, (a0), a1, v0.t
3143 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 5)
3144 %1 = call <vscale x 4 x float> @llvm.riscv.tuple.extract.nxv4f32.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
3145 ret <vscale x 4 x float> %1
3149 define <vscale x 1 x float> @test_vlsseg5_nxv1f32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl) {
3150 ; CHECK-LABEL: test_vlsseg5_nxv1f32_triscv.vector.tuple_nxv4i8_5t:
3151 ; CHECK: # %bb.0: # %entry
3152 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3153 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1
3156 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3157 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
3158 ret <vscale x 1 x float> %1
3161 define <vscale x 1 x float> @test_vlsseg5_mask_nxv1f32_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3162 ; CHECK-LABEL: test_vlsseg5_mask_nxv1f32_triscv.vector.tuple_nxv4i8_5t:
3163 ; CHECK: # %bb.0: # %entry
3164 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3165 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1, v0.t
3168 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
3169 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
3170 ret <vscale x 1 x float> %1
3174 define <vscale x 2 x float> @test_vlsseg5_nxv2f32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
3175 ; CHECK-LABEL: test_vlsseg5_nxv2f32_triscv.vector.tuple_nxv8i8_5t:
3176 ; CHECK: # %bb.0: # %entry
3177 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3178 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1
3181 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3182 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
3183 ret <vscale x 2 x float> %1
3186 define <vscale x 2 x float> @test_vlsseg5_mask_nxv2f32_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3187 ; CHECK-LABEL: test_vlsseg5_mask_nxv2f32_triscv.vector.tuple_nxv8i8_5t:
3188 ; CHECK: # %bb.0: # %entry
3189 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3190 ; CHECK-NEXT: vlsseg5e32.v v7, (a0), a1, v0.t
3193 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
3194 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
3195 ret <vscale x 2 x float> %1
3199 define <vscale x 1 x float> @test_vlsseg6_nxv1f32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl) {
3200 ; CHECK-LABEL: test_vlsseg6_nxv1f32_triscv.vector.tuple_nxv4i8_6t:
3201 ; CHECK: # %bb.0: # %entry
3202 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3203 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1
3206 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3207 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
3208 ret <vscale x 1 x float> %1
3211 define <vscale x 1 x float> @test_vlsseg6_mask_nxv1f32_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3212 ; CHECK-LABEL: test_vlsseg6_mask_nxv1f32_triscv.vector.tuple_nxv4i8_6t:
3213 ; CHECK: # %bb.0: # %entry
3214 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3215 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1, v0.t
3218 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
3219 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
3220 ret <vscale x 1 x float> %1
3224 define <vscale x 2 x float> @test_vlsseg6_nxv2f32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
3225 ; CHECK-LABEL: test_vlsseg6_nxv2f32_triscv.vector.tuple_nxv8i8_6t:
3226 ; CHECK: # %bb.0: # %entry
3227 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3228 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1
3231 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3232 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
3233 ret <vscale x 2 x float> %1
3236 define <vscale x 2 x float> @test_vlsseg6_mask_nxv2f32_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3237 ; CHECK-LABEL: test_vlsseg6_mask_nxv2f32_triscv.vector.tuple_nxv8i8_6t:
3238 ; CHECK: # %bb.0: # %entry
3239 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3240 ; CHECK-NEXT: vlsseg6e32.v v7, (a0), a1, v0.t
3243 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
3244 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
3245 ret <vscale x 2 x float> %1
3249 define <vscale x 1 x float> @test_vlsseg7_nxv1f32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl) {
3250 ; CHECK-LABEL: test_vlsseg7_nxv1f32_triscv.vector.tuple_nxv4i8_7t:
3251 ; CHECK: # %bb.0: # %entry
3252 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3253 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1
3256 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3257 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
3258 ret <vscale x 1 x float> %1
3261 define <vscale x 1 x float> @test_vlsseg7_mask_nxv1f32_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3262 ; CHECK-LABEL: test_vlsseg7_mask_nxv1f32_triscv.vector.tuple_nxv4i8_7t:
3263 ; CHECK: # %bb.0: # %entry
3264 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3265 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1, v0.t
3268 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
3269 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
3270 ret <vscale x 1 x float> %1
3274 define <vscale x 2 x float> @test_vlsseg7_nxv2f32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
3275 ; CHECK-LABEL: test_vlsseg7_nxv2f32_triscv.vector.tuple_nxv8i8_7t:
3276 ; CHECK: # %bb.0: # %entry
3277 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3278 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1
3281 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3282 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
3283 ret <vscale x 2 x float> %1
3286 define <vscale x 2 x float> @test_vlsseg7_mask_nxv2f32_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3287 ; CHECK-LABEL: test_vlsseg7_mask_nxv2f32_triscv.vector.tuple_nxv8i8_7t:
3288 ; CHECK: # %bb.0: # %entry
3289 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3290 ; CHECK-NEXT: vlsseg7e32.v v7, (a0), a1, v0.t
3293 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
3294 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
3295 ret <vscale x 2 x float> %1
3299 define <vscale x 1 x float> @test_vlsseg8_nxv1f32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl) {
3300 ; CHECK-LABEL: test_vlsseg8_nxv1f32_triscv.vector.tuple_nxv4i8_8t:
3301 ; CHECK: # %bb.0: # %entry
3302 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3303 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1
3306 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3307 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
3308 ret <vscale x 1 x float> %1
3311 define <vscale x 1 x float> @test_vlsseg8_mask_nxv1f32_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3312 ; CHECK-LABEL: test_vlsseg8_mask_nxv1f32_triscv.vector.tuple_nxv4i8_8t:
3313 ; CHECK: # %bb.0: # %entry
3314 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
3315 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1, v0.t
3318 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 5)
3319 %1 = call <vscale x 1 x float> @llvm.riscv.tuple.extract.nxv1f32.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
3320 ret <vscale x 1 x float> %1
3324 define <vscale x 2 x float> @test_vlsseg8_nxv2f32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
3325 ; CHECK-LABEL: test_vlsseg8_nxv2f32_triscv.vector.tuple_nxv8i8_8t:
3326 ; CHECK: # %bb.0: # %entry
3327 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3328 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1
3331 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 5)
3332 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
3333 ret <vscale x 2 x float> %1
3336 define <vscale x 2 x float> @test_vlsseg8_mask_nxv2f32_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3337 ; CHECK-LABEL: test_vlsseg8_mask_nxv2f32_triscv.vector.tuple_nxv8i8_8t:
3338 ; CHECK: # %bb.0: # %entry
3339 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
3340 ; CHECK-NEXT: vlsseg8e32.v v7, (a0), a1, v0.t
3343 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 5)
3344 %1 = call <vscale x 2 x float> @llvm.riscv.tuple.extract.nxv2f32.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
3345 ret <vscale x 2 x float> %1
3349 define <vscale x 1 x double> @test_vlsseg2_nxv1f64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
3350 ; CHECK-LABEL: test_vlsseg2_nxv1f64_triscv.vector.tuple_nxv8i8_2t:
3351 ; CHECK: # %bb.0: # %entry
3352 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3353 ; CHECK-NEXT: vlsseg2e64.v v7, (a0), a1
3356 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3357 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
3358 ret <vscale x 1 x double> %1
3361 define <vscale x 1 x double> @test_vlsseg2_mask_nxv1f64_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3362 ; CHECK-LABEL: test_vlsseg2_mask_nxv1f64_triscv.vector.tuple_nxv8i8_2t:
3363 ; CHECK: # %bb.0: # %entry
3364 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3365 ; CHECK-NEXT: vlsseg2e64.v v7, (a0), a1, v0.t
3368 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3369 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
3370 ret <vscale x 1 x double> %1
3374 define <vscale x 2 x double> @test_vlsseg2_nxv2f64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
3375 ; CHECK-LABEL: test_vlsseg2_nxv2f64_triscv.vector.tuple_nxv16i8_2t:
3376 ; CHECK: # %bb.0: # %entry
3377 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
3378 ; CHECK-NEXT: vlsseg2e64.v v6, (a0), a1
3381 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3382 %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
3383 ret <vscale x 2 x double> %1
3386 define <vscale x 2 x double> @test_vlsseg2_mask_nxv2f64_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3387 ; CHECK-LABEL: test_vlsseg2_mask_nxv2f64_triscv.vector.tuple_nxv16i8_2t:
3388 ; CHECK: # %bb.0: # %entry
3389 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
3390 ; CHECK-NEXT: vlsseg2e64.v v6, (a0), a1, v0.t
3393 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 6)
3394 %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
3395 ret <vscale x 2 x double> %1
3399 define <vscale x 4 x double> @test_vlsseg2_nxv4f64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
3400 ; CHECK-LABEL: test_vlsseg2_nxv4f64_triscv.vector.tuple_nxv32i8_2t:
3401 ; CHECK: # %bb.0: # %entry
3402 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, ma
3403 ; CHECK-NEXT: vlsseg2e64.v v4, (a0), a1
3406 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3407 %1 = call <vscale x 4 x double> @llvm.riscv.tuple.extract.nxv4f64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
3408 ret <vscale x 4 x double> %1
3411 define <vscale x 4 x double> @test_vlsseg2_mask_nxv4f64_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
3412 ; CHECK-LABEL: test_vlsseg2_mask_nxv4f64_triscv.vector.tuple_nxv32i8_2t:
3413 ; CHECK: # %bb.0: # %entry
3414 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, ma
3415 ; CHECK-NEXT: vlsseg2e64.v v4, (a0), a1, v0.t
3418 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 6)
3419 %1 = call <vscale x 4 x double> @llvm.riscv.tuple.extract.nxv4f64.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
3420 ret <vscale x 4 x double> %1
3424 define <vscale x 1 x double> @test_vlsseg3_nxv1f64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
3425 ; CHECK-LABEL: test_vlsseg3_nxv1f64_triscv.vector.tuple_nxv8i8_3t:
3426 ; CHECK: # %bb.0: # %entry
3427 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3428 ; CHECK-NEXT: vlsseg3e64.v v7, (a0), a1
3431 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3432 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
3433 ret <vscale x 1 x double> %1
3436 define <vscale x 1 x double> @test_vlsseg3_mask_nxv1f64_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3437 ; CHECK-LABEL: test_vlsseg3_mask_nxv1f64_triscv.vector.tuple_nxv8i8_3t:
3438 ; CHECK: # %bb.0: # %entry
3439 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3440 ; CHECK-NEXT: vlsseg3e64.v v7, (a0), a1, v0.t
3443 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3444 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
3445 ret <vscale x 1 x double> %1
3449 define <vscale x 2 x double> @test_vlsseg3_nxv2f64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
3450 ; CHECK-LABEL: test_vlsseg3_nxv2f64_triscv.vector.tuple_nxv16i8_3t:
3451 ; CHECK: # %bb.0: # %entry
3452 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
3453 ; CHECK-NEXT: vlsseg3e64.v v6, (a0), a1
3456 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3457 %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
3458 ret <vscale x 2 x double> %1
3461 define <vscale x 2 x double> @test_vlsseg3_mask_nxv2f64_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3462 ; CHECK-LABEL: test_vlsseg3_mask_nxv2f64_triscv.vector.tuple_nxv16i8_3t:
3463 ; CHECK: # %bb.0: # %entry
3464 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
3465 ; CHECK-NEXT: vlsseg3e64.v v6, (a0), a1, v0.t
3468 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 6)
3469 %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
3470 ret <vscale x 2 x double> %1
3474 define <vscale x 1 x double> @test_vlsseg4_nxv1f64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
3475 ; CHECK-LABEL: test_vlsseg4_nxv1f64_triscv.vector.tuple_nxv8i8_4t:
3476 ; CHECK: # %bb.0: # %entry
3477 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3478 ; CHECK-NEXT: vlsseg4e64.v v7, (a0), a1
3481 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3482 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
3483 ret <vscale x 1 x double> %1
3486 define <vscale x 1 x double> @test_vlsseg4_mask_nxv1f64_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3487 ; CHECK-LABEL: test_vlsseg4_mask_nxv1f64_triscv.vector.tuple_nxv8i8_4t:
3488 ; CHECK: # %bb.0: # %entry
3489 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3490 ; CHECK-NEXT: vlsseg4e64.v v7, (a0), a1, v0.t
3493 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3494 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
3495 ret <vscale x 1 x double> %1
3499 define <vscale x 2 x double> @test_vlsseg4_nxv2f64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
3500 ; CHECK-LABEL: test_vlsseg4_nxv2f64_triscv.vector.tuple_nxv16i8_4t:
3501 ; CHECK: # %bb.0: # %entry
3502 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
3503 ; CHECK-NEXT: vlsseg4e64.v v6, (a0), a1
3506 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3507 %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
3508 ret <vscale x 2 x double> %1
3511 define <vscale x 2 x double> @test_vlsseg4_mask_nxv2f64_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3512 ; CHECK-LABEL: test_vlsseg4_mask_nxv2f64_triscv.vector.tuple_nxv16i8_4t:
3513 ; CHECK: # %bb.0: # %entry
3514 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
3515 ; CHECK-NEXT: vlsseg4e64.v v6, (a0), a1, v0.t
3518 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 6)
3519 %1 = call <vscale x 2 x double> @llvm.riscv.tuple.extract.nxv2f64.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
3520 ret <vscale x 2 x double> %1
3524 define <vscale x 1 x double> @test_vlsseg5_nxv1f64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
3525 ; CHECK-LABEL: test_vlsseg5_nxv1f64_triscv.vector.tuple_nxv8i8_5t:
3526 ; CHECK: # %bb.0: # %entry
3527 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3528 ; CHECK-NEXT: vlsseg5e64.v v7, (a0), a1
3531 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3532 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
3533 ret <vscale x 1 x double> %1
3536 define <vscale x 1 x double> @test_vlsseg5_mask_nxv1f64_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3537 ; CHECK-LABEL: test_vlsseg5_mask_nxv1f64_triscv.vector.tuple_nxv8i8_5t:
3538 ; CHECK: # %bb.0: # %entry
3539 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3540 ; CHECK-NEXT: vlsseg5e64.v v7, (a0), a1, v0.t
3543 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3544 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
3545 ret <vscale x 1 x double> %1
3549 define <vscale x 1 x double> @test_vlsseg6_nxv1f64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
3550 ; CHECK-LABEL: test_vlsseg6_nxv1f64_triscv.vector.tuple_nxv8i8_6t:
3551 ; CHECK: # %bb.0: # %entry
3552 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3553 ; CHECK-NEXT: vlsseg6e64.v v7, (a0), a1
3556 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3557 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
3558 ret <vscale x 1 x double> %1
3561 define <vscale x 1 x double> @test_vlsseg6_mask_nxv1f64_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3562 ; CHECK-LABEL: test_vlsseg6_mask_nxv1f64_triscv.vector.tuple_nxv8i8_6t:
3563 ; CHECK: # %bb.0: # %entry
3564 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3565 ; CHECK-NEXT: vlsseg6e64.v v7, (a0), a1, v0.t
3568 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3569 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
3570 ret <vscale x 1 x double> %1
3574 define <vscale x 1 x double> @test_vlsseg7_nxv1f64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
3575 ; CHECK-LABEL: test_vlsseg7_nxv1f64_triscv.vector.tuple_nxv8i8_7t:
3576 ; CHECK: # %bb.0: # %entry
3577 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3578 ; CHECK-NEXT: vlsseg7e64.v v7, (a0), a1
3581 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3582 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
3583 ret <vscale x 1 x double> %1
3586 define <vscale x 1 x double> @test_vlsseg7_mask_nxv1f64_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3587 ; CHECK-LABEL: test_vlsseg7_mask_nxv1f64_triscv.vector.tuple_nxv8i8_7t:
3588 ; CHECK: # %bb.0: # %entry
3589 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3590 ; CHECK-NEXT: vlsseg7e64.v v7, (a0), a1, v0.t
3593 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3594 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
3595 ret <vscale x 1 x double> %1
3599 define <vscale x 1 x double> @test_vlsseg8_nxv1f64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
3600 ; CHECK-LABEL: test_vlsseg8_nxv1f64_triscv.vector.tuple_nxv8i8_8t:
3601 ; CHECK: # %bb.0: # %entry
3602 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3603 ; CHECK-NEXT: vlsseg8e64.v v7, (a0), a1
3606 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 6)
3607 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
3608 ret <vscale x 1 x double> %1
3611 define <vscale x 1 x double> @test_vlsseg8_mask_nxv1f64_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3612 ; CHECK-LABEL: test_vlsseg8_mask_nxv1f64_triscv.vector.tuple_nxv8i8_8t:
3613 ; CHECK: # %bb.0: # %entry
3614 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
3615 ; CHECK-NEXT: vlsseg8e64.v v7, (a0), a1, v0.t
3618 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 6)
3619 %1 = call <vscale x 1 x double> @llvm.riscv.tuple.extract.nxv1f64.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
3620 ret <vscale x 1 x double> %1
3624 define <vscale x 1 x bfloat> @test_vlsseg2_nxv1bf16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl) {
3625 ; CHECK-LABEL: test_vlsseg2_nxv1bf16_triscv.vector.tuple_nxv2i8_2t:
3626 ; CHECK: # %bb.0: # %entry
3627 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3628 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
3631 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3632 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
3633 ret <vscale x 1 x bfloat> %1
3636 define <vscale x 1 x bfloat> @test_vlsseg2_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3637 ; CHECK-LABEL: test_vlsseg2_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_2t:
3638 ; CHECK: # %bb.0: # %entry
3639 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3640 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
3643 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv2i8_2t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
3644 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_2t(target("riscv.vector.tuple", <vscale x 2 x i8>, 2) %0, i32 1)
3645 ret <vscale x 1 x bfloat> %1
3649 define <vscale x 2 x bfloat> @test_vlsseg2_nxv2bf16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl) {
3650 ; CHECK-LABEL: test_vlsseg2_nxv2bf16_triscv.vector.tuple_nxv4i8_2t:
3651 ; CHECK: # %bb.0: # %entry
3652 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3653 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
3656 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3657 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
3658 ret <vscale x 2 x bfloat> %1
3661 define <vscale x 2 x bfloat> @test_vlsseg2_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3662 ; CHECK-LABEL: test_vlsseg2_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_2t:
3663 ; CHECK: # %bb.0: # %entry
3664 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3665 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
3668 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv4i8_2t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
3669 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_2t(target("riscv.vector.tuple", <vscale x 4 x i8>, 2) %0, i32 1)
3670 ret <vscale x 2 x bfloat> %1
3674 define <vscale x 4 x bfloat> @test_vlsseg2_nxv4bf16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl) {
3675 ; CHECK-LABEL: test_vlsseg2_nxv4bf16_triscv.vector.tuple_nxv8i8_2t:
3676 ; CHECK: # %bb.0: # %entry
3677 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
3678 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1
3681 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3682 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
3683 ret <vscale x 4 x bfloat> %1
3686 define <vscale x 4 x bfloat> @test_vlsseg2_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
3687 ; CHECK-LABEL: test_vlsseg2_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_2t:
3688 ; CHECK: # %bb.0: # %entry
3689 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
3690 ; CHECK-NEXT: vlsseg2e16.v v7, (a0), a1, v0.t
3693 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv8i8_2t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
3694 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_2t(target("riscv.vector.tuple", <vscale x 8 x i8>, 2) %0, i32 1)
3695 ret <vscale x 4 x bfloat> %1
3699 define <vscale x 8 x bfloat> @test_vlsseg2_nxv8bf16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl) {
3700 ; CHECK-LABEL: test_vlsseg2_nxv8bf16_triscv.vector.tuple_nxv16i8_2t:
3701 ; CHECK: # %bb.0: # %entry
3702 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
3703 ; CHECK-NEXT: vlsseg2e16.v v6, (a0), a1
3706 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3707 %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
3708 ret <vscale x 8 x bfloat> %1
3711 define <vscale x 8 x bfloat> @test_vlsseg2_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
3712 ; CHECK-LABEL: test_vlsseg2_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_2t:
3713 ; CHECK: # %bb.0: # %entry
3714 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
3715 ; CHECK-NEXT: vlsseg2e16.v v6, (a0), a1, v0.t
3718 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv16i8_2t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
3719 %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_2t(target("riscv.vector.tuple", <vscale x 16 x i8>, 2) %0, i32 1)
3720 ret <vscale x 8 x bfloat> %1
3724 define <vscale x 16 x bfloat> @test_vlsseg2_nxv16bf16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl) {
3725 ; CHECK-LABEL: test_vlsseg2_nxv16bf16_triscv.vector.tuple_nxv32i8_2t:
3726 ; CHECK: # %bb.0: # %entry
3727 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
3728 ; CHECK-NEXT: vlsseg2e16.v v4, (a0), a1
3731 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3732 %1 = call <vscale x 16 x bfloat> @llvm.riscv.tuple.extract.nxv16bf16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
3733 ret <vscale x 16 x bfloat> %1
3736 define <vscale x 16 x bfloat> @test_vlsseg2_mask_nxv16bf16_triscv.vector.tuple_nxv32i8_2t(ptr %base, i64 %offset, i64 %vl, <vscale x 16 x i1> %mask) {
3737 ; CHECK-LABEL: test_vlsseg2_mask_nxv16bf16_triscv.vector.tuple_nxv32i8_2t:
3738 ; CHECK: # %bb.0: # %entry
3739 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
3740 ; CHECK-NEXT: vlsseg2e16.v v4, (a0), a1, v0.t
3743 %0 = tail call target("riscv.vector.tuple", <vscale x 32 x i8>, 2) @llvm.riscv.vlsseg2.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr %base, i64 %offset, <vscale x 16 x i1> %mask, i64 %vl, i64 1, i64 4)
3744 %1 = call <vscale x 16 x bfloat> @llvm.riscv.tuple.extract.nxv16bf16.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %0, i32 1)
3745 ret <vscale x 16 x bfloat> %1
3749 define <vscale x 1 x bfloat> @test_vlsseg3_nxv1bf16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl) {
3750 ; CHECK-LABEL: test_vlsseg3_nxv1bf16_triscv.vector.tuple_nxv2i8_3t:
3751 ; CHECK: # %bb.0: # %entry
3752 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3753 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
3756 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3757 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
3758 ret <vscale x 1 x bfloat> %1
3761 define <vscale x 1 x bfloat> @test_vlsseg3_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3762 ; CHECK-LABEL: test_vlsseg3_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_3t:
3763 ; CHECK: # %bb.0: # %entry
3764 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3765 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
3768 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv2i8_3t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
3769 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_3t(target("riscv.vector.tuple", <vscale x 2 x i8>, 3) %0, i32 1)
3770 ret <vscale x 1 x bfloat> %1
3774 define <vscale x 2 x bfloat> @test_vlsseg3_nxv2bf16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl) {
3775 ; CHECK-LABEL: test_vlsseg3_nxv2bf16_triscv.vector.tuple_nxv4i8_3t:
3776 ; CHECK: # %bb.0: # %entry
3777 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3778 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
3781 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3782 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
3783 ret <vscale x 2 x bfloat> %1
3786 define <vscale x 2 x bfloat> @test_vlsseg3_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3787 ; CHECK-LABEL: test_vlsseg3_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_3t:
3788 ; CHECK: # %bb.0: # %entry
3789 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3790 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
3793 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv4i8_3t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
3794 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_3t(target("riscv.vector.tuple", <vscale x 4 x i8>, 3) %0, i32 1)
3795 ret <vscale x 2 x bfloat> %1
3799 define <vscale x 4 x bfloat> @test_vlsseg3_nxv4bf16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl) {
3800 ; CHECK-LABEL: test_vlsseg3_nxv4bf16_triscv.vector.tuple_nxv8i8_3t:
3801 ; CHECK: # %bb.0: # %entry
3802 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
3803 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1
3806 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3807 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
3808 ret <vscale x 4 x bfloat> %1
3811 define <vscale x 4 x bfloat> @test_vlsseg3_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
3812 ; CHECK-LABEL: test_vlsseg3_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_3t:
3813 ; CHECK: # %bb.0: # %entry
3814 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
3815 ; CHECK-NEXT: vlsseg3e16.v v7, (a0), a1, v0.t
3818 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv8i8_3t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
3819 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_3t(target("riscv.vector.tuple", <vscale x 8 x i8>, 3) %0, i32 1)
3820 ret <vscale x 4 x bfloat> %1
3824 define <vscale x 8 x bfloat> @test_vlsseg3_nxv8bf16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl) {
3825 ; CHECK-LABEL: test_vlsseg3_nxv8bf16_triscv.vector.tuple_nxv16i8_3t:
3826 ; CHECK: # %bb.0: # %entry
3827 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
3828 ; CHECK-NEXT: vlsseg3e16.v v6, (a0), a1
3831 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3832 %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
3833 ret <vscale x 8 x bfloat> %1
3836 define <vscale x 8 x bfloat> @test_vlsseg3_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_3t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
3837 ; CHECK-LABEL: test_vlsseg3_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_3t:
3838 ; CHECK: # %bb.0: # %entry
3839 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
3840 ; CHECK-NEXT: vlsseg3e16.v v6, (a0), a1, v0.t
3843 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 3) @llvm.riscv.vlsseg3.mask.triscv.vector.tuple_nxv16i8_3t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
3844 %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_3t(target("riscv.vector.tuple", <vscale x 16 x i8>, 3) %0, i32 1)
3845 ret <vscale x 8 x bfloat> %1
3849 define <vscale x 1 x bfloat> @test_vlsseg4_nxv1bf16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl) {
3850 ; CHECK-LABEL: test_vlsseg4_nxv1bf16_triscv.vector.tuple_nxv2i8_4t:
3851 ; CHECK: # %bb.0: # %entry
3852 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3853 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
3856 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3857 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
3858 ret <vscale x 1 x bfloat> %1
3861 define <vscale x 1 x bfloat> @test_vlsseg4_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3862 ; CHECK-LABEL: test_vlsseg4_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_4t:
3863 ; CHECK: # %bb.0: # %entry
3864 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3865 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
3868 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv2i8_4t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
3869 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_4t(target("riscv.vector.tuple", <vscale x 2 x i8>, 4) %0, i32 1)
3870 ret <vscale x 1 x bfloat> %1
3874 define <vscale x 2 x bfloat> @test_vlsseg4_nxv2bf16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl) {
3875 ; CHECK-LABEL: test_vlsseg4_nxv2bf16_triscv.vector.tuple_nxv4i8_4t:
3876 ; CHECK: # %bb.0: # %entry
3877 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3878 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
3881 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3882 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
3883 ret <vscale x 2 x bfloat> %1
3886 define <vscale x 2 x bfloat> @test_vlsseg4_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3887 ; CHECK-LABEL: test_vlsseg4_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_4t:
3888 ; CHECK: # %bb.0: # %entry
3889 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3890 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
3893 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv4i8_4t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
3894 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_4t(target("riscv.vector.tuple", <vscale x 4 x i8>, 4) %0, i32 1)
3895 ret <vscale x 2 x bfloat> %1
3899 define <vscale x 4 x bfloat> @test_vlsseg4_nxv4bf16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl) {
3900 ; CHECK-LABEL: test_vlsseg4_nxv4bf16_triscv.vector.tuple_nxv8i8_4t:
3901 ; CHECK: # %bb.0: # %entry
3902 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
3903 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1
3906 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3907 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
3908 ret <vscale x 4 x bfloat> %1
3911 define <vscale x 4 x bfloat> @test_vlsseg4_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
3912 ; CHECK-LABEL: test_vlsseg4_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_4t:
3913 ; CHECK: # %bb.0: # %entry
3914 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
3915 ; CHECK-NEXT: vlsseg4e16.v v7, (a0), a1, v0.t
3918 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv8i8_4t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
3919 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_4t(target("riscv.vector.tuple", <vscale x 8 x i8>, 4) %0, i32 1)
3920 ret <vscale x 4 x bfloat> %1
3924 define <vscale x 8 x bfloat> @test_vlsseg4_nxv8bf16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl) {
3925 ; CHECK-LABEL: test_vlsseg4_nxv8bf16_triscv.vector.tuple_nxv16i8_4t:
3926 ; CHECK: # %bb.0: # %entry
3927 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
3928 ; CHECK-NEXT: vlsseg4e16.v v6, (a0), a1
3931 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3932 %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
3933 ret <vscale x 8 x bfloat> %1
3936 define <vscale x 8 x bfloat> @test_vlsseg4_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_4t(ptr %base, i64 %offset, i64 %vl, <vscale x 8 x i1> %mask) {
3937 ; CHECK-LABEL: test_vlsseg4_mask_nxv8bf16_triscv.vector.tuple_nxv16i8_4t:
3938 ; CHECK: # %bb.0: # %entry
3939 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
3940 ; CHECK-NEXT: vlsseg4e16.v v6, (a0), a1, v0.t
3943 %0 = tail call target("riscv.vector.tuple", <vscale x 16 x i8>, 4) @llvm.riscv.vlsseg4.mask.triscv.vector.tuple_nxv16i8_4t.nxv8i1(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) undef, ptr %base, i64 %offset, <vscale x 8 x i1> %mask, i64 %vl, i64 1, i64 4)
3944 %1 = call <vscale x 8 x bfloat> @llvm.riscv.tuple.extract.nxv8bf16.triscv.vector.tuple_nxv16i8_4t(target("riscv.vector.tuple", <vscale x 16 x i8>, 4) %0, i32 1)
3945 ret <vscale x 8 x bfloat> %1
3949 define <vscale x 1 x bfloat> @test_vlsseg5_nxv1bf16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl) {
3950 ; CHECK-LABEL: test_vlsseg5_nxv1bf16_triscv.vector.tuple_nxv2i8_5t:
3951 ; CHECK: # %bb.0: # %entry
3952 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3953 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
3956 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3957 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
3958 ret <vscale x 1 x bfloat> %1
3961 define <vscale x 1 x bfloat> @test_vlsseg5_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
3962 ; CHECK-LABEL: test_vlsseg5_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_5t:
3963 ; CHECK: # %bb.0: # %entry
3964 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
3965 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
3968 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv2i8_5t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
3969 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_5t(target("riscv.vector.tuple", <vscale x 2 x i8>, 5) %0, i32 1)
3970 ret <vscale x 1 x bfloat> %1
3974 define <vscale x 2 x bfloat> @test_vlsseg5_nxv2bf16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl) {
3975 ; CHECK-LABEL: test_vlsseg5_nxv2bf16_triscv.vector.tuple_nxv4i8_5t:
3976 ; CHECK: # %bb.0: # %entry
3977 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3978 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
3981 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
3982 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
3983 ret <vscale x 2 x bfloat> %1
3986 define <vscale x 2 x bfloat> @test_vlsseg5_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
3987 ; CHECK-LABEL: test_vlsseg5_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_5t:
3988 ; CHECK: # %bb.0: # %entry
3989 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
3990 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
3993 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv4i8_5t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
3994 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_5t(target("riscv.vector.tuple", <vscale x 4 x i8>, 5) %0, i32 1)
3995 ret <vscale x 2 x bfloat> %1
3999 define <vscale x 4 x bfloat> @test_vlsseg5_nxv4bf16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl) {
4000 ; CHECK-LABEL: test_vlsseg5_nxv4bf16_triscv.vector.tuple_nxv8i8_5t:
4001 ; CHECK: # %bb.0: # %entry
4002 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4003 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1
4006 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4007 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
4008 ret <vscale x 4 x bfloat> %1
4011 define <vscale x 4 x bfloat> @test_vlsseg5_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_5t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
4012 ; CHECK-LABEL: test_vlsseg5_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_5t:
4013 ; CHECK: # %bb.0: # %entry
4014 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4015 ; CHECK-NEXT: vlsseg5e16.v v7, (a0), a1, v0.t
4018 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 5) @llvm.riscv.vlsseg5.mask.triscv.vector.tuple_nxv8i8_5t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
4019 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_5t(target("riscv.vector.tuple", <vscale x 8 x i8>, 5) %0, i32 1)
4020 ret <vscale x 4 x bfloat> %1
4024 define <vscale x 1 x bfloat> @test_vlsseg6_nxv1bf16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl) {
4025 ; CHECK-LABEL: test_vlsseg6_nxv1bf16_triscv.vector.tuple_nxv2i8_6t:
4026 ; CHECK: # %bb.0: # %entry
4027 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
4028 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
4031 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4032 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
4033 ret <vscale x 1 x bfloat> %1
4036 define <vscale x 1 x bfloat> @test_vlsseg6_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
4037 ; CHECK-LABEL: test_vlsseg6_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_6t:
4038 ; CHECK: # %bb.0: # %entry
4039 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
4040 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
4043 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv2i8_6t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
4044 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_6t(target("riscv.vector.tuple", <vscale x 2 x i8>, 6) %0, i32 1)
4045 ret <vscale x 1 x bfloat> %1
4049 define <vscale x 2 x bfloat> @test_vlsseg6_nxv2bf16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl) {
4050 ; CHECK-LABEL: test_vlsseg6_nxv2bf16_triscv.vector.tuple_nxv4i8_6t:
4051 ; CHECK: # %bb.0: # %entry
4052 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
4053 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
4056 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4057 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
4058 ret <vscale x 2 x bfloat> %1
4061 define <vscale x 2 x bfloat> @test_vlsseg6_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
4062 ; CHECK-LABEL: test_vlsseg6_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_6t:
4063 ; CHECK: # %bb.0: # %entry
4064 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
4065 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
4068 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv4i8_6t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
4069 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_6t(target("riscv.vector.tuple", <vscale x 4 x i8>, 6) %0, i32 1)
4070 ret <vscale x 2 x bfloat> %1
4074 define <vscale x 4 x bfloat> @test_vlsseg6_nxv4bf16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl) {
4075 ; CHECK-LABEL: test_vlsseg6_nxv4bf16_triscv.vector.tuple_nxv8i8_6t:
4076 ; CHECK: # %bb.0: # %entry
4077 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4078 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1
4081 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4082 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
4083 ret <vscale x 4 x bfloat> %1
4086 define <vscale x 4 x bfloat> @test_vlsseg6_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_6t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
4087 ; CHECK-LABEL: test_vlsseg6_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_6t:
4088 ; CHECK: # %bb.0: # %entry
4089 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4090 ; CHECK-NEXT: vlsseg6e16.v v7, (a0), a1, v0.t
4093 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 6) @llvm.riscv.vlsseg6.mask.triscv.vector.tuple_nxv8i8_6t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
4094 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_6t(target("riscv.vector.tuple", <vscale x 8 x i8>, 6) %0, i32 1)
4095 ret <vscale x 4 x bfloat> %1
4099 define <vscale x 1 x bfloat> @test_vlsseg7_nxv1bf16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl) {
4100 ; CHECK-LABEL: test_vlsseg7_nxv1bf16_triscv.vector.tuple_nxv2i8_7t:
4101 ; CHECK: # %bb.0: # %entry
4102 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
4103 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
4106 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4107 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
4108 ret <vscale x 1 x bfloat> %1
4111 define <vscale x 1 x bfloat> @test_vlsseg7_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
4112 ; CHECK-LABEL: test_vlsseg7_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_7t:
4113 ; CHECK: # %bb.0: # %entry
4114 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
4115 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
4118 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv2i8_7t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
4119 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_7t(target("riscv.vector.tuple", <vscale x 2 x i8>, 7) %0, i32 1)
4120 ret <vscale x 1 x bfloat> %1
4124 define <vscale x 2 x bfloat> @test_vlsseg7_nxv2bf16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl) {
4125 ; CHECK-LABEL: test_vlsseg7_nxv2bf16_triscv.vector.tuple_nxv4i8_7t:
4126 ; CHECK: # %bb.0: # %entry
4127 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
4128 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
4131 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4132 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
4133 ret <vscale x 2 x bfloat> %1
4136 define <vscale x 2 x bfloat> @test_vlsseg7_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
4137 ; CHECK-LABEL: test_vlsseg7_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_7t:
4138 ; CHECK: # %bb.0: # %entry
4139 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
4140 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
4143 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv4i8_7t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
4144 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_7t(target("riscv.vector.tuple", <vscale x 4 x i8>, 7) %0, i32 1)
4145 ret <vscale x 2 x bfloat> %1
4149 define <vscale x 4 x bfloat> @test_vlsseg7_nxv4bf16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl) {
4150 ; CHECK-LABEL: test_vlsseg7_nxv4bf16_triscv.vector.tuple_nxv8i8_7t:
4151 ; CHECK: # %bb.0: # %entry
4152 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4153 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1
4156 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4157 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
4158 ret <vscale x 4 x bfloat> %1
4161 define <vscale x 4 x bfloat> @test_vlsseg7_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_7t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
4162 ; CHECK-LABEL: test_vlsseg7_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_7t:
4163 ; CHECK: # %bb.0: # %entry
4164 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4165 ; CHECK-NEXT: vlsseg7e16.v v7, (a0), a1, v0.t
4168 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 7) @llvm.riscv.vlsseg7.mask.triscv.vector.tuple_nxv8i8_7t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
4169 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_7t(target("riscv.vector.tuple", <vscale x 8 x i8>, 7) %0, i32 1)
4170 ret <vscale x 4 x bfloat> %1
4174 define <vscale x 1 x bfloat> @test_vlsseg8_nxv1bf16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl) {
4175 ; CHECK-LABEL: test_vlsseg8_nxv1bf16_triscv.vector.tuple_nxv2i8_8t:
4176 ; CHECK: # %bb.0: # %entry
4177 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
4178 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
4181 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4182 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
4183 ret <vscale x 1 x bfloat> %1
4186 define <vscale x 1 x bfloat> @test_vlsseg8_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 1 x i1> %mask) {
4187 ; CHECK-LABEL: test_vlsseg8_mask_nxv1bf16_triscv.vector.tuple_nxv2i8_8t:
4188 ; CHECK: # %bb.0: # %entry
4189 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
4190 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
4193 %0 = tail call target("riscv.vector.tuple", <vscale x 2 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv2i8_8t.nxv1i1(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 1 x i1> %mask, i64 %vl, i64 1, i64 4)
4194 %1 = call <vscale x 1 x bfloat> @llvm.riscv.tuple.extract.nxv1bf16.triscv.vector.tuple_nxv2i8_8t(target("riscv.vector.tuple", <vscale x 2 x i8>, 8) %0, i32 1)
4195 ret <vscale x 1 x bfloat> %1
4199 define <vscale x 2 x bfloat> @test_vlsseg8_nxv2bf16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl) {
4200 ; CHECK-LABEL: test_vlsseg8_nxv2bf16_triscv.vector.tuple_nxv4i8_8t:
4201 ; CHECK: # %bb.0: # %entry
4202 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
4203 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
4206 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4207 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
4208 ret <vscale x 2 x bfloat> %1
4211 define <vscale x 2 x bfloat> @test_vlsseg8_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 2 x i1> %mask) {
4212 ; CHECK-LABEL: test_vlsseg8_mask_nxv2bf16_triscv.vector.tuple_nxv4i8_8t:
4213 ; CHECK: # %bb.0: # %entry
4214 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
4215 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
4218 %0 = tail call target("riscv.vector.tuple", <vscale x 4 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv4i8_8t.nxv2i1(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 2 x i1> %mask, i64 %vl, i64 1, i64 4)
4219 %1 = call <vscale x 2 x bfloat> @llvm.riscv.tuple.extract.nxv2bf16.triscv.vector.tuple_nxv4i8_8t(target("riscv.vector.tuple", <vscale x 4 x i8>, 8) %0, i32 1)
4220 ret <vscale x 2 x bfloat> %1
4224 define <vscale x 4 x bfloat> @test_vlsseg8_nxv4bf16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl) {
4225 ; CHECK-LABEL: test_vlsseg8_nxv4bf16_triscv.vector.tuple_nxv8i8_8t:
4226 ; CHECK: # %bb.0: # %entry
4227 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4228 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1
4231 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, i64 %vl, i64 4)
4232 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
4233 ret <vscale x 4 x bfloat> %1
4236 define <vscale x 4 x bfloat> @test_vlsseg8_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_8t(ptr %base, i64 %offset, i64 %vl, <vscale x 4 x i1> %mask) {
4237 ; CHECK-LABEL: test_vlsseg8_mask_nxv4bf16_triscv.vector.tuple_nxv8i8_8t:
4238 ; CHECK: # %bb.0: # %entry
4239 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
4240 ; CHECK-NEXT: vlsseg8e16.v v7, (a0), a1, v0.t
4243 %0 = tail call target("riscv.vector.tuple", <vscale x 8 x i8>, 8) @llvm.riscv.vlsseg8.mask.triscv.vector.tuple_nxv8i8_8t.nxv4i1(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) undef, ptr %base, i64 %offset, <vscale x 4 x i1> %mask, i64 %vl, i64 1, i64 4)
4244 %1 = call <vscale x 4 x bfloat> @llvm.riscv.tuple.extract.nxv4bf16.triscv.vector.tuple_nxv8i8_8t(target("riscv.vector.tuple", <vscale x 8 x i8>, 8) %0, i32 1)
4245 ret <vscale x 4 x bfloat> %1