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
8 tracksRegLiveness: true
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
26 tracksRegLiveness: true
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
44 tracksRegLiveness: true
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
62 tracksRegLiveness: true
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
80 tracksRegLiveness: true
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
98 tracksRegLiveness: true
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
116 tracksRegLiveness: true
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
134 tracksRegLiveness: true
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
152 tracksRegLiveness: true
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
170 tracksRegLiveness: true
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
188 tracksRegLiveness: true
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
206 tracksRegLiveness: true
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
224 tracksRegLiveness: true
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
242 tracksRegLiveness: true
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
260 tracksRegLiveness: true
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
278 tracksRegLiveness: true
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
296 tracksRegLiveness: true
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
314 tracksRegLiveness: true
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
332 tracksRegLiveness: true
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
350 tracksRegLiveness: true
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
368 tracksRegLiveness: true
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
386 tracksRegLiveness: true
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