[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / regbankselect / rvv / implicit-def.mir
blobd3fb51cf91e3a18226bae6d9f8c0382821fc4106
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+m,+v -run-pass=regbankselect \
3 # RUN:   -simplify-mir -verify-machineinstrs %s \
4 # RUN:   -o - | FileCheck -check-prefix=RV32I %s
5 # RUN: llc -mtriple=riscv64 -mattr=+m,+v -run-pass=regbankselect \
6 # RUN:   -simplify-mir -verify-machineinstrs %s \
7 # RUN:   -o - | FileCheck -check-prefix=RV64I %s
8 ---
9 name:            implicitdef_nxv1i8
10 legalized:       true
11 tracksRegLiveness: true
12 body:             |
13   bb.0.entry:
14     ; RV32I-LABEL: name: implicitdef_nxv1i8
15     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s8>) = G_IMPLICIT_DEF
16     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s8>)
17     ; RV32I-NEXT: PseudoRET implicit $v8
18     ;
19     ; RV64I-LABEL: name: implicitdef_nxv1i8
20     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s8>) = G_IMPLICIT_DEF
21     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s8>)
22     ; RV64I-NEXT: PseudoRET implicit $v8
23     %0:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF
24     $v8 = COPY %0(<vscale x 1 x s8>)
25     PseudoRET implicit $v8
26 ...
27 ---
28 name:            implicitdef_nxv2i8
29 legalized:       true
30 tracksRegLiveness: true
31 body:             |
32   bb.0.entry:
33     ; RV32I-LABEL: name: implicitdef_nxv2i8
34     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s8>) = G_IMPLICIT_DEF
35     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s8>)
36     ; RV32I-NEXT: PseudoRET implicit $v8
37     ;
38     ; RV64I-LABEL: name: implicitdef_nxv2i8
39     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s8>) = G_IMPLICIT_DEF
40     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s8>)
41     ; RV64I-NEXT: PseudoRET implicit $v8
42     %0:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF
43     $v8 = COPY %0(<vscale x 2 x s8>)
44     PseudoRET implicit $v8
45 ...
46 ---
47 name:            implicitdef_nxv4i8
48 legalized:       true
49 tracksRegLiveness: true
50 body:             |
51   bb.0.entry:
52     ; RV32I-LABEL: name: implicitdef_nxv4i8
53     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s8>) = G_IMPLICIT_DEF
54     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s8>)
55     ; RV32I-NEXT: PseudoRET implicit $v8
56     ;
57     ; RV64I-LABEL: name: implicitdef_nxv4i8
58     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s8>) = G_IMPLICIT_DEF
59     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s8>)
60     ; RV64I-NEXT: PseudoRET implicit $v8
61     %0:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF
62     $v8 = COPY %0(<vscale x 4 x s8>)
63     PseudoRET implicit $v8
64 ...
65 ---
66 name:            implicitdef_nxv8i8
67 legalized:       true
68 tracksRegLiveness: true
69 body:             |
70   bb.0.entry:
71     ; RV32I-LABEL: name: implicitdef_nxv8i8
72     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s8>) = G_IMPLICIT_DEF
73     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 8 x s8>)
74     ; RV32I-NEXT: PseudoRET implicit $v8
75     ;
76     ; RV64I-LABEL: name: implicitdef_nxv8i8
77     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s8>) = G_IMPLICIT_DEF
78     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 8 x s8>)
79     ; RV64I-NEXT: PseudoRET implicit $v8
80     %0:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF
81     $v8 = COPY %0(<vscale x 8 x s8>)
82     PseudoRET implicit $v8
83 ...
84 ---
85 name:            implicitdef_nxv16i8
86 legalized:       true
87 tracksRegLiveness: true
88 body:             |
89   bb.0.entry:
90     ; RV32I-LABEL: name: implicitdef_nxv16i8
91     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s8>) = G_IMPLICIT_DEF
92     ; RV32I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 16 x s8>)
93     ; RV32I-NEXT: PseudoRET implicit $v8m2
94     ;
95     ; RV64I-LABEL: name: implicitdef_nxv16i8
96     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s8>) = G_IMPLICIT_DEF
97     ; RV64I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 16 x s8>)
98     ; RV64I-NEXT: PseudoRET implicit $v8m2
99     %0:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF
100     $v8m2 = COPY %0(<vscale x 16 x s8>)
101     PseudoRET implicit $v8m2
104 name:            implicitdef_nxv32i8
105 legalized:       true
106 tracksRegLiveness: true
107 body:             |
108   bb.0.entry:
109     ; RV32I-LABEL: name: implicitdef_nxv32i8
110     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 32 x s8>) = G_IMPLICIT_DEF
111     ; RV32I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 32 x s8>)
112     ; RV32I-NEXT: PseudoRET implicit $v8m4
113     ;
114     ; RV64I-LABEL: name: implicitdef_nxv32i8
115     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 32 x s8>) = G_IMPLICIT_DEF
116     ; RV64I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 32 x s8>)
117     ; RV64I-NEXT: PseudoRET implicit $v8m4
118     %0:_(<vscale x 32 x s8>) = G_IMPLICIT_DEF
119     $v8m4 = COPY %0(<vscale x 32 x s8>)
120     PseudoRET implicit $v8m4
123 name:            implicitdef_nxv64i8
124 legalized:       true
125 tracksRegLiveness: true
126 body:             |
127   bb.0.entry:
128     ; RV32I-LABEL: name: implicitdef_nxv64i8
129     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 64 x s8>) = G_IMPLICIT_DEF
130     ; RV32I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 64 x s8>)
131     ; RV32I-NEXT: PseudoRET implicit $v8m8
132     ;
133     ; RV64I-LABEL: name: implicitdef_nxv64i8
134     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 64 x s8>) = G_IMPLICIT_DEF
135     ; RV64I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 64 x s8>)
136     ; RV64I-NEXT: PseudoRET implicit $v8m8
137     %0:_(<vscale x 64 x s8>) = G_IMPLICIT_DEF
138     $v8m8 = COPY %0(<vscale x 64 x s8>)
139     PseudoRET implicit $v8m8
142 name:            implicitdef_nxv1i16
143 legalized:       true
144 tracksRegLiveness: true
145 body:             |
146   bb.0.entry:
147     ; RV32I-LABEL: name: implicitdef_nxv1i16
148     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s16>) = G_IMPLICIT_DEF
149     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s16>)
150     ; RV32I-NEXT: PseudoRET implicit $v8
151     ;
152     ; RV64I-LABEL: name: implicitdef_nxv1i16
153     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s16>) = G_IMPLICIT_DEF
154     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s16>)
155     ; RV64I-NEXT: PseudoRET implicit $v8
156     %0:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF
157     $v8 = COPY %0(<vscale x 1 x s16>)
158     PseudoRET implicit $v8
161 name:            implicitdef_nxv2i16
162 legalized:       true
163 tracksRegLiveness: true
164 body:             |
165   bb.0.entry:
166     ; RV32I-LABEL: name: implicitdef_nxv2i16
167     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s16>) = G_IMPLICIT_DEF
168     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s16>)
169     ; RV32I-NEXT: PseudoRET implicit $v8
170     ;
171     ; RV64I-LABEL: name: implicitdef_nxv2i16
172     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s16>) = G_IMPLICIT_DEF
173     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s16>)
174     ; RV64I-NEXT: PseudoRET implicit $v8
175     %0:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF
176     $v8 = COPY %0(<vscale x 2 x s16>)
177     PseudoRET implicit $v8
180 name:            implicitdef_nxv4i16
181 legalized:       true
182 tracksRegLiveness: true
183 body:             |
184   bb.0.entry:
185     ; RV32I-LABEL: name: implicitdef_nxv4i16
186     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s16>) = G_IMPLICIT_DEF
187     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s16>)
188     ; RV32I-NEXT: PseudoRET implicit $v8
189     ;
190     ; RV64I-LABEL: name: implicitdef_nxv4i16
191     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s16>) = G_IMPLICIT_DEF
192     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s16>)
193     ; RV64I-NEXT: PseudoRET implicit $v8
194     %0:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF
195     $v8 = COPY %0(<vscale x 4 x s16>)
196     PseudoRET implicit $v8
199 name:            implicitdef_nxv8i16
200 legalized:       true
201 tracksRegLiveness: true
202 body:             |
203   bb.0.entry:
204     ; RV32I-LABEL: name: implicitdef_nxv8i16
205     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s16>) = G_IMPLICIT_DEF
206     ; RV32I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 8 x s16>)
207     ; RV32I-NEXT: PseudoRET implicit $v8m2
208     ;
209     ; RV64I-LABEL: name: implicitdef_nxv8i16
210     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s16>) = G_IMPLICIT_DEF
211     ; RV64I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 8 x s16>)
212     ; RV64I-NEXT: PseudoRET implicit $v8m2
213     %0:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF
214     $v8m2 = COPY %0(<vscale x 8 x s16>)
215     PseudoRET implicit $v8m2
218 name:            implicitdef_nxv16i16
219 legalized:       true
220 tracksRegLiveness: true
221 body:             |
222   bb.0.entry:
223     ; RV32I-LABEL: name: implicitdef_nxv16i16
224     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s16>) = G_IMPLICIT_DEF
225     ; RV32I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 16 x s16>)
226     ; RV32I-NEXT: PseudoRET implicit $v8m4
227     ;
228     ; RV64I-LABEL: name: implicitdef_nxv16i16
229     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s16>) = G_IMPLICIT_DEF
230     ; RV64I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 16 x s16>)
231     ; RV64I-NEXT: PseudoRET implicit $v8m4
232     %0:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF
233     $v8m4 = COPY %0(<vscale x 16 x s16>)
234     PseudoRET implicit $v8m4
237 name:            implicitdef_nxv32i16
238 legalized:       true
239 tracksRegLiveness: true
240 body:             |
241   bb.0.entry:
242     ; RV32I-LABEL: name: implicitdef_nxv32i16
243     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 32 x s16>) = G_IMPLICIT_DEF
244     ; RV32I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 32 x s16>)
245     ; RV32I-NEXT: PseudoRET implicit $v8m8
246     ;
247     ; RV64I-LABEL: name: implicitdef_nxv32i16
248     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 32 x s16>) = G_IMPLICIT_DEF
249     ; RV64I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 32 x s16>)
250     ; RV64I-NEXT: PseudoRET implicit $v8m8
251     %0:_(<vscale x 32 x s16>) = G_IMPLICIT_DEF
252     $v8m8 = COPY %0(<vscale x 32 x s16>)
253     PseudoRET implicit $v8m8
256 name:            implicitdef_nxv1i32
257 legalized:       true
258 tracksRegLiveness: true
259 body:             |
260   bb.0.entry:
261     ; RV32I-LABEL: name: implicitdef_nxv1i32
262     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_IMPLICIT_DEF
263     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s32>)
264     ; RV32I-NEXT: PseudoRET implicit $v8
265     ;
266     ; RV64I-LABEL: name: implicitdef_nxv1i32
267     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_IMPLICIT_DEF
268     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s32>)
269     ; RV64I-NEXT: PseudoRET implicit $v8
270     %0:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF
271     $v8 = COPY %0(<vscale x 1 x s32>)
272     PseudoRET implicit $v8
275 name:            implicitdef_nxv2i32
276 legalized:       true
277 tracksRegLiveness: true
278 body:             |
279   bb.0.entry:
280     ; RV32I-LABEL: name: implicitdef_nxv2i32
281     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_IMPLICIT_DEF
282     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s32>)
283     ; RV32I-NEXT: PseudoRET implicit $v8
284     ;
285     ; RV64I-LABEL: name: implicitdef_nxv2i32
286     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_IMPLICIT_DEF
287     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s32>)
288     ; RV64I-NEXT: PseudoRET implicit $v8
289     %0:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF
290     $v8 = COPY %0(<vscale x 2 x s32>)
291     PseudoRET implicit $v8
294 name:            implicitdef_nxv4i32
295 legalized:       true
296 tracksRegLiveness: true
297 body:             |
298   bb.0.entry:
299     ; RV32I-LABEL: name: implicitdef_nxv4i32
300     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_IMPLICIT_DEF
301     ; RV32I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 4 x s32>)
302     ; RV32I-NEXT: PseudoRET implicit $v8m2
303     ;
304     ; RV64I-LABEL: name: implicitdef_nxv4i32
305     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_IMPLICIT_DEF
306     ; RV64I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 4 x s32>)
307     ; RV64I-NEXT: PseudoRET implicit $v8m2
308     %0:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF
309     $v8m2 = COPY %0(<vscale x 4 x s32>)
310     PseudoRET implicit $v8m2
313 name:            implicitdef_nxv8i32
314 legalized:       true
315 tracksRegLiveness: true
316 body:             |
317   bb.0.entry:
318     ; RV32I-LABEL: name: implicitdef_nxv8i32
319     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_IMPLICIT_DEF
320     ; RV32I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 8 x s32>)
321     ; RV32I-NEXT: PseudoRET implicit $v8m4
322     ;
323     ; RV64I-LABEL: name: implicitdef_nxv8i32
324     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_IMPLICIT_DEF
325     ; RV64I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 8 x s32>)
326     ; RV64I-NEXT: PseudoRET implicit $v8m4
327     %0:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF
328     $v8m4 = COPY %0(<vscale x 8 x s32>)
329     PseudoRET implicit $v8m4
332 name:            implicitdef_nxv16i32
333 legalized:       true
334 tracksRegLiveness: true
335 body:             |
336   bb.0.entry:
337     ; RV32I-LABEL: name: implicitdef_nxv16i32
338     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_IMPLICIT_DEF
339     ; RV32I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 16 x s32>)
340     ; RV32I-NEXT: PseudoRET implicit $v8m8
341     ;
342     ; RV64I-LABEL: name: implicitdef_nxv16i32
343     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_IMPLICIT_DEF
344     ; RV64I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 16 x s32>)
345     ; RV64I-NEXT: PseudoRET implicit $v8m8
346     %0:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF
347     $v8m8 = COPY %0(<vscale x 16 x s32>)
348     PseudoRET implicit $v8m8
351 name:            implicitdef_nxv1i64
352 legalized:       true
353 tracksRegLiveness: true
354 body:             |
355   bb.0.entry:
356     ; RV32I-LABEL: name: implicitdef_nxv1i64
357     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_IMPLICIT_DEF
358     ; RV32I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s64>)
359     ; RV32I-NEXT: PseudoRET implicit $v8
360     ;
361     ; RV64I-LABEL: name: implicitdef_nxv1i64
362     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_IMPLICIT_DEF
363     ; RV64I-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s64>)
364     ; RV64I-NEXT: PseudoRET implicit $v8
365     %0:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF
366     $v8 = COPY %0(<vscale x 1 x s64>)
367     PseudoRET implicit $v8
370 name:            implicitdef_nxv2i64
371 legalized:       true
372 tracksRegLiveness: true
373 body:             |
374   bb.0.entry:
375     ; RV32I-LABEL: name: implicitdef_nxv2i64
376     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_IMPLICIT_DEF
377     ; RV32I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 2 x s64>)
378     ; RV32I-NEXT: PseudoRET implicit $v8m2
379     ;
380     ; RV64I-LABEL: name: implicitdef_nxv2i64
381     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_IMPLICIT_DEF
382     ; RV64I-NEXT: $v8m2 = COPY [[DEF]](<vscale x 2 x s64>)
383     ; RV64I-NEXT: PseudoRET implicit $v8m2
384     %0:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF
385     $v8m2 = COPY %0(<vscale x 2 x s64>)
386     PseudoRET implicit $v8m2
389 name:            implicitdef_nxv4i64
390 legalized:       true
391 tracksRegLiveness: true
392 body:             |
393   bb.0.entry:
394     ; RV32I-LABEL: name: implicitdef_nxv4i64
395     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_IMPLICIT_DEF
396     ; RV32I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 4 x s64>)
397     ; RV32I-NEXT: PseudoRET implicit $v8m4
398     ;
399     ; RV64I-LABEL: name: implicitdef_nxv4i64
400     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_IMPLICIT_DEF
401     ; RV64I-NEXT: $v8m4 = COPY [[DEF]](<vscale x 4 x s64>)
402     ; RV64I-NEXT: PseudoRET implicit $v8m4
403     %0:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF
404     $v8m4 = COPY %0(<vscale x 4 x s64>)
405     PseudoRET implicit $v8m4
408 name:            implicitdef_nxv8i64
409 legalized:       true
410 tracksRegLiveness: true
411 body:             |
412   bb.0.entry:
413     ; RV32I-LABEL: name: implicitdef_nxv8i64
414     ; RV32I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_IMPLICIT_DEF
415     ; RV32I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 8 x s64>)
416     ; RV32I-NEXT: PseudoRET implicit $v8m8
417     ;
418     ; RV64I-LABEL: name: implicitdef_nxv8i64
419     ; RV64I: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_IMPLICIT_DEF
420     ; RV64I-NEXT: $v8m8 = COPY [[DEF]](<vscale x 8 x s64>)
421     ; RV64I-NEXT: PseudoRET implicit $v8m8
422     %0:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF
423     $v8m8 = COPY %0(<vscale x 8 x s64>)
424     PseudoRET implicit $v8m8