1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2 # RUN: llc -mtriple=riscv32 -mattr=+m,+v -run-pass=regbankselect \
3 # RUN: -simplify-mir -verify-machineinstrs %s \
4 # RUN: -o - | FileCheck %s
7 name: splat_zero_nxv1i8
12 ; CHECK-LABEL: name: splat_zero_nxv1i8
13 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
14 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 1 x s8>) = G_SPLAT_VECTOR [[C]](s32)
15 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s8>)
16 ; CHECK-NEXT: PseudoRET implicit $v8
17 %3:_(s32) = G_CONSTANT i32 0
18 %0:_(<vscale x 1 x s8>) = G_SPLAT_VECTOR %3(s32)
19 $v8 = COPY %0(<vscale x 1 x s8>)
20 PseudoRET implicit $v8
24 name: splat_zero_nxv2i8
26 regBankSelected: false
29 ; CHECK-LABEL: name: splat_zero_nxv2i8
30 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
31 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 2 x s8>) = G_SPLAT_VECTOR [[C]](s32)
32 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s8>)
33 ; CHECK-NEXT: PseudoRET implicit $v8
34 %3:_(s32) = G_CONSTANT i32 0
35 %0:_(<vscale x 2 x s8>) = G_SPLAT_VECTOR %3(s32)
36 $v8 = COPY %0(<vscale x 2 x s8>)
37 PseudoRET implicit $v8
41 name: splat_zero_nxv4i8
43 regBankSelected: false
46 ; CHECK-LABEL: name: splat_zero_nxv4i8
47 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
48 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 4 x s8>) = G_SPLAT_VECTOR [[C]](s32)
49 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s8>)
50 ; CHECK-NEXT: PseudoRET implicit $v8
51 %3:_(s32) = G_CONSTANT i32 0
52 %0:_(<vscale x 4 x s8>) = G_SPLAT_VECTOR %3(s32)
53 $v8 = COPY %0(<vscale x 4 x s8>)
54 PseudoRET implicit $v8
58 name: splat_zero_nxv8i8
60 regBankSelected: false
63 ; CHECK-LABEL: name: splat_zero_nxv8i8
64 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
65 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 8 x s8>) = G_SPLAT_VECTOR [[C]](s32)
66 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s8>)
67 ; CHECK-NEXT: PseudoRET implicit $v8
68 %3:_(s32) = G_CONSTANT i32 0
69 %0:_(<vscale x 8 x s8>) = G_SPLAT_VECTOR %3(s32)
70 $v8 = COPY %0(<vscale x 8 x s8>)
71 PseudoRET implicit $v8
75 name: splat_zero_nxv16i8
77 regBankSelected: false
80 ; CHECK-LABEL: name: splat_zero_nxv16i8
81 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
82 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 16 x s8>) = G_SPLAT_VECTOR [[C]](s32)
83 ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s8>)
84 ; CHECK-NEXT: PseudoRET implicit $v8m2
85 %3:_(s32) = G_CONSTANT i32 0
86 %0:_(<vscale x 16 x s8>) = G_SPLAT_VECTOR %3(s32)
87 $v8m2 = COPY %0(<vscale x 16 x s8>)
88 PseudoRET implicit $v8m2
92 name: splat_zero_nxv32i8
94 regBankSelected: false
97 ; CHECK-LABEL: name: splat_zero_nxv32i8
98 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
99 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 32 x s8>) = G_SPLAT_VECTOR [[C]](s32)
100 ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 32 x s8>)
101 ; CHECK-NEXT: PseudoRET implicit $v8m4
102 %3:_(s32) = G_CONSTANT i32 0
103 %0:_(<vscale x 32 x s8>) = G_SPLAT_VECTOR %3(s32)
104 $v8m4 = COPY %0(<vscale x 32 x s8>)
105 PseudoRET implicit $v8m4
109 name: splat_zero_nxv64i8
111 regBankSelected: false
114 ; CHECK-LABEL: name: splat_zero_nxv64i8
115 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
116 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 64 x s8>) = G_SPLAT_VECTOR [[C]](s32)
117 ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 64 x s8>)
118 ; CHECK-NEXT: PseudoRET implicit $v8m8
119 %3:_(s32) = G_CONSTANT i32 0
120 %0:_(<vscale x 64 x s8>) = G_SPLAT_VECTOR %3(s32)
121 $v8m8 = COPY %0(<vscale x 64 x s8>)
122 PseudoRET implicit $v8m8
126 name: splat_zero_nxv1i16
128 regBankSelected: false
131 ; CHECK-LABEL: name: splat_zero_nxv1i16
132 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
133 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 1 x s16>) = G_SPLAT_VECTOR [[C]](s32)
134 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s16>)
135 ; CHECK-NEXT: PseudoRET implicit $v8
136 %3:_(s32) = G_CONSTANT i32 0
137 %0:_(<vscale x 1 x s16>) = G_SPLAT_VECTOR %3(s32)
138 $v8 = COPY %0(<vscale x 1 x s16>)
139 PseudoRET implicit $v8
143 name: splat_zero_nxv2i16
145 regBankSelected: false
148 ; CHECK-LABEL: name: splat_zero_nxv2i16
149 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
150 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 2 x s16>) = G_SPLAT_VECTOR [[C]](s32)
151 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s16>)
152 ; CHECK-NEXT: PseudoRET implicit $v8
153 %3:_(s32) = G_CONSTANT i32 0
154 %0:_(<vscale x 2 x s16>) = G_SPLAT_VECTOR %3(s32)
155 $v8 = COPY %0(<vscale x 2 x s16>)
156 PseudoRET implicit $v8
160 name: splat_zero_nxv4i16
162 regBankSelected: false
165 ; CHECK-LABEL: name: splat_zero_nxv4i16
166 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
167 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 4 x s16>) = G_SPLAT_VECTOR [[C]](s32)
168 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s16>)
169 ; CHECK-NEXT: PseudoRET implicit $v8
170 %3:_(s32) = G_CONSTANT i32 0
171 %0:_(<vscale x 4 x s16>) = G_SPLAT_VECTOR %3(s32)
172 $v8 = COPY %0(<vscale x 4 x s16>)
173 PseudoRET implicit $v8
177 name: splat_zero_nxv8i16
179 regBankSelected: false
182 ; CHECK-LABEL: name: splat_zero_nxv8i16
183 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
184 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 8 x s16>) = G_SPLAT_VECTOR [[C]](s32)
185 ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s16>)
186 ; CHECK-NEXT: PseudoRET implicit $v8m2
187 %3:_(s32) = G_CONSTANT i32 0
188 %0:_(<vscale x 8 x s16>) = G_SPLAT_VECTOR %3(s32)
189 $v8m2 = COPY %0(<vscale x 8 x s16>)
190 PseudoRET implicit $v8m2
194 name: splat_zero_nxv16i16
196 regBankSelected: false
199 ; CHECK-LABEL: name: splat_zero_nxv16i16
200 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
201 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 16 x s16>) = G_SPLAT_VECTOR [[C]](s32)
202 ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s16>)
203 ; CHECK-NEXT: PseudoRET implicit $v8m4
204 %3:_(s32) = G_CONSTANT i32 0
205 %0:_(<vscale x 16 x s16>) = G_SPLAT_VECTOR %3(s32)
206 $v8m4 = COPY %0(<vscale x 16 x s16>)
207 PseudoRET implicit $v8m4
211 name: splat_zero_nxv32i16
213 regBankSelected: false
216 ; CHECK-LABEL: name: splat_zero_nxv32i16
217 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
218 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 32 x s16>) = G_SPLAT_VECTOR [[C]](s32)
219 ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 32 x s16>)
220 ; CHECK-NEXT: PseudoRET implicit $v8m8
221 %3:_(s32) = G_CONSTANT i32 0
222 %0:_(<vscale x 32 x s16>) = G_SPLAT_VECTOR %3(s32)
223 $v8m8 = COPY %0(<vscale x 32 x s16>)
224 PseudoRET implicit $v8m8
228 name: splat_zero_nxv1i32
230 regBankSelected: false
233 ; CHECK-LABEL: name: splat_zero_nxv1i32
234 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
235 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_SPLAT_VECTOR [[C]](s32)
236 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s32>)
237 ; CHECK-NEXT: PseudoRET implicit $v8
238 %1:_(s32) = G_CONSTANT i32 0
239 %0:_(<vscale x 1 x s32>) = G_SPLAT_VECTOR %1(s32)
240 $v8 = COPY %0(<vscale x 1 x s32>)
241 PseudoRET implicit $v8
245 name: splat_zero_nxv2i32
247 regBankSelected: false
250 ; CHECK-LABEL: name: splat_zero_nxv2i32
251 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
252 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_SPLAT_VECTOR [[C]](s32)
253 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s32>)
254 ; CHECK-NEXT: PseudoRET implicit $v8
255 %1:_(s32) = G_CONSTANT i32 0
256 %0:_(<vscale x 2 x s32>) = G_SPLAT_VECTOR %1(s32)
257 $v8 = COPY %0(<vscale x 2 x s32>)
258 PseudoRET implicit $v8
262 name: splat_zero_nxv4i32
264 regBankSelected: false
267 ; CHECK-LABEL: name: splat_zero_nxv4i32
268 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
269 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_SPLAT_VECTOR [[C]](s32)
270 ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s32>)
271 ; CHECK-NEXT: PseudoRET implicit $v8m2
272 %1:_(s32) = G_CONSTANT i32 0
273 %0:_(<vscale x 4 x s32>) = G_SPLAT_VECTOR %1(s32)
274 $v8m2 = COPY %0(<vscale x 4 x s32>)
275 PseudoRET implicit $v8m2
279 name: splat_zero_nxv8i32
281 regBankSelected: false
284 ; CHECK-LABEL: name: splat_zero_nxv8i32
285 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
286 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_SPLAT_VECTOR [[C]](s32)
287 ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s32>)
288 ; CHECK-NEXT: PseudoRET implicit $v8m4
289 %1:_(s32) = G_CONSTANT i32 0
290 %0:_(<vscale x 8 x s32>) = G_SPLAT_VECTOR %1(s32)
291 $v8m4 = COPY %0(<vscale x 8 x s32>)
292 PseudoRET implicit $v8m4
296 name: splat_zero_nxv16i32
298 regBankSelected: false
301 ; CHECK-LABEL: name: splat_zero_nxv16i32
302 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
303 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_SPLAT_VECTOR [[C]](s32)
304 ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s32>)
305 ; CHECK-NEXT: PseudoRET implicit $v8m8
306 %1:_(s32) = G_CONSTANT i32 0
307 %0:_(<vscale x 16 x s32>) = G_SPLAT_VECTOR %1(s32)
308 $v8m8 = COPY %0(<vscale x 16 x s32>)
309 PseudoRET implicit $v8m8
313 name: splat_zero_nxv1i64
315 regBankSelected: false
318 ; CHECK-LABEL: name: splat_zero_nxv1i64
319 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
320 ; CHECK-NEXT: [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
321 ; CHECK-NEXT: [[MV:%[0-9]+]]:fprb(s64) = G_MERGE_VALUES [[C]](s32), [[C1]](s32)
322 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_SPLAT_VECTOR [[MV]](s64)
323 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s64>)
324 ; CHECK-NEXT: PseudoRET implicit $v8
325 %2:_(s32) = G_CONSTANT i32 0
326 %3:_(s32) = G_CONSTANT i32 0
327 %1:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
328 %0:_(<vscale x 1 x s64>) = G_SPLAT_VECTOR %1(s64)
329 $v8 = COPY %0(<vscale x 1 x s64>)
330 PseudoRET implicit $v8
334 name: splat_zero_nxv2i64
336 regBankSelected: false
339 ; CHECK-LABEL: name: splat_zero_nxv2i64
340 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
341 ; CHECK-NEXT: [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
342 ; CHECK-NEXT: [[MV:%[0-9]+]]:fprb(s64) = G_MERGE_VALUES [[C]](s32), [[C1]](s32)
343 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_SPLAT_VECTOR [[MV]](s64)
344 ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s64>)
345 ; CHECK-NEXT: PseudoRET implicit $v8m2
346 %2:_(s32) = G_CONSTANT i32 0
347 %3:_(s32) = G_CONSTANT i32 0
348 %1:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
349 %0:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %1(s64)
350 $v8m2 = COPY %0(<vscale x 2 x s64>)
351 PseudoRET implicit $v8m2
355 name: splat_zero_nxv4i64
357 regBankSelected: false
360 ; CHECK-LABEL: name: splat_zero_nxv4i64
361 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
362 ; CHECK-NEXT: [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
363 ; CHECK-NEXT: [[MV:%[0-9]+]]:fprb(s64) = G_MERGE_VALUES [[C]](s32), [[C1]](s32)
364 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_SPLAT_VECTOR [[MV]](s64)
365 ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s64>)
366 ; CHECK-NEXT: PseudoRET implicit $v8m4
367 %2:_(s32) = G_CONSTANT i32 0
368 %3:_(s32) = G_CONSTANT i32 0
369 %1:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
370 %0:_(<vscale x 4 x s64>) = G_SPLAT_VECTOR %1(s64)
371 $v8m4 = COPY %0(<vscale x 4 x s64>)
372 PseudoRET implicit $v8m4
376 name: splat_zero_nxv8i64
378 regBankSelected: false
381 ; CHECK-LABEL: name: splat_zero_nxv8i64
382 ; CHECK: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
383 ; CHECK-NEXT: [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
384 ; CHECK-NEXT: [[MV:%[0-9]+]]:fprb(s64) = G_MERGE_VALUES [[C]](s32), [[C1]](s32)
385 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_SPLAT_VECTOR [[MV]](s64)
386 ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s64>)
387 ; CHECK-NEXT: PseudoRET implicit $v8m8
388 %2:_(s32) = G_CONSTANT i32 0
389 %3:_(s32) = G_CONSTANT i32 0
390 %1:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
391 %0:_(<vscale x 8 x s64>) = G_SPLAT_VECTOR %1(s64)
392 $v8m8 = COPY %0(<vscale x 8 x s64>)
393 PseudoRET implicit $v8m8
398 name: splat_zero_nxv1f32
400 regBankSelected: false
403 ; CHECK-LABEL: name: splat_zero_nxv1f32
404 ; CHECK: [[C:%[0-9]+]]:fprb(s32) = G_FCONSTANT float 0.000000e+00
405 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_SPLAT_VECTOR [[C]](s32)
406 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s32>)
407 ; CHECK-NEXT: PseudoRET implicit $v8
408 %1:_(s32) = G_FCONSTANT float 0.000000e+00
409 %0:_(<vscale x 1 x s32>) = G_SPLAT_VECTOR %1(s32)
410 $v8 = COPY %0(<vscale x 1 x s32>)
411 PseudoRET implicit $v8
415 name: splat_zero_nxv2f32
417 regBankSelected: false
420 ; CHECK-LABEL: name: splat_zero_nxv2f32
421 ; CHECK: [[C:%[0-9]+]]:fprb(s32) = G_FCONSTANT float 0.000000e+00
422 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_SPLAT_VECTOR [[C]](s32)
423 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s32>)
424 ; CHECK-NEXT: PseudoRET implicit $v8
425 %1:_(s32) = G_FCONSTANT float 0.000000e+00
426 %0:_(<vscale x 2 x s32>) = G_SPLAT_VECTOR %1(s32)
427 $v8 = COPY %0(<vscale x 2 x s32>)
428 PseudoRET implicit $v8
432 name: splat_zero_nxv4f32
434 regBankSelected: false
437 ; CHECK-LABEL: name: splat_zero_nxv4f32
438 ; CHECK: [[C:%[0-9]+]]:fprb(s32) = G_FCONSTANT float 0.000000e+00
439 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_SPLAT_VECTOR [[C]](s32)
440 ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s32>)
441 ; CHECK-NEXT: PseudoRET implicit $v8m2
442 %1:_(s32) = G_FCONSTANT float 0.000000e+00
443 %0:_(<vscale x 4 x s32>) = G_SPLAT_VECTOR %1(s32)
444 $v8m2 = COPY %0(<vscale x 4 x s32>)
445 PseudoRET implicit $v8m2
449 name: splat_zero_nxv8f32
451 regBankSelected: false
454 ; CHECK-LABEL: name: splat_zero_nxv8f32
455 ; CHECK: [[C:%[0-9]+]]:fprb(s32) = G_FCONSTANT float 0.000000e+00
456 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_SPLAT_VECTOR [[C]](s32)
457 ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s32>)
458 ; CHECK-NEXT: PseudoRET implicit $v8m4
459 %1:_(s32) = G_FCONSTANT float 0.000000e+00
460 %0:_(<vscale x 8 x s32>) = G_SPLAT_VECTOR %1(s32)
461 $v8m4 = COPY %0(<vscale x 8 x s32>)
462 PseudoRET implicit $v8m4
466 name: splat_zero_nxv16f32
468 regBankSelected: false
471 ; CHECK-LABEL: name: splat_zero_nxv16f32
472 ; CHECK: [[C:%[0-9]+]]:fprb(s32) = G_FCONSTANT float 0.000000e+00
473 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_SPLAT_VECTOR [[C]](s32)
474 ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s32>)
475 ; CHECK-NEXT: PseudoRET implicit $v8m8
476 %1:_(s32) = G_FCONSTANT float 0.000000e+00
477 %0:_(<vscale x 16 x s32>) = G_SPLAT_VECTOR %1(s32)
478 $v8m8 = COPY %0(<vscale x 16 x s32>)
479 PseudoRET implicit $v8m8
483 name: splat_zero_nxv1f64
485 regBankSelected: false
488 ; CHECK-LABEL: name: splat_zero_nxv1f64
489 ; CHECK: [[C:%[0-9]+]]:fprb(s64) = G_FCONSTANT double 0.000000e+00
490 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_SPLAT_VECTOR [[C]](s64)
491 ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s64>)
492 ; CHECK-NEXT: PseudoRET implicit $v8
493 %1:_(s64) = G_FCONSTANT double 0.000000e+00
494 %0:_(<vscale x 1 x s64>) = G_SPLAT_VECTOR %1(s64)
495 $v8 = COPY %0(<vscale x 1 x s64>)
496 PseudoRET implicit $v8
500 name: splat_zero_nxv2f64
502 regBankSelected: false
505 ; CHECK-LABEL: name: splat_zero_nxv2f64
506 ; CHECK: [[C:%[0-9]+]]:fprb(s64) = G_FCONSTANT double 0.000000e+00
507 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_SPLAT_VECTOR [[C]](s64)
508 ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s64>)
509 ; CHECK-NEXT: PseudoRET implicit $v8m2
510 %1:_(s64) = G_FCONSTANT double 0.000000e+00
511 %0:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %1(s64)
512 $v8m2 = COPY %0(<vscale x 2 x s64>)
513 PseudoRET implicit $v8m2
517 name: splat_zero_nxv4f64
519 regBankSelected: false
522 ; CHECK-LABEL: name: splat_zero_nxv4f64
523 ; CHECK: [[C:%[0-9]+]]:fprb(s64) = G_FCONSTANT double 0.000000e+00
524 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_SPLAT_VECTOR [[C]](s64)
525 ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s64>)
526 ; CHECK-NEXT: PseudoRET implicit $v8m4
527 %1:_(s64) = G_FCONSTANT double 0.000000e+00
528 %0:_(<vscale x 4 x s64>) = G_SPLAT_VECTOR %1(s64)
529 $v8m4 = COPY %0(<vscale x 4 x s64>)
530 PseudoRET implicit $v8m4
534 name: splat_zero_nxv8f64
536 regBankSelected: false
539 ; CHECK-LABEL: name: splat_zero_nxv8f64
540 ; CHECK: [[C:%[0-9]+]]:fprb(s64) = G_FCONSTANT double 0.000000e+00
541 ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_SPLAT_VECTOR [[C]](s64)
542 ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s64>)
543 ; CHECK-NEXT: PseudoRET implicit $v8m8
544 %1:_(s64) = G_FCONSTANT double 0.000000e+00
545 %0:_(<vscale x 8 x s64>) = G_SPLAT_VECTOR %1(s64)
546 $v8m8 = COPY %0(<vscale x 8 x s64>)
547 PseudoRET implicit $v8m8