[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / legalizer / rvv / legalize-select.mir
blob6e1d4aa4d7d6f57f0c7fd5a79e0242734d4f5660
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s
3 # RUN: llc -mtriple=riscv64 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s
5 ---
6 name:            select_nxv1i8
7 legalized:       false
8 tracksRegLiveness: true
9 body:             |
10   bb.0.entry:
11     ; CHECK-LABEL: name: select_nxv1i8
12     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
13     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF
14     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 1 x s8>) = G_SELECT [[DEF]](<vscale x 1 x s1>), [[DEF1]], [[DEF1]]
15     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 1 x s8>)
16     ; CHECK-NEXT: PseudoRET implicit $v8
17     %1:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
18     %2:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF
19     %0:_(<vscale x 1 x s8>) = G_SELECT %1(<vscale x 1 x s1>), %2(<vscale x 1 x s8>), %2(<vscale x 1 x s8>)
20     $v8 = COPY %0(<vscale x 1 x s8>)
21     PseudoRET implicit $v8
22 ...
23 ---
24 name:            select_nxv2i8
25 legalized:       false
26 tracksRegLiveness: true
27 body:             |
28   bb.0.entry:
29     ; CHECK-LABEL: name: select_nxv2i8
30     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
31     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF
32     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 2 x s8>) = G_SELECT [[DEF]](<vscale x 2 x s1>), [[DEF1]], [[DEF1]]
33     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 2 x s8>)
34     ; CHECK-NEXT: PseudoRET implicit $v8
35     %1:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
36     %2:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF
37     %0:_(<vscale x 2 x s8>) = G_SELECT %1(<vscale x 2 x s1>), %2(<vscale x 2 x s8>), %2(<vscale x 2 x s8>)
38     $v8 = COPY %0(<vscale x 2 x s8>)
39     PseudoRET implicit $v8
40 ...
41 ---
42 name:            select_nxv4i8
43 legalized:       false
44 tracksRegLiveness: true
45 body:             |
46   bb.0.entry:
47     ; CHECK-LABEL: name: select_nxv4i8
48     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
49     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF
50     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 4 x s8>) = G_SELECT [[DEF]](<vscale x 4 x s1>), [[DEF1]], [[DEF1]]
51     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 4 x s8>)
52     ; CHECK-NEXT: PseudoRET implicit $v8
53     %1:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
54     %2:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF
55     %0:_(<vscale x 4 x s8>) = G_SELECT %1(<vscale x 4 x s1>), %2(<vscale x 4 x s8>), %2(<vscale x 4 x s8>)
56     $v8 = COPY %0(<vscale x 4 x s8>)
57     PseudoRET implicit $v8
58 ...
59 ---
60 name:            select_nxv8i8
61 legalized:       false
62 tracksRegLiveness: true
63 body:             |
64   bb.0.entry:
65     ; CHECK-LABEL: name: select_nxv8i8
66     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
67     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF
68     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 8 x s8>) = G_SELECT [[DEF]](<vscale x 8 x s1>), [[DEF1]], [[DEF1]]
69     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 8 x s8>)
70     ; CHECK-NEXT: PseudoRET implicit $v8
71     %1:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
72     %2:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF
73     %0:_(<vscale x 8 x s8>) = G_SELECT %1(<vscale x 8 x s1>), %2(<vscale x 8 x s8>), %2(<vscale x 8 x s8>)
74     $v8 = COPY %0(<vscale x 8 x s8>)
75     PseudoRET implicit $v8
76 ...
77 ---
78 name:            select_nxv16i8
79 legalized:       false
80 tracksRegLiveness: true
81 body:             |
82   bb.0.entry:
83     ; CHECK-LABEL: name: select_nxv16i8
84     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF
85     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF
86     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 16 x s8>) = G_SELECT [[DEF]](<vscale x 16 x s1>), [[DEF1]], [[DEF1]]
87     ; CHECK-NEXT: $v8m2 = COPY [[SELECT]](<vscale x 16 x s8>)
88     ; CHECK-NEXT: PseudoRET implicit $v8m2
89     %1:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF
90     %2:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF
91     %0:_(<vscale x 16 x s8>) = G_SELECT %1(<vscale x 16 x s1>), %2(<vscale x 16 x s8>), %2(<vscale x 16 x s8>)
92     $v8m2 = COPY %0(<vscale x 16 x s8>)
93     PseudoRET implicit $v8m2
94 ...
95 ---
96 name:            select_nxv32i8
97 legalized:       false
98 tracksRegLiveness: true
99 body:             |
100   bb.0.entry:
101     ; CHECK-LABEL: name: select_nxv32i8
102     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 32 x s1>) = G_IMPLICIT_DEF
103     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 32 x s8>) = G_IMPLICIT_DEF
104     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 32 x s8>) = G_SELECT [[DEF]](<vscale x 32 x s1>), [[DEF1]], [[DEF1]]
105     ; CHECK-NEXT: $v8m4 = COPY [[SELECT]](<vscale x 32 x s8>)
106     ; CHECK-NEXT: PseudoRET implicit $v8m4
107     %1:_(<vscale x 32 x s1>) = G_IMPLICIT_DEF
108     %2:_(<vscale x 32 x s8>) = G_IMPLICIT_DEF
109     %0:_(<vscale x 32 x s8>) = G_SELECT %1(<vscale x 32 x s1>), %2(<vscale x 32 x s8>), %2(<vscale x 32 x s8>)
110     $v8m4 = COPY %0(<vscale x 32 x s8>)
111     PseudoRET implicit $v8m4
114 name:            select_nxv64i8
115 legalized:       false
116 tracksRegLiveness: true
117 body:             |
118   bb.0.entry:
119     ; CHECK-LABEL: name: select_nxv64i8
120     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 64 x s1>) = G_IMPLICIT_DEF
121     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 64 x s8>) = G_IMPLICIT_DEF
122     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 64 x s8>) = G_SELECT [[DEF]](<vscale x 64 x s1>), [[DEF1]], [[DEF1]]
123     ; CHECK-NEXT: $v8m8 = COPY [[SELECT]](<vscale x 64 x s8>)
124     ; CHECK-NEXT: PseudoRET implicit $v8m8
125     %1:_(<vscale x 64 x s1>) = G_IMPLICIT_DEF
126     %2:_(<vscale x 64 x s8>) = G_IMPLICIT_DEF
127     %0:_(<vscale x 64 x s8>) = G_SELECT %1(<vscale x 64 x s1>), %2(<vscale x 64 x s8>), %2(<vscale x 64 x s8>)
128     $v8m8 = COPY %0(<vscale x 64 x s8>)
129     PseudoRET implicit $v8m8
132 name:            select_nxv1i16
133 legalized:       false
134 tracksRegLiveness: true
135 body:             |
136   bb.0.entry:
137     ; CHECK-LABEL: name: select_nxv1i16
138     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
139     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF
140     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 1 x s16>) = G_SELECT [[DEF]](<vscale x 1 x s1>), [[DEF1]], [[DEF1]]
141     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 1 x s16>)
142     ; CHECK-NEXT: PseudoRET implicit $v8
143     %1:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
144     %2:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF
145     %0:_(<vscale x 1 x s16>) = G_SELECT %1(<vscale x 1 x s1>), %2(<vscale x 1 x s16>), %2(<vscale x 1 x s16>)
146     $v8 = COPY %0(<vscale x 1 x s16>)
147     PseudoRET implicit $v8
150 name:            select_nxv2i16
151 legalized:       false
152 tracksRegLiveness: true
153 body:             |
154   bb.0.entry:
155     ; CHECK-LABEL: name: select_nxv2i16
156     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
157     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF
158     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 2 x s16>) = G_SELECT [[DEF]](<vscale x 2 x s1>), [[DEF1]], [[DEF1]]
159     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 2 x s16>)
160     ; CHECK-NEXT: PseudoRET implicit $v8
161     %1:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
162     %2:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF
163     %0:_(<vscale x 2 x s16>) = G_SELECT %1(<vscale x 2 x s1>), %2(<vscale x 2 x s16>), %2(<vscale x 2 x s16>)
164     $v8 = COPY %0(<vscale x 2 x s16>)
165     PseudoRET implicit $v8
168 name:            select_nxv4i16
169 legalized:       false
170 tracksRegLiveness: true
171 body:             |
172   bb.0.entry:
173     ; CHECK-LABEL: name: select_nxv4i16
174     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
175     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF
176     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 4 x s16>) = G_SELECT [[DEF]](<vscale x 4 x s1>), [[DEF1]], [[DEF1]]
177     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 4 x s16>)
178     ; CHECK-NEXT: PseudoRET implicit $v8
179     %1:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
180     %2:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF
181     %0:_(<vscale x 4 x s16>) = G_SELECT %1(<vscale x 4 x s1>), %2(<vscale x 4 x s16>), %2(<vscale x 4 x s16>)
182     $v8 = COPY %0(<vscale x 4 x s16>)
183     PseudoRET implicit $v8
186 name:            select_nxv8i16
187 legalized:       false
188 tracksRegLiveness: true
189 body:             |
190   bb.0.entry:
191     ; CHECK-LABEL: name: select_nxv8i16
192     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
193     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF
194     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 8 x s16>) = G_SELECT [[DEF]](<vscale x 8 x s1>), [[DEF1]], [[DEF1]]
195     ; CHECK-NEXT: $v8m2 = COPY [[SELECT]](<vscale x 8 x s16>)
196     ; CHECK-NEXT: PseudoRET implicit $v8m2
197     %1:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
198     %2:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF
199     %0:_(<vscale x 8 x s16>) = G_SELECT %1(<vscale x 8 x s1>), %2(<vscale x 8 x s16>), %2(<vscale x 8 x s16>)
200     $v8m2 = COPY %0(<vscale x 8 x s16>)
201     PseudoRET implicit $v8m2
204 name:            select_nxv16i16
205 legalized:       false
206 tracksRegLiveness: true
207 body:             |
208   bb.0.entry:
209     ; CHECK-LABEL: name: select_nxv16i16
210     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF
211     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF
212     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 16 x s16>) = G_SELECT [[DEF]](<vscale x 16 x s1>), [[DEF1]], [[DEF1]]
213     ; CHECK-NEXT: $v8m4 = COPY [[SELECT]](<vscale x 16 x s16>)
214     ; CHECK-NEXT: PseudoRET implicit $v8m4
215     %1:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF
216     %2:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF
217     %0:_(<vscale x 16 x s16>) = G_SELECT %1(<vscale x 16 x s1>), %2(<vscale x 16 x s16>), %2(<vscale x 16 x s16>)
218     $v8m4 = COPY %0(<vscale x 16 x s16>)
219     PseudoRET implicit $v8m4
222 name:            select_nxv32i16
223 legalized:       false
224 tracksRegLiveness: true
225 body:             |
226   bb.0.entry:
227     ; CHECK-LABEL: name: select_nxv32i16
228     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 32 x s1>) = G_IMPLICIT_DEF
229     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 32 x s16>) = G_IMPLICIT_DEF
230     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 32 x s16>) = G_SELECT [[DEF]](<vscale x 32 x s1>), [[DEF1]], [[DEF1]]
231     ; CHECK-NEXT: $v8m8 = COPY [[SELECT]](<vscale x 32 x s16>)
232     ; CHECK-NEXT: PseudoRET implicit $v8m8
233     %1:_(<vscale x 32 x s1>) = G_IMPLICIT_DEF
234     %2:_(<vscale x 32 x s16>) = G_IMPLICIT_DEF
235     %0:_(<vscale x 32 x s16>) = G_SELECT %1(<vscale x 32 x s1>), %2(<vscale x 32 x s16>), %2(<vscale x 32 x s16>)
236     $v8m8 = COPY %0(<vscale x 32 x s16>)
237     PseudoRET implicit $v8m8
240 name:            select_nxv1i32
241 legalized:       false
242 tracksRegLiveness: true
243 body:             |
244   bb.0.entry:
245     ; CHECK-LABEL: name: select_nxv1i32
246     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
247     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF
248     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 1 x s32>) = G_SELECT [[DEF]](<vscale x 1 x s1>), [[DEF1]], [[DEF1]]
249     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 1 x s32>)
250     ; CHECK-NEXT: PseudoRET implicit $v8
251     %1:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
252     %2:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF
253     %0:_(<vscale x 1 x s32>) = G_SELECT %1(<vscale x 1 x s1>), %2(<vscale x 1 x s32>), %2(<vscale x 1 x s32>)
254     $v8 = COPY %0(<vscale x 1 x s32>)
255     PseudoRET implicit $v8
258 name:            select_nxv2i32
259 legalized:       false
260 tracksRegLiveness: true
261 body:             |
262   bb.0.entry:
263     ; CHECK-LABEL: name: select_nxv2i32
264     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
265     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF
266     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 2 x s32>) = G_SELECT [[DEF]](<vscale x 2 x s1>), [[DEF1]], [[DEF1]]
267     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 2 x s32>)
268     ; CHECK-NEXT: PseudoRET implicit $v8
269     %1:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
270     %2:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF
271     %0:_(<vscale x 2 x s32>) = G_SELECT %1(<vscale x 2 x s1>), %2(<vscale x 2 x s32>), %2(<vscale x 2 x s32>)
272     $v8 = COPY %0(<vscale x 2 x s32>)
273     PseudoRET implicit $v8
276 name:            select_nxv4i32
277 legalized:       false
278 tracksRegLiveness: true
279 body:             |
280   bb.0.entry:
281     ; CHECK-LABEL: name: select_nxv4i32
282     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
283     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF
284     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 4 x s32>) = G_SELECT [[DEF]](<vscale x 4 x s1>), [[DEF1]], [[DEF1]]
285     ; CHECK-NEXT: $v8m2 = COPY [[SELECT]](<vscale x 4 x s32>)
286     ; CHECK-NEXT: PseudoRET implicit $v8m2
287     %1:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
288     %2:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF
289     %0:_(<vscale x 4 x s32>) = G_SELECT %1(<vscale x 4 x s1>), %2(<vscale x 4 x s32>), %2(<vscale x 4 x s32>)
290     $v8m2 = COPY %0(<vscale x 4 x s32>)
291     PseudoRET implicit $v8m2
294 name:            select_nxv8i32
295 legalized:       false
296 tracksRegLiveness: true
297 body:             |
298   bb.0.entry:
299     ; CHECK-LABEL: name: select_nxv8i32
300     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
301     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF
302     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 8 x s32>) = G_SELECT [[DEF]](<vscale x 8 x s1>), [[DEF1]], [[DEF1]]
303     ; CHECK-NEXT: $v8m4 = COPY [[SELECT]](<vscale x 8 x s32>)
304     ; CHECK-NEXT: PseudoRET implicit $v8m4
305     %1:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
306     %2:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF
307     %0:_(<vscale x 8 x s32>) = G_SELECT %1(<vscale x 8 x s1>), %2(<vscale x 8 x s32>), %2(<vscale x 8 x s32>)
308     $v8m4 = COPY %0(<vscale x 8 x s32>)
309     PseudoRET implicit $v8m4
312 name:            select_nxv16i32
313 legalized:       false
314 tracksRegLiveness: true
315 body:             |
316   bb.0.entry:
317     ; CHECK-LABEL: name: select_nxv16i32
318     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF
319     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF
320     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 16 x s32>) = G_SELECT [[DEF]](<vscale x 16 x s1>), [[DEF1]], [[DEF1]]
321     ; CHECK-NEXT: $v8m8 = COPY [[SELECT]](<vscale x 16 x s32>)
322     ; CHECK-NEXT: PseudoRET implicit $v8m8
323     %1:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF
324     %2:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF
325     %0:_(<vscale x 16 x s32>) = G_SELECT %1(<vscale x 16 x s1>), %2(<vscale x 16 x s32>), %2(<vscale x 16 x s32>)
326     $v8m8 = COPY %0(<vscale x 16 x s32>)
327     PseudoRET implicit $v8m8
330 name:            select_nxv1i64
331 legalized:       false
332 tracksRegLiveness: true
333 body:             |
334   bb.0.entry:
335     ; CHECK-LABEL: name: select_nxv1i64
336     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
337     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF
338     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 1 x s64>) = G_SELECT [[DEF]](<vscale x 1 x s1>), [[DEF1]], [[DEF1]]
339     ; CHECK-NEXT: $v8 = COPY [[SELECT]](<vscale x 1 x s64>)
340     ; CHECK-NEXT: PseudoRET implicit $v8
341     %1:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF
342     %2:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF
343     %0:_(<vscale x 1 x s64>) = G_SELECT %1(<vscale x 1 x s1>), %2(<vscale x 1 x s64>), %2(<vscale x 1 x s64>)
344     $v8 = COPY %0(<vscale x 1 x s64>)
345     PseudoRET implicit $v8
348 name:            select_nxv2i64
349 legalized:       false
350 tracksRegLiveness: true
351 body:             |
352   bb.0.entry:
353     ; CHECK-LABEL: name: select_nxv2i64
354     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
355     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF
356     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 2 x s64>) = G_SELECT [[DEF]](<vscale x 2 x s1>), [[DEF1]], [[DEF1]]
357     ; CHECK-NEXT: $v8m2 = COPY [[SELECT]](<vscale x 2 x s64>)
358     ; CHECK-NEXT: PseudoRET implicit $v8m2
359     %1:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF
360     %2:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF
361     %0:_(<vscale x 2 x s64>) = G_SELECT %1(<vscale x 2 x s1>), %2(<vscale x 2 x s64>), %2(<vscale x 2 x s64>)
362     $v8m2 = COPY %0(<vscale x 2 x s64>)
363     PseudoRET implicit $v8m2
366 name:            select_nxv4i64
367 legalized:       false
368 tracksRegLiveness: true
369 body:             |
370   bb.0.entry:
371     ; CHECK-LABEL: name: select_nxv4i64
372     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
373     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF
374     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 4 x s64>) = G_SELECT [[DEF]](<vscale x 4 x s1>), [[DEF1]], [[DEF1]]
375     ; CHECK-NEXT: $v8m4 = COPY [[SELECT]](<vscale x 4 x s64>)
376     ; CHECK-NEXT: PseudoRET implicit $v8m4
377     %1:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF
378     %2:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF
379     %0:_(<vscale x 4 x s64>) = G_SELECT %1(<vscale x 4 x s1>), %2(<vscale x 4 x s64>), %2(<vscale x 4 x s64>)
380     $v8m4 = COPY %0(<vscale x 4 x s64>)
381     PseudoRET implicit $v8m4
384 name:            select_nxv8i64
385 legalized:       false
386 tracksRegLiveness: true
387 body:             |
388   bb.0.entry:
389     ; CHECK-LABEL: name: select_nxv8i64
390     ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
391     ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF
392     ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<vscale x 8 x s64>) = G_SELECT [[DEF]](<vscale x 8 x s1>), [[DEF1]], [[DEF1]]
393     ; CHECK-NEXT: $v8m8 = COPY [[SELECT]](<vscale x 8 x s64>)
394     ; CHECK-NEXT: PseudoRET implicit $v8m8
395     %1:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF
396     %2:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF
397     %0:_(<vscale x 8 x s64>) = G_SELECT %1(<vscale x 8 x s1>), %2(<vscale x 8 x s64>), %2(<vscale x 8 x s64>)
398     $v8m8 = COPY %0(<vscale x 8 x s64>)
399     PseudoRET implicit $v8m8