1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 2
2 // REQUIRES: riscv-registered-target
3 // RUN: %clang_cc1 -triple riscv64 -target-feature +v -target-feature +zfh \
4 // RUN: -target-feature +zvfh -disable-O0-optnone \
5 // RUN: -emit-llvm %s -o - | opt -S -passes=mem2reg | \
6 // RUN: FileCheck --check-prefix=CHECK-RV64 %s
8 #include <riscv_vector.h>
10 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x half> @test_vset_v_f16m1_f16m2
11 // CHECK-RV64-SAME: (<vscale x 8 x half> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0:[0-9]+]] {
12 // CHECK-RV64-NEXT: entry:
13 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x half> @llvm.vector.insert.nxv8f16.nxv4f16(<vscale x 8 x half> [[DEST]], <vscale x 4 x half> [[VAL]], i64 0)
14 // CHECK-RV64-NEXT: ret <vscale x 8 x half> [[TMP0]]
16 vfloat16m2_t
test_vset_v_f16m1_f16m2(vfloat16m2_t dest
, size_t index
, vfloat16m1_t val
) {
17 return __riscv_vset(dest
, 0, val
);
20 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x half> @test_vset_v_f16m1_f16m4
21 // CHECK-RV64-SAME: (<vscale x 16 x half> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
22 // CHECK-RV64-NEXT: entry:
23 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x half> @llvm.vector.insert.nxv16f16.nxv4f16(<vscale x 16 x half> [[DEST]], <vscale x 4 x half> [[VAL]], i64 0)
24 // CHECK-RV64-NEXT: ret <vscale x 16 x half> [[TMP0]]
26 vfloat16m4_t
test_vset_v_f16m1_f16m4(vfloat16m4_t dest
, size_t index
, vfloat16m1_t val
) {
27 return __riscv_vset(dest
, 0, val
);
30 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x half> @test_vset_v_f16m2_f16m4
31 // CHECK-RV64-SAME: (<vscale x 16 x half> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x half> [[VAL:%.*]]) #[[ATTR0]] {
32 // CHECK-RV64-NEXT: entry:
33 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x half> @llvm.vector.insert.nxv16f16.nxv8f16(<vscale x 16 x half> [[DEST]], <vscale x 8 x half> [[VAL]], i64 0)
34 // CHECK-RV64-NEXT: ret <vscale x 16 x half> [[TMP0]]
36 vfloat16m4_t
test_vset_v_f16m2_f16m4(vfloat16m4_t dest
, size_t index
, vfloat16m2_t val
) {
37 return __riscv_vset(dest
, 0, val
);
40 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x half> @test_vset_v_f16m1_f16m8
41 // CHECK-RV64-SAME: (<vscale x 32 x half> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
42 // CHECK-RV64-NEXT: entry:
43 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x half> @llvm.vector.insert.nxv32f16.nxv4f16(<vscale x 32 x half> [[DEST]], <vscale x 4 x half> [[VAL]], i64 0)
44 // CHECK-RV64-NEXT: ret <vscale x 32 x half> [[TMP0]]
46 vfloat16m8_t
test_vset_v_f16m1_f16m8(vfloat16m8_t dest
, size_t index
, vfloat16m1_t val
) {
47 return __riscv_vset(dest
, 0, val
);
50 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x half> @test_vset_v_f16m2_f16m8
51 // CHECK-RV64-SAME: (<vscale x 32 x half> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x half> [[VAL:%.*]]) #[[ATTR0]] {
52 // CHECK-RV64-NEXT: entry:
53 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x half> @llvm.vector.insert.nxv32f16.nxv8f16(<vscale x 32 x half> [[DEST]], <vscale x 8 x half> [[VAL]], i64 0)
54 // CHECK-RV64-NEXT: ret <vscale x 32 x half> [[TMP0]]
56 vfloat16m8_t
test_vset_v_f16m2_f16m8(vfloat16m8_t dest
, size_t index
, vfloat16m2_t val
) {
57 return __riscv_vset(dest
, 0, val
);
60 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x half> @test_vset_v_f16m4_f16m8
61 // CHECK-RV64-SAME: (<vscale x 32 x half> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x half> [[VAL:%.*]]) #[[ATTR0]] {
62 // CHECK-RV64-NEXT: entry:
63 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x half> @llvm.vector.insert.nxv32f16.nxv16f16(<vscale x 32 x half> [[DEST]], <vscale x 16 x half> [[VAL]], i64 0)
64 // CHECK-RV64-NEXT: ret <vscale x 32 x half> [[TMP0]]
66 vfloat16m8_t
test_vset_v_f16m4_f16m8(vfloat16m8_t dest
, size_t index
, vfloat16m4_t val
) {
67 return __riscv_vset(dest
, 0, val
);
70 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x float> @test_vset_v_f32m1_f32m2
71 // CHECK-RV64-SAME: (<vscale x 4 x float> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
72 // CHECK-RV64-NEXT: entry:
73 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x float> @llvm.vector.insert.nxv4f32.nxv2f32(<vscale x 4 x float> [[DEST]], <vscale x 2 x float> [[VAL]], i64 0)
74 // CHECK-RV64-NEXT: ret <vscale x 4 x float> [[TMP0]]
76 vfloat32m2_t
test_vset_v_f32m1_f32m2(vfloat32m2_t dest
, size_t index
, vfloat32m1_t val
) {
77 return __riscv_vset(dest
, 0, val
);
80 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x float> @test_vset_v_f32m1_f32m4
81 // CHECK-RV64-SAME: (<vscale x 8 x float> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
82 // CHECK-RV64-NEXT: entry:
83 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x float> @llvm.vector.insert.nxv8f32.nxv2f32(<vscale x 8 x float> [[DEST]], <vscale x 2 x float> [[VAL]], i64 0)
84 // CHECK-RV64-NEXT: ret <vscale x 8 x float> [[TMP0]]
86 vfloat32m4_t
test_vset_v_f32m1_f32m4(vfloat32m4_t dest
, size_t index
, vfloat32m1_t val
) {
87 return __riscv_vset(dest
, 0, val
);
90 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x float> @test_vset_v_f32m2_f32m4
91 // CHECK-RV64-SAME: (<vscale x 8 x float> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x float> [[VAL:%.*]]) #[[ATTR0]] {
92 // CHECK-RV64-NEXT: entry:
93 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x float> @llvm.vector.insert.nxv8f32.nxv4f32(<vscale x 8 x float> [[DEST]], <vscale x 4 x float> [[VAL]], i64 0)
94 // CHECK-RV64-NEXT: ret <vscale x 8 x float> [[TMP0]]
96 vfloat32m4_t
test_vset_v_f32m2_f32m4(vfloat32m4_t dest
, size_t index
, vfloat32m2_t val
) {
97 return __riscv_vset(dest
, 0, val
);
100 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x float> @test_vset_v_f32m1_f32m8
101 // CHECK-RV64-SAME: (<vscale x 16 x float> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
102 // CHECK-RV64-NEXT: entry:
103 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x float> @llvm.vector.insert.nxv16f32.nxv2f32(<vscale x 16 x float> [[DEST]], <vscale x 2 x float> [[VAL]], i64 0)
104 // CHECK-RV64-NEXT: ret <vscale x 16 x float> [[TMP0]]
106 vfloat32m8_t
test_vset_v_f32m1_f32m8(vfloat32m8_t dest
, size_t index
, vfloat32m1_t val
) {
107 return __riscv_vset(dest
, 0, val
);
110 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x float> @test_vset_v_f32m2_f32m8
111 // CHECK-RV64-SAME: (<vscale x 16 x float> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x float> [[VAL:%.*]]) #[[ATTR0]] {
112 // CHECK-RV64-NEXT: entry:
113 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x float> @llvm.vector.insert.nxv16f32.nxv4f32(<vscale x 16 x float> [[DEST]], <vscale x 4 x float> [[VAL]], i64 0)
114 // CHECK-RV64-NEXT: ret <vscale x 16 x float> [[TMP0]]
116 vfloat32m8_t
test_vset_v_f32m2_f32m8(vfloat32m8_t dest
, size_t index
, vfloat32m2_t val
) {
117 return __riscv_vset(dest
, 0, val
);
120 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x float> @test_vset_v_f32m4_f32m8
121 // CHECK-RV64-SAME: (<vscale x 16 x float> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x float> [[VAL:%.*]]) #[[ATTR0]] {
122 // CHECK-RV64-NEXT: entry:
123 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x float> @llvm.vector.insert.nxv16f32.nxv8f32(<vscale x 16 x float> [[DEST]], <vscale x 8 x float> [[VAL]], i64 0)
124 // CHECK-RV64-NEXT: ret <vscale x 16 x float> [[TMP0]]
126 vfloat32m8_t
test_vset_v_f32m4_f32m8(vfloat32m8_t dest
, size_t index
, vfloat32m4_t val
) {
127 return __riscv_vset(dest
, 0, val
);
130 // CHECK-RV64-LABEL: define dso_local <vscale x 2 x double> @test_vset_v_f64m1_f64m2
131 // CHECK-RV64-SAME: (<vscale x 2 x double> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
132 // CHECK-RV64-NEXT: entry:
133 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 2 x double> @llvm.vector.insert.nxv2f64.nxv1f64(<vscale x 2 x double> [[DEST]], <vscale x 1 x double> [[VAL]], i64 0)
134 // CHECK-RV64-NEXT: ret <vscale x 2 x double> [[TMP0]]
136 vfloat64m2_t
test_vset_v_f64m1_f64m2(vfloat64m2_t dest
, size_t index
, vfloat64m1_t val
) {
137 return __riscv_vset(dest
, 0, val
);
140 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x double> @test_vset_v_f64m1_f64m4
141 // CHECK-RV64-SAME: (<vscale x 4 x double> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
142 // CHECK-RV64-NEXT: entry:
143 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x double> @llvm.vector.insert.nxv4f64.nxv1f64(<vscale x 4 x double> [[DEST]], <vscale x 1 x double> [[VAL]], i64 0)
144 // CHECK-RV64-NEXT: ret <vscale x 4 x double> [[TMP0]]
146 vfloat64m4_t
test_vset_v_f64m1_f64m4(vfloat64m4_t dest
, size_t index
, vfloat64m1_t val
) {
147 return __riscv_vset(dest
, 0, val
);
150 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x double> @test_vset_v_f64m2_f64m4
151 // CHECK-RV64-SAME: (<vscale x 4 x double> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x double> [[VAL:%.*]]) #[[ATTR0]] {
152 // CHECK-RV64-NEXT: entry:
153 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x double> @llvm.vector.insert.nxv4f64.nxv2f64(<vscale x 4 x double> [[DEST]], <vscale x 2 x double> [[VAL]], i64 0)
154 // CHECK-RV64-NEXT: ret <vscale x 4 x double> [[TMP0]]
156 vfloat64m4_t
test_vset_v_f64m2_f64m4(vfloat64m4_t dest
, size_t index
, vfloat64m2_t val
) {
157 return __riscv_vset(dest
, 0, val
);
160 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x double> @test_vset_v_f64m1_f64m8
161 // CHECK-RV64-SAME: (<vscale x 8 x double> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
162 // CHECK-RV64-NEXT: entry:
163 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x double> @llvm.vector.insert.nxv8f64.nxv1f64(<vscale x 8 x double> [[DEST]], <vscale x 1 x double> [[VAL]], i64 0)
164 // CHECK-RV64-NEXT: ret <vscale x 8 x double> [[TMP0]]
166 vfloat64m8_t
test_vset_v_f64m1_f64m8(vfloat64m8_t dest
, size_t index
, vfloat64m1_t val
) {
167 return __riscv_vset(dest
, 0, val
);
170 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x double> @test_vset_v_f64m2_f64m8
171 // CHECK-RV64-SAME: (<vscale x 8 x double> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x double> [[VAL:%.*]]) #[[ATTR0]] {
172 // CHECK-RV64-NEXT: entry:
173 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x double> @llvm.vector.insert.nxv8f64.nxv2f64(<vscale x 8 x double> [[DEST]], <vscale x 2 x double> [[VAL]], i64 0)
174 // CHECK-RV64-NEXT: ret <vscale x 8 x double> [[TMP0]]
176 vfloat64m8_t
test_vset_v_f64m2_f64m8(vfloat64m8_t dest
, size_t index
, vfloat64m2_t val
) {
177 return __riscv_vset(dest
, 0, val
);
180 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x double> @test_vset_v_f64m4_f64m8
181 // CHECK-RV64-SAME: (<vscale x 8 x double> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x double> [[VAL:%.*]]) #[[ATTR0]] {
182 // CHECK-RV64-NEXT: entry:
183 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x double> @llvm.vector.insert.nxv8f64.nxv4f64(<vscale x 8 x double> [[DEST]], <vscale x 4 x double> [[VAL]], i64 0)
184 // CHECK-RV64-NEXT: ret <vscale x 8 x double> [[TMP0]]
186 vfloat64m8_t
test_vset_v_f64m4_f64m8(vfloat64m8_t dest
, size_t index
, vfloat64m4_t val
) {
187 return __riscv_vset(dest
, 0, val
);
190 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i8> @test_vset_v_i8m1_i8m2
191 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
192 // CHECK-RV64-NEXT: entry:
193 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i8> @llvm.vector.insert.nxv16i8.nxv8i8(<vscale x 16 x i8> [[DEST]], <vscale x 8 x i8> [[VAL]], i64 0)
194 // CHECK-RV64-NEXT: ret <vscale x 16 x i8> [[TMP0]]
196 vint8m2_t
test_vset_v_i8m1_i8m2(vint8m2_t dest
, size_t index
, vint8m1_t val
) {
197 return __riscv_vset(dest
, 0, val
);
200 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i8> @test_vset_v_i8m1_i8m4
201 // CHECK-RV64-SAME: (<vscale x 32 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
202 // CHECK-RV64-NEXT: entry:
203 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.nxv8i8(<vscale x 32 x i8> [[DEST]], <vscale x 8 x i8> [[VAL]], i64 0)
204 // CHECK-RV64-NEXT: ret <vscale x 32 x i8> [[TMP0]]
206 vint8m4_t
test_vset_v_i8m1_i8m4(vint8m4_t dest
, size_t index
, vint8m1_t val
) {
207 return __riscv_vset(dest
, 0, val
);
210 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i8> @test_vset_v_i8m2_i8m4
211 // CHECK-RV64-SAME: (<vscale x 32 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
212 // CHECK-RV64-NEXT: entry:
213 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.nxv16i8(<vscale x 32 x i8> [[DEST]], <vscale x 16 x i8> [[VAL]], i64 0)
214 // CHECK-RV64-NEXT: ret <vscale x 32 x i8> [[TMP0]]
216 vint8m4_t
test_vset_v_i8m2_i8m4(vint8m4_t dest
, size_t index
, vint8m2_t val
) {
217 return __riscv_vset(dest
, 0, val
);
220 // CHECK-RV64-LABEL: define dso_local <vscale x 64 x i8> @test_vset_v_i8m1_i8m8
221 // CHECK-RV64-SAME: (<vscale x 64 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
222 // CHECK-RV64-NEXT: entry:
223 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 64 x i8> @llvm.vector.insert.nxv64i8.nxv8i8(<vscale x 64 x i8> [[DEST]], <vscale x 8 x i8> [[VAL]], i64 0)
224 // CHECK-RV64-NEXT: ret <vscale x 64 x i8> [[TMP0]]
226 vint8m8_t
test_vset_v_i8m1_i8m8(vint8m8_t dest
, size_t index
, vint8m1_t val
) {
227 return __riscv_vset(dest
, 0, val
);
230 // CHECK-RV64-LABEL: define dso_local <vscale x 64 x i8> @test_vset_v_i8m2_i8m8
231 // CHECK-RV64-SAME: (<vscale x 64 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
232 // CHECK-RV64-NEXT: entry:
233 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 64 x i8> @llvm.vector.insert.nxv64i8.nxv16i8(<vscale x 64 x i8> [[DEST]], <vscale x 16 x i8> [[VAL]], i64 0)
234 // CHECK-RV64-NEXT: ret <vscale x 64 x i8> [[TMP0]]
236 vint8m8_t
test_vset_v_i8m2_i8m8(vint8m8_t dest
, size_t index
, vint8m2_t val
) {
237 return __riscv_vset(dest
, 0, val
);
240 // CHECK-RV64-LABEL: define dso_local <vscale x 64 x i8> @test_vset_v_i8m4_i8m8
241 // CHECK-RV64-SAME: (<vscale x 64 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 32 x i8> [[VAL:%.*]]) #[[ATTR0]] {
242 // CHECK-RV64-NEXT: entry:
243 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 64 x i8> @llvm.vector.insert.nxv64i8.nxv32i8(<vscale x 64 x i8> [[DEST]], <vscale x 32 x i8> [[VAL]], i64 0)
244 // CHECK-RV64-NEXT: ret <vscale x 64 x i8> [[TMP0]]
246 vint8m8_t
test_vset_v_i8m4_i8m8(vint8m8_t dest
, size_t index
, vint8m4_t val
) {
247 return __riscv_vset(dest
, 0, val
);
250 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i16> @test_vset_v_i16m1_i16m2
251 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
252 // CHECK-RV64-NEXT: entry:
253 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i16> @llvm.vector.insert.nxv8i16.nxv4i16(<vscale x 8 x i16> [[DEST]], <vscale x 4 x i16> [[VAL]], i64 0)
254 // CHECK-RV64-NEXT: ret <vscale x 8 x i16> [[TMP0]]
256 vint16m2_t
test_vset_v_i16m1_i16m2(vint16m2_t dest
, size_t index
, vint16m1_t val
) {
257 return __riscv_vset(dest
, 0, val
);
260 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i16> @test_vset_v_i16m1_i16m4
261 // CHECK-RV64-SAME: (<vscale x 16 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
262 // CHECK-RV64-NEXT: entry:
263 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i16> @llvm.vector.insert.nxv16i16.nxv4i16(<vscale x 16 x i16> [[DEST]], <vscale x 4 x i16> [[VAL]], i64 0)
264 // CHECK-RV64-NEXT: ret <vscale x 16 x i16> [[TMP0]]
266 vint16m4_t
test_vset_v_i16m1_i16m4(vint16m4_t dest
, size_t index
, vint16m1_t val
) {
267 return __riscv_vset(dest
, 0, val
);
270 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i16> @test_vset_v_i16m2_i16m4
271 // CHECK-RV64-SAME: (<vscale x 16 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
272 // CHECK-RV64-NEXT: entry:
273 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i16> @llvm.vector.insert.nxv16i16.nxv8i16(<vscale x 16 x i16> [[DEST]], <vscale x 8 x i16> [[VAL]], i64 0)
274 // CHECK-RV64-NEXT: ret <vscale x 16 x i16> [[TMP0]]
276 vint16m4_t
test_vset_v_i16m2_i16m4(vint16m4_t dest
, size_t index
, vint16m2_t val
) {
277 return __riscv_vset(dest
, 0, val
);
280 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i16> @test_vset_v_i16m1_i16m8
281 // CHECK-RV64-SAME: (<vscale x 32 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
282 // CHECK-RV64-NEXT: entry:
283 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i16> @llvm.vector.insert.nxv32i16.nxv4i16(<vscale x 32 x i16> [[DEST]], <vscale x 4 x i16> [[VAL]], i64 0)
284 // CHECK-RV64-NEXT: ret <vscale x 32 x i16> [[TMP0]]
286 vint16m8_t
test_vset_v_i16m1_i16m8(vint16m8_t dest
, size_t index
, vint16m1_t val
) {
287 return __riscv_vset(dest
, 0, val
);
290 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i16> @test_vset_v_i16m2_i16m8
291 // CHECK-RV64-SAME: (<vscale x 32 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
292 // CHECK-RV64-NEXT: entry:
293 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i16> @llvm.vector.insert.nxv32i16.nxv8i16(<vscale x 32 x i16> [[DEST]], <vscale x 8 x i16> [[VAL]], i64 0)
294 // CHECK-RV64-NEXT: ret <vscale x 32 x i16> [[TMP0]]
296 vint16m8_t
test_vset_v_i16m2_i16m8(vint16m8_t dest
, size_t index
, vint16m2_t val
) {
297 return __riscv_vset(dest
, 0, val
);
300 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i16> @test_vset_v_i16m4_i16m8
301 // CHECK-RV64-SAME: (<vscale x 32 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i16> [[VAL:%.*]]) #[[ATTR0]] {
302 // CHECK-RV64-NEXT: entry:
303 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i16> @llvm.vector.insert.nxv32i16.nxv16i16(<vscale x 32 x i16> [[DEST]], <vscale x 16 x i16> [[VAL]], i64 0)
304 // CHECK-RV64-NEXT: ret <vscale x 32 x i16> [[TMP0]]
306 vint16m8_t
test_vset_v_i16m4_i16m8(vint16m8_t dest
, size_t index
, vint16m4_t val
) {
307 return __riscv_vset(dest
, 0, val
);
310 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x i32> @test_vset_v_i32m1_i32m2
311 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
312 // CHECK-RV64-NEXT: entry:
313 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i32> @llvm.vector.insert.nxv4i32.nxv2i32(<vscale x 4 x i32> [[DEST]], <vscale x 2 x i32> [[VAL]], i64 0)
314 // CHECK-RV64-NEXT: ret <vscale x 4 x i32> [[TMP0]]
316 vint32m2_t
test_vset_v_i32m1_i32m2(vint32m2_t dest
, size_t index
, vint32m1_t val
) {
317 return __riscv_vset(dest
, 0, val
);
320 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i32> @test_vset_v_i32m1_i32m4
321 // CHECK-RV64-SAME: (<vscale x 8 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
322 // CHECK-RV64-NEXT: entry:
323 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i32> @llvm.vector.insert.nxv8i32.nxv2i32(<vscale x 8 x i32> [[DEST]], <vscale x 2 x i32> [[VAL]], i64 0)
324 // CHECK-RV64-NEXT: ret <vscale x 8 x i32> [[TMP0]]
326 vint32m4_t
test_vset_v_i32m1_i32m4(vint32m4_t dest
, size_t index
, vint32m1_t val
) {
327 return __riscv_vset(dest
, 0, val
);
330 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i32> @test_vset_v_i32m2_i32m4
331 // CHECK-RV64-SAME: (<vscale x 8 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
332 // CHECK-RV64-NEXT: entry:
333 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i32> @llvm.vector.insert.nxv8i32.nxv4i32(<vscale x 8 x i32> [[DEST]], <vscale x 4 x i32> [[VAL]], i64 0)
334 // CHECK-RV64-NEXT: ret <vscale x 8 x i32> [[TMP0]]
336 vint32m4_t
test_vset_v_i32m2_i32m4(vint32m4_t dest
, size_t index
, vint32m2_t val
) {
337 return __riscv_vset(dest
, 0, val
);
340 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i32> @test_vset_v_i32m1_i32m8
341 // CHECK-RV64-SAME: (<vscale x 16 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
342 // CHECK-RV64-NEXT: entry:
343 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i32> @llvm.vector.insert.nxv16i32.nxv2i32(<vscale x 16 x i32> [[DEST]], <vscale x 2 x i32> [[VAL]], i64 0)
344 // CHECK-RV64-NEXT: ret <vscale x 16 x i32> [[TMP0]]
346 vint32m8_t
test_vset_v_i32m1_i32m8(vint32m8_t dest
, size_t index
, vint32m1_t val
) {
347 return __riscv_vset(dest
, 0, val
);
350 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i32> @test_vset_v_i32m2_i32m8
351 // CHECK-RV64-SAME: (<vscale x 16 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
352 // CHECK-RV64-NEXT: entry:
353 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i32> @llvm.vector.insert.nxv16i32.nxv4i32(<vscale x 16 x i32> [[DEST]], <vscale x 4 x i32> [[VAL]], i64 0)
354 // CHECK-RV64-NEXT: ret <vscale x 16 x i32> [[TMP0]]
356 vint32m8_t
test_vset_v_i32m2_i32m8(vint32m8_t dest
, size_t index
, vint32m2_t val
) {
357 return __riscv_vset(dest
, 0, val
);
360 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i32> @test_vset_v_i32m4_i32m8
361 // CHECK-RV64-SAME: (<vscale x 16 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i32> [[VAL:%.*]]) #[[ATTR0]] {
362 // CHECK-RV64-NEXT: entry:
363 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i32> @llvm.vector.insert.nxv16i32.nxv8i32(<vscale x 16 x i32> [[DEST]], <vscale x 8 x i32> [[VAL]], i64 0)
364 // CHECK-RV64-NEXT: ret <vscale x 16 x i32> [[TMP0]]
366 vint32m8_t
test_vset_v_i32m4_i32m8(vint32m8_t dest
, size_t index
, vint32m4_t val
) {
367 return __riscv_vset(dest
, 0, val
);
370 // CHECK-RV64-LABEL: define dso_local <vscale x 2 x i64> @test_vset_v_i64m1_i64m2
371 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
372 // CHECK-RV64-NEXT: entry:
373 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 2 x i64> @llvm.vector.insert.nxv2i64.nxv1i64(<vscale x 2 x i64> [[DEST]], <vscale x 1 x i64> [[VAL]], i64 0)
374 // CHECK-RV64-NEXT: ret <vscale x 2 x i64> [[TMP0]]
376 vint64m2_t
test_vset_v_i64m1_i64m2(vint64m2_t dest
, size_t index
, vint64m1_t val
) {
377 return __riscv_vset(dest
, 0, val
);
380 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x i64> @test_vset_v_i64m1_i64m4
381 // CHECK-RV64-SAME: (<vscale x 4 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
382 // CHECK-RV64-NEXT: entry:
383 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i64> @llvm.vector.insert.nxv4i64.nxv1i64(<vscale x 4 x i64> [[DEST]], <vscale x 1 x i64> [[VAL]], i64 0)
384 // CHECK-RV64-NEXT: ret <vscale x 4 x i64> [[TMP0]]
386 vint64m4_t
test_vset_v_i64m1_i64m4(vint64m4_t dest
, size_t index
, vint64m1_t val
) {
387 return __riscv_vset(dest
, 0, val
);
390 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x i64> @test_vset_v_i64m2_i64m4
391 // CHECK-RV64-SAME: (<vscale x 4 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
392 // CHECK-RV64-NEXT: entry:
393 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i64> @llvm.vector.insert.nxv4i64.nxv2i64(<vscale x 4 x i64> [[DEST]], <vscale x 2 x i64> [[VAL]], i64 0)
394 // CHECK-RV64-NEXT: ret <vscale x 4 x i64> [[TMP0]]
396 vint64m4_t
test_vset_v_i64m2_i64m4(vint64m4_t dest
, size_t index
, vint64m2_t val
) {
397 return __riscv_vset(dest
, 0, val
);
400 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i64> @test_vset_v_i64m1_i64m8
401 // CHECK-RV64-SAME: (<vscale x 8 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
402 // CHECK-RV64-NEXT: entry:
403 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i64> @llvm.vector.insert.nxv8i64.nxv1i64(<vscale x 8 x i64> [[DEST]], <vscale x 1 x i64> [[VAL]], i64 0)
404 // CHECK-RV64-NEXT: ret <vscale x 8 x i64> [[TMP0]]
406 vint64m8_t
test_vset_v_i64m1_i64m8(vint64m8_t dest
, size_t index
, vint64m1_t val
) {
407 return __riscv_vset(dest
, 0, val
);
410 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i64> @test_vset_v_i64m2_i64m8
411 // CHECK-RV64-SAME: (<vscale x 8 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
412 // CHECK-RV64-NEXT: entry:
413 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i64> @llvm.vector.insert.nxv8i64.nxv2i64(<vscale x 8 x i64> [[DEST]], <vscale x 2 x i64> [[VAL]], i64 0)
414 // CHECK-RV64-NEXT: ret <vscale x 8 x i64> [[TMP0]]
416 vint64m8_t
test_vset_v_i64m2_i64m8(vint64m8_t dest
, size_t index
, vint64m2_t val
) {
417 return __riscv_vset(dest
, 0, val
);
420 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i64> @test_vset_v_i64m4_i64m8
421 // CHECK-RV64-SAME: (<vscale x 8 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i64> [[VAL:%.*]]) #[[ATTR0]] {
422 // CHECK-RV64-NEXT: entry:
423 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i64> @llvm.vector.insert.nxv8i64.nxv4i64(<vscale x 8 x i64> [[DEST]], <vscale x 4 x i64> [[VAL]], i64 0)
424 // CHECK-RV64-NEXT: ret <vscale x 8 x i64> [[TMP0]]
426 vint64m8_t
test_vset_v_i64m4_i64m8(vint64m8_t dest
, size_t index
, vint64m4_t val
) {
427 return __riscv_vset(dest
, 0, val
);
430 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i8> @test_vset_v_u8m1_u8m2
431 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
432 // CHECK-RV64-NEXT: entry:
433 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i8> @llvm.vector.insert.nxv16i8.nxv8i8(<vscale x 16 x i8> [[DEST]], <vscale x 8 x i8> [[VAL]], i64 0)
434 // CHECK-RV64-NEXT: ret <vscale x 16 x i8> [[TMP0]]
436 vuint8m2_t
test_vset_v_u8m1_u8m2(vuint8m2_t dest
, size_t index
, vuint8m1_t val
) {
437 return __riscv_vset(dest
, 0, val
);
440 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i8> @test_vset_v_u8m1_u8m4
441 // CHECK-RV64-SAME: (<vscale x 32 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
442 // CHECK-RV64-NEXT: entry:
443 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.nxv8i8(<vscale x 32 x i8> [[DEST]], <vscale x 8 x i8> [[VAL]], i64 0)
444 // CHECK-RV64-NEXT: ret <vscale x 32 x i8> [[TMP0]]
446 vuint8m4_t
test_vset_v_u8m1_u8m4(vuint8m4_t dest
, size_t index
, vuint8m1_t val
) {
447 return __riscv_vset(dest
, 0, val
);
450 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i8> @test_vset_v_u8m2_u8m4
451 // CHECK-RV64-SAME: (<vscale x 32 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
452 // CHECK-RV64-NEXT: entry:
453 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i8> @llvm.vector.insert.nxv32i8.nxv16i8(<vscale x 32 x i8> [[DEST]], <vscale x 16 x i8> [[VAL]], i64 0)
454 // CHECK-RV64-NEXT: ret <vscale x 32 x i8> [[TMP0]]
456 vuint8m4_t
test_vset_v_u8m2_u8m4(vuint8m4_t dest
, size_t index
, vuint8m2_t val
) {
457 return __riscv_vset(dest
, 0, val
);
460 // CHECK-RV64-LABEL: define dso_local <vscale x 64 x i8> @test_vset_v_u8m1_u8m8
461 // CHECK-RV64-SAME: (<vscale x 64 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
462 // CHECK-RV64-NEXT: entry:
463 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 64 x i8> @llvm.vector.insert.nxv64i8.nxv8i8(<vscale x 64 x i8> [[DEST]], <vscale x 8 x i8> [[VAL]], i64 0)
464 // CHECK-RV64-NEXT: ret <vscale x 64 x i8> [[TMP0]]
466 vuint8m8_t
test_vset_v_u8m1_u8m8(vuint8m8_t dest
, size_t index
, vuint8m1_t val
) {
467 return __riscv_vset(dest
, 0, val
);
470 // CHECK-RV64-LABEL: define dso_local <vscale x 64 x i8> @test_vset_v_u8m2_u8m8
471 // CHECK-RV64-SAME: (<vscale x 64 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
472 // CHECK-RV64-NEXT: entry:
473 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 64 x i8> @llvm.vector.insert.nxv64i8.nxv16i8(<vscale x 64 x i8> [[DEST]], <vscale x 16 x i8> [[VAL]], i64 0)
474 // CHECK-RV64-NEXT: ret <vscale x 64 x i8> [[TMP0]]
476 vuint8m8_t
test_vset_v_u8m2_u8m8(vuint8m8_t dest
, size_t index
, vuint8m2_t val
) {
477 return __riscv_vset(dest
, 0, val
);
480 // CHECK-RV64-LABEL: define dso_local <vscale x 64 x i8> @test_vset_v_u8m4_u8m8
481 // CHECK-RV64-SAME: (<vscale x 64 x i8> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 32 x i8> [[VAL:%.*]]) #[[ATTR0]] {
482 // CHECK-RV64-NEXT: entry:
483 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 64 x i8> @llvm.vector.insert.nxv64i8.nxv32i8(<vscale x 64 x i8> [[DEST]], <vscale x 32 x i8> [[VAL]], i64 0)
484 // CHECK-RV64-NEXT: ret <vscale x 64 x i8> [[TMP0]]
486 vuint8m8_t
test_vset_v_u8m4_u8m8(vuint8m8_t dest
, size_t index
, vuint8m4_t val
) {
487 return __riscv_vset(dest
, 0, val
);
490 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i16> @test_vset_v_u16m1_u16m2
491 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
492 // CHECK-RV64-NEXT: entry:
493 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i16> @llvm.vector.insert.nxv8i16.nxv4i16(<vscale x 8 x i16> [[DEST]], <vscale x 4 x i16> [[VAL]], i64 0)
494 // CHECK-RV64-NEXT: ret <vscale x 8 x i16> [[TMP0]]
496 vuint16m2_t
test_vset_v_u16m1_u16m2(vuint16m2_t dest
, size_t index
, vuint16m1_t val
) {
497 return __riscv_vset(dest
, 0, val
);
500 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i16> @test_vset_v_u16m1_u16m4
501 // CHECK-RV64-SAME: (<vscale x 16 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
502 // CHECK-RV64-NEXT: entry:
503 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i16> @llvm.vector.insert.nxv16i16.nxv4i16(<vscale x 16 x i16> [[DEST]], <vscale x 4 x i16> [[VAL]], i64 0)
504 // CHECK-RV64-NEXT: ret <vscale x 16 x i16> [[TMP0]]
506 vuint16m4_t
test_vset_v_u16m1_u16m4(vuint16m4_t dest
, size_t index
, vuint16m1_t val
) {
507 return __riscv_vset(dest
, 0, val
);
510 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i16> @test_vset_v_u16m2_u16m4
511 // CHECK-RV64-SAME: (<vscale x 16 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
512 // CHECK-RV64-NEXT: entry:
513 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i16> @llvm.vector.insert.nxv16i16.nxv8i16(<vscale x 16 x i16> [[DEST]], <vscale x 8 x i16> [[VAL]], i64 0)
514 // CHECK-RV64-NEXT: ret <vscale x 16 x i16> [[TMP0]]
516 vuint16m4_t
test_vset_v_u16m2_u16m4(vuint16m4_t dest
, size_t index
, vuint16m2_t val
) {
517 return __riscv_vset(dest
, 0, val
);
520 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i16> @test_vset_v_u16m1_u16m8
521 // CHECK-RV64-SAME: (<vscale x 32 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
522 // CHECK-RV64-NEXT: entry:
523 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i16> @llvm.vector.insert.nxv32i16.nxv4i16(<vscale x 32 x i16> [[DEST]], <vscale x 4 x i16> [[VAL]], i64 0)
524 // CHECK-RV64-NEXT: ret <vscale x 32 x i16> [[TMP0]]
526 vuint16m8_t
test_vset_v_u16m1_u16m8(vuint16m8_t dest
, size_t index
, vuint16m1_t val
) {
527 return __riscv_vset(dest
, 0, val
);
530 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i16> @test_vset_v_u16m2_u16m8
531 // CHECK-RV64-SAME: (<vscale x 32 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
532 // CHECK-RV64-NEXT: entry:
533 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i16> @llvm.vector.insert.nxv32i16.nxv8i16(<vscale x 32 x i16> [[DEST]], <vscale x 8 x i16> [[VAL]], i64 0)
534 // CHECK-RV64-NEXT: ret <vscale x 32 x i16> [[TMP0]]
536 vuint16m8_t
test_vset_v_u16m2_u16m8(vuint16m8_t dest
, size_t index
, vuint16m2_t val
) {
537 return __riscv_vset(dest
, 0, val
);
540 // CHECK-RV64-LABEL: define dso_local <vscale x 32 x i16> @test_vset_v_u16m4_u16m8
541 // CHECK-RV64-SAME: (<vscale x 32 x i16> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i16> [[VAL:%.*]]) #[[ATTR0]] {
542 // CHECK-RV64-NEXT: entry:
543 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 32 x i16> @llvm.vector.insert.nxv32i16.nxv16i16(<vscale x 32 x i16> [[DEST]], <vscale x 16 x i16> [[VAL]], i64 0)
544 // CHECK-RV64-NEXT: ret <vscale x 32 x i16> [[TMP0]]
546 vuint16m8_t
test_vset_v_u16m4_u16m8(vuint16m8_t dest
, size_t index
, vuint16m4_t val
) {
547 return __riscv_vset(dest
, 0, val
);
550 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x i32> @test_vset_v_u32m1_u32m2
551 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
552 // CHECK-RV64-NEXT: entry:
553 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i32> @llvm.vector.insert.nxv4i32.nxv2i32(<vscale x 4 x i32> [[DEST]], <vscale x 2 x i32> [[VAL]], i64 0)
554 // CHECK-RV64-NEXT: ret <vscale x 4 x i32> [[TMP0]]
556 vuint32m2_t
test_vset_v_u32m1_u32m2(vuint32m2_t dest
, size_t index
, vuint32m1_t val
) {
557 return __riscv_vset(dest
, 0, val
);
560 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i32> @test_vset_v_u32m1_u32m4
561 // CHECK-RV64-SAME: (<vscale x 8 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
562 // CHECK-RV64-NEXT: entry:
563 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i32> @llvm.vector.insert.nxv8i32.nxv2i32(<vscale x 8 x i32> [[DEST]], <vscale x 2 x i32> [[VAL]], i64 0)
564 // CHECK-RV64-NEXT: ret <vscale x 8 x i32> [[TMP0]]
566 vuint32m4_t
test_vset_v_u32m1_u32m4(vuint32m4_t dest
, size_t index
, vuint32m1_t val
) {
567 return __riscv_vset(dest
, 0, val
);
570 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i32> @test_vset_v_u32m2_u32m4
571 // CHECK-RV64-SAME: (<vscale x 8 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
572 // CHECK-RV64-NEXT: entry:
573 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i32> @llvm.vector.insert.nxv8i32.nxv4i32(<vscale x 8 x i32> [[DEST]], <vscale x 4 x i32> [[VAL]], i64 0)
574 // CHECK-RV64-NEXT: ret <vscale x 8 x i32> [[TMP0]]
576 vuint32m4_t
test_vset_v_u32m2_u32m4(vuint32m4_t dest
, size_t index
, vuint32m2_t val
) {
577 return __riscv_vset(dest
, 0, val
);
580 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i32> @test_vset_v_u32m1_u32m8
581 // CHECK-RV64-SAME: (<vscale x 16 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
582 // CHECK-RV64-NEXT: entry:
583 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i32> @llvm.vector.insert.nxv16i32.nxv2i32(<vscale x 16 x i32> [[DEST]], <vscale x 2 x i32> [[VAL]], i64 0)
584 // CHECK-RV64-NEXT: ret <vscale x 16 x i32> [[TMP0]]
586 vuint32m8_t
test_vset_v_u32m1_u32m8(vuint32m8_t dest
, size_t index
, vuint32m1_t val
) {
587 return __riscv_vset(dest
, 0, val
);
590 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i32> @test_vset_v_u32m2_u32m8
591 // CHECK-RV64-SAME: (<vscale x 16 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
592 // CHECK-RV64-NEXT: entry:
593 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i32> @llvm.vector.insert.nxv16i32.nxv4i32(<vscale x 16 x i32> [[DEST]], <vscale x 4 x i32> [[VAL]], i64 0)
594 // CHECK-RV64-NEXT: ret <vscale x 16 x i32> [[TMP0]]
596 vuint32m8_t
test_vset_v_u32m2_u32m8(vuint32m8_t dest
, size_t index
, vuint32m2_t val
) {
597 return __riscv_vset(dest
, 0, val
);
600 // CHECK-RV64-LABEL: define dso_local <vscale x 16 x i32> @test_vset_v_u32m4_u32m8
601 // CHECK-RV64-SAME: (<vscale x 16 x i32> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i32> [[VAL:%.*]]) #[[ATTR0]] {
602 // CHECK-RV64-NEXT: entry:
603 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i32> @llvm.vector.insert.nxv16i32.nxv8i32(<vscale x 16 x i32> [[DEST]], <vscale x 8 x i32> [[VAL]], i64 0)
604 // CHECK-RV64-NEXT: ret <vscale x 16 x i32> [[TMP0]]
606 vuint32m8_t
test_vset_v_u32m4_u32m8(vuint32m8_t dest
, size_t index
, vuint32m4_t val
) {
607 return __riscv_vset(dest
, 0, val
);
610 // CHECK-RV64-LABEL: define dso_local <vscale x 2 x i64> @test_vset_v_u64m1_u64m2
611 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
612 // CHECK-RV64-NEXT: entry:
613 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 2 x i64> @llvm.vector.insert.nxv2i64.nxv1i64(<vscale x 2 x i64> [[DEST]], <vscale x 1 x i64> [[VAL]], i64 0)
614 // CHECK-RV64-NEXT: ret <vscale x 2 x i64> [[TMP0]]
616 vuint64m2_t
test_vset_v_u64m1_u64m2(vuint64m2_t dest
, size_t index
, vuint64m1_t val
) {
617 return __riscv_vset(dest
, 0, val
);
620 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x i64> @test_vset_v_u64m1_u64m4
621 // CHECK-RV64-SAME: (<vscale x 4 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
622 // CHECK-RV64-NEXT: entry:
623 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i64> @llvm.vector.insert.nxv4i64.nxv1i64(<vscale x 4 x i64> [[DEST]], <vscale x 1 x i64> [[VAL]], i64 0)
624 // CHECK-RV64-NEXT: ret <vscale x 4 x i64> [[TMP0]]
626 vuint64m4_t
test_vset_v_u64m1_u64m4(vuint64m4_t dest
, size_t index
, vuint64m1_t val
) {
627 return __riscv_vset(dest
, 0, val
);
630 // CHECK-RV64-LABEL: define dso_local <vscale x 4 x i64> @test_vset_v_u64m2_u64m4
631 // CHECK-RV64-SAME: (<vscale x 4 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
632 // CHECK-RV64-NEXT: entry:
633 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i64> @llvm.vector.insert.nxv4i64.nxv2i64(<vscale x 4 x i64> [[DEST]], <vscale x 2 x i64> [[VAL]], i64 0)
634 // CHECK-RV64-NEXT: ret <vscale x 4 x i64> [[TMP0]]
636 vuint64m4_t
test_vset_v_u64m2_u64m4(vuint64m4_t dest
, size_t index
, vuint64m2_t val
) {
637 return __riscv_vset(dest
, 0, val
);
640 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i64> @test_vset_v_u64m1_u64m8
641 // CHECK-RV64-SAME: (<vscale x 8 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
642 // CHECK-RV64-NEXT: entry:
643 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i64> @llvm.vector.insert.nxv8i64.nxv1i64(<vscale x 8 x i64> [[DEST]], <vscale x 1 x i64> [[VAL]], i64 0)
644 // CHECK-RV64-NEXT: ret <vscale x 8 x i64> [[TMP0]]
646 vuint64m8_t
test_vset_v_u64m1_u64m8(vuint64m8_t dest
, size_t index
, vuint64m1_t val
) {
647 return __riscv_vset(dest
, 0, val
);
650 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i64> @test_vset_v_u64m2_u64m8
651 // CHECK-RV64-SAME: (<vscale x 8 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
652 // CHECK-RV64-NEXT: entry:
653 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i64> @llvm.vector.insert.nxv8i64.nxv2i64(<vscale x 8 x i64> [[DEST]], <vscale x 2 x i64> [[VAL]], i64 0)
654 // CHECK-RV64-NEXT: ret <vscale x 8 x i64> [[TMP0]]
656 vuint64m8_t
test_vset_v_u64m2_u64m8(vuint64m8_t dest
, size_t index
, vuint64m2_t val
) {
657 return __riscv_vset(dest
, 0, val
);
660 // CHECK-RV64-LABEL: define dso_local <vscale x 8 x i64> @test_vset_v_u64m4_u64m8
661 // CHECK-RV64-SAME: (<vscale x 8 x i64> [[DEST:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i64> [[VAL:%.*]]) #[[ATTR0]] {
662 // CHECK-RV64-NEXT: entry:
663 // CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i64> @llvm.vector.insert.nxv8i64.nxv4i64(<vscale x 8 x i64> [[DEST]], <vscale x 4 x i64> [[VAL]], i64 0)
664 // CHECK-RV64-NEXT: ret <vscale x 8 x i64> [[TMP0]]
666 vuint64m8_t
test_vset_v_u64m4_u64m8(vuint64m8_t dest
, size_t index
, vuint64m4_t val
) {
667 return __riscv_vset(dest
, 0, val
);
670 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x2
671 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
672 // CHECK-RV64-NEXT: entry:
673 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
674 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
675 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[VAL]], 0
676 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]]
678 vfloat16mf4x2_t
test_vset_v_f16mf4_f16mf4x2(vfloat16mf4x2_t dest
, size_t index
, vfloat16mf4_t val
) {
679 return __riscv_vset(dest
, 0, val
);
682 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x3
683 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], <vscale x 1 x half> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
684 // CHECK-RV64-NEXT: entry:
685 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
686 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
687 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[DEST_COERCE2]], 2
688 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]], <vscale x 1 x half> [[VAL]], 0
689 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP3]]
691 vfloat16mf4x3_t
test_vset_v_f16mf4_f16mf4x3(vfloat16mf4x3_t dest
, size_t index
, vfloat16mf4_t val
) {
692 return __riscv_vset(dest
, 0, val
);
695 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x4
696 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], <vscale x 1 x half> [[DEST_COERCE2:%.*]], <vscale x 1 x half> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
697 // CHECK-RV64-NEXT: entry:
698 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
699 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
700 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[DEST_COERCE2]], 2
701 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]], <vscale x 1 x half> [[DEST_COERCE3]], 3
702 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP3]], <vscale x 1 x half> [[VAL]], 0
703 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP4]]
705 vfloat16mf4x4_t
test_vset_v_f16mf4_f16mf4x4(vfloat16mf4x4_t dest
, size_t index
, vfloat16mf4_t val
) {
706 return __riscv_vset(dest
, 0, val
);
709 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x5
710 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], <vscale x 1 x half> [[DEST_COERCE2:%.*]], <vscale x 1 x half> [[DEST_COERCE3:%.*]], <vscale x 1 x half> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
711 // CHECK-RV64-NEXT: entry:
712 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
713 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
714 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[DEST_COERCE2]], 2
715 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]], <vscale x 1 x half> [[DEST_COERCE3]], 3
716 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP3]], <vscale x 1 x half> [[DEST_COERCE4]], 4
717 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP4]], <vscale x 1 x half> [[VAL]], 0
718 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP5]]
720 vfloat16mf4x5_t
test_vset_v_f16mf4_f16mf4x5(vfloat16mf4x5_t dest
, size_t index
, vfloat16mf4_t val
) {
721 return __riscv_vset(dest
, 0, val
);
724 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x6
725 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], <vscale x 1 x half> [[DEST_COERCE2:%.*]], <vscale x 1 x half> [[DEST_COERCE3:%.*]], <vscale x 1 x half> [[DEST_COERCE4:%.*]], <vscale x 1 x half> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
726 // CHECK-RV64-NEXT: entry:
727 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
728 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
729 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[DEST_COERCE2]], 2
730 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]], <vscale x 1 x half> [[DEST_COERCE3]], 3
731 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP3]], <vscale x 1 x half> [[DEST_COERCE4]], 4
732 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP4]], <vscale x 1 x half> [[DEST_COERCE5]], 5
733 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP5]], <vscale x 1 x half> [[VAL]], 0
734 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP6]]
736 vfloat16mf4x6_t
test_vset_v_f16mf4_f16mf4x6(vfloat16mf4x6_t dest
, size_t index
, vfloat16mf4_t val
) {
737 return __riscv_vset(dest
, 0, val
);
740 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x7
741 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], <vscale x 1 x half> [[DEST_COERCE2:%.*]], <vscale x 1 x half> [[DEST_COERCE3:%.*]], <vscale x 1 x half> [[DEST_COERCE4:%.*]], <vscale x 1 x half> [[DEST_COERCE5:%.*]], <vscale x 1 x half> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
742 // CHECK-RV64-NEXT: entry:
743 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
744 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
745 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[DEST_COERCE2]], 2
746 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]], <vscale x 1 x half> [[DEST_COERCE3]], 3
747 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP3]], <vscale x 1 x half> [[DEST_COERCE4]], 4
748 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP4]], <vscale x 1 x half> [[DEST_COERCE5]], 5
749 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP5]], <vscale x 1 x half> [[DEST_COERCE6]], 6
750 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP6]], <vscale x 1 x half> [[VAL]], 0
751 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP7]]
753 vfloat16mf4x7_t
test_vset_v_f16mf4_f16mf4x7(vfloat16mf4x7_t dest
, size_t index
, vfloat16mf4_t val
) {
754 return __riscv_vset(dest
, 0, val
);
757 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } @test_vset_v_f16mf4_f16mf4x8
758 // CHECK-RV64-SAME: (<vscale x 1 x half> [[DEST_COERCE0:%.*]], <vscale x 1 x half> [[DEST_COERCE1:%.*]], <vscale x 1 x half> [[DEST_COERCE2:%.*]], <vscale x 1 x half> [[DEST_COERCE3:%.*]], <vscale x 1 x half> [[DEST_COERCE4:%.*]], <vscale x 1 x half> [[DEST_COERCE5:%.*]], <vscale x 1 x half> [[DEST_COERCE6:%.*]], <vscale x 1 x half> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x half> [[VAL:%.*]]) #[[ATTR0]] {
759 // CHECK-RV64-NEXT: entry:
760 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } poison, <vscale x 1 x half> [[DEST_COERCE0]], 0
761 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP0]], <vscale x 1 x half> [[DEST_COERCE1]], 1
762 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP1]], <vscale x 1 x half> [[DEST_COERCE2]], 2
763 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP2]], <vscale x 1 x half> [[DEST_COERCE3]], 3
764 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP3]], <vscale x 1 x half> [[DEST_COERCE4]], 4
765 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP4]], <vscale x 1 x half> [[DEST_COERCE5]], 5
766 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP5]], <vscale x 1 x half> [[DEST_COERCE6]], 6
767 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP6]], <vscale x 1 x half> [[DEST_COERCE7]], 7
768 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP7]], <vscale x 1 x half> [[VAL]], 0
769 // CHECK-RV64-NEXT: ret { <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half>, <vscale x 1 x half> } [[TMP8]]
771 vfloat16mf4x8_t
test_vset_v_f16mf4_f16mf4x8(vfloat16mf4x8_t dest
, size_t index
, vfloat16mf4_t val
) {
772 return __riscv_vset(dest
, 0, val
);
775 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x2
776 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
777 // CHECK-RV64-NEXT: entry:
778 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
779 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
780 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[VAL]], 0
781 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]]
783 vfloat16mf2x2_t
test_vset_v_f16mf2_f16mf2x2(vfloat16mf2x2_t dest
, size_t index
, vfloat16mf2_t val
) {
784 return __riscv_vset(dest
, 0, val
);
787 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x3
788 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], <vscale x 2 x half> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
789 // CHECK-RV64-NEXT: entry:
790 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
791 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
792 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[DEST_COERCE2]], 2
793 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]], <vscale x 2 x half> [[VAL]], 0
794 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP3]]
796 vfloat16mf2x3_t
test_vset_v_f16mf2_f16mf2x3(vfloat16mf2x3_t dest
, size_t index
, vfloat16mf2_t val
) {
797 return __riscv_vset(dest
, 0, val
);
800 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x4
801 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], <vscale x 2 x half> [[DEST_COERCE2:%.*]], <vscale x 2 x half> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
802 // CHECK-RV64-NEXT: entry:
803 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
804 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
805 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[DEST_COERCE2]], 2
806 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]], <vscale x 2 x half> [[DEST_COERCE3]], 3
807 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP3]], <vscale x 2 x half> [[VAL]], 0
808 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP4]]
810 vfloat16mf2x4_t
test_vset_v_f16mf2_f16mf2x4(vfloat16mf2x4_t dest
, size_t index
, vfloat16mf2_t val
) {
811 return __riscv_vset(dest
, 0, val
);
814 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x5
815 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], <vscale x 2 x half> [[DEST_COERCE2:%.*]], <vscale x 2 x half> [[DEST_COERCE3:%.*]], <vscale x 2 x half> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
816 // CHECK-RV64-NEXT: entry:
817 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
818 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
819 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[DEST_COERCE2]], 2
820 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]], <vscale x 2 x half> [[DEST_COERCE3]], 3
821 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP3]], <vscale x 2 x half> [[DEST_COERCE4]], 4
822 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP4]], <vscale x 2 x half> [[VAL]], 0
823 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP5]]
825 vfloat16mf2x5_t
test_vset_v_f16mf2_f16mf2x5(vfloat16mf2x5_t dest
, size_t index
, vfloat16mf2_t val
) {
826 return __riscv_vset(dest
, 0, val
);
829 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x6
830 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], <vscale x 2 x half> [[DEST_COERCE2:%.*]], <vscale x 2 x half> [[DEST_COERCE3:%.*]], <vscale x 2 x half> [[DEST_COERCE4:%.*]], <vscale x 2 x half> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
831 // CHECK-RV64-NEXT: entry:
832 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
833 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
834 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[DEST_COERCE2]], 2
835 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]], <vscale x 2 x half> [[DEST_COERCE3]], 3
836 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP3]], <vscale x 2 x half> [[DEST_COERCE4]], 4
837 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP4]], <vscale x 2 x half> [[DEST_COERCE5]], 5
838 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP5]], <vscale x 2 x half> [[VAL]], 0
839 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP6]]
841 vfloat16mf2x6_t
test_vset_v_f16mf2_f16mf2x6(vfloat16mf2x6_t dest
, size_t index
, vfloat16mf2_t val
) {
842 return __riscv_vset(dest
, 0, val
);
845 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x7
846 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], <vscale x 2 x half> [[DEST_COERCE2:%.*]], <vscale x 2 x half> [[DEST_COERCE3:%.*]], <vscale x 2 x half> [[DEST_COERCE4:%.*]], <vscale x 2 x half> [[DEST_COERCE5:%.*]], <vscale x 2 x half> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
847 // CHECK-RV64-NEXT: entry:
848 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
849 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
850 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[DEST_COERCE2]], 2
851 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]], <vscale x 2 x half> [[DEST_COERCE3]], 3
852 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP3]], <vscale x 2 x half> [[DEST_COERCE4]], 4
853 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP4]], <vscale x 2 x half> [[DEST_COERCE5]], 5
854 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP5]], <vscale x 2 x half> [[DEST_COERCE6]], 6
855 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP6]], <vscale x 2 x half> [[VAL]], 0
856 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP7]]
858 vfloat16mf2x7_t
test_vset_v_f16mf2_f16mf2x7(vfloat16mf2x7_t dest
, size_t index
, vfloat16mf2_t val
) {
859 return __riscv_vset(dest
, 0, val
);
862 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } @test_vset_v_f16mf2_f16mf2x8
863 // CHECK-RV64-SAME: (<vscale x 2 x half> [[DEST_COERCE0:%.*]], <vscale x 2 x half> [[DEST_COERCE1:%.*]], <vscale x 2 x half> [[DEST_COERCE2:%.*]], <vscale x 2 x half> [[DEST_COERCE3:%.*]], <vscale x 2 x half> [[DEST_COERCE4:%.*]], <vscale x 2 x half> [[DEST_COERCE5:%.*]], <vscale x 2 x half> [[DEST_COERCE6:%.*]], <vscale x 2 x half> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x half> [[VAL:%.*]]) #[[ATTR0]] {
864 // CHECK-RV64-NEXT: entry:
865 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } poison, <vscale x 2 x half> [[DEST_COERCE0]], 0
866 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP0]], <vscale x 2 x half> [[DEST_COERCE1]], 1
867 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP1]], <vscale x 2 x half> [[DEST_COERCE2]], 2
868 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP2]], <vscale x 2 x half> [[DEST_COERCE3]], 3
869 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP3]], <vscale x 2 x half> [[DEST_COERCE4]], 4
870 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP4]], <vscale x 2 x half> [[DEST_COERCE5]], 5
871 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP5]], <vscale x 2 x half> [[DEST_COERCE6]], 6
872 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP6]], <vscale x 2 x half> [[DEST_COERCE7]], 7
873 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP7]], <vscale x 2 x half> [[VAL]], 0
874 // CHECK-RV64-NEXT: ret { <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half>, <vscale x 2 x half> } [[TMP8]]
876 vfloat16mf2x8_t
test_vset_v_f16mf2_f16mf2x8(vfloat16mf2x8_t dest
, size_t index
, vfloat16mf2_t val
) {
877 return __riscv_vset(dest
, 0, val
);
880 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x2
881 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
882 // CHECK-RV64-NEXT: entry:
883 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
884 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
885 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[VAL]], 0
886 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]]
888 vfloat16m1x2_t
test_vset_v_f16m1_f16m1x2(vfloat16m1x2_t dest
, size_t index
, vfloat16m1_t val
) {
889 return __riscv_vset(dest
, 0, val
);
892 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x3
893 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], <vscale x 4 x half> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
894 // CHECK-RV64-NEXT: entry:
895 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
896 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
897 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[DEST_COERCE2]], 2
898 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]], <vscale x 4 x half> [[VAL]], 0
899 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP3]]
901 vfloat16m1x3_t
test_vset_v_f16m1_f16m1x3(vfloat16m1x3_t dest
, size_t index
, vfloat16m1_t val
) {
902 return __riscv_vset(dest
, 0, val
);
905 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x4
906 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], <vscale x 4 x half> [[DEST_COERCE2:%.*]], <vscale x 4 x half> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
907 // CHECK-RV64-NEXT: entry:
908 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
909 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
910 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[DEST_COERCE2]], 2
911 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]], <vscale x 4 x half> [[DEST_COERCE3]], 3
912 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP3]], <vscale x 4 x half> [[VAL]], 0
913 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP4]]
915 vfloat16m1x4_t
test_vset_v_f16m1_f16m1x4(vfloat16m1x4_t dest
, size_t index
, vfloat16m1_t val
) {
916 return __riscv_vset(dest
, 0, val
);
919 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x5
920 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], <vscale x 4 x half> [[DEST_COERCE2:%.*]], <vscale x 4 x half> [[DEST_COERCE3:%.*]], <vscale x 4 x half> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
921 // CHECK-RV64-NEXT: entry:
922 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
923 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
924 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[DEST_COERCE2]], 2
925 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]], <vscale x 4 x half> [[DEST_COERCE3]], 3
926 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP3]], <vscale x 4 x half> [[DEST_COERCE4]], 4
927 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP4]], <vscale x 4 x half> [[VAL]], 0
928 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP5]]
930 vfloat16m1x5_t
test_vset_v_f16m1_f16m1x5(vfloat16m1x5_t dest
, size_t index
, vfloat16m1_t val
) {
931 return __riscv_vset(dest
, 0, val
);
934 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x6
935 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], <vscale x 4 x half> [[DEST_COERCE2:%.*]], <vscale x 4 x half> [[DEST_COERCE3:%.*]], <vscale x 4 x half> [[DEST_COERCE4:%.*]], <vscale x 4 x half> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
936 // CHECK-RV64-NEXT: entry:
937 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
938 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
939 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[DEST_COERCE2]], 2
940 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]], <vscale x 4 x half> [[DEST_COERCE3]], 3
941 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP3]], <vscale x 4 x half> [[DEST_COERCE4]], 4
942 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP4]], <vscale x 4 x half> [[DEST_COERCE5]], 5
943 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP5]], <vscale x 4 x half> [[VAL]], 0
944 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP6]]
946 vfloat16m1x6_t
test_vset_v_f16m1_f16m1x6(vfloat16m1x6_t dest
, size_t index
, vfloat16m1_t val
) {
947 return __riscv_vset(dest
, 0, val
);
950 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x7
951 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], <vscale x 4 x half> [[DEST_COERCE2:%.*]], <vscale x 4 x half> [[DEST_COERCE3:%.*]], <vscale x 4 x half> [[DEST_COERCE4:%.*]], <vscale x 4 x half> [[DEST_COERCE5:%.*]], <vscale x 4 x half> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
952 // CHECK-RV64-NEXT: entry:
953 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
954 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
955 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[DEST_COERCE2]], 2
956 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]], <vscale x 4 x half> [[DEST_COERCE3]], 3
957 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP3]], <vscale x 4 x half> [[DEST_COERCE4]], 4
958 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP4]], <vscale x 4 x half> [[DEST_COERCE5]], 5
959 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP5]], <vscale x 4 x half> [[DEST_COERCE6]], 6
960 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP6]], <vscale x 4 x half> [[VAL]], 0
961 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP7]]
963 vfloat16m1x7_t
test_vset_v_f16m1_f16m1x7(vfloat16m1x7_t dest
, size_t index
, vfloat16m1_t val
) {
964 return __riscv_vset(dest
, 0, val
);
967 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } @test_vset_v_f16m1_f16m1x8
968 // CHECK-RV64-SAME: (<vscale x 4 x half> [[DEST_COERCE0:%.*]], <vscale x 4 x half> [[DEST_COERCE1:%.*]], <vscale x 4 x half> [[DEST_COERCE2:%.*]], <vscale x 4 x half> [[DEST_COERCE3:%.*]], <vscale x 4 x half> [[DEST_COERCE4:%.*]], <vscale x 4 x half> [[DEST_COERCE5:%.*]], <vscale x 4 x half> [[DEST_COERCE6:%.*]], <vscale x 4 x half> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x half> [[VAL:%.*]]) #[[ATTR0]] {
969 // CHECK-RV64-NEXT: entry:
970 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } poison, <vscale x 4 x half> [[DEST_COERCE0]], 0
971 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP0]], <vscale x 4 x half> [[DEST_COERCE1]], 1
972 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP1]], <vscale x 4 x half> [[DEST_COERCE2]], 2
973 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP2]], <vscale x 4 x half> [[DEST_COERCE3]], 3
974 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP3]], <vscale x 4 x half> [[DEST_COERCE4]], 4
975 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP4]], <vscale x 4 x half> [[DEST_COERCE5]], 5
976 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP5]], <vscale x 4 x half> [[DEST_COERCE6]], 6
977 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP6]], <vscale x 4 x half> [[DEST_COERCE7]], 7
978 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP7]], <vscale x 4 x half> [[VAL]], 0
979 // CHECK-RV64-NEXT: ret { <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half>, <vscale x 4 x half> } [[TMP8]]
981 vfloat16m1x8_t
test_vset_v_f16m1_f16m1x8(vfloat16m1x8_t dest
, size_t index
, vfloat16m1_t val
) {
982 return __riscv_vset(dest
, 0, val
);
985 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x half>, <vscale x 8 x half> } @test_vset_v_f16m2_f16m2x2
986 // CHECK-RV64-SAME: (<vscale x 8 x half> [[DEST_COERCE0:%.*]], <vscale x 8 x half> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x half> [[VAL:%.*]]) #[[ATTR0]] {
987 // CHECK-RV64-NEXT: entry:
988 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half> } poison, <vscale x 8 x half> [[DEST_COERCE0]], 0
989 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half> } [[TMP0]], <vscale x 8 x half> [[DEST_COERCE1]], 1
990 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half> } [[TMP1]], <vscale x 8 x half> [[VAL]], 0
991 // CHECK-RV64-NEXT: ret { <vscale x 8 x half>, <vscale x 8 x half> } [[TMP2]]
993 vfloat16m2x2_t
test_vset_v_f16m2_f16m2x2(vfloat16m2x2_t dest
, size_t index
, vfloat16m2_t val
) {
994 return __riscv_vset(dest
, 0, val
);
997 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } @test_vset_v_f16m2_f16m2x3
998 // CHECK-RV64-SAME: (<vscale x 8 x half> [[DEST_COERCE0:%.*]], <vscale x 8 x half> [[DEST_COERCE1:%.*]], <vscale x 8 x half> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x half> [[VAL:%.*]]) #[[ATTR0]] {
999 // CHECK-RV64-NEXT: entry:
1000 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } poison, <vscale x 8 x half> [[DEST_COERCE0]], 0
1001 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP0]], <vscale x 8 x half> [[DEST_COERCE1]], 1
1002 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP1]], <vscale x 8 x half> [[DEST_COERCE2]], 2
1003 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP2]], <vscale x 8 x half> [[VAL]], 0
1004 // CHECK-RV64-NEXT: ret { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP3]]
1006 vfloat16m2x3_t
test_vset_v_f16m2_f16m2x3(vfloat16m2x3_t dest
, size_t index
, vfloat16m2_t val
) {
1007 return __riscv_vset(dest
, 0, val
);
1010 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } @test_vset_v_f16m2_f16m2x4
1011 // CHECK-RV64-SAME: (<vscale x 8 x half> [[DEST_COERCE0:%.*]], <vscale x 8 x half> [[DEST_COERCE1:%.*]], <vscale x 8 x half> [[DEST_COERCE2:%.*]], <vscale x 8 x half> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x half> [[VAL:%.*]]) #[[ATTR0]] {
1012 // CHECK-RV64-NEXT: entry:
1013 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } poison, <vscale x 8 x half> [[DEST_COERCE0]], 0
1014 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP0]], <vscale x 8 x half> [[DEST_COERCE1]], 1
1015 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP1]], <vscale x 8 x half> [[DEST_COERCE2]], 2
1016 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP2]], <vscale x 8 x half> [[DEST_COERCE3]], 3
1017 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP3]], <vscale x 8 x half> [[VAL]], 0
1018 // CHECK-RV64-NEXT: ret { <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half> } [[TMP4]]
1020 vfloat16m2x4_t
test_vset_v_f16m2_f16m2x4(vfloat16m2x4_t dest
, size_t index
, vfloat16m2_t val
) {
1021 return __riscv_vset(dest
, 0, val
);
1024 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x half>, <vscale x 16 x half> } @test_vset_v_f16m4_f16m4x2
1025 // CHECK-RV64-SAME: (<vscale x 16 x half> [[DEST_COERCE0:%.*]], <vscale x 16 x half> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x half> [[VAL:%.*]]) #[[ATTR0]] {
1026 // CHECK-RV64-NEXT: entry:
1027 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x half>, <vscale x 16 x half> } poison, <vscale x 16 x half> [[DEST_COERCE0]], 0
1028 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x half>, <vscale x 16 x half> } [[TMP0]], <vscale x 16 x half> [[DEST_COERCE1]], 1
1029 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x half>, <vscale x 16 x half> } [[TMP1]], <vscale x 16 x half> [[VAL]], 0
1030 // CHECK-RV64-NEXT: ret { <vscale x 16 x half>, <vscale x 16 x half> } [[TMP2]]
1032 vfloat16m4x2_t
test_vset_v_f16m4_f16m4x2(vfloat16m4x2_t dest
, size_t index
, vfloat16m4_t val
) {
1033 return __riscv_vset(dest
, 0, val
);
1036 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x2
1037 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1038 // CHECK-RV64-NEXT: entry:
1039 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1040 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1041 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[VAL]], 0
1042 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]]
1044 vfloat32mf2x2_t
test_vset_v_f32mf2_f32mf2x2(vfloat32mf2x2_t dest
, size_t index
, vfloat32mf2_t val
) {
1045 return __riscv_vset(dest
, 0, val
);
1048 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x3
1049 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], <vscale x 1 x float> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1050 // CHECK-RV64-NEXT: entry:
1051 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1052 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1053 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[DEST_COERCE2]], 2
1054 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]], <vscale x 1 x float> [[VAL]], 0
1055 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP3]]
1057 vfloat32mf2x3_t
test_vset_v_f32mf2_f32mf2x3(vfloat32mf2x3_t dest
, size_t index
, vfloat32mf2_t val
) {
1058 return __riscv_vset(dest
, 0, val
);
1061 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x4
1062 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], <vscale x 1 x float> [[DEST_COERCE2:%.*]], <vscale x 1 x float> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1063 // CHECK-RV64-NEXT: entry:
1064 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1065 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1066 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[DEST_COERCE2]], 2
1067 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]], <vscale x 1 x float> [[DEST_COERCE3]], 3
1068 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP3]], <vscale x 1 x float> [[VAL]], 0
1069 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP4]]
1071 vfloat32mf2x4_t
test_vset_v_f32mf2_f32mf2x4(vfloat32mf2x4_t dest
, size_t index
, vfloat32mf2_t val
) {
1072 return __riscv_vset(dest
, 0, val
);
1075 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x5
1076 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], <vscale x 1 x float> [[DEST_COERCE2:%.*]], <vscale x 1 x float> [[DEST_COERCE3:%.*]], <vscale x 1 x float> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1077 // CHECK-RV64-NEXT: entry:
1078 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1079 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1080 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[DEST_COERCE2]], 2
1081 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]], <vscale x 1 x float> [[DEST_COERCE3]], 3
1082 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP3]], <vscale x 1 x float> [[DEST_COERCE4]], 4
1083 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP4]], <vscale x 1 x float> [[VAL]], 0
1084 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP5]]
1086 vfloat32mf2x5_t
test_vset_v_f32mf2_f32mf2x5(vfloat32mf2x5_t dest
, size_t index
, vfloat32mf2_t val
) {
1087 return __riscv_vset(dest
, 0, val
);
1090 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x6
1091 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], <vscale x 1 x float> [[DEST_COERCE2:%.*]], <vscale x 1 x float> [[DEST_COERCE3:%.*]], <vscale x 1 x float> [[DEST_COERCE4:%.*]], <vscale x 1 x float> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1092 // CHECK-RV64-NEXT: entry:
1093 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1094 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1095 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[DEST_COERCE2]], 2
1096 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]], <vscale x 1 x float> [[DEST_COERCE3]], 3
1097 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP3]], <vscale x 1 x float> [[DEST_COERCE4]], 4
1098 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP4]], <vscale x 1 x float> [[DEST_COERCE5]], 5
1099 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP5]], <vscale x 1 x float> [[VAL]], 0
1100 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP6]]
1102 vfloat32mf2x6_t
test_vset_v_f32mf2_f32mf2x6(vfloat32mf2x6_t dest
, size_t index
, vfloat32mf2_t val
) {
1103 return __riscv_vset(dest
, 0, val
);
1106 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x7
1107 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], <vscale x 1 x float> [[DEST_COERCE2:%.*]], <vscale x 1 x float> [[DEST_COERCE3:%.*]], <vscale x 1 x float> [[DEST_COERCE4:%.*]], <vscale x 1 x float> [[DEST_COERCE5:%.*]], <vscale x 1 x float> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1108 // CHECK-RV64-NEXT: entry:
1109 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1110 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1111 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[DEST_COERCE2]], 2
1112 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]], <vscale x 1 x float> [[DEST_COERCE3]], 3
1113 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP3]], <vscale x 1 x float> [[DEST_COERCE4]], 4
1114 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP4]], <vscale x 1 x float> [[DEST_COERCE5]], 5
1115 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP5]], <vscale x 1 x float> [[DEST_COERCE6]], 6
1116 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP6]], <vscale x 1 x float> [[VAL]], 0
1117 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP7]]
1119 vfloat32mf2x7_t
test_vset_v_f32mf2_f32mf2x7(vfloat32mf2x7_t dest
, size_t index
, vfloat32mf2_t val
) {
1120 return __riscv_vset(dest
, 0, val
);
1123 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } @test_vset_v_f32mf2_f32mf2x8
1124 // CHECK-RV64-SAME: (<vscale x 1 x float> [[DEST_COERCE0:%.*]], <vscale x 1 x float> [[DEST_COERCE1:%.*]], <vscale x 1 x float> [[DEST_COERCE2:%.*]], <vscale x 1 x float> [[DEST_COERCE3:%.*]], <vscale x 1 x float> [[DEST_COERCE4:%.*]], <vscale x 1 x float> [[DEST_COERCE5:%.*]], <vscale x 1 x float> [[DEST_COERCE6:%.*]], <vscale x 1 x float> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x float> [[VAL:%.*]]) #[[ATTR0]] {
1125 // CHECK-RV64-NEXT: entry:
1126 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } poison, <vscale x 1 x float> [[DEST_COERCE0]], 0
1127 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP0]], <vscale x 1 x float> [[DEST_COERCE1]], 1
1128 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP1]], <vscale x 1 x float> [[DEST_COERCE2]], 2
1129 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP2]], <vscale x 1 x float> [[DEST_COERCE3]], 3
1130 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP3]], <vscale x 1 x float> [[DEST_COERCE4]], 4
1131 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP4]], <vscale x 1 x float> [[DEST_COERCE5]], 5
1132 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP5]], <vscale x 1 x float> [[DEST_COERCE6]], 6
1133 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP6]], <vscale x 1 x float> [[DEST_COERCE7]], 7
1134 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP7]], <vscale x 1 x float> [[VAL]], 0
1135 // CHECK-RV64-NEXT: ret { <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float>, <vscale x 1 x float> } [[TMP8]]
1137 vfloat32mf2x8_t
test_vset_v_f32mf2_f32mf2x8(vfloat32mf2x8_t dest
, size_t index
, vfloat32mf2_t val
) {
1138 return __riscv_vset(dest
, 0, val
);
1141 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x2
1142 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1143 // CHECK-RV64-NEXT: entry:
1144 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1145 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1146 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[VAL]], 0
1147 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]]
1149 vfloat32m1x2_t
test_vset_v_f32m1_f32m1x2(vfloat32m1x2_t dest
, size_t index
, vfloat32m1_t val
) {
1150 return __riscv_vset(dest
, 0, val
);
1153 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x3
1154 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], <vscale x 2 x float> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1155 // CHECK-RV64-NEXT: entry:
1156 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1157 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1158 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[DEST_COERCE2]], 2
1159 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]], <vscale x 2 x float> [[VAL]], 0
1160 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP3]]
1162 vfloat32m1x3_t
test_vset_v_f32m1_f32m1x3(vfloat32m1x3_t dest
, size_t index
, vfloat32m1_t val
) {
1163 return __riscv_vset(dest
, 0, val
);
1166 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x4
1167 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], <vscale x 2 x float> [[DEST_COERCE2:%.*]], <vscale x 2 x float> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1168 // CHECK-RV64-NEXT: entry:
1169 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1170 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1171 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[DEST_COERCE2]], 2
1172 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]], <vscale x 2 x float> [[DEST_COERCE3]], 3
1173 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP3]], <vscale x 2 x float> [[VAL]], 0
1174 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP4]]
1176 vfloat32m1x4_t
test_vset_v_f32m1_f32m1x4(vfloat32m1x4_t dest
, size_t index
, vfloat32m1_t val
) {
1177 return __riscv_vset(dest
, 0, val
);
1180 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x5
1181 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], <vscale x 2 x float> [[DEST_COERCE2:%.*]], <vscale x 2 x float> [[DEST_COERCE3:%.*]], <vscale x 2 x float> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1182 // CHECK-RV64-NEXT: entry:
1183 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1184 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1185 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[DEST_COERCE2]], 2
1186 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]], <vscale x 2 x float> [[DEST_COERCE3]], 3
1187 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP3]], <vscale x 2 x float> [[DEST_COERCE4]], 4
1188 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP4]], <vscale x 2 x float> [[VAL]], 0
1189 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP5]]
1191 vfloat32m1x5_t
test_vset_v_f32m1_f32m1x5(vfloat32m1x5_t dest
, size_t index
, vfloat32m1_t val
) {
1192 return __riscv_vset(dest
, 0, val
);
1195 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x6
1196 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], <vscale x 2 x float> [[DEST_COERCE2:%.*]], <vscale x 2 x float> [[DEST_COERCE3:%.*]], <vscale x 2 x float> [[DEST_COERCE4:%.*]], <vscale x 2 x float> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1197 // CHECK-RV64-NEXT: entry:
1198 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1199 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1200 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[DEST_COERCE2]], 2
1201 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]], <vscale x 2 x float> [[DEST_COERCE3]], 3
1202 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP3]], <vscale x 2 x float> [[DEST_COERCE4]], 4
1203 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP4]], <vscale x 2 x float> [[DEST_COERCE5]], 5
1204 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP5]], <vscale x 2 x float> [[VAL]], 0
1205 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP6]]
1207 vfloat32m1x6_t
test_vset_v_f32m1_f32m1x6(vfloat32m1x6_t dest
, size_t index
, vfloat32m1_t val
) {
1208 return __riscv_vset(dest
, 0, val
);
1211 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x7
1212 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], <vscale x 2 x float> [[DEST_COERCE2:%.*]], <vscale x 2 x float> [[DEST_COERCE3:%.*]], <vscale x 2 x float> [[DEST_COERCE4:%.*]], <vscale x 2 x float> [[DEST_COERCE5:%.*]], <vscale x 2 x float> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1213 // CHECK-RV64-NEXT: entry:
1214 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1215 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1216 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[DEST_COERCE2]], 2
1217 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]], <vscale x 2 x float> [[DEST_COERCE3]], 3
1218 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP3]], <vscale x 2 x float> [[DEST_COERCE4]], 4
1219 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP4]], <vscale x 2 x float> [[DEST_COERCE5]], 5
1220 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP5]], <vscale x 2 x float> [[DEST_COERCE6]], 6
1221 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP6]], <vscale x 2 x float> [[VAL]], 0
1222 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP7]]
1224 vfloat32m1x7_t
test_vset_v_f32m1_f32m1x7(vfloat32m1x7_t dest
, size_t index
, vfloat32m1_t val
) {
1225 return __riscv_vset(dest
, 0, val
);
1228 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } @test_vset_v_f32m1_f32m1x8
1229 // CHECK-RV64-SAME: (<vscale x 2 x float> [[DEST_COERCE0:%.*]], <vscale x 2 x float> [[DEST_COERCE1:%.*]], <vscale x 2 x float> [[DEST_COERCE2:%.*]], <vscale x 2 x float> [[DEST_COERCE3:%.*]], <vscale x 2 x float> [[DEST_COERCE4:%.*]], <vscale x 2 x float> [[DEST_COERCE5:%.*]], <vscale x 2 x float> [[DEST_COERCE6:%.*]], <vscale x 2 x float> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x float> [[VAL:%.*]]) #[[ATTR0]] {
1230 // CHECK-RV64-NEXT: entry:
1231 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } poison, <vscale x 2 x float> [[DEST_COERCE0]], 0
1232 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP0]], <vscale x 2 x float> [[DEST_COERCE1]], 1
1233 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP1]], <vscale x 2 x float> [[DEST_COERCE2]], 2
1234 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP2]], <vscale x 2 x float> [[DEST_COERCE3]], 3
1235 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP3]], <vscale x 2 x float> [[DEST_COERCE4]], 4
1236 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP4]], <vscale x 2 x float> [[DEST_COERCE5]], 5
1237 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP5]], <vscale x 2 x float> [[DEST_COERCE6]], 6
1238 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP6]], <vscale x 2 x float> [[DEST_COERCE7]], 7
1239 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP7]], <vscale x 2 x float> [[VAL]], 0
1240 // CHECK-RV64-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float>, <vscale x 2 x float> } [[TMP8]]
1242 vfloat32m1x8_t
test_vset_v_f32m1_f32m1x8(vfloat32m1x8_t dest
, size_t index
, vfloat32m1_t val
) {
1243 return __riscv_vset(dest
, 0, val
);
1246 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x float>, <vscale x 4 x float> } @test_vset_v_f32m2_f32m2x2
1247 // CHECK-RV64-SAME: (<vscale x 4 x float> [[DEST_COERCE0:%.*]], <vscale x 4 x float> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x float> [[VAL:%.*]]) #[[ATTR0]] {
1248 // CHECK-RV64-NEXT: entry:
1249 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float> } poison, <vscale x 4 x float> [[DEST_COERCE0]], 0
1250 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float> } [[TMP0]], <vscale x 4 x float> [[DEST_COERCE1]], 1
1251 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float> } [[TMP1]], <vscale x 4 x float> [[VAL]], 0
1252 // CHECK-RV64-NEXT: ret { <vscale x 4 x float>, <vscale x 4 x float> } [[TMP2]]
1254 vfloat32m2x2_t
test_vset_v_f32m2_f32m2x2(vfloat32m2x2_t dest
, size_t index
, vfloat32m2_t val
) {
1255 return __riscv_vset(dest
, 0, val
);
1258 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } @test_vset_v_f32m2_f32m2x3
1259 // CHECK-RV64-SAME: (<vscale x 4 x float> [[DEST_COERCE0:%.*]], <vscale x 4 x float> [[DEST_COERCE1:%.*]], <vscale x 4 x float> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x float> [[VAL:%.*]]) #[[ATTR0]] {
1260 // CHECK-RV64-NEXT: entry:
1261 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } poison, <vscale x 4 x float> [[DEST_COERCE0]], 0
1262 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP0]], <vscale x 4 x float> [[DEST_COERCE1]], 1
1263 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP1]], <vscale x 4 x float> [[DEST_COERCE2]], 2
1264 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP2]], <vscale x 4 x float> [[VAL]], 0
1265 // CHECK-RV64-NEXT: ret { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP3]]
1267 vfloat32m2x3_t
test_vset_v_f32m2_f32m2x3(vfloat32m2x3_t dest
, size_t index
, vfloat32m2_t val
) {
1268 return __riscv_vset(dest
, 0, val
);
1271 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } @test_vset_v_f32m2_f32m2x4
1272 // CHECK-RV64-SAME: (<vscale x 4 x float> [[DEST_COERCE0:%.*]], <vscale x 4 x float> [[DEST_COERCE1:%.*]], <vscale x 4 x float> [[DEST_COERCE2:%.*]], <vscale x 4 x float> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x float> [[VAL:%.*]]) #[[ATTR0]] {
1273 // CHECK-RV64-NEXT: entry:
1274 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } poison, <vscale x 4 x float> [[DEST_COERCE0]], 0
1275 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP0]], <vscale x 4 x float> [[DEST_COERCE1]], 1
1276 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP1]], <vscale x 4 x float> [[DEST_COERCE2]], 2
1277 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP2]], <vscale x 4 x float> [[DEST_COERCE3]], 3
1278 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP3]], <vscale x 4 x float> [[VAL]], 0
1279 // CHECK-RV64-NEXT: ret { <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float> } [[TMP4]]
1281 vfloat32m2x4_t
test_vset_v_f32m2_f32m2x4(vfloat32m2x4_t dest
, size_t index
, vfloat32m2_t val
) {
1282 return __riscv_vset(dest
, 0, val
);
1285 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x float>, <vscale x 8 x float> } @test_vset_v_f32m4_f32m4x2
1286 // CHECK-RV64-SAME: (<vscale x 8 x float> [[DEST_COERCE0:%.*]], <vscale x 8 x float> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x float> [[VAL:%.*]]) #[[ATTR0]] {
1287 // CHECK-RV64-NEXT: entry:
1288 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x float>, <vscale x 8 x float> } poison, <vscale x 8 x float> [[DEST_COERCE0]], 0
1289 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x float>, <vscale x 8 x float> } [[TMP0]], <vscale x 8 x float> [[DEST_COERCE1]], 1
1290 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x float>, <vscale x 8 x float> } [[TMP1]], <vscale x 8 x float> [[VAL]], 0
1291 // CHECK-RV64-NEXT: ret { <vscale x 8 x float>, <vscale x 8 x float> } [[TMP2]]
1293 vfloat32m4x2_t
test_vset_v_f32m4_f32m4x2(vfloat32m4x2_t dest
, size_t index
, vfloat32m4_t val
) {
1294 return __riscv_vset(dest
, 0, val
);
1297 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x2
1298 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1299 // CHECK-RV64-NEXT: entry:
1300 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1301 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1302 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[VAL]], 0
1303 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]]
1305 vfloat64m1x2_t
test_vset_v_f64m1_f64m1x2(vfloat64m1x2_t dest
, size_t index
, vfloat64m1_t val
) {
1306 return __riscv_vset(dest
, 0, val
);
1309 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x3
1310 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], <vscale x 1 x double> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1311 // CHECK-RV64-NEXT: entry:
1312 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1313 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1314 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[DEST_COERCE2]], 2
1315 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]], <vscale x 1 x double> [[VAL]], 0
1316 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP3]]
1318 vfloat64m1x3_t
test_vset_v_f64m1_f64m1x3(vfloat64m1x3_t dest
, size_t index
, vfloat64m1_t val
) {
1319 return __riscv_vset(dest
, 0, val
);
1322 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x4
1323 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], <vscale x 1 x double> [[DEST_COERCE2:%.*]], <vscale x 1 x double> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1324 // CHECK-RV64-NEXT: entry:
1325 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1326 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1327 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[DEST_COERCE2]], 2
1328 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]], <vscale x 1 x double> [[DEST_COERCE3]], 3
1329 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP3]], <vscale x 1 x double> [[VAL]], 0
1330 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP4]]
1332 vfloat64m1x4_t
test_vset_v_f64m1_f64m1x4(vfloat64m1x4_t dest
, size_t index
, vfloat64m1_t val
) {
1333 return __riscv_vset(dest
, 0, val
);
1336 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x5
1337 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], <vscale x 1 x double> [[DEST_COERCE2:%.*]], <vscale x 1 x double> [[DEST_COERCE3:%.*]], <vscale x 1 x double> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1338 // CHECK-RV64-NEXT: entry:
1339 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1340 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1341 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[DEST_COERCE2]], 2
1342 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]], <vscale x 1 x double> [[DEST_COERCE3]], 3
1343 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP3]], <vscale x 1 x double> [[DEST_COERCE4]], 4
1344 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP4]], <vscale x 1 x double> [[VAL]], 0
1345 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP5]]
1347 vfloat64m1x5_t
test_vset_v_f64m1_f64m1x5(vfloat64m1x5_t dest
, size_t index
, vfloat64m1_t val
) {
1348 return __riscv_vset(dest
, 0, val
);
1351 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x6
1352 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], <vscale x 1 x double> [[DEST_COERCE2:%.*]], <vscale x 1 x double> [[DEST_COERCE3:%.*]], <vscale x 1 x double> [[DEST_COERCE4:%.*]], <vscale x 1 x double> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1353 // CHECK-RV64-NEXT: entry:
1354 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1355 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1356 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[DEST_COERCE2]], 2
1357 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]], <vscale x 1 x double> [[DEST_COERCE3]], 3
1358 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP3]], <vscale x 1 x double> [[DEST_COERCE4]], 4
1359 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP4]], <vscale x 1 x double> [[DEST_COERCE5]], 5
1360 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP5]], <vscale x 1 x double> [[VAL]], 0
1361 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP6]]
1363 vfloat64m1x6_t
test_vset_v_f64m1_f64m1x6(vfloat64m1x6_t dest
, size_t index
, vfloat64m1_t val
) {
1364 return __riscv_vset(dest
, 0, val
);
1367 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x7
1368 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], <vscale x 1 x double> [[DEST_COERCE2:%.*]], <vscale x 1 x double> [[DEST_COERCE3:%.*]], <vscale x 1 x double> [[DEST_COERCE4:%.*]], <vscale x 1 x double> [[DEST_COERCE5:%.*]], <vscale x 1 x double> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1369 // CHECK-RV64-NEXT: entry:
1370 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1371 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1372 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[DEST_COERCE2]], 2
1373 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]], <vscale x 1 x double> [[DEST_COERCE3]], 3
1374 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP3]], <vscale x 1 x double> [[DEST_COERCE4]], 4
1375 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP4]], <vscale x 1 x double> [[DEST_COERCE5]], 5
1376 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP5]], <vscale x 1 x double> [[DEST_COERCE6]], 6
1377 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP6]], <vscale x 1 x double> [[VAL]], 0
1378 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP7]]
1380 vfloat64m1x7_t
test_vset_v_f64m1_f64m1x7(vfloat64m1x7_t dest
, size_t index
, vfloat64m1_t val
) {
1381 return __riscv_vset(dest
, 0, val
);
1384 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } @test_vset_v_f64m1_f64m1x8
1385 // CHECK-RV64-SAME: (<vscale x 1 x double> [[DEST_COERCE0:%.*]], <vscale x 1 x double> [[DEST_COERCE1:%.*]], <vscale x 1 x double> [[DEST_COERCE2:%.*]], <vscale x 1 x double> [[DEST_COERCE3:%.*]], <vscale x 1 x double> [[DEST_COERCE4:%.*]], <vscale x 1 x double> [[DEST_COERCE5:%.*]], <vscale x 1 x double> [[DEST_COERCE6:%.*]], <vscale x 1 x double> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x double> [[VAL:%.*]]) #[[ATTR0]] {
1386 // CHECK-RV64-NEXT: entry:
1387 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } poison, <vscale x 1 x double> [[DEST_COERCE0]], 0
1388 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP0]], <vscale x 1 x double> [[DEST_COERCE1]], 1
1389 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP1]], <vscale x 1 x double> [[DEST_COERCE2]], 2
1390 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP2]], <vscale x 1 x double> [[DEST_COERCE3]], 3
1391 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP3]], <vscale x 1 x double> [[DEST_COERCE4]], 4
1392 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP4]], <vscale x 1 x double> [[DEST_COERCE5]], 5
1393 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP5]], <vscale x 1 x double> [[DEST_COERCE6]], 6
1394 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP6]], <vscale x 1 x double> [[DEST_COERCE7]], 7
1395 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP7]], <vscale x 1 x double> [[VAL]], 0
1396 // CHECK-RV64-NEXT: ret { <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double>, <vscale x 1 x double> } [[TMP8]]
1398 vfloat64m1x8_t
test_vset_v_f64m1_f64m1x8(vfloat64m1x8_t dest
, size_t index
, vfloat64m1_t val
) {
1399 return __riscv_vset(dest
, 0, val
);
1402 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x double>, <vscale x 2 x double> } @test_vset_v_f64m2_f64m2x2
1403 // CHECK-RV64-SAME: (<vscale x 2 x double> [[DEST_COERCE0:%.*]], <vscale x 2 x double> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x double> [[VAL:%.*]]) #[[ATTR0]] {
1404 // CHECK-RV64-NEXT: entry:
1405 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double> } poison, <vscale x 2 x double> [[DEST_COERCE0]], 0
1406 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double> } [[TMP0]], <vscale x 2 x double> [[DEST_COERCE1]], 1
1407 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double> } [[TMP1]], <vscale x 2 x double> [[VAL]], 0
1408 // CHECK-RV64-NEXT: ret { <vscale x 2 x double>, <vscale x 2 x double> } [[TMP2]]
1410 vfloat64m2x2_t
test_vset_v_f64m2_f64m2x2(vfloat64m2x2_t dest
, size_t index
, vfloat64m2_t val
) {
1411 return __riscv_vset(dest
, 0, val
);
1414 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } @test_vset_v_f64m2_f64m2x3
1415 // CHECK-RV64-SAME: (<vscale x 2 x double> [[DEST_COERCE0:%.*]], <vscale x 2 x double> [[DEST_COERCE1:%.*]], <vscale x 2 x double> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x double> [[VAL:%.*]]) #[[ATTR0]] {
1416 // CHECK-RV64-NEXT: entry:
1417 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } poison, <vscale x 2 x double> [[DEST_COERCE0]], 0
1418 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP0]], <vscale x 2 x double> [[DEST_COERCE1]], 1
1419 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP1]], <vscale x 2 x double> [[DEST_COERCE2]], 2
1420 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP2]], <vscale x 2 x double> [[VAL]], 0
1421 // CHECK-RV64-NEXT: ret { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP3]]
1423 vfloat64m2x3_t
test_vset_v_f64m2_f64m2x3(vfloat64m2x3_t dest
, size_t index
, vfloat64m2_t val
) {
1424 return __riscv_vset(dest
, 0, val
);
1427 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } @test_vset_v_f64m2_f64m2x4
1428 // CHECK-RV64-SAME: (<vscale x 2 x double> [[DEST_COERCE0:%.*]], <vscale x 2 x double> [[DEST_COERCE1:%.*]], <vscale x 2 x double> [[DEST_COERCE2:%.*]], <vscale x 2 x double> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x double> [[VAL:%.*]]) #[[ATTR0]] {
1429 // CHECK-RV64-NEXT: entry:
1430 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } poison, <vscale x 2 x double> [[DEST_COERCE0]], 0
1431 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP0]], <vscale x 2 x double> [[DEST_COERCE1]], 1
1432 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP1]], <vscale x 2 x double> [[DEST_COERCE2]], 2
1433 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP2]], <vscale x 2 x double> [[DEST_COERCE3]], 3
1434 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP3]], <vscale x 2 x double> [[VAL]], 0
1435 // CHECK-RV64-NEXT: ret { <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double> } [[TMP4]]
1437 vfloat64m2x4_t
test_vset_v_f64m2_f64m2x4(vfloat64m2x4_t dest
, size_t index
, vfloat64m2_t val
) {
1438 return __riscv_vset(dest
, 0, val
);
1441 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x double>, <vscale x 4 x double> } @test_vset_v_f64m4_f64m4x2
1442 // CHECK-RV64-SAME: (<vscale x 4 x double> [[DEST_COERCE0:%.*]], <vscale x 4 x double> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x double> [[VAL:%.*]]) #[[ATTR0]] {
1443 // CHECK-RV64-NEXT: entry:
1444 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x double>, <vscale x 4 x double> } poison, <vscale x 4 x double> [[DEST_COERCE0]], 0
1445 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x double>, <vscale x 4 x double> } [[TMP0]], <vscale x 4 x double> [[DEST_COERCE1]], 1
1446 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x double>, <vscale x 4 x double> } [[TMP1]], <vscale x 4 x double> [[VAL]], 0
1447 // CHECK-RV64-NEXT: ret { <vscale x 4 x double>, <vscale x 4 x double> } [[TMP2]]
1449 vfloat64m4x2_t
test_vset_v_f64m4_f64m4x2(vfloat64m4x2_t dest
, size_t index
, vfloat64m4_t val
) {
1450 return __riscv_vset(dest
, 0, val
);
1453 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x2
1454 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1455 // CHECK-RV64-NEXT: entry:
1456 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1457 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1458 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[VAL]], 0
1459 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]]
1461 vint8mf8x2_t
test_vset_v_i8mf8_i8mf8x2(vint8mf8x2_t dest
, size_t index
, vint8mf8_t val
) {
1462 return __riscv_vset(dest
, 0, val
);
1465 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x3
1466 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1467 // CHECK-RV64-NEXT: entry:
1468 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1469 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1470 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
1471 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[VAL]], 0
1472 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]]
1474 vint8mf8x3_t
test_vset_v_i8mf8_i8mf8x3(vint8mf8x3_t dest
, size_t index
, vint8mf8_t val
) {
1475 return __riscv_vset(dest
, 0, val
);
1478 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x4
1479 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1480 // CHECK-RV64-NEXT: entry:
1481 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1482 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1483 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
1484 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
1485 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[VAL]], 0
1486 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]]
1488 vint8mf8x4_t
test_vset_v_i8mf8_i8mf8x4(vint8mf8x4_t dest
, size_t index
, vint8mf8_t val
) {
1489 return __riscv_vset(dest
, 0, val
);
1492 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x5
1493 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1494 // CHECK-RV64-NEXT: entry:
1495 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1496 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1497 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
1498 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
1499 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
1500 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[VAL]], 0
1501 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]]
1503 vint8mf8x5_t
test_vset_v_i8mf8_i8mf8x5(vint8mf8x5_t dest
, size_t index
, vint8mf8_t val
) {
1504 return __riscv_vset(dest
, 0, val
);
1507 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x6
1508 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], <vscale x 1 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1509 // CHECK-RV64-NEXT: entry:
1510 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1511 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1512 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
1513 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
1514 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
1515 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[DEST_COERCE5]], 5
1516 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]], <vscale x 1 x i8> [[VAL]], 0
1517 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP6]]
1519 vint8mf8x6_t
test_vset_v_i8mf8_i8mf8x6(vint8mf8x6_t dest
, size_t index
, vint8mf8_t val
) {
1520 return __riscv_vset(dest
, 0, val
);
1523 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x7
1524 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], <vscale x 1 x i8> [[DEST_COERCE5:%.*]], <vscale x 1 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1525 // CHECK-RV64-NEXT: entry:
1526 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1527 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1528 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
1529 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
1530 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
1531 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[DEST_COERCE5]], 5
1532 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]], <vscale x 1 x i8> [[DEST_COERCE6]], 6
1533 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP6]], <vscale x 1 x i8> [[VAL]], 0
1534 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP7]]
1536 vint8mf8x7_t
test_vset_v_i8mf8_i8mf8x7(vint8mf8x7_t dest
, size_t index
, vint8mf8_t val
) {
1537 return __riscv_vset(dest
, 0, val
);
1540 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_i8mf8_i8mf8x8
1541 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], <vscale x 1 x i8> [[DEST_COERCE5:%.*]], <vscale x 1 x i8> [[DEST_COERCE6:%.*]], <vscale x 1 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1542 // CHECK-RV64-NEXT: entry:
1543 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
1544 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
1545 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
1546 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
1547 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
1548 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[DEST_COERCE5]], 5
1549 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]], <vscale x 1 x i8> [[DEST_COERCE6]], 6
1550 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP6]], <vscale x 1 x i8> [[DEST_COERCE7]], 7
1551 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP7]], <vscale x 1 x i8> [[VAL]], 0
1552 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP8]]
1554 vint8mf8x8_t
test_vset_v_i8mf8_i8mf8x8(vint8mf8x8_t dest
, size_t index
, vint8mf8_t val
) {
1555 return __riscv_vset(dest
, 0, val
);
1558 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x2
1559 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1560 // CHECK-RV64-NEXT: entry:
1561 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1562 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1563 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[VAL]], 0
1564 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]]
1566 vint8mf4x2_t
test_vset_v_i8mf4_i8mf4x2(vint8mf4x2_t dest
, size_t index
, vint8mf4_t val
) {
1567 return __riscv_vset(dest
, 0, val
);
1570 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x3
1571 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1572 // CHECK-RV64-NEXT: entry:
1573 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1574 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1575 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
1576 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[VAL]], 0
1577 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]]
1579 vint8mf4x3_t
test_vset_v_i8mf4_i8mf4x3(vint8mf4x3_t dest
, size_t index
, vint8mf4_t val
) {
1580 return __riscv_vset(dest
, 0, val
);
1583 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x4
1584 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1585 // CHECK-RV64-NEXT: entry:
1586 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1587 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1588 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
1589 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
1590 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[VAL]], 0
1591 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]]
1593 vint8mf4x4_t
test_vset_v_i8mf4_i8mf4x4(vint8mf4x4_t dest
, size_t index
, vint8mf4_t val
) {
1594 return __riscv_vset(dest
, 0, val
);
1597 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x5
1598 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1599 // CHECK-RV64-NEXT: entry:
1600 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1601 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1602 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
1603 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
1604 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
1605 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[VAL]], 0
1606 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]]
1608 vint8mf4x5_t
test_vset_v_i8mf4_i8mf4x5(vint8mf4x5_t dest
, size_t index
, vint8mf4_t val
) {
1609 return __riscv_vset(dest
, 0, val
);
1612 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x6
1613 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], <vscale x 2 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1614 // CHECK-RV64-NEXT: entry:
1615 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1616 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1617 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
1618 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
1619 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
1620 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[DEST_COERCE5]], 5
1621 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]], <vscale x 2 x i8> [[VAL]], 0
1622 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP6]]
1624 vint8mf4x6_t
test_vset_v_i8mf4_i8mf4x6(vint8mf4x6_t dest
, size_t index
, vint8mf4_t val
) {
1625 return __riscv_vset(dest
, 0, val
);
1628 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x7
1629 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], <vscale x 2 x i8> [[DEST_COERCE5:%.*]], <vscale x 2 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1630 // CHECK-RV64-NEXT: entry:
1631 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1632 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1633 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
1634 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
1635 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
1636 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[DEST_COERCE5]], 5
1637 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]], <vscale x 2 x i8> [[DEST_COERCE6]], 6
1638 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP6]], <vscale x 2 x i8> [[VAL]], 0
1639 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP7]]
1641 vint8mf4x7_t
test_vset_v_i8mf4_i8mf4x7(vint8mf4x7_t dest
, size_t index
, vint8mf4_t val
) {
1642 return __riscv_vset(dest
, 0, val
);
1645 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_i8mf4_i8mf4x8
1646 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], <vscale x 2 x i8> [[DEST_COERCE5:%.*]], <vscale x 2 x i8> [[DEST_COERCE6:%.*]], <vscale x 2 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1647 // CHECK-RV64-NEXT: entry:
1648 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
1649 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
1650 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
1651 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
1652 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
1653 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[DEST_COERCE5]], 5
1654 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]], <vscale x 2 x i8> [[DEST_COERCE6]], 6
1655 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP6]], <vscale x 2 x i8> [[DEST_COERCE7]], 7
1656 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP7]], <vscale x 2 x i8> [[VAL]], 0
1657 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP8]]
1659 vint8mf4x8_t
test_vset_v_i8mf4_i8mf4x8(vint8mf4x8_t dest
, size_t index
, vint8mf4_t val
) {
1660 return __riscv_vset(dest
, 0, val
);
1663 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x2
1664 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1665 // CHECK-RV64-NEXT: entry:
1666 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1667 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1668 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[VAL]], 0
1669 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]]
1671 vint8mf2x2_t
test_vset_v_i8mf2_i8mf2x2(vint8mf2x2_t dest
, size_t index
, vint8mf2_t val
) {
1672 return __riscv_vset(dest
, 0, val
);
1675 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x3
1676 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1677 // CHECK-RV64-NEXT: entry:
1678 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1679 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1680 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
1681 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[VAL]], 0
1682 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]]
1684 vint8mf2x3_t
test_vset_v_i8mf2_i8mf2x3(vint8mf2x3_t dest
, size_t index
, vint8mf2_t val
) {
1685 return __riscv_vset(dest
, 0, val
);
1688 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x4
1689 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1690 // CHECK-RV64-NEXT: entry:
1691 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1692 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1693 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
1694 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
1695 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[VAL]], 0
1696 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]]
1698 vint8mf2x4_t
test_vset_v_i8mf2_i8mf2x4(vint8mf2x4_t dest
, size_t index
, vint8mf2_t val
) {
1699 return __riscv_vset(dest
, 0, val
);
1702 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x5
1703 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1704 // CHECK-RV64-NEXT: entry:
1705 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1706 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1707 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
1708 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
1709 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
1710 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[VAL]], 0
1711 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]]
1713 vint8mf2x5_t
test_vset_v_i8mf2_i8mf2x5(vint8mf2x5_t dest
, size_t index
, vint8mf2_t val
) {
1714 return __riscv_vset(dest
, 0, val
);
1717 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x6
1718 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], <vscale x 4 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1719 // CHECK-RV64-NEXT: entry:
1720 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1721 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1722 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
1723 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
1724 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
1725 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[DEST_COERCE5]], 5
1726 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]], <vscale x 4 x i8> [[VAL]], 0
1727 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP6]]
1729 vint8mf2x6_t
test_vset_v_i8mf2_i8mf2x6(vint8mf2x6_t dest
, size_t index
, vint8mf2_t val
) {
1730 return __riscv_vset(dest
, 0, val
);
1733 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x7
1734 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], <vscale x 4 x i8> [[DEST_COERCE5:%.*]], <vscale x 4 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1735 // CHECK-RV64-NEXT: entry:
1736 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1737 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1738 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
1739 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
1740 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
1741 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[DEST_COERCE5]], 5
1742 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]], <vscale x 4 x i8> [[DEST_COERCE6]], 6
1743 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP6]], <vscale x 4 x i8> [[VAL]], 0
1744 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP7]]
1746 vint8mf2x7_t
test_vset_v_i8mf2_i8mf2x7(vint8mf2x7_t dest
, size_t index
, vint8mf2_t val
) {
1747 return __riscv_vset(dest
, 0, val
);
1750 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_i8mf2_i8mf2x8
1751 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], <vscale x 4 x i8> [[DEST_COERCE5:%.*]], <vscale x 4 x i8> [[DEST_COERCE6:%.*]], <vscale x 4 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1752 // CHECK-RV64-NEXT: entry:
1753 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
1754 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
1755 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
1756 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
1757 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
1758 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[DEST_COERCE5]], 5
1759 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]], <vscale x 4 x i8> [[DEST_COERCE6]], 6
1760 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP6]], <vscale x 4 x i8> [[DEST_COERCE7]], 7
1761 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP7]], <vscale x 4 x i8> [[VAL]], 0
1762 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP8]]
1764 vint8mf2x8_t
test_vset_v_i8mf2_i8mf2x8(vint8mf2x8_t dest
, size_t index
, vint8mf2_t val
) {
1765 return __riscv_vset(dest
, 0, val
);
1768 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x2
1769 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1770 // CHECK-RV64-NEXT: entry:
1771 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1772 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1773 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[VAL]], 0
1774 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]]
1776 vint8m1x2_t
test_vset_v_i8m1_i8m1x2(vint8m1x2_t dest
, size_t index
, vint8m1_t val
) {
1777 return __riscv_vset(dest
, 0, val
);
1780 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x3
1781 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1782 // CHECK-RV64-NEXT: entry:
1783 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1784 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1785 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
1786 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[VAL]], 0
1787 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]]
1789 vint8m1x3_t
test_vset_v_i8m1_i8m1x3(vint8m1x3_t dest
, size_t index
, vint8m1_t val
) {
1790 return __riscv_vset(dest
, 0, val
);
1793 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x4
1794 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1795 // CHECK-RV64-NEXT: entry:
1796 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1797 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1798 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
1799 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
1800 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[VAL]], 0
1801 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]]
1803 vint8m1x4_t
test_vset_v_i8m1_i8m1x4(vint8m1x4_t dest
, size_t index
, vint8m1_t val
) {
1804 return __riscv_vset(dest
, 0, val
);
1807 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x5
1808 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1809 // CHECK-RV64-NEXT: entry:
1810 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1811 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1812 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
1813 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
1814 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
1815 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[VAL]], 0
1816 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]]
1818 vint8m1x5_t
test_vset_v_i8m1_i8m1x5(vint8m1x5_t dest
, size_t index
, vint8m1_t val
) {
1819 return __riscv_vset(dest
, 0, val
);
1822 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x6
1823 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], <vscale x 8 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1824 // CHECK-RV64-NEXT: entry:
1825 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1826 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1827 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
1828 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
1829 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
1830 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[DEST_COERCE5]], 5
1831 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]], <vscale x 8 x i8> [[VAL]], 0
1832 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP6]]
1834 vint8m1x6_t
test_vset_v_i8m1_i8m1x6(vint8m1x6_t dest
, size_t index
, vint8m1_t val
) {
1835 return __riscv_vset(dest
, 0, val
);
1838 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x7
1839 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], <vscale x 8 x i8> [[DEST_COERCE5:%.*]], <vscale x 8 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1840 // CHECK-RV64-NEXT: entry:
1841 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1842 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1843 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
1844 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
1845 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
1846 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[DEST_COERCE5]], 5
1847 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]], <vscale x 8 x i8> [[DEST_COERCE6]], 6
1848 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP6]], <vscale x 8 x i8> [[VAL]], 0
1849 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP7]]
1851 vint8m1x7_t
test_vset_v_i8m1_i8m1x7(vint8m1x7_t dest
, size_t index
, vint8m1_t val
) {
1852 return __riscv_vset(dest
, 0, val
);
1855 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_i8m1_i8m1x8
1856 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], <vscale x 8 x i8> [[DEST_COERCE5:%.*]], <vscale x 8 x i8> [[DEST_COERCE6:%.*]], <vscale x 8 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1857 // CHECK-RV64-NEXT: entry:
1858 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
1859 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
1860 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
1861 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
1862 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
1863 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[DEST_COERCE5]], 5
1864 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]], <vscale x 8 x i8> [[DEST_COERCE6]], 6
1865 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP6]], <vscale x 8 x i8> [[DEST_COERCE7]], 7
1866 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP7]], <vscale x 8 x i8> [[VAL]], 0
1867 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP8]]
1869 vint8m1x8_t
test_vset_v_i8m1_i8m1x8(vint8m1x8_t dest
, size_t index
, vint8m1_t val
) {
1870 return __riscv_vset(dest
, 0, val
);
1873 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i8>, <vscale x 16 x i8> } @test_vset_v_i8m2_i8m2x2
1874 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST_COERCE0:%.*]], <vscale x 16 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1875 // CHECK-RV64-NEXT: entry:
1876 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8> } poison, <vscale x 16 x i8> [[DEST_COERCE0]], 0
1877 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP0]], <vscale x 16 x i8> [[DEST_COERCE1]], 1
1878 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP1]], <vscale x 16 x i8> [[VAL]], 0
1879 // CHECK-RV64-NEXT: ret { <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP2]]
1881 vint8m2x2_t
test_vset_v_i8m2_i8m2x2(vint8m2x2_t dest
, size_t index
, vint8m2_t val
) {
1882 return __riscv_vset(dest
, 0, val
);
1885 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } @test_vset_v_i8m2_i8m2x3
1886 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST_COERCE0:%.*]], <vscale x 16 x i8> [[DEST_COERCE1:%.*]], <vscale x 16 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1887 // CHECK-RV64-NEXT: entry:
1888 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } poison, <vscale x 16 x i8> [[DEST_COERCE0]], 0
1889 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP0]], <vscale x 16 x i8> [[DEST_COERCE1]], 1
1890 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP1]], <vscale x 16 x i8> [[DEST_COERCE2]], 2
1891 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP2]], <vscale x 16 x i8> [[VAL]], 0
1892 // CHECK-RV64-NEXT: ret { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP3]]
1894 vint8m2x3_t
test_vset_v_i8m2_i8m2x3(vint8m2x3_t dest
, size_t index
, vint8m2_t val
) {
1895 return __riscv_vset(dest
, 0, val
);
1898 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } @test_vset_v_i8m2_i8m2x4
1899 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST_COERCE0:%.*]], <vscale x 16 x i8> [[DEST_COERCE1:%.*]], <vscale x 16 x i8> [[DEST_COERCE2:%.*]], <vscale x 16 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1900 // CHECK-RV64-NEXT: entry:
1901 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } poison, <vscale x 16 x i8> [[DEST_COERCE0]], 0
1902 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP0]], <vscale x 16 x i8> [[DEST_COERCE1]], 1
1903 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP1]], <vscale x 16 x i8> [[DEST_COERCE2]], 2
1904 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP2]], <vscale x 16 x i8> [[DEST_COERCE3]], 3
1905 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP3]], <vscale x 16 x i8> [[VAL]], 0
1906 // CHECK-RV64-NEXT: ret { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP4]]
1908 vint8m2x4_t
test_vset_v_i8m2_i8m2x4(vint8m2x4_t dest
, size_t index
, vint8m2_t val
) {
1909 return __riscv_vset(dest
, 0, val
);
1912 // CHECK-RV64-LABEL: define dso_local { <vscale x 32 x i8>, <vscale x 32 x i8> } @test_vset_v_i8m4_i8m4x2
1913 // CHECK-RV64-SAME: (<vscale x 32 x i8> [[DEST_COERCE0:%.*]], <vscale x 32 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 32 x i8> [[VAL:%.*]]) #[[ATTR0]] {
1914 // CHECK-RV64-NEXT: entry:
1915 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 32 x i8>, <vscale x 32 x i8> } poison, <vscale x 32 x i8> [[DEST_COERCE0]], 0
1916 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 32 x i8>, <vscale x 32 x i8> } [[TMP0]], <vscale x 32 x i8> [[DEST_COERCE1]], 1
1917 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 32 x i8>, <vscale x 32 x i8> } [[TMP1]], <vscale x 32 x i8> [[VAL]], 0
1918 // CHECK-RV64-NEXT: ret { <vscale x 32 x i8>, <vscale x 32 x i8> } [[TMP2]]
1920 vint8m4x2_t
test_vset_v_i8m4_i8m4x2(vint8m4x2_t dest
, size_t index
, vint8m4_t val
) {
1921 return __riscv_vset(dest
, 0, val
);
1924 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x2
1925 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
1926 // CHECK-RV64-NEXT: entry:
1927 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
1928 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
1929 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[VAL]], 0
1930 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]]
1932 vint16mf4x2_t
test_vset_v_i16mf4_i16mf4x2(vint16mf4x2_t dest
, size_t index
, vint16mf4_t val
) {
1933 return __riscv_vset(dest
, 0, val
);
1936 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x3
1937 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
1938 // CHECK-RV64-NEXT: entry:
1939 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
1940 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
1941 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
1942 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[VAL]], 0
1943 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]]
1945 vint16mf4x3_t
test_vset_v_i16mf4_i16mf4x3(vint16mf4x3_t dest
, size_t index
, vint16mf4_t val
) {
1946 return __riscv_vset(dest
, 0, val
);
1949 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x4
1950 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
1951 // CHECK-RV64-NEXT: entry:
1952 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
1953 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
1954 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
1955 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
1956 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[VAL]], 0
1957 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]]
1959 vint16mf4x4_t
test_vset_v_i16mf4_i16mf4x4(vint16mf4x4_t dest
, size_t index
, vint16mf4_t val
) {
1960 return __riscv_vset(dest
, 0, val
);
1963 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x5
1964 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
1965 // CHECK-RV64-NEXT: entry:
1966 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
1967 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
1968 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
1969 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
1970 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
1971 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[VAL]], 0
1972 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]]
1974 vint16mf4x5_t
test_vset_v_i16mf4_i16mf4x5(vint16mf4x5_t dest
, size_t index
, vint16mf4_t val
) {
1975 return __riscv_vset(dest
, 0, val
);
1978 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x6
1979 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], <vscale x 1 x i16> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
1980 // CHECK-RV64-NEXT: entry:
1981 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
1982 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
1983 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
1984 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
1985 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
1986 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[DEST_COERCE5]], 5
1987 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]], <vscale x 1 x i16> [[VAL]], 0
1988 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP6]]
1990 vint16mf4x6_t
test_vset_v_i16mf4_i16mf4x6(vint16mf4x6_t dest
, size_t index
, vint16mf4_t val
) {
1991 return __riscv_vset(dest
, 0, val
);
1994 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x7
1995 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], <vscale x 1 x i16> [[DEST_COERCE5:%.*]], <vscale x 1 x i16> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
1996 // CHECK-RV64-NEXT: entry:
1997 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
1998 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
1999 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
2000 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
2001 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
2002 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[DEST_COERCE5]], 5
2003 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]], <vscale x 1 x i16> [[DEST_COERCE6]], 6
2004 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP6]], <vscale x 1 x i16> [[VAL]], 0
2005 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP7]]
2007 vint16mf4x7_t
test_vset_v_i16mf4_i16mf4x7(vint16mf4x7_t dest
, size_t index
, vint16mf4_t val
) {
2008 return __riscv_vset(dest
, 0, val
);
2011 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_i16mf4_i16mf4x8
2012 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], <vscale x 1 x i16> [[DEST_COERCE5:%.*]], <vscale x 1 x i16> [[DEST_COERCE6:%.*]], <vscale x 1 x i16> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2013 // CHECK-RV64-NEXT: entry:
2014 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
2015 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
2016 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
2017 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
2018 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
2019 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[DEST_COERCE5]], 5
2020 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]], <vscale x 1 x i16> [[DEST_COERCE6]], 6
2021 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP6]], <vscale x 1 x i16> [[DEST_COERCE7]], 7
2022 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP7]], <vscale x 1 x i16> [[VAL]], 0
2023 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP8]]
2025 vint16mf4x8_t
test_vset_v_i16mf4_i16mf4x8(vint16mf4x8_t dest
, size_t index
, vint16mf4_t val
) {
2026 return __riscv_vset(dest
, 0, val
);
2029 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x2
2030 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2031 // CHECK-RV64-NEXT: entry:
2032 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2033 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2034 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[VAL]], 0
2035 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]]
2037 vint16mf2x2_t
test_vset_v_i16mf2_i16mf2x2(vint16mf2x2_t dest
, size_t index
, vint16mf2_t val
) {
2038 return __riscv_vset(dest
, 0, val
);
2041 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x3
2042 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2043 // CHECK-RV64-NEXT: entry:
2044 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2045 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2046 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
2047 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[VAL]], 0
2048 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]]
2050 vint16mf2x3_t
test_vset_v_i16mf2_i16mf2x3(vint16mf2x3_t dest
, size_t index
, vint16mf2_t val
) {
2051 return __riscv_vset(dest
, 0, val
);
2054 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x4
2055 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2056 // CHECK-RV64-NEXT: entry:
2057 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2058 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2059 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
2060 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
2061 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[VAL]], 0
2062 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]]
2064 vint16mf2x4_t
test_vset_v_i16mf2_i16mf2x4(vint16mf2x4_t dest
, size_t index
, vint16mf2_t val
) {
2065 return __riscv_vset(dest
, 0, val
);
2068 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x5
2069 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2070 // CHECK-RV64-NEXT: entry:
2071 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2072 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2073 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
2074 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
2075 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
2076 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[VAL]], 0
2077 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]]
2079 vint16mf2x5_t
test_vset_v_i16mf2_i16mf2x5(vint16mf2x5_t dest
, size_t index
, vint16mf2_t val
) {
2080 return __riscv_vset(dest
, 0, val
);
2083 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x6
2084 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], <vscale x 2 x i16> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2085 // CHECK-RV64-NEXT: entry:
2086 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2087 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2088 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
2089 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
2090 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
2091 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[DEST_COERCE5]], 5
2092 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]], <vscale x 2 x i16> [[VAL]], 0
2093 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP6]]
2095 vint16mf2x6_t
test_vset_v_i16mf2_i16mf2x6(vint16mf2x6_t dest
, size_t index
, vint16mf2_t val
) {
2096 return __riscv_vset(dest
, 0, val
);
2099 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x7
2100 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], <vscale x 2 x i16> [[DEST_COERCE5:%.*]], <vscale x 2 x i16> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2101 // CHECK-RV64-NEXT: entry:
2102 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2103 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2104 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
2105 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
2106 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
2107 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[DEST_COERCE5]], 5
2108 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]], <vscale x 2 x i16> [[DEST_COERCE6]], 6
2109 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP6]], <vscale x 2 x i16> [[VAL]], 0
2110 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP7]]
2112 vint16mf2x7_t
test_vset_v_i16mf2_i16mf2x7(vint16mf2x7_t dest
, size_t index
, vint16mf2_t val
) {
2113 return __riscv_vset(dest
, 0, val
);
2116 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_i16mf2_i16mf2x8
2117 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], <vscale x 2 x i16> [[DEST_COERCE5:%.*]], <vscale x 2 x i16> [[DEST_COERCE6:%.*]], <vscale x 2 x i16> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2118 // CHECK-RV64-NEXT: entry:
2119 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
2120 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
2121 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
2122 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
2123 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
2124 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[DEST_COERCE5]], 5
2125 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]], <vscale x 2 x i16> [[DEST_COERCE6]], 6
2126 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP6]], <vscale x 2 x i16> [[DEST_COERCE7]], 7
2127 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP7]], <vscale x 2 x i16> [[VAL]], 0
2128 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP8]]
2130 vint16mf2x8_t
test_vset_v_i16mf2_i16mf2x8(vint16mf2x8_t dest
, size_t index
, vint16mf2_t val
) {
2131 return __riscv_vset(dest
, 0, val
);
2134 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x2
2135 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2136 // CHECK-RV64-NEXT: entry:
2137 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2138 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2139 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[VAL]], 0
2140 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]]
2142 vint16m1x2_t
test_vset_v_i16m1_i16m1x2(vint16m1x2_t dest
, size_t index
, vint16m1_t val
) {
2143 return __riscv_vset(dest
, 0, val
);
2146 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x3
2147 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2148 // CHECK-RV64-NEXT: entry:
2149 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2150 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2151 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
2152 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[VAL]], 0
2153 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]]
2155 vint16m1x3_t
test_vset_v_i16m1_i16m1x3(vint16m1x3_t dest
, size_t index
, vint16m1_t val
) {
2156 return __riscv_vset(dest
, 0, val
);
2159 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x4
2160 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2161 // CHECK-RV64-NEXT: entry:
2162 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2163 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2164 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
2165 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
2166 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[VAL]], 0
2167 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]]
2169 vint16m1x4_t
test_vset_v_i16m1_i16m1x4(vint16m1x4_t dest
, size_t index
, vint16m1_t val
) {
2170 return __riscv_vset(dest
, 0, val
);
2173 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x5
2174 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2175 // CHECK-RV64-NEXT: entry:
2176 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2177 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2178 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
2179 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
2180 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
2181 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[VAL]], 0
2182 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]]
2184 vint16m1x5_t
test_vset_v_i16m1_i16m1x5(vint16m1x5_t dest
, size_t index
, vint16m1_t val
) {
2185 return __riscv_vset(dest
, 0, val
);
2188 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x6
2189 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], <vscale x 4 x i16> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2190 // CHECK-RV64-NEXT: entry:
2191 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2192 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2193 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
2194 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
2195 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
2196 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[DEST_COERCE5]], 5
2197 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]], <vscale x 4 x i16> [[VAL]], 0
2198 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP6]]
2200 vint16m1x6_t
test_vset_v_i16m1_i16m1x6(vint16m1x6_t dest
, size_t index
, vint16m1_t val
) {
2201 return __riscv_vset(dest
, 0, val
);
2204 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x7
2205 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], <vscale x 4 x i16> [[DEST_COERCE5:%.*]], <vscale x 4 x i16> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2206 // CHECK-RV64-NEXT: entry:
2207 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2208 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2209 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
2210 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
2211 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
2212 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[DEST_COERCE5]], 5
2213 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]], <vscale x 4 x i16> [[DEST_COERCE6]], 6
2214 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP6]], <vscale x 4 x i16> [[VAL]], 0
2215 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP7]]
2217 vint16m1x7_t
test_vset_v_i16m1_i16m1x7(vint16m1x7_t dest
, size_t index
, vint16m1_t val
) {
2218 return __riscv_vset(dest
, 0, val
);
2221 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_i16m1_i16m1x8
2222 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], <vscale x 4 x i16> [[DEST_COERCE5:%.*]], <vscale x 4 x i16> [[DEST_COERCE6:%.*]], <vscale x 4 x i16> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2223 // CHECK-RV64-NEXT: entry:
2224 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
2225 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
2226 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
2227 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
2228 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
2229 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[DEST_COERCE5]], 5
2230 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]], <vscale x 4 x i16> [[DEST_COERCE6]], 6
2231 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP6]], <vscale x 4 x i16> [[DEST_COERCE7]], 7
2232 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP7]], <vscale x 4 x i16> [[VAL]], 0
2233 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP8]]
2235 vint16m1x8_t
test_vset_v_i16m1_i16m1x8(vint16m1x8_t dest
, size_t index
, vint16m1_t val
) {
2236 return __riscv_vset(dest
, 0, val
);
2239 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i16>, <vscale x 8 x i16> } @test_vset_v_i16m2_i16m2x2
2240 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST_COERCE0:%.*]], <vscale x 8 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2241 // CHECK-RV64-NEXT: entry:
2242 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } poison, <vscale x 8 x i16> [[DEST_COERCE0]], 0
2243 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP0]], <vscale x 8 x i16> [[DEST_COERCE1]], 1
2244 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP1]], <vscale x 8 x i16> [[VAL]], 0
2245 // CHECK-RV64-NEXT: ret { <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP2]]
2247 vint16m2x2_t
test_vset_v_i16m2_i16m2x2(vint16m2x2_t dest
, size_t index
, vint16m2_t val
) {
2248 return __riscv_vset(dest
, 0, val
);
2251 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @test_vset_v_i16m2_i16m2x3
2252 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST_COERCE0:%.*]], <vscale x 8 x i16> [[DEST_COERCE1:%.*]], <vscale x 8 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2253 // CHECK-RV64-NEXT: entry:
2254 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } poison, <vscale x 8 x i16> [[DEST_COERCE0]], 0
2255 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP0]], <vscale x 8 x i16> [[DEST_COERCE1]], 1
2256 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP1]], <vscale x 8 x i16> [[DEST_COERCE2]], 2
2257 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP2]], <vscale x 8 x i16> [[VAL]], 0
2258 // CHECK-RV64-NEXT: ret { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP3]]
2260 vint16m2x3_t
test_vset_v_i16m2_i16m2x3(vint16m2x3_t dest
, size_t index
, vint16m2_t val
) {
2261 return __riscv_vset(dest
, 0, val
);
2264 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @test_vset_v_i16m2_i16m2x4
2265 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST_COERCE0:%.*]], <vscale x 8 x i16> [[DEST_COERCE1:%.*]], <vscale x 8 x i16> [[DEST_COERCE2:%.*]], <vscale x 8 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2266 // CHECK-RV64-NEXT: entry:
2267 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } poison, <vscale x 8 x i16> [[DEST_COERCE0]], 0
2268 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP0]], <vscale x 8 x i16> [[DEST_COERCE1]], 1
2269 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP1]], <vscale x 8 x i16> [[DEST_COERCE2]], 2
2270 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP2]], <vscale x 8 x i16> [[DEST_COERCE3]], 3
2271 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP3]], <vscale x 8 x i16> [[VAL]], 0
2272 // CHECK-RV64-NEXT: ret { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP4]]
2274 vint16m2x4_t
test_vset_v_i16m2_i16m2x4(vint16m2x4_t dest
, size_t index
, vint16m2_t val
) {
2275 return __riscv_vset(dest
, 0, val
);
2278 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i16>, <vscale x 16 x i16> } @test_vset_v_i16m4_i16m4x2
2279 // CHECK-RV64-SAME: (<vscale x 16 x i16> [[DEST_COERCE0:%.*]], <vscale x 16 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i16> [[VAL:%.*]]) #[[ATTR0]] {
2280 // CHECK-RV64-NEXT: entry:
2281 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } poison, <vscale x 16 x i16> [[DEST_COERCE0]], 0
2282 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } [[TMP0]], <vscale x 16 x i16> [[DEST_COERCE1]], 1
2283 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } [[TMP1]], <vscale x 16 x i16> [[VAL]], 0
2284 // CHECK-RV64-NEXT: ret { <vscale x 16 x i16>, <vscale x 16 x i16> } [[TMP2]]
2286 vint16m4x2_t
test_vset_v_i16m4_i16m4x2(vint16m4x2_t dest
, size_t index
, vint16m4_t val
) {
2287 return __riscv_vset(dest
, 0, val
);
2290 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x2
2291 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2292 // CHECK-RV64-NEXT: entry:
2293 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2294 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2295 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[VAL]], 0
2296 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]]
2298 vint32mf2x2_t
test_vset_v_i32mf2_i32mf2x2(vint32mf2x2_t dest
, size_t index
, vint32mf2_t val
) {
2299 return __riscv_vset(dest
, 0, val
);
2302 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x3
2303 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2304 // CHECK-RV64-NEXT: entry:
2305 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2306 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2307 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
2308 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[VAL]], 0
2309 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]]
2311 vint32mf2x3_t
test_vset_v_i32mf2_i32mf2x3(vint32mf2x3_t dest
, size_t index
, vint32mf2_t val
) {
2312 return __riscv_vset(dest
, 0, val
);
2315 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x4
2316 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2317 // CHECK-RV64-NEXT: entry:
2318 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2319 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2320 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
2321 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
2322 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[VAL]], 0
2323 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]]
2325 vint32mf2x4_t
test_vset_v_i32mf2_i32mf2x4(vint32mf2x4_t dest
, size_t index
, vint32mf2_t val
) {
2326 return __riscv_vset(dest
, 0, val
);
2329 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x5
2330 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2331 // CHECK-RV64-NEXT: entry:
2332 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2333 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2334 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
2335 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
2336 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
2337 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[VAL]], 0
2338 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]]
2340 vint32mf2x5_t
test_vset_v_i32mf2_i32mf2x5(vint32mf2x5_t dest
, size_t index
, vint32mf2_t val
) {
2341 return __riscv_vset(dest
, 0, val
);
2344 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x6
2345 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], <vscale x 1 x i32> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2346 // CHECK-RV64-NEXT: entry:
2347 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2348 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2349 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
2350 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
2351 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
2352 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[DEST_COERCE5]], 5
2353 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]], <vscale x 1 x i32> [[VAL]], 0
2354 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP6]]
2356 vint32mf2x6_t
test_vset_v_i32mf2_i32mf2x6(vint32mf2x6_t dest
, size_t index
, vint32mf2_t val
) {
2357 return __riscv_vset(dest
, 0, val
);
2360 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x7
2361 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], <vscale x 1 x i32> [[DEST_COERCE5:%.*]], <vscale x 1 x i32> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2362 // CHECK-RV64-NEXT: entry:
2363 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2364 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2365 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
2366 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
2367 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
2368 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[DEST_COERCE5]], 5
2369 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]], <vscale x 1 x i32> [[DEST_COERCE6]], 6
2370 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP6]], <vscale x 1 x i32> [[VAL]], 0
2371 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP7]]
2373 vint32mf2x7_t
test_vset_v_i32mf2_i32mf2x7(vint32mf2x7_t dest
, size_t index
, vint32mf2_t val
) {
2374 return __riscv_vset(dest
, 0, val
);
2377 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_i32mf2_i32mf2x8
2378 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], <vscale x 1 x i32> [[DEST_COERCE5:%.*]], <vscale x 1 x i32> [[DEST_COERCE6:%.*]], <vscale x 1 x i32> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2379 // CHECK-RV64-NEXT: entry:
2380 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
2381 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
2382 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
2383 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
2384 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
2385 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[DEST_COERCE5]], 5
2386 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]], <vscale x 1 x i32> [[DEST_COERCE6]], 6
2387 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP6]], <vscale x 1 x i32> [[DEST_COERCE7]], 7
2388 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP7]], <vscale x 1 x i32> [[VAL]], 0
2389 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP8]]
2391 vint32mf2x8_t
test_vset_v_i32mf2_i32mf2x8(vint32mf2x8_t dest
, size_t index
, vint32mf2_t val
) {
2392 return __riscv_vset(dest
, 0, val
);
2395 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x2
2396 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2397 // CHECK-RV64-NEXT: entry:
2398 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2399 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2400 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[VAL]], 0
2401 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]]
2403 vint32m1x2_t
test_vset_v_i32m1_i32m1x2(vint32m1x2_t dest
, size_t index
, vint32m1_t val
) {
2404 return __riscv_vset(dest
, 0, val
);
2407 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x3
2408 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2409 // CHECK-RV64-NEXT: entry:
2410 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2411 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2412 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
2413 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[VAL]], 0
2414 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]]
2416 vint32m1x3_t
test_vset_v_i32m1_i32m1x3(vint32m1x3_t dest
, size_t index
, vint32m1_t val
) {
2417 return __riscv_vset(dest
, 0, val
);
2420 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x4
2421 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2422 // CHECK-RV64-NEXT: entry:
2423 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2424 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2425 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
2426 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
2427 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[VAL]], 0
2428 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]]
2430 vint32m1x4_t
test_vset_v_i32m1_i32m1x4(vint32m1x4_t dest
, size_t index
, vint32m1_t val
) {
2431 return __riscv_vset(dest
, 0, val
);
2434 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x5
2435 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2436 // CHECK-RV64-NEXT: entry:
2437 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2438 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2439 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
2440 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
2441 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
2442 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[VAL]], 0
2443 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]]
2445 vint32m1x5_t
test_vset_v_i32m1_i32m1x5(vint32m1x5_t dest
, size_t index
, vint32m1_t val
) {
2446 return __riscv_vset(dest
, 0, val
);
2449 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x6
2450 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], <vscale x 2 x i32> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2451 // CHECK-RV64-NEXT: entry:
2452 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2453 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2454 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
2455 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
2456 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
2457 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[DEST_COERCE5]], 5
2458 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]], <vscale x 2 x i32> [[VAL]], 0
2459 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP6]]
2461 vint32m1x6_t
test_vset_v_i32m1_i32m1x6(vint32m1x6_t dest
, size_t index
, vint32m1_t val
) {
2462 return __riscv_vset(dest
, 0, val
);
2465 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x7
2466 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], <vscale x 2 x i32> [[DEST_COERCE5:%.*]], <vscale x 2 x i32> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2467 // CHECK-RV64-NEXT: entry:
2468 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2469 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2470 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
2471 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
2472 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
2473 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[DEST_COERCE5]], 5
2474 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]], <vscale x 2 x i32> [[DEST_COERCE6]], 6
2475 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP6]], <vscale x 2 x i32> [[VAL]], 0
2476 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP7]]
2478 vint32m1x7_t
test_vset_v_i32m1_i32m1x7(vint32m1x7_t dest
, size_t index
, vint32m1_t val
) {
2479 return __riscv_vset(dest
, 0, val
);
2482 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_i32m1_i32m1x8
2483 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], <vscale x 2 x i32> [[DEST_COERCE5:%.*]], <vscale x 2 x i32> [[DEST_COERCE6:%.*]], <vscale x 2 x i32> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2484 // CHECK-RV64-NEXT: entry:
2485 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
2486 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
2487 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
2488 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
2489 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
2490 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[DEST_COERCE5]], 5
2491 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]], <vscale x 2 x i32> [[DEST_COERCE6]], 6
2492 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP6]], <vscale x 2 x i32> [[DEST_COERCE7]], 7
2493 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP7]], <vscale x 2 x i32> [[VAL]], 0
2494 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP8]]
2496 vint32m1x8_t
test_vset_v_i32m1_i32m1x8(vint32m1x8_t dest
, size_t index
, vint32m1_t val
) {
2497 return __riscv_vset(dest
, 0, val
);
2500 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i32>, <vscale x 4 x i32> } @test_vset_v_i32m2_i32m2x2
2501 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST_COERCE0:%.*]], <vscale x 4 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2502 // CHECK-RV64-NEXT: entry:
2503 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32> } poison, <vscale x 4 x i32> [[DEST_COERCE0]], 0
2504 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP0]], <vscale x 4 x i32> [[DEST_COERCE1]], 1
2505 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP1]], <vscale x 4 x i32> [[VAL]], 0
2506 // CHECK-RV64-NEXT: ret { <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP2]]
2508 vint32m2x2_t
test_vset_v_i32m2_i32m2x2(vint32m2x2_t dest
, size_t index
, vint32m2_t val
) {
2509 return __riscv_vset(dest
, 0, val
);
2512 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } @test_vset_v_i32m2_i32m2x3
2513 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST_COERCE0:%.*]], <vscale x 4 x i32> [[DEST_COERCE1:%.*]], <vscale x 4 x i32> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2514 // CHECK-RV64-NEXT: entry:
2515 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } poison, <vscale x 4 x i32> [[DEST_COERCE0]], 0
2516 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP0]], <vscale x 4 x i32> [[DEST_COERCE1]], 1
2517 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP1]], <vscale x 4 x i32> [[DEST_COERCE2]], 2
2518 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP2]], <vscale x 4 x i32> [[VAL]], 0
2519 // CHECK-RV64-NEXT: ret { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP3]]
2521 vint32m2x3_t
test_vset_v_i32m2_i32m2x3(vint32m2x3_t dest
, size_t index
, vint32m2_t val
) {
2522 return __riscv_vset(dest
, 0, val
);
2525 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } @test_vset_v_i32m2_i32m2x4
2526 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST_COERCE0:%.*]], <vscale x 4 x i32> [[DEST_COERCE1:%.*]], <vscale x 4 x i32> [[DEST_COERCE2:%.*]], <vscale x 4 x i32> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2527 // CHECK-RV64-NEXT: entry:
2528 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } poison, <vscale x 4 x i32> [[DEST_COERCE0]], 0
2529 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP0]], <vscale x 4 x i32> [[DEST_COERCE1]], 1
2530 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP1]], <vscale x 4 x i32> [[DEST_COERCE2]], 2
2531 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP2]], <vscale x 4 x i32> [[DEST_COERCE3]], 3
2532 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP3]], <vscale x 4 x i32> [[VAL]], 0
2533 // CHECK-RV64-NEXT: ret { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP4]]
2535 vint32m2x4_t
test_vset_v_i32m2_i32m2x4(vint32m2x4_t dest
, size_t index
, vint32m2_t val
) {
2536 return __riscv_vset(dest
, 0, val
);
2539 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i32>, <vscale x 8 x i32> } @test_vset_v_i32m4_i32m4x2
2540 // CHECK-RV64-SAME: (<vscale x 8 x i32> [[DEST_COERCE0:%.*]], <vscale x 8 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i32> [[VAL:%.*]]) #[[ATTR0]] {
2541 // CHECK-RV64-NEXT: entry:
2542 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } poison, <vscale x 8 x i32> [[DEST_COERCE0]], 0
2543 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } [[TMP0]], <vscale x 8 x i32> [[DEST_COERCE1]], 1
2544 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } [[TMP1]], <vscale x 8 x i32> [[VAL]], 0
2545 // CHECK-RV64-NEXT: ret { <vscale x 8 x i32>, <vscale x 8 x i32> } [[TMP2]]
2547 vint32m4x2_t
test_vset_v_i32m4_i32m4x2(vint32m4x2_t dest
, size_t index
, vint32m4_t val
) {
2548 return __riscv_vset(dest
, 0, val
);
2551 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x2
2552 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2553 // CHECK-RV64-NEXT: entry:
2554 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2555 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2556 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[VAL]], 0
2557 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]]
2559 vint64m1x2_t
test_vset_v_i64m1_i64m1x2(vint64m1x2_t dest
, size_t index
, vint64m1_t val
) {
2560 return __riscv_vset(dest
, 0, val
);
2563 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x3
2564 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2565 // CHECK-RV64-NEXT: entry:
2566 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2567 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2568 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
2569 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[VAL]], 0
2570 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]]
2572 vint64m1x3_t
test_vset_v_i64m1_i64m1x3(vint64m1x3_t dest
, size_t index
, vint64m1_t val
) {
2573 return __riscv_vset(dest
, 0, val
);
2576 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x4
2577 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2578 // CHECK-RV64-NEXT: entry:
2579 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2580 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2581 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
2582 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
2583 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[VAL]], 0
2584 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]]
2586 vint64m1x4_t
test_vset_v_i64m1_i64m1x4(vint64m1x4_t dest
, size_t index
, vint64m1_t val
) {
2587 return __riscv_vset(dest
, 0, val
);
2590 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x5
2591 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2592 // CHECK-RV64-NEXT: entry:
2593 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2594 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2595 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
2596 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
2597 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
2598 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[VAL]], 0
2599 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]]
2601 vint64m1x5_t
test_vset_v_i64m1_i64m1x5(vint64m1x5_t dest
, size_t index
, vint64m1_t val
) {
2602 return __riscv_vset(dest
, 0, val
);
2605 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x6
2606 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], <vscale x 1 x i64> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2607 // CHECK-RV64-NEXT: entry:
2608 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2609 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2610 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
2611 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
2612 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
2613 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[DEST_COERCE5]], 5
2614 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]], <vscale x 1 x i64> [[VAL]], 0
2615 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP6]]
2617 vint64m1x6_t
test_vset_v_i64m1_i64m1x6(vint64m1x6_t dest
, size_t index
, vint64m1_t val
) {
2618 return __riscv_vset(dest
, 0, val
);
2621 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x7
2622 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], <vscale x 1 x i64> [[DEST_COERCE5:%.*]], <vscale x 1 x i64> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2623 // CHECK-RV64-NEXT: entry:
2624 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2625 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2626 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
2627 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
2628 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
2629 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[DEST_COERCE5]], 5
2630 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]], <vscale x 1 x i64> [[DEST_COERCE6]], 6
2631 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP6]], <vscale x 1 x i64> [[VAL]], 0
2632 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP7]]
2634 vint64m1x7_t
test_vset_v_i64m1_i64m1x7(vint64m1x7_t dest
, size_t index
, vint64m1_t val
) {
2635 return __riscv_vset(dest
, 0, val
);
2638 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_i64m1_i64m1x8
2639 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], <vscale x 1 x i64> [[DEST_COERCE5:%.*]], <vscale x 1 x i64> [[DEST_COERCE6:%.*]], <vscale x 1 x i64> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2640 // CHECK-RV64-NEXT: entry:
2641 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
2642 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
2643 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
2644 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
2645 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
2646 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[DEST_COERCE5]], 5
2647 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]], <vscale x 1 x i64> [[DEST_COERCE6]], 6
2648 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP6]], <vscale x 1 x i64> [[DEST_COERCE7]], 7
2649 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP7]], <vscale x 1 x i64> [[VAL]], 0
2650 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP8]]
2652 vint64m1x8_t
test_vset_v_i64m1_i64m1x8(vint64m1x8_t dest
, size_t index
, vint64m1_t val
) {
2653 return __riscv_vset(dest
, 0, val
);
2656 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i64>, <vscale x 2 x i64> } @test_vset_v_i64m2_i64m2x2
2657 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST_COERCE0:%.*]], <vscale x 2 x i64> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2658 // CHECK-RV64-NEXT: entry:
2659 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64> } poison, <vscale x 2 x i64> [[DEST_COERCE0]], 0
2660 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP0]], <vscale x 2 x i64> [[DEST_COERCE1]], 1
2661 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP1]], <vscale x 2 x i64> [[VAL]], 0
2662 // CHECK-RV64-NEXT: ret { <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP2]]
2664 vint64m2x2_t
test_vset_v_i64m2_i64m2x2(vint64m2x2_t dest
, size_t index
, vint64m2_t val
) {
2665 return __riscv_vset(dest
, 0, val
);
2668 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } @test_vset_v_i64m2_i64m2x3
2669 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST_COERCE0:%.*]], <vscale x 2 x i64> [[DEST_COERCE1:%.*]], <vscale x 2 x i64> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2670 // CHECK-RV64-NEXT: entry:
2671 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } poison, <vscale x 2 x i64> [[DEST_COERCE0]], 0
2672 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP0]], <vscale x 2 x i64> [[DEST_COERCE1]], 1
2673 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP1]], <vscale x 2 x i64> [[DEST_COERCE2]], 2
2674 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP2]], <vscale x 2 x i64> [[VAL]], 0
2675 // CHECK-RV64-NEXT: ret { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP3]]
2677 vint64m2x3_t
test_vset_v_i64m2_i64m2x3(vint64m2x3_t dest
, size_t index
, vint64m2_t val
) {
2678 return __riscv_vset(dest
, 0, val
);
2681 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } @test_vset_v_i64m2_i64m2x4
2682 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST_COERCE0:%.*]], <vscale x 2 x i64> [[DEST_COERCE1:%.*]], <vscale x 2 x i64> [[DEST_COERCE2:%.*]], <vscale x 2 x i64> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2683 // CHECK-RV64-NEXT: entry:
2684 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } poison, <vscale x 2 x i64> [[DEST_COERCE0]], 0
2685 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP0]], <vscale x 2 x i64> [[DEST_COERCE1]], 1
2686 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP1]], <vscale x 2 x i64> [[DEST_COERCE2]], 2
2687 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP2]], <vscale x 2 x i64> [[DEST_COERCE3]], 3
2688 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP3]], <vscale x 2 x i64> [[VAL]], 0
2689 // CHECK-RV64-NEXT: ret { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP4]]
2691 vint64m2x4_t
test_vset_v_i64m2_i64m2x4(vint64m2x4_t dest
, size_t index
, vint64m2_t val
) {
2692 return __riscv_vset(dest
, 0, val
);
2695 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i64>, <vscale x 4 x i64> } @test_vset_v_i64m4_i64m4x2
2696 // CHECK-RV64-SAME: (<vscale x 4 x i64> [[DEST_COERCE0:%.*]], <vscale x 4 x i64> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i64> [[VAL:%.*]]) #[[ATTR0]] {
2697 // CHECK-RV64-NEXT: entry:
2698 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i64>, <vscale x 4 x i64> } poison, <vscale x 4 x i64> [[DEST_COERCE0]], 0
2699 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i64>, <vscale x 4 x i64> } [[TMP0]], <vscale x 4 x i64> [[DEST_COERCE1]], 1
2700 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i64>, <vscale x 4 x i64> } [[TMP1]], <vscale x 4 x i64> [[VAL]], 0
2701 // CHECK-RV64-NEXT: ret { <vscale x 4 x i64>, <vscale x 4 x i64> } [[TMP2]]
2703 vint64m4x2_t
test_vset_v_i64m4_i64m4x2(vint64m4x2_t dest
, size_t index
, vint64m4_t val
) {
2704 return __riscv_vset(dest
, 0, val
);
2707 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x2
2708 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2709 // CHECK-RV64-NEXT: entry:
2710 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2711 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2712 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[VAL]], 0
2713 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]]
2715 vuint8mf8x2_t
test_vset_v_u8mf8_u8mf8x2(vuint8mf8x2_t dest
, size_t index
, vuint8mf8_t val
) {
2716 return __riscv_vset(dest
, 0, val
);
2719 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x3
2720 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2721 // CHECK-RV64-NEXT: entry:
2722 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2723 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2724 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
2725 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[VAL]], 0
2726 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]]
2728 vuint8mf8x3_t
test_vset_v_u8mf8_u8mf8x3(vuint8mf8x3_t dest
, size_t index
, vuint8mf8_t val
) {
2729 return __riscv_vset(dest
, 0, val
);
2732 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x4
2733 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2734 // CHECK-RV64-NEXT: entry:
2735 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2736 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2737 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
2738 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
2739 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[VAL]], 0
2740 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]]
2742 vuint8mf8x4_t
test_vset_v_u8mf8_u8mf8x4(vuint8mf8x4_t dest
, size_t index
, vuint8mf8_t val
) {
2743 return __riscv_vset(dest
, 0, val
);
2746 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x5
2747 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2748 // CHECK-RV64-NEXT: entry:
2749 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2750 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2751 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
2752 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
2753 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
2754 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[VAL]], 0
2755 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]]
2757 vuint8mf8x5_t
test_vset_v_u8mf8_u8mf8x5(vuint8mf8x5_t dest
, size_t index
, vuint8mf8_t val
) {
2758 return __riscv_vset(dest
, 0, val
);
2761 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x6
2762 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], <vscale x 1 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2763 // CHECK-RV64-NEXT: entry:
2764 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2765 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2766 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
2767 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
2768 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
2769 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[DEST_COERCE5]], 5
2770 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]], <vscale x 1 x i8> [[VAL]], 0
2771 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP6]]
2773 vuint8mf8x6_t
test_vset_v_u8mf8_u8mf8x6(vuint8mf8x6_t dest
, size_t index
, vuint8mf8_t val
) {
2774 return __riscv_vset(dest
, 0, val
);
2777 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x7
2778 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], <vscale x 1 x i8> [[DEST_COERCE5:%.*]], <vscale x 1 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2779 // CHECK-RV64-NEXT: entry:
2780 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2781 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2782 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
2783 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
2784 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
2785 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[DEST_COERCE5]], 5
2786 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]], <vscale x 1 x i8> [[DEST_COERCE6]], 6
2787 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP6]], <vscale x 1 x i8> [[VAL]], 0
2788 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP7]]
2790 vuint8mf8x7_t
test_vset_v_u8mf8_u8mf8x7(vuint8mf8x7_t dest
, size_t index
, vuint8mf8_t val
) {
2791 return __riscv_vset(dest
, 0, val
);
2794 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } @test_vset_v_u8mf8_u8mf8x8
2795 // CHECK-RV64-SAME: (<vscale x 1 x i8> [[DEST_COERCE0:%.*]], <vscale x 1 x i8> [[DEST_COERCE1:%.*]], <vscale x 1 x i8> [[DEST_COERCE2:%.*]], <vscale x 1 x i8> [[DEST_COERCE3:%.*]], <vscale x 1 x i8> [[DEST_COERCE4:%.*]], <vscale x 1 x i8> [[DEST_COERCE5:%.*]], <vscale x 1 x i8> [[DEST_COERCE6:%.*]], <vscale x 1 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2796 // CHECK-RV64-NEXT: entry:
2797 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } poison, <vscale x 1 x i8> [[DEST_COERCE0]], 0
2798 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP0]], <vscale x 1 x i8> [[DEST_COERCE1]], 1
2799 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP1]], <vscale x 1 x i8> [[DEST_COERCE2]], 2
2800 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP2]], <vscale x 1 x i8> [[DEST_COERCE3]], 3
2801 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP3]], <vscale x 1 x i8> [[DEST_COERCE4]], 4
2802 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP4]], <vscale x 1 x i8> [[DEST_COERCE5]], 5
2803 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP5]], <vscale x 1 x i8> [[DEST_COERCE6]], 6
2804 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP6]], <vscale x 1 x i8> [[DEST_COERCE7]], 7
2805 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP7]], <vscale x 1 x i8> [[VAL]], 0
2806 // CHECK-RV64-NEXT: ret { <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i8> } [[TMP8]]
2808 vuint8mf8x8_t
test_vset_v_u8mf8_u8mf8x8(vuint8mf8x8_t dest
, size_t index
, vuint8mf8_t val
) {
2809 return __riscv_vset(dest
, 0, val
);
2812 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x2
2813 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2814 // CHECK-RV64-NEXT: entry:
2815 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2816 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2817 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[VAL]], 0
2818 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]]
2820 vuint8mf4x2_t
test_vset_v_u8mf4_u8mf4x2(vuint8mf4x2_t dest
, size_t index
, vuint8mf4_t val
) {
2821 return __riscv_vset(dest
, 0, val
);
2824 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x3
2825 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2826 // CHECK-RV64-NEXT: entry:
2827 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2828 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2829 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
2830 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[VAL]], 0
2831 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]]
2833 vuint8mf4x3_t
test_vset_v_u8mf4_u8mf4x3(vuint8mf4x3_t dest
, size_t index
, vuint8mf4_t val
) {
2834 return __riscv_vset(dest
, 0, val
);
2837 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x4
2838 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2839 // CHECK-RV64-NEXT: entry:
2840 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2841 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2842 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
2843 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
2844 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[VAL]], 0
2845 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]]
2847 vuint8mf4x4_t
test_vset_v_u8mf4_u8mf4x4(vuint8mf4x4_t dest
, size_t index
, vuint8mf4_t val
) {
2848 return __riscv_vset(dest
, 0, val
);
2851 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x5
2852 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2853 // CHECK-RV64-NEXT: entry:
2854 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2855 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2856 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
2857 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
2858 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
2859 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[VAL]], 0
2860 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]]
2862 vuint8mf4x5_t
test_vset_v_u8mf4_u8mf4x5(vuint8mf4x5_t dest
, size_t index
, vuint8mf4_t val
) {
2863 return __riscv_vset(dest
, 0, val
);
2866 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x6
2867 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], <vscale x 2 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2868 // CHECK-RV64-NEXT: entry:
2869 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2870 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2871 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
2872 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
2873 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
2874 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[DEST_COERCE5]], 5
2875 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]], <vscale x 2 x i8> [[VAL]], 0
2876 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP6]]
2878 vuint8mf4x6_t
test_vset_v_u8mf4_u8mf4x6(vuint8mf4x6_t dest
, size_t index
, vuint8mf4_t val
) {
2879 return __riscv_vset(dest
, 0, val
);
2882 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x7
2883 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], <vscale x 2 x i8> [[DEST_COERCE5:%.*]], <vscale x 2 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2884 // CHECK-RV64-NEXT: entry:
2885 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2886 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2887 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
2888 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
2889 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
2890 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[DEST_COERCE5]], 5
2891 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]], <vscale x 2 x i8> [[DEST_COERCE6]], 6
2892 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP6]], <vscale x 2 x i8> [[VAL]], 0
2893 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP7]]
2895 vuint8mf4x7_t
test_vset_v_u8mf4_u8mf4x7(vuint8mf4x7_t dest
, size_t index
, vuint8mf4_t val
) {
2896 return __riscv_vset(dest
, 0, val
);
2899 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } @test_vset_v_u8mf4_u8mf4x8
2900 // CHECK-RV64-SAME: (<vscale x 2 x i8> [[DEST_COERCE0:%.*]], <vscale x 2 x i8> [[DEST_COERCE1:%.*]], <vscale x 2 x i8> [[DEST_COERCE2:%.*]], <vscale x 2 x i8> [[DEST_COERCE3:%.*]], <vscale x 2 x i8> [[DEST_COERCE4:%.*]], <vscale x 2 x i8> [[DEST_COERCE5:%.*]], <vscale x 2 x i8> [[DEST_COERCE6:%.*]], <vscale x 2 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2901 // CHECK-RV64-NEXT: entry:
2902 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } poison, <vscale x 2 x i8> [[DEST_COERCE0]], 0
2903 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP0]], <vscale x 2 x i8> [[DEST_COERCE1]], 1
2904 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP1]], <vscale x 2 x i8> [[DEST_COERCE2]], 2
2905 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP2]], <vscale x 2 x i8> [[DEST_COERCE3]], 3
2906 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP3]], <vscale x 2 x i8> [[DEST_COERCE4]], 4
2907 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP4]], <vscale x 2 x i8> [[DEST_COERCE5]], 5
2908 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP5]], <vscale x 2 x i8> [[DEST_COERCE6]], 6
2909 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP6]], <vscale x 2 x i8> [[DEST_COERCE7]], 7
2910 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP7]], <vscale x 2 x i8> [[VAL]], 0
2911 // CHECK-RV64-NEXT: ret { <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i8> } [[TMP8]]
2913 vuint8mf4x8_t
test_vset_v_u8mf4_u8mf4x8(vuint8mf4x8_t dest
, size_t index
, vuint8mf4_t val
) {
2914 return __riscv_vset(dest
, 0, val
);
2917 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x2
2918 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2919 // CHECK-RV64-NEXT: entry:
2920 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
2921 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
2922 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[VAL]], 0
2923 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]]
2925 vuint8mf2x2_t
test_vset_v_u8mf2_u8mf2x2(vuint8mf2x2_t dest
, size_t index
, vuint8mf2_t val
) {
2926 return __riscv_vset(dest
, 0, val
);
2929 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x3
2930 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2931 // CHECK-RV64-NEXT: entry:
2932 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
2933 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
2934 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
2935 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[VAL]], 0
2936 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]]
2938 vuint8mf2x3_t
test_vset_v_u8mf2_u8mf2x3(vuint8mf2x3_t dest
, size_t index
, vuint8mf2_t val
) {
2939 return __riscv_vset(dest
, 0, val
);
2942 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x4
2943 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2944 // CHECK-RV64-NEXT: entry:
2945 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
2946 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
2947 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
2948 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
2949 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[VAL]], 0
2950 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]]
2952 vuint8mf2x4_t
test_vset_v_u8mf2_u8mf2x4(vuint8mf2x4_t dest
, size_t index
, vuint8mf2_t val
) {
2953 return __riscv_vset(dest
, 0, val
);
2956 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x5
2957 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2958 // CHECK-RV64-NEXT: entry:
2959 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
2960 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
2961 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
2962 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
2963 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
2964 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[VAL]], 0
2965 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]]
2967 vuint8mf2x5_t
test_vset_v_u8mf2_u8mf2x5(vuint8mf2x5_t dest
, size_t index
, vuint8mf2_t val
) {
2968 return __riscv_vset(dest
, 0, val
);
2971 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x6
2972 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], <vscale x 4 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2973 // CHECK-RV64-NEXT: entry:
2974 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
2975 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
2976 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
2977 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
2978 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
2979 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[DEST_COERCE5]], 5
2980 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]], <vscale x 4 x i8> [[VAL]], 0
2981 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP6]]
2983 vuint8mf2x6_t
test_vset_v_u8mf2_u8mf2x6(vuint8mf2x6_t dest
, size_t index
, vuint8mf2_t val
) {
2984 return __riscv_vset(dest
, 0, val
);
2987 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x7
2988 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], <vscale x 4 x i8> [[DEST_COERCE5:%.*]], <vscale x 4 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
2989 // CHECK-RV64-NEXT: entry:
2990 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
2991 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
2992 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
2993 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
2994 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
2995 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[DEST_COERCE5]], 5
2996 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]], <vscale x 4 x i8> [[DEST_COERCE6]], 6
2997 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP6]], <vscale x 4 x i8> [[VAL]], 0
2998 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP7]]
3000 vuint8mf2x7_t
test_vset_v_u8mf2_u8mf2x7(vuint8mf2x7_t dest
, size_t index
, vuint8mf2_t val
) {
3001 return __riscv_vset(dest
, 0, val
);
3004 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } @test_vset_v_u8mf2_u8mf2x8
3005 // CHECK-RV64-SAME: (<vscale x 4 x i8> [[DEST_COERCE0:%.*]], <vscale x 4 x i8> [[DEST_COERCE1:%.*]], <vscale x 4 x i8> [[DEST_COERCE2:%.*]], <vscale x 4 x i8> [[DEST_COERCE3:%.*]], <vscale x 4 x i8> [[DEST_COERCE4:%.*]], <vscale x 4 x i8> [[DEST_COERCE5:%.*]], <vscale x 4 x i8> [[DEST_COERCE6:%.*]], <vscale x 4 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3006 // CHECK-RV64-NEXT: entry:
3007 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } poison, <vscale x 4 x i8> [[DEST_COERCE0]], 0
3008 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP0]], <vscale x 4 x i8> [[DEST_COERCE1]], 1
3009 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP1]], <vscale x 4 x i8> [[DEST_COERCE2]], 2
3010 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP2]], <vscale x 4 x i8> [[DEST_COERCE3]], 3
3011 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP3]], <vscale x 4 x i8> [[DEST_COERCE4]], 4
3012 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP4]], <vscale x 4 x i8> [[DEST_COERCE5]], 5
3013 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP5]], <vscale x 4 x i8> [[DEST_COERCE6]], 6
3014 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP6]], <vscale x 4 x i8> [[DEST_COERCE7]], 7
3015 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP7]], <vscale x 4 x i8> [[VAL]], 0
3016 // CHECK-RV64-NEXT: ret { <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i8> } [[TMP8]]
3018 vuint8mf2x8_t
test_vset_v_u8mf2_u8mf2x8(vuint8mf2x8_t dest
, size_t index
, vuint8mf2_t val
) {
3019 return __riscv_vset(dest
, 0, val
);
3022 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x2
3023 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3024 // CHECK-RV64-NEXT: entry:
3025 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3026 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3027 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[VAL]], 0
3028 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]]
3030 vuint8m1x2_t
test_vset_v_u8m1_u8m1x2(vuint8m1x2_t dest
, size_t index
, vuint8m1_t val
) {
3031 return __riscv_vset(dest
, 0, val
);
3034 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x3
3035 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3036 // CHECK-RV64-NEXT: entry:
3037 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3038 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3039 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
3040 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[VAL]], 0
3041 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]]
3043 vuint8m1x3_t
test_vset_v_u8m1_u8m1x3(vuint8m1x3_t dest
, size_t index
, vuint8m1_t val
) {
3044 return __riscv_vset(dest
, 0, val
);
3047 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x4
3048 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3049 // CHECK-RV64-NEXT: entry:
3050 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3051 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3052 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
3053 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
3054 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[VAL]], 0
3055 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]]
3057 vuint8m1x4_t
test_vset_v_u8m1_u8m1x4(vuint8m1x4_t dest
, size_t index
, vuint8m1_t val
) {
3058 return __riscv_vset(dest
, 0, val
);
3061 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x5
3062 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3063 // CHECK-RV64-NEXT: entry:
3064 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3065 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3066 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
3067 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
3068 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
3069 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[VAL]], 0
3070 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]]
3072 vuint8m1x5_t
test_vset_v_u8m1_u8m1x5(vuint8m1x5_t dest
, size_t index
, vuint8m1_t val
) {
3073 return __riscv_vset(dest
, 0, val
);
3076 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x6
3077 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], <vscale x 8 x i8> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3078 // CHECK-RV64-NEXT: entry:
3079 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3080 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3081 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
3082 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
3083 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
3084 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[DEST_COERCE5]], 5
3085 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]], <vscale x 8 x i8> [[VAL]], 0
3086 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP6]]
3088 vuint8m1x6_t
test_vset_v_u8m1_u8m1x6(vuint8m1x6_t dest
, size_t index
, vuint8m1_t val
) {
3089 return __riscv_vset(dest
, 0, val
);
3092 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x7
3093 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], <vscale x 8 x i8> [[DEST_COERCE5:%.*]], <vscale x 8 x i8> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3094 // CHECK-RV64-NEXT: entry:
3095 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3096 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3097 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
3098 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
3099 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
3100 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[DEST_COERCE5]], 5
3101 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]], <vscale x 8 x i8> [[DEST_COERCE6]], 6
3102 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP6]], <vscale x 8 x i8> [[VAL]], 0
3103 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP7]]
3105 vuint8m1x7_t
test_vset_v_u8m1_u8m1x7(vuint8m1x7_t dest
, size_t index
, vuint8m1_t val
) {
3106 return __riscv_vset(dest
, 0, val
);
3109 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } @test_vset_v_u8m1_u8m1x8
3110 // CHECK-RV64-SAME: (<vscale x 8 x i8> [[DEST_COERCE0:%.*]], <vscale x 8 x i8> [[DEST_COERCE1:%.*]], <vscale x 8 x i8> [[DEST_COERCE2:%.*]], <vscale x 8 x i8> [[DEST_COERCE3:%.*]], <vscale x 8 x i8> [[DEST_COERCE4:%.*]], <vscale x 8 x i8> [[DEST_COERCE5:%.*]], <vscale x 8 x i8> [[DEST_COERCE6:%.*]], <vscale x 8 x i8> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3111 // CHECK-RV64-NEXT: entry:
3112 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } poison, <vscale x 8 x i8> [[DEST_COERCE0]], 0
3113 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP0]], <vscale x 8 x i8> [[DEST_COERCE1]], 1
3114 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP1]], <vscale x 8 x i8> [[DEST_COERCE2]], 2
3115 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP2]], <vscale x 8 x i8> [[DEST_COERCE3]], 3
3116 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP3]], <vscale x 8 x i8> [[DEST_COERCE4]], 4
3117 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP4]], <vscale x 8 x i8> [[DEST_COERCE5]], 5
3118 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP5]], <vscale x 8 x i8> [[DEST_COERCE6]], 6
3119 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP6]], <vscale x 8 x i8> [[DEST_COERCE7]], 7
3120 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP7]], <vscale x 8 x i8> [[VAL]], 0
3121 // CHECK-RV64-NEXT: ret { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8> } [[TMP8]]
3123 vuint8m1x8_t
test_vset_v_u8m1_u8m1x8(vuint8m1x8_t dest
, size_t index
, vuint8m1_t val
) {
3124 return __riscv_vset(dest
, 0, val
);
3127 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i8>, <vscale x 16 x i8> } @test_vset_v_u8m2_u8m2x2
3128 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST_COERCE0:%.*]], <vscale x 16 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3129 // CHECK-RV64-NEXT: entry:
3130 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8> } poison, <vscale x 16 x i8> [[DEST_COERCE0]], 0
3131 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP0]], <vscale x 16 x i8> [[DEST_COERCE1]], 1
3132 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP1]], <vscale x 16 x i8> [[VAL]], 0
3133 // CHECK-RV64-NEXT: ret { <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP2]]
3135 vuint8m2x2_t
test_vset_v_u8m2_u8m2x2(vuint8m2x2_t dest
, size_t index
, vuint8m2_t val
) {
3136 return __riscv_vset(dest
, 0, val
);
3139 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } @test_vset_v_u8m2_u8m2x3
3140 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST_COERCE0:%.*]], <vscale x 16 x i8> [[DEST_COERCE1:%.*]], <vscale x 16 x i8> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3141 // CHECK-RV64-NEXT: entry:
3142 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } poison, <vscale x 16 x i8> [[DEST_COERCE0]], 0
3143 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP0]], <vscale x 16 x i8> [[DEST_COERCE1]], 1
3144 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP1]], <vscale x 16 x i8> [[DEST_COERCE2]], 2
3145 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP2]], <vscale x 16 x i8> [[VAL]], 0
3146 // CHECK-RV64-NEXT: ret { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP3]]
3148 vuint8m2x3_t
test_vset_v_u8m2_u8m2x3(vuint8m2x3_t dest
, size_t index
, vuint8m2_t val
) {
3149 return __riscv_vset(dest
, 0, val
);
3152 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } @test_vset_v_u8m2_u8m2x4
3153 // CHECK-RV64-SAME: (<vscale x 16 x i8> [[DEST_COERCE0:%.*]], <vscale x 16 x i8> [[DEST_COERCE1:%.*]], <vscale x 16 x i8> [[DEST_COERCE2:%.*]], <vscale x 16 x i8> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3154 // CHECK-RV64-NEXT: entry:
3155 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } poison, <vscale x 16 x i8> [[DEST_COERCE0]], 0
3156 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP0]], <vscale x 16 x i8> [[DEST_COERCE1]], 1
3157 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP1]], <vscale x 16 x i8> [[DEST_COERCE2]], 2
3158 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP2]], <vscale x 16 x i8> [[DEST_COERCE3]], 3
3159 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP3]], <vscale x 16 x i8> [[VAL]], 0
3160 // CHECK-RV64-NEXT: ret { <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8> } [[TMP4]]
3162 vuint8m2x4_t
test_vset_v_u8m2_u8m2x4(vuint8m2x4_t dest
, size_t index
, vuint8m2_t val
) {
3163 return __riscv_vset(dest
, 0, val
);
3166 // CHECK-RV64-LABEL: define dso_local { <vscale x 32 x i8>, <vscale x 32 x i8> } @test_vset_v_u8m4_u8m4x2
3167 // CHECK-RV64-SAME: (<vscale x 32 x i8> [[DEST_COERCE0:%.*]], <vscale x 32 x i8> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 32 x i8> [[VAL:%.*]]) #[[ATTR0]] {
3168 // CHECK-RV64-NEXT: entry:
3169 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 32 x i8>, <vscale x 32 x i8> } poison, <vscale x 32 x i8> [[DEST_COERCE0]], 0
3170 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 32 x i8>, <vscale x 32 x i8> } [[TMP0]], <vscale x 32 x i8> [[DEST_COERCE1]], 1
3171 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 32 x i8>, <vscale x 32 x i8> } [[TMP1]], <vscale x 32 x i8> [[VAL]], 0
3172 // CHECK-RV64-NEXT: ret { <vscale x 32 x i8>, <vscale x 32 x i8> } [[TMP2]]
3174 vuint8m4x2_t
test_vset_v_u8m4_u8m4x2(vuint8m4x2_t dest
, size_t index
, vuint8m4_t val
) {
3175 return __riscv_vset(dest
, 0, val
);
3178 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x2
3179 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3180 // CHECK-RV64-NEXT: entry:
3181 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3182 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3183 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[VAL]], 0
3184 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]]
3186 vuint16mf4x2_t
test_vset_v_u16mf4_u16mf4x2(vuint16mf4x2_t dest
, size_t index
, vuint16mf4_t val
) {
3187 return __riscv_vset(dest
, 0, val
);
3190 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x3
3191 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3192 // CHECK-RV64-NEXT: entry:
3193 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3194 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3195 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
3196 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[VAL]], 0
3197 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]]
3199 vuint16mf4x3_t
test_vset_v_u16mf4_u16mf4x3(vuint16mf4x3_t dest
, size_t index
, vuint16mf4_t val
) {
3200 return __riscv_vset(dest
, 0, val
);
3203 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x4
3204 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3205 // CHECK-RV64-NEXT: entry:
3206 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3207 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3208 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
3209 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
3210 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[VAL]], 0
3211 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]]
3213 vuint16mf4x4_t
test_vset_v_u16mf4_u16mf4x4(vuint16mf4x4_t dest
, size_t index
, vuint16mf4_t val
) {
3214 return __riscv_vset(dest
, 0, val
);
3217 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x5
3218 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3219 // CHECK-RV64-NEXT: entry:
3220 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3221 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3222 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
3223 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
3224 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
3225 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[VAL]], 0
3226 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]]
3228 vuint16mf4x5_t
test_vset_v_u16mf4_u16mf4x5(vuint16mf4x5_t dest
, size_t index
, vuint16mf4_t val
) {
3229 return __riscv_vset(dest
, 0, val
);
3232 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x6
3233 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], <vscale x 1 x i16> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3234 // CHECK-RV64-NEXT: entry:
3235 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3236 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3237 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
3238 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
3239 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
3240 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[DEST_COERCE5]], 5
3241 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]], <vscale x 1 x i16> [[VAL]], 0
3242 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP6]]
3244 vuint16mf4x6_t
test_vset_v_u16mf4_u16mf4x6(vuint16mf4x6_t dest
, size_t index
, vuint16mf4_t val
) {
3245 return __riscv_vset(dest
, 0, val
);
3248 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x7
3249 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], <vscale x 1 x i16> [[DEST_COERCE5:%.*]], <vscale x 1 x i16> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3250 // CHECK-RV64-NEXT: entry:
3251 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3252 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3253 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
3254 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
3255 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
3256 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[DEST_COERCE5]], 5
3257 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]], <vscale x 1 x i16> [[DEST_COERCE6]], 6
3258 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP6]], <vscale x 1 x i16> [[VAL]], 0
3259 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP7]]
3261 vuint16mf4x7_t
test_vset_v_u16mf4_u16mf4x7(vuint16mf4x7_t dest
, size_t index
, vuint16mf4_t val
) {
3262 return __riscv_vset(dest
, 0, val
);
3265 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } @test_vset_v_u16mf4_u16mf4x8
3266 // CHECK-RV64-SAME: (<vscale x 1 x i16> [[DEST_COERCE0:%.*]], <vscale x 1 x i16> [[DEST_COERCE1:%.*]], <vscale x 1 x i16> [[DEST_COERCE2:%.*]], <vscale x 1 x i16> [[DEST_COERCE3:%.*]], <vscale x 1 x i16> [[DEST_COERCE4:%.*]], <vscale x 1 x i16> [[DEST_COERCE5:%.*]], <vscale x 1 x i16> [[DEST_COERCE6:%.*]], <vscale x 1 x i16> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3267 // CHECK-RV64-NEXT: entry:
3268 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } poison, <vscale x 1 x i16> [[DEST_COERCE0]], 0
3269 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP0]], <vscale x 1 x i16> [[DEST_COERCE1]], 1
3270 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP1]], <vscale x 1 x i16> [[DEST_COERCE2]], 2
3271 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP2]], <vscale x 1 x i16> [[DEST_COERCE3]], 3
3272 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP3]], <vscale x 1 x i16> [[DEST_COERCE4]], 4
3273 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP4]], <vscale x 1 x i16> [[DEST_COERCE5]], 5
3274 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP5]], <vscale x 1 x i16> [[DEST_COERCE6]], 6
3275 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP6]], <vscale x 1 x i16> [[DEST_COERCE7]], 7
3276 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP7]], <vscale x 1 x i16> [[VAL]], 0
3277 // CHECK-RV64-NEXT: ret { <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i16> } [[TMP8]]
3279 vuint16mf4x8_t
test_vset_v_u16mf4_u16mf4x8(vuint16mf4x8_t dest
, size_t index
, vuint16mf4_t val
) {
3280 return __riscv_vset(dest
, 0, val
);
3283 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x2
3284 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3285 // CHECK-RV64-NEXT: entry:
3286 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3287 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3288 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[VAL]], 0
3289 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]]
3291 vuint16mf2x2_t
test_vset_v_u16mf2_u16mf2x2(vuint16mf2x2_t dest
, size_t index
, vuint16mf2_t val
) {
3292 return __riscv_vset(dest
, 0, val
);
3295 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x3
3296 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3297 // CHECK-RV64-NEXT: entry:
3298 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3299 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3300 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
3301 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[VAL]], 0
3302 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]]
3304 vuint16mf2x3_t
test_vset_v_u16mf2_u16mf2x3(vuint16mf2x3_t dest
, size_t index
, vuint16mf2_t val
) {
3305 return __riscv_vset(dest
, 0, val
);
3308 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x4
3309 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3310 // CHECK-RV64-NEXT: entry:
3311 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3312 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3313 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
3314 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
3315 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[VAL]], 0
3316 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]]
3318 vuint16mf2x4_t
test_vset_v_u16mf2_u16mf2x4(vuint16mf2x4_t dest
, size_t index
, vuint16mf2_t val
) {
3319 return __riscv_vset(dest
, 0, val
);
3322 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x5
3323 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3324 // CHECK-RV64-NEXT: entry:
3325 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3326 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3327 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
3328 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
3329 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
3330 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[VAL]], 0
3331 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]]
3333 vuint16mf2x5_t
test_vset_v_u16mf2_u16mf2x5(vuint16mf2x5_t dest
, size_t index
, vuint16mf2_t val
) {
3334 return __riscv_vset(dest
, 0, val
);
3337 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x6
3338 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], <vscale x 2 x i16> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3339 // CHECK-RV64-NEXT: entry:
3340 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3341 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3342 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
3343 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
3344 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
3345 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[DEST_COERCE5]], 5
3346 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]], <vscale x 2 x i16> [[VAL]], 0
3347 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP6]]
3349 vuint16mf2x6_t
test_vset_v_u16mf2_u16mf2x6(vuint16mf2x6_t dest
, size_t index
, vuint16mf2_t val
) {
3350 return __riscv_vset(dest
, 0, val
);
3353 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x7
3354 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], <vscale x 2 x i16> [[DEST_COERCE5:%.*]], <vscale x 2 x i16> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3355 // CHECK-RV64-NEXT: entry:
3356 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3357 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3358 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
3359 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
3360 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
3361 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[DEST_COERCE5]], 5
3362 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]], <vscale x 2 x i16> [[DEST_COERCE6]], 6
3363 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP6]], <vscale x 2 x i16> [[VAL]], 0
3364 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP7]]
3366 vuint16mf2x7_t
test_vset_v_u16mf2_u16mf2x7(vuint16mf2x7_t dest
, size_t index
, vuint16mf2_t val
) {
3367 return __riscv_vset(dest
, 0, val
);
3370 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } @test_vset_v_u16mf2_u16mf2x8
3371 // CHECK-RV64-SAME: (<vscale x 2 x i16> [[DEST_COERCE0:%.*]], <vscale x 2 x i16> [[DEST_COERCE1:%.*]], <vscale x 2 x i16> [[DEST_COERCE2:%.*]], <vscale x 2 x i16> [[DEST_COERCE3:%.*]], <vscale x 2 x i16> [[DEST_COERCE4:%.*]], <vscale x 2 x i16> [[DEST_COERCE5:%.*]], <vscale x 2 x i16> [[DEST_COERCE6:%.*]], <vscale x 2 x i16> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3372 // CHECK-RV64-NEXT: entry:
3373 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } poison, <vscale x 2 x i16> [[DEST_COERCE0]], 0
3374 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP0]], <vscale x 2 x i16> [[DEST_COERCE1]], 1
3375 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP1]], <vscale x 2 x i16> [[DEST_COERCE2]], 2
3376 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP2]], <vscale x 2 x i16> [[DEST_COERCE3]], 3
3377 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP3]], <vscale x 2 x i16> [[DEST_COERCE4]], 4
3378 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP4]], <vscale x 2 x i16> [[DEST_COERCE5]], 5
3379 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP5]], <vscale x 2 x i16> [[DEST_COERCE6]], 6
3380 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP6]], <vscale x 2 x i16> [[DEST_COERCE7]], 7
3381 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP7]], <vscale x 2 x i16> [[VAL]], 0
3382 // CHECK-RV64-NEXT: ret { <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i16> } [[TMP8]]
3384 vuint16mf2x8_t
test_vset_v_u16mf2_u16mf2x8(vuint16mf2x8_t dest
, size_t index
, vuint16mf2_t val
) {
3385 return __riscv_vset(dest
, 0, val
);
3388 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x2
3389 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3390 // CHECK-RV64-NEXT: entry:
3391 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3392 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3393 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[VAL]], 0
3394 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]]
3396 vuint16m1x2_t
test_vset_v_u16m1_u16m1x2(vuint16m1x2_t dest
, size_t index
, vuint16m1_t val
) {
3397 return __riscv_vset(dest
, 0, val
);
3400 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x3
3401 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3402 // CHECK-RV64-NEXT: entry:
3403 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3404 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3405 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
3406 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[VAL]], 0
3407 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]]
3409 vuint16m1x3_t
test_vset_v_u16m1_u16m1x3(vuint16m1x3_t dest
, size_t index
, vuint16m1_t val
) {
3410 return __riscv_vset(dest
, 0, val
);
3413 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x4
3414 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3415 // CHECK-RV64-NEXT: entry:
3416 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3417 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3418 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
3419 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
3420 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[VAL]], 0
3421 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]]
3423 vuint16m1x4_t
test_vset_v_u16m1_u16m1x4(vuint16m1x4_t dest
, size_t index
, vuint16m1_t val
) {
3424 return __riscv_vset(dest
, 0, val
);
3427 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x5
3428 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3429 // CHECK-RV64-NEXT: entry:
3430 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3431 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3432 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
3433 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
3434 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
3435 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[VAL]], 0
3436 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]]
3438 vuint16m1x5_t
test_vset_v_u16m1_u16m1x5(vuint16m1x5_t dest
, size_t index
, vuint16m1_t val
) {
3439 return __riscv_vset(dest
, 0, val
);
3442 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x6
3443 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], <vscale x 4 x i16> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3444 // CHECK-RV64-NEXT: entry:
3445 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3446 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3447 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
3448 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
3449 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
3450 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[DEST_COERCE5]], 5
3451 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]], <vscale x 4 x i16> [[VAL]], 0
3452 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP6]]
3454 vuint16m1x6_t
test_vset_v_u16m1_u16m1x6(vuint16m1x6_t dest
, size_t index
, vuint16m1_t val
) {
3455 return __riscv_vset(dest
, 0, val
);
3458 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x7
3459 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], <vscale x 4 x i16> [[DEST_COERCE5:%.*]], <vscale x 4 x i16> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3460 // CHECK-RV64-NEXT: entry:
3461 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3462 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3463 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
3464 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
3465 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
3466 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[DEST_COERCE5]], 5
3467 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]], <vscale x 4 x i16> [[DEST_COERCE6]], 6
3468 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP6]], <vscale x 4 x i16> [[VAL]], 0
3469 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP7]]
3471 vuint16m1x7_t
test_vset_v_u16m1_u16m1x7(vuint16m1x7_t dest
, size_t index
, vuint16m1_t val
) {
3472 return __riscv_vset(dest
, 0, val
);
3475 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } @test_vset_v_u16m1_u16m1x8
3476 // CHECK-RV64-SAME: (<vscale x 4 x i16> [[DEST_COERCE0:%.*]], <vscale x 4 x i16> [[DEST_COERCE1:%.*]], <vscale x 4 x i16> [[DEST_COERCE2:%.*]], <vscale x 4 x i16> [[DEST_COERCE3:%.*]], <vscale x 4 x i16> [[DEST_COERCE4:%.*]], <vscale x 4 x i16> [[DEST_COERCE5:%.*]], <vscale x 4 x i16> [[DEST_COERCE6:%.*]], <vscale x 4 x i16> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3477 // CHECK-RV64-NEXT: entry:
3478 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } poison, <vscale x 4 x i16> [[DEST_COERCE0]], 0
3479 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP0]], <vscale x 4 x i16> [[DEST_COERCE1]], 1
3480 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP1]], <vscale x 4 x i16> [[DEST_COERCE2]], 2
3481 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP2]], <vscale x 4 x i16> [[DEST_COERCE3]], 3
3482 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP3]], <vscale x 4 x i16> [[DEST_COERCE4]], 4
3483 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP4]], <vscale x 4 x i16> [[DEST_COERCE5]], 5
3484 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP5]], <vscale x 4 x i16> [[DEST_COERCE6]], 6
3485 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP6]], <vscale x 4 x i16> [[DEST_COERCE7]], 7
3486 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP7]], <vscale x 4 x i16> [[VAL]], 0
3487 // CHECK-RV64-NEXT: ret { <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i16> } [[TMP8]]
3489 vuint16m1x8_t
test_vset_v_u16m1_u16m1x8(vuint16m1x8_t dest
, size_t index
, vuint16m1_t val
) {
3490 return __riscv_vset(dest
, 0, val
);
3493 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i16>, <vscale x 8 x i16> } @test_vset_v_u16m2_u16m2x2
3494 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST_COERCE0:%.*]], <vscale x 8 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3495 // CHECK-RV64-NEXT: entry:
3496 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } poison, <vscale x 8 x i16> [[DEST_COERCE0]], 0
3497 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP0]], <vscale x 8 x i16> [[DEST_COERCE1]], 1
3498 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP1]], <vscale x 8 x i16> [[VAL]], 0
3499 // CHECK-RV64-NEXT: ret { <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP2]]
3501 vuint16m2x2_t
test_vset_v_u16m2_u16m2x2(vuint16m2x2_t dest
, size_t index
, vuint16m2_t val
) {
3502 return __riscv_vset(dest
, 0, val
);
3505 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @test_vset_v_u16m2_u16m2x3
3506 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST_COERCE0:%.*]], <vscale x 8 x i16> [[DEST_COERCE1:%.*]], <vscale x 8 x i16> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3507 // CHECK-RV64-NEXT: entry:
3508 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } poison, <vscale x 8 x i16> [[DEST_COERCE0]], 0
3509 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP0]], <vscale x 8 x i16> [[DEST_COERCE1]], 1
3510 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP1]], <vscale x 8 x i16> [[DEST_COERCE2]], 2
3511 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP2]], <vscale x 8 x i16> [[VAL]], 0
3512 // CHECK-RV64-NEXT: ret { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP3]]
3514 vuint16m2x3_t
test_vset_v_u16m2_u16m2x3(vuint16m2x3_t dest
, size_t index
, vuint16m2_t val
) {
3515 return __riscv_vset(dest
, 0, val
);
3518 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @test_vset_v_u16m2_u16m2x4
3519 // CHECK-RV64-SAME: (<vscale x 8 x i16> [[DEST_COERCE0:%.*]], <vscale x 8 x i16> [[DEST_COERCE1:%.*]], <vscale x 8 x i16> [[DEST_COERCE2:%.*]], <vscale x 8 x i16> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3520 // CHECK-RV64-NEXT: entry:
3521 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } poison, <vscale x 8 x i16> [[DEST_COERCE0]], 0
3522 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP0]], <vscale x 8 x i16> [[DEST_COERCE1]], 1
3523 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP1]], <vscale x 8 x i16> [[DEST_COERCE2]], 2
3524 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP2]], <vscale x 8 x i16> [[DEST_COERCE3]], 3
3525 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP3]], <vscale x 8 x i16> [[VAL]], 0
3526 // CHECK-RV64-NEXT: ret { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } [[TMP4]]
3528 vuint16m2x4_t
test_vset_v_u16m2_u16m2x4(vuint16m2x4_t dest
, size_t index
, vuint16m2_t val
) {
3529 return __riscv_vset(dest
, 0, val
);
3532 // CHECK-RV64-LABEL: define dso_local { <vscale x 16 x i16>, <vscale x 16 x i16> } @test_vset_v_u16m4_u16m4x2
3533 // CHECK-RV64-SAME: (<vscale x 16 x i16> [[DEST_COERCE0:%.*]], <vscale x 16 x i16> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 16 x i16> [[VAL:%.*]]) #[[ATTR0]] {
3534 // CHECK-RV64-NEXT: entry:
3535 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } poison, <vscale x 16 x i16> [[DEST_COERCE0]], 0
3536 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } [[TMP0]], <vscale x 16 x i16> [[DEST_COERCE1]], 1
3537 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } [[TMP1]], <vscale x 16 x i16> [[VAL]], 0
3538 // CHECK-RV64-NEXT: ret { <vscale x 16 x i16>, <vscale x 16 x i16> } [[TMP2]]
3540 vuint16m4x2_t
test_vset_v_u16m4_u16m4x2(vuint16m4x2_t dest
, size_t index
, vuint16m4_t val
) {
3541 return __riscv_vset(dest
, 0, val
);
3544 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x2
3545 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3546 // CHECK-RV64-NEXT: entry:
3547 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3548 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3549 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[VAL]], 0
3550 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]]
3552 vuint32mf2x2_t
test_vset_v_u32mf2_u32mf2x2(vuint32mf2x2_t dest
, size_t index
, vuint32mf2_t val
) {
3553 return __riscv_vset(dest
, 0, val
);
3556 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x3
3557 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3558 // CHECK-RV64-NEXT: entry:
3559 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3560 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3561 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
3562 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[VAL]], 0
3563 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]]
3565 vuint32mf2x3_t
test_vset_v_u32mf2_u32mf2x3(vuint32mf2x3_t dest
, size_t index
, vuint32mf2_t val
) {
3566 return __riscv_vset(dest
, 0, val
);
3569 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x4
3570 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3571 // CHECK-RV64-NEXT: entry:
3572 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3573 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3574 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
3575 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
3576 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[VAL]], 0
3577 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]]
3579 vuint32mf2x4_t
test_vset_v_u32mf2_u32mf2x4(vuint32mf2x4_t dest
, size_t index
, vuint32mf2_t val
) {
3580 return __riscv_vset(dest
, 0, val
);
3583 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x5
3584 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3585 // CHECK-RV64-NEXT: entry:
3586 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3587 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3588 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
3589 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
3590 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
3591 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[VAL]], 0
3592 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]]
3594 vuint32mf2x5_t
test_vset_v_u32mf2_u32mf2x5(vuint32mf2x5_t dest
, size_t index
, vuint32mf2_t val
) {
3595 return __riscv_vset(dest
, 0, val
);
3598 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x6
3599 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], <vscale x 1 x i32> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3600 // CHECK-RV64-NEXT: entry:
3601 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3602 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3603 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
3604 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
3605 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
3606 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[DEST_COERCE5]], 5
3607 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]], <vscale x 1 x i32> [[VAL]], 0
3608 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP6]]
3610 vuint32mf2x6_t
test_vset_v_u32mf2_u32mf2x6(vuint32mf2x6_t dest
, size_t index
, vuint32mf2_t val
) {
3611 return __riscv_vset(dest
, 0, val
);
3614 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x7
3615 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], <vscale x 1 x i32> [[DEST_COERCE5:%.*]], <vscale x 1 x i32> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3616 // CHECK-RV64-NEXT: entry:
3617 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3618 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3619 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
3620 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
3621 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
3622 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[DEST_COERCE5]], 5
3623 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]], <vscale x 1 x i32> [[DEST_COERCE6]], 6
3624 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP6]], <vscale x 1 x i32> [[VAL]], 0
3625 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP7]]
3627 vuint32mf2x7_t
test_vset_v_u32mf2_u32mf2x7(vuint32mf2x7_t dest
, size_t index
, vuint32mf2_t val
) {
3628 return __riscv_vset(dest
, 0, val
);
3631 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } @test_vset_v_u32mf2_u32mf2x8
3632 // CHECK-RV64-SAME: (<vscale x 1 x i32> [[DEST_COERCE0:%.*]], <vscale x 1 x i32> [[DEST_COERCE1:%.*]], <vscale x 1 x i32> [[DEST_COERCE2:%.*]], <vscale x 1 x i32> [[DEST_COERCE3:%.*]], <vscale x 1 x i32> [[DEST_COERCE4:%.*]], <vscale x 1 x i32> [[DEST_COERCE5:%.*]], <vscale x 1 x i32> [[DEST_COERCE6:%.*]], <vscale x 1 x i32> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3633 // CHECK-RV64-NEXT: entry:
3634 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } poison, <vscale x 1 x i32> [[DEST_COERCE0]], 0
3635 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP0]], <vscale x 1 x i32> [[DEST_COERCE1]], 1
3636 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP1]], <vscale x 1 x i32> [[DEST_COERCE2]], 2
3637 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP2]], <vscale x 1 x i32> [[DEST_COERCE3]], 3
3638 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP3]], <vscale x 1 x i32> [[DEST_COERCE4]], 4
3639 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP4]], <vscale x 1 x i32> [[DEST_COERCE5]], 5
3640 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP5]], <vscale x 1 x i32> [[DEST_COERCE6]], 6
3641 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP6]], <vscale x 1 x i32> [[DEST_COERCE7]], 7
3642 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP7]], <vscale x 1 x i32> [[VAL]], 0
3643 // CHECK-RV64-NEXT: ret { <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i32> } [[TMP8]]
3645 vuint32mf2x8_t
test_vset_v_u32mf2_u32mf2x8(vuint32mf2x8_t dest
, size_t index
, vuint32mf2_t val
) {
3646 return __riscv_vset(dest
, 0, val
);
3649 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x2
3650 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3651 // CHECK-RV64-NEXT: entry:
3652 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3653 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3654 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[VAL]], 0
3655 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]]
3657 vuint32m1x2_t
test_vset_v_u32m1_u32m1x2(vuint32m1x2_t dest
, size_t index
, vuint32m1_t val
) {
3658 return __riscv_vset(dest
, 0, val
);
3661 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x3
3662 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3663 // CHECK-RV64-NEXT: entry:
3664 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3665 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3666 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
3667 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[VAL]], 0
3668 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]]
3670 vuint32m1x3_t
test_vset_v_u32m1_u32m1x3(vuint32m1x3_t dest
, size_t index
, vuint32m1_t val
) {
3671 return __riscv_vset(dest
, 0, val
);
3674 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x4
3675 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3676 // CHECK-RV64-NEXT: entry:
3677 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3678 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3679 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
3680 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
3681 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[VAL]], 0
3682 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]]
3684 vuint32m1x4_t
test_vset_v_u32m1_u32m1x4(vuint32m1x4_t dest
, size_t index
, vuint32m1_t val
) {
3685 return __riscv_vset(dest
, 0, val
);
3688 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x5
3689 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3690 // CHECK-RV64-NEXT: entry:
3691 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3692 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3693 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
3694 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
3695 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
3696 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[VAL]], 0
3697 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]]
3699 vuint32m1x5_t
test_vset_v_u32m1_u32m1x5(vuint32m1x5_t dest
, size_t index
, vuint32m1_t val
) {
3700 return __riscv_vset(dest
, 0, val
);
3703 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x6
3704 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], <vscale x 2 x i32> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3705 // CHECK-RV64-NEXT: entry:
3706 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3707 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3708 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
3709 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
3710 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
3711 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[DEST_COERCE5]], 5
3712 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]], <vscale x 2 x i32> [[VAL]], 0
3713 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP6]]
3715 vuint32m1x6_t
test_vset_v_u32m1_u32m1x6(vuint32m1x6_t dest
, size_t index
, vuint32m1_t val
) {
3716 return __riscv_vset(dest
, 0, val
);
3719 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x7
3720 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], <vscale x 2 x i32> [[DEST_COERCE5:%.*]], <vscale x 2 x i32> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3721 // CHECK-RV64-NEXT: entry:
3722 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3723 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3724 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
3725 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
3726 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
3727 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[DEST_COERCE5]], 5
3728 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]], <vscale x 2 x i32> [[DEST_COERCE6]], 6
3729 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP6]], <vscale x 2 x i32> [[VAL]], 0
3730 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP7]]
3732 vuint32m1x7_t
test_vset_v_u32m1_u32m1x7(vuint32m1x7_t dest
, size_t index
, vuint32m1_t val
) {
3733 return __riscv_vset(dest
, 0, val
);
3736 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } @test_vset_v_u32m1_u32m1x8
3737 // CHECK-RV64-SAME: (<vscale x 2 x i32> [[DEST_COERCE0:%.*]], <vscale x 2 x i32> [[DEST_COERCE1:%.*]], <vscale x 2 x i32> [[DEST_COERCE2:%.*]], <vscale x 2 x i32> [[DEST_COERCE3:%.*]], <vscale x 2 x i32> [[DEST_COERCE4:%.*]], <vscale x 2 x i32> [[DEST_COERCE5:%.*]], <vscale x 2 x i32> [[DEST_COERCE6:%.*]], <vscale x 2 x i32> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3738 // CHECK-RV64-NEXT: entry:
3739 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } poison, <vscale x 2 x i32> [[DEST_COERCE0]], 0
3740 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP0]], <vscale x 2 x i32> [[DEST_COERCE1]], 1
3741 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP1]], <vscale x 2 x i32> [[DEST_COERCE2]], 2
3742 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP2]], <vscale x 2 x i32> [[DEST_COERCE3]], 3
3743 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP3]], <vscale x 2 x i32> [[DEST_COERCE4]], 4
3744 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP4]], <vscale x 2 x i32> [[DEST_COERCE5]], 5
3745 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP5]], <vscale x 2 x i32> [[DEST_COERCE6]], 6
3746 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP6]], <vscale x 2 x i32> [[DEST_COERCE7]], 7
3747 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP7]], <vscale x 2 x i32> [[VAL]], 0
3748 // CHECK-RV64-NEXT: ret { <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i32> } [[TMP8]]
3750 vuint32m1x8_t
test_vset_v_u32m1_u32m1x8(vuint32m1x8_t dest
, size_t index
, vuint32m1_t val
) {
3751 return __riscv_vset(dest
, 0, val
);
3754 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i32>, <vscale x 4 x i32> } @test_vset_v_u32m2_u32m2x2
3755 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST_COERCE0:%.*]], <vscale x 4 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3756 // CHECK-RV64-NEXT: entry:
3757 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32> } poison, <vscale x 4 x i32> [[DEST_COERCE0]], 0
3758 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP0]], <vscale x 4 x i32> [[DEST_COERCE1]], 1
3759 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP1]], <vscale x 4 x i32> [[VAL]], 0
3760 // CHECK-RV64-NEXT: ret { <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP2]]
3762 vuint32m2x2_t
test_vset_v_u32m2_u32m2x2(vuint32m2x2_t dest
, size_t index
, vuint32m2_t val
) {
3763 return __riscv_vset(dest
, 0, val
);
3766 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } @test_vset_v_u32m2_u32m2x3
3767 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST_COERCE0:%.*]], <vscale x 4 x i32> [[DEST_COERCE1:%.*]], <vscale x 4 x i32> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3768 // CHECK-RV64-NEXT: entry:
3769 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } poison, <vscale x 4 x i32> [[DEST_COERCE0]], 0
3770 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP0]], <vscale x 4 x i32> [[DEST_COERCE1]], 1
3771 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP1]], <vscale x 4 x i32> [[DEST_COERCE2]], 2
3772 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP2]], <vscale x 4 x i32> [[VAL]], 0
3773 // CHECK-RV64-NEXT: ret { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP3]]
3775 vuint32m2x3_t
test_vset_v_u32m2_u32m2x3(vuint32m2x3_t dest
, size_t index
, vuint32m2_t val
) {
3776 return __riscv_vset(dest
, 0, val
);
3779 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } @test_vset_v_u32m2_u32m2x4
3780 // CHECK-RV64-SAME: (<vscale x 4 x i32> [[DEST_COERCE0:%.*]], <vscale x 4 x i32> [[DEST_COERCE1:%.*]], <vscale x 4 x i32> [[DEST_COERCE2:%.*]], <vscale x 4 x i32> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3781 // CHECK-RV64-NEXT: entry:
3782 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } poison, <vscale x 4 x i32> [[DEST_COERCE0]], 0
3783 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP0]], <vscale x 4 x i32> [[DEST_COERCE1]], 1
3784 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP1]], <vscale x 4 x i32> [[DEST_COERCE2]], 2
3785 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP2]], <vscale x 4 x i32> [[DEST_COERCE3]], 3
3786 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP3]], <vscale x 4 x i32> [[VAL]], 0
3787 // CHECK-RV64-NEXT: ret { <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32> } [[TMP4]]
3789 vuint32m2x4_t
test_vset_v_u32m2_u32m2x4(vuint32m2x4_t dest
, size_t index
, vuint32m2_t val
) {
3790 return __riscv_vset(dest
, 0, val
);
3793 // CHECK-RV64-LABEL: define dso_local { <vscale x 8 x i32>, <vscale x 8 x i32> } @test_vset_v_u32m4_u32m4x2
3794 // CHECK-RV64-SAME: (<vscale x 8 x i32> [[DEST_COERCE0:%.*]], <vscale x 8 x i32> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 8 x i32> [[VAL:%.*]]) #[[ATTR0]] {
3795 // CHECK-RV64-NEXT: entry:
3796 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } poison, <vscale x 8 x i32> [[DEST_COERCE0]], 0
3797 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } [[TMP0]], <vscale x 8 x i32> [[DEST_COERCE1]], 1
3798 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } [[TMP1]], <vscale x 8 x i32> [[VAL]], 0
3799 // CHECK-RV64-NEXT: ret { <vscale x 8 x i32>, <vscale x 8 x i32> } [[TMP2]]
3801 vuint32m4x2_t
test_vset_v_u32m4_u32m4x2(vuint32m4x2_t dest
, size_t index
, vuint32m4_t val
) {
3802 return __riscv_vset(dest
, 0, val
);
3805 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x2
3806 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3807 // CHECK-RV64-NEXT: entry:
3808 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3809 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3810 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[VAL]], 0
3811 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]]
3813 vuint64m1x2_t
test_vset_v_u64m1_u64m1x2(vuint64m1x2_t dest
, size_t index
, vuint64m1_t val
) {
3814 return __riscv_vset(dest
, 0, val
);
3817 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x3
3818 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3819 // CHECK-RV64-NEXT: entry:
3820 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3821 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3822 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
3823 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[VAL]], 0
3824 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]]
3826 vuint64m1x3_t
test_vset_v_u64m1_u64m1x3(vuint64m1x3_t dest
, size_t index
, vuint64m1_t val
) {
3827 return __riscv_vset(dest
, 0, val
);
3830 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x4
3831 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3832 // CHECK-RV64-NEXT: entry:
3833 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3834 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3835 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
3836 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
3837 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[VAL]], 0
3838 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]]
3840 vuint64m1x4_t
test_vset_v_u64m1_u64m1x4(vuint64m1x4_t dest
, size_t index
, vuint64m1_t val
) {
3841 return __riscv_vset(dest
, 0, val
);
3844 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x5
3845 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3846 // CHECK-RV64-NEXT: entry:
3847 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3848 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3849 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
3850 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
3851 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
3852 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[VAL]], 0
3853 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]]
3855 vuint64m1x5_t
test_vset_v_u64m1_u64m1x5(vuint64m1x5_t dest
, size_t index
, vuint64m1_t val
) {
3856 return __riscv_vset(dest
, 0, val
);
3859 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x6
3860 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], <vscale x 1 x i64> [[DEST_COERCE5:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3861 // CHECK-RV64-NEXT: entry:
3862 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3863 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3864 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
3865 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
3866 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
3867 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[DEST_COERCE5]], 5
3868 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]], <vscale x 1 x i64> [[VAL]], 0
3869 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP6]]
3871 vuint64m1x6_t
test_vset_v_u64m1_u64m1x6(vuint64m1x6_t dest
, size_t index
, vuint64m1_t val
) {
3872 return __riscv_vset(dest
, 0, val
);
3875 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x7
3876 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], <vscale x 1 x i64> [[DEST_COERCE5:%.*]], <vscale x 1 x i64> [[DEST_COERCE6:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3877 // CHECK-RV64-NEXT: entry:
3878 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3879 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3880 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
3881 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
3882 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
3883 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[DEST_COERCE5]], 5
3884 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]], <vscale x 1 x i64> [[DEST_COERCE6]], 6
3885 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP6]], <vscale x 1 x i64> [[VAL]], 0
3886 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP7]]
3888 vuint64m1x7_t
test_vset_v_u64m1_u64m1x7(vuint64m1x7_t dest
, size_t index
, vuint64m1_t val
) {
3889 return __riscv_vset(dest
, 0, val
);
3892 // CHECK-RV64-LABEL: define dso_local { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } @test_vset_v_u64m1_u64m1x8
3893 // CHECK-RV64-SAME: (<vscale x 1 x i64> [[DEST_COERCE0:%.*]], <vscale x 1 x i64> [[DEST_COERCE1:%.*]], <vscale x 1 x i64> [[DEST_COERCE2:%.*]], <vscale x 1 x i64> [[DEST_COERCE3:%.*]], <vscale x 1 x i64> [[DEST_COERCE4:%.*]], <vscale x 1 x i64> [[DEST_COERCE5:%.*]], <vscale x 1 x i64> [[DEST_COERCE6:%.*]], <vscale x 1 x i64> [[DEST_COERCE7:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 1 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3894 // CHECK-RV64-NEXT: entry:
3895 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } poison, <vscale x 1 x i64> [[DEST_COERCE0]], 0
3896 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP0]], <vscale x 1 x i64> [[DEST_COERCE1]], 1
3897 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP1]], <vscale x 1 x i64> [[DEST_COERCE2]], 2
3898 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP2]], <vscale x 1 x i64> [[DEST_COERCE3]], 3
3899 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP3]], <vscale x 1 x i64> [[DEST_COERCE4]], 4
3900 // CHECK-RV64-NEXT: [[TMP5:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP4]], <vscale x 1 x i64> [[DEST_COERCE5]], 5
3901 // CHECK-RV64-NEXT: [[TMP6:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP5]], <vscale x 1 x i64> [[DEST_COERCE6]], 6
3902 // CHECK-RV64-NEXT: [[TMP7:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP6]], <vscale x 1 x i64> [[DEST_COERCE7]], 7
3903 // CHECK-RV64-NEXT: [[TMP8:%.*]] = insertvalue { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP7]], <vscale x 1 x i64> [[VAL]], 0
3904 // CHECK-RV64-NEXT: ret { <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64> } [[TMP8]]
3906 vuint64m1x8_t
test_vset_v_u64m1_u64m1x8(vuint64m1x8_t dest
, size_t index
, vuint64m1_t val
) {
3907 return __riscv_vset(dest
, 0, val
);
3910 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i64>, <vscale x 2 x i64> } @test_vset_v_u64m2_u64m2x2
3911 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST_COERCE0:%.*]], <vscale x 2 x i64> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3912 // CHECK-RV64-NEXT: entry:
3913 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64> } poison, <vscale x 2 x i64> [[DEST_COERCE0]], 0
3914 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP0]], <vscale x 2 x i64> [[DEST_COERCE1]], 1
3915 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP1]], <vscale x 2 x i64> [[VAL]], 0
3916 // CHECK-RV64-NEXT: ret { <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP2]]
3918 vuint64m2x2_t
test_vset_v_u64m2_u64m2x2(vuint64m2x2_t dest
, size_t index
, vuint64m2_t val
) {
3919 return __riscv_vset(dest
, 0, val
);
3922 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } @test_vset_v_u64m2_u64m2x3
3923 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST_COERCE0:%.*]], <vscale x 2 x i64> [[DEST_COERCE1:%.*]], <vscale x 2 x i64> [[DEST_COERCE2:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3924 // CHECK-RV64-NEXT: entry:
3925 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } poison, <vscale x 2 x i64> [[DEST_COERCE0]], 0
3926 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP0]], <vscale x 2 x i64> [[DEST_COERCE1]], 1
3927 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP1]], <vscale x 2 x i64> [[DEST_COERCE2]], 2
3928 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP2]], <vscale x 2 x i64> [[VAL]], 0
3929 // CHECK-RV64-NEXT: ret { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP3]]
3931 vuint64m2x3_t
test_vset_v_u64m2_u64m2x3(vuint64m2x3_t dest
, size_t index
, vuint64m2_t val
) {
3932 return __riscv_vset(dest
, 0, val
);
3935 // CHECK-RV64-LABEL: define dso_local { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } @test_vset_v_u64m2_u64m2x4
3936 // CHECK-RV64-SAME: (<vscale x 2 x i64> [[DEST_COERCE0:%.*]], <vscale x 2 x i64> [[DEST_COERCE1:%.*]], <vscale x 2 x i64> [[DEST_COERCE2:%.*]], <vscale x 2 x i64> [[DEST_COERCE3:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 2 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3937 // CHECK-RV64-NEXT: entry:
3938 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } poison, <vscale x 2 x i64> [[DEST_COERCE0]], 0
3939 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP0]], <vscale x 2 x i64> [[DEST_COERCE1]], 1
3940 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP1]], <vscale x 2 x i64> [[DEST_COERCE2]], 2
3941 // CHECK-RV64-NEXT: [[TMP3:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP2]], <vscale x 2 x i64> [[DEST_COERCE3]], 3
3942 // CHECK-RV64-NEXT: [[TMP4:%.*]] = insertvalue { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP3]], <vscale x 2 x i64> [[VAL]], 0
3943 // CHECK-RV64-NEXT: ret { <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64> } [[TMP4]]
3945 vuint64m2x4_t
test_vset_v_u64m2_u64m2x4(vuint64m2x4_t dest
, size_t index
, vuint64m2_t val
) {
3946 return __riscv_vset(dest
, 0, val
);
3949 // CHECK-RV64-LABEL: define dso_local { <vscale x 4 x i64>, <vscale x 4 x i64> } @test_vset_v_u64m4_u64m4x2
3950 // CHECK-RV64-SAME: (<vscale x 4 x i64> [[DEST_COERCE0:%.*]], <vscale x 4 x i64> [[DEST_COERCE1:%.*]], i64 noundef [[INDEX:%.*]], <vscale x 4 x i64> [[VAL:%.*]]) #[[ATTR0]] {
3951 // CHECK-RV64-NEXT: entry:
3952 // CHECK-RV64-NEXT: [[TMP0:%.*]] = insertvalue { <vscale x 4 x i64>, <vscale x 4 x i64> } poison, <vscale x 4 x i64> [[DEST_COERCE0]], 0
3953 // CHECK-RV64-NEXT: [[TMP1:%.*]] = insertvalue { <vscale x 4 x i64>, <vscale x 4 x i64> } [[TMP0]], <vscale x 4 x i64> [[DEST_COERCE1]], 1
3954 // CHECK-RV64-NEXT: [[TMP2:%.*]] = insertvalue { <vscale x 4 x i64>, <vscale x 4 x i64> } [[TMP1]], <vscale x 4 x i64> [[VAL]], 0
3955 // CHECK-RV64-NEXT: ret { <vscale x 4 x i64>, <vscale x 4 x i64> } [[TMP2]]
3957 vuint64m4x2_t
test_vset_v_u64m4_u64m4x2(vuint64m4x2_t dest
, size_t index
, vuint64m4_t val
) {
3958 return __riscv_vset(dest
, 0, val
);