597 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+m,+v -run-pass=regbankselect \3# RUN: -simplify-mir -verify-machineinstrs %s \4# RUN: -o - | FileCheck %s5# RUN: llc -mtriple=riscv64 -mattr=+m,+v -run-pass=regbankselect \6# RUN: -simplify-mir -verify-machineinstrs %s \7# RUN: -o - | FileCheck %s8 9---10name: zext_nxv1i16_nxv1i811legalized: true12tracksRegLiveness: true13body: |14 bb.0.entry:15 liveins: $v816 17 ; CHECK-LABEL: name: zext_nxv1i16_nxv1i818 ; CHECK: liveins: $v819 ; CHECK-NEXT: {{ $}}20 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s8>) = COPY $v821 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 1 x s16>) = G_ZEXT [[COPY]](<vscale x 1 x s8>)22 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 1 x s16>)23 ; CHECK-NEXT: PseudoRET implicit $v824 %0:_(<vscale x 1 x s8>) = COPY $v825 %1:_(<vscale x 1 x s16>) = G_ZEXT %0(<vscale x 1 x s8>)26 $v8 = COPY %1(<vscale x 1 x s16>)27 PseudoRET implicit $v828 29...30---31name: zext_nxv1i32_nxv1i832legalized: true33tracksRegLiveness: true34body: |35 bb.0.entry:36 liveins: $v837 38 ; CHECK-LABEL: name: zext_nxv1i32_nxv1i839 ; CHECK: liveins: $v840 ; CHECK-NEXT: {{ $}}41 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s8>) = COPY $v842 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_ZEXT [[COPY]](<vscale x 1 x s8>)43 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 1 x s32>)44 ; CHECK-NEXT: PseudoRET implicit $v845 %0:_(<vscale x 1 x s8>) = COPY $v846 %1:_(<vscale x 1 x s32>) = G_ZEXT %0(<vscale x 1 x s8>)47 $v8 = COPY %1(<vscale x 1 x s32>)48 PseudoRET implicit $v849 50...51---52name: zext_nxv1i64_nxv1i853legalized: true54tracksRegLiveness: true55body: |56 bb.0.entry:57 liveins: $v858 59 ; CHECK-LABEL: name: zext_nxv1i64_nxv1i860 ; CHECK: liveins: $v861 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s8>) = COPY $v863 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_ZEXT [[COPY]](<vscale x 1 x s8>)64 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 1 x s64>)65 ; CHECK-NEXT: PseudoRET implicit $v866 %0:_(<vscale x 1 x s8>) = COPY $v867 %1:_(<vscale x 1 x s64>) = G_ZEXT %0(<vscale x 1 x s8>)68 $v8 = COPY %1(<vscale x 1 x s64>)69 PseudoRET implicit $v870 71...72---73name: zext_nxv2i16_nxv2i874legalized: true75tracksRegLiveness: true76body: |77 bb.0.entry:78 liveins: $v879 80 ; CHECK-LABEL: name: zext_nxv2i16_nxv2i881 ; CHECK: liveins: $v882 ; CHECK-NEXT: {{ $}}83 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s8>) = COPY $v884 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 2 x s16>) = G_ZEXT [[COPY]](<vscale x 2 x s8>)85 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 2 x s16>)86 ; CHECK-NEXT: PseudoRET implicit $v887 %0:_(<vscale x 2 x s8>) = COPY $v888 %1:_(<vscale x 2 x s16>) = G_ZEXT %0(<vscale x 2 x s8>)89 $v8 = COPY %1(<vscale x 2 x s16>)90 PseudoRET implicit $v891 92...93---94name: zext_nxv2i32_nxv2i895legalized: true96tracksRegLiveness: true97body: |98 bb.0.entry:99 liveins: $v8100 101 ; CHECK-LABEL: name: zext_nxv2i32_nxv2i8102 ; CHECK: liveins: $v8103 ; CHECK-NEXT: {{ $}}104 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s8>) = COPY $v8105 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_ZEXT [[COPY]](<vscale x 2 x s8>)106 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 2 x s32>)107 ; CHECK-NEXT: PseudoRET implicit $v8108 %0:_(<vscale x 2 x s8>) = COPY $v8109 %1:_(<vscale x 2 x s32>) = G_ZEXT %0(<vscale x 2 x s8>)110 $v8 = COPY %1(<vscale x 2 x s32>)111 PseudoRET implicit $v8112 113...114---115name: zext_nxv2i64_nxv2i8116legalized: true117tracksRegLiveness: true118body: |119 bb.0.entry:120 liveins: $v8121 122 ; CHECK-LABEL: name: zext_nxv2i64_nxv2i8123 ; CHECK: liveins: $v8124 ; CHECK-NEXT: {{ $}}125 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s8>) = COPY $v8126 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_ZEXT [[COPY]](<vscale x 2 x s8>)127 ; CHECK-NEXT: $v8m2 = COPY [[ZEXT]](<vscale x 2 x s64>)128 ; CHECK-NEXT: PseudoRET implicit $v8m2129 %0:_(<vscale x 2 x s8>) = COPY $v8130 %1:_(<vscale x 2 x s64>) = G_ZEXT %0(<vscale x 2 x s8>)131 $v8m2 = COPY %1(<vscale x 2 x s64>)132 PseudoRET implicit $v8m2133 134...135---136name: zext_nxv4i16_nxv4i8137legalized: true138tracksRegLiveness: true139body: |140 bb.0.entry:141 liveins: $v8142 143 ; CHECK-LABEL: name: zext_nxv4i16_nxv4i8144 ; CHECK: liveins: $v8145 ; CHECK-NEXT: {{ $}}146 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s8>) = COPY $v8147 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 4 x s16>) = G_ZEXT [[COPY]](<vscale x 4 x s8>)148 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 4 x s16>)149 ; CHECK-NEXT: PseudoRET implicit $v8150 %0:_(<vscale x 4 x s8>) = COPY $v8151 %1:_(<vscale x 4 x s16>) = G_ZEXT %0(<vscale x 4 x s8>)152 $v8 = COPY %1(<vscale x 4 x s16>)153 PseudoRET implicit $v8154 155...156---157name: zext_nxv4i32_nxv4i8158legalized: true159tracksRegLiveness: true160body: |161 bb.0.entry:162 liveins: $v8163 164 ; CHECK-LABEL: name: zext_nxv4i32_nxv4i8165 ; CHECK: liveins: $v8166 ; CHECK-NEXT: {{ $}}167 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s8>) = COPY $v8168 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_ZEXT [[COPY]](<vscale x 4 x s8>)169 ; CHECK-NEXT: $v8m2 = COPY [[ZEXT]](<vscale x 4 x s32>)170 ; CHECK-NEXT: PseudoRET implicit $v8m2171 %0:_(<vscale x 4 x s8>) = COPY $v8172 %1:_(<vscale x 4 x s32>) = G_ZEXT %0(<vscale x 4 x s8>)173 $v8m2 = COPY %1(<vscale x 4 x s32>)174 PseudoRET implicit $v8m2175 176...177---178name: zext_nxv4i64_nxv4i8179legalized: true180tracksRegLiveness: true181body: |182 bb.0.entry:183 liveins: $v8184 185 ; CHECK-LABEL: name: zext_nxv4i64_nxv4i8186 ; CHECK: liveins: $v8187 ; CHECK-NEXT: {{ $}}188 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s8>) = COPY $v8189 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_ZEXT [[COPY]](<vscale x 4 x s8>)190 ; CHECK-NEXT: $v8m4 = COPY [[ZEXT]](<vscale x 4 x s64>)191 ; CHECK-NEXT: PseudoRET implicit $v8m4192 %0:_(<vscale x 4 x s8>) = COPY $v8193 %1:_(<vscale x 4 x s64>) = G_ZEXT %0(<vscale x 4 x s8>)194 $v8m4 = COPY %1(<vscale x 4 x s64>)195 PseudoRET implicit $v8m4196 197...198---199name: zext_nxv8i16_nxv8i8200legalized: true201tracksRegLiveness: true202body: |203 bb.0.entry:204 liveins: $v8205 206 ; CHECK-LABEL: name: zext_nxv8i16_nxv8i8207 ; CHECK: liveins: $v8208 ; CHECK-NEXT: {{ $}}209 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s8>) = COPY $v8210 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 8 x s16>) = G_ZEXT [[COPY]](<vscale x 8 x s8>)211 ; CHECK-NEXT: $v8m2 = COPY [[ZEXT]](<vscale x 8 x s16>)212 ; CHECK-NEXT: PseudoRET implicit $v8m2213 %0:_(<vscale x 8 x s8>) = COPY $v8214 %1:_(<vscale x 8 x s16>) = G_ZEXT %0(<vscale x 8 x s8>)215 $v8m2 = COPY %1(<vscale x 8 x s16>)216 PseudoRET implicit $v8m2217 218...219---220name: zext_nxv8i32_nxv8i8221legalized: true222tracksRegLiveness: true223body: |224 bb.0.entry:225 liveins: $v8226 227 ; CHECK-LABEL: name: zext_nxv8i32_nxv8i8228 ; CHECK: liveins: $v8229 ; CHECK-NEXT: {{ $}}230 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s8>) = COPY $v8231 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_ZEXT [[COPY]](<vscale x 8 x s8>)232 ; CHECK-NEXT: $v8m4 = COPY [[ZEXT]](<vscale x 8 x s32>)233 ; CHECK-NEXT: PseudoRET implicit $v8m4234 %0:_(<vscale x 8 x s8>) = COPY $v8235 %1:_(<vscale x 8 x s32>) = G_ZEXT %0(<vscale x 8 x s8>)236 $v8m4 = COPY %1(<vscale x 8 x s32>)237 PseudoRET implicit $v8m4238 239...240---241name: zext_nxv8i64_nxv8i8242legalized: true243tracksRegLiveness: true244body: |245 bb.0.entry:246 liveins: $v8247 248 ; CHECK-LABEL: name: zext_nxv8i64_nxv8i8249 ; CHECK: liveins: $v8250 ; CHECK-NEXT: {{ $}}251 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s8>) = COPY $v8252 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_ZEXT [[COPY]](<vscale x 8 x s8>)253 ; CHECK-NEXT: $v8m8 = COPY [[ZEXT]](<vscale x 8 x s64>)254 ; CHECK-NEXT: PseudoRET implicit $v8m8255 %0:_(<vscale x 8 x s8>) = COPY $v8256 %1:_(<vscale x 8 x s64>) = G_ZEXT %0(<vscale x 8 x s8>)257 $v8m8 = COPY %1(<vscale x 8 x s64>)258 PseudoRET implicit $v8m8259 260...261---262name: zext_nxv16i16_nxv16i8263legalized: true264tracksRegLiveness: true265body: |266 bb.0.entry:267 liveins: $v8268 269 ; CHECK-LABEL: name: zext_nxv16i16_nxv16i8270 ; CHECK: liveins: $v8271 ; CHECK-NEXT: {{ $}}272 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2273 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 16 x s16>) = G_ZEXT [[COPY]](<vscale x 16 x s8>)274 ; CHECK-NEXT: $v8m4 = COPY [[ZEXT]](<vscale x 16 x s16>)275 ; CHECK-NEXT: PseudoRET implicit $v8m4276 %0:_(<vscale x 16 x s8>) = COPY $v8m2277 %1:_(<vscale x 16 x s16>) = G_ZEXT %0(<vscale x 16 x s8>)278 $v8m4 = COPY %1(<vscale x 16 x s16>)279 PseudoRET implicit $v8m4280 281...282---283name: zext_nxv16i32_nxv16i8284legalized: true285tracksRegLiveness: true286body: |287 bb.0.entry:288 liveins: $v8289 290 ; CHECK-LABEL: name: zext_nxv16i32_nxv16i8291 ; CHECK: liveins: $v8292 ; CHECK-NEXT: {{ $}}293 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2294 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_ZEXT [[COPY]](<vscale x 16 x s8>)295 ; CHECK-NEXT: $v8m8 = COPY [[ZEXT]](<vscale x 16 x s32>)296 ; CHECK-NEXT: PseudoRET implicit $v8m8297 %0:_(<vscale x 16 x s8>) = COPY $v8m2298 %1:_(<vscale x 16 x s32>) = G_ZEXT %0(<vscale x 16 x s8>)299 $v8m8 = COPY %1(<vscale x 16 x s32>)300 PseudoRET implicit $v8m8301 302...303---304name: zext_nxv32i16_nxv32i8305legalized: true306tracksRegLiveness: true307body: |308 bb.0.entry:309 liveins: $v8310 311 ; CHECK-LABEL: name: zext_nxv32i16_nxv32i8312 ; CHECK: liveins: $v8313 ; CHECK-NEXT: {{ $}}314 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s8>) = COPY $v8m4315 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 32 x s16>) = G_ZEXT [[COPY]](<vscale x 32 x s8>)316 ; CHECK-NEXT: $v8m8 = COPY [[ZEXT]](<vscale x 32 x s16>)317 ; CHECK-NEXT: PseudoRET implicit $v8m8318 %0:_(<vscale x 32 x s8>) = COPY $v8m4319 %1:_(<vscale x 32 x s16>) = G_ZEXT %0(<vscale x 32 x s8>)320 $v8m8 = COPY %1(<vscale x 32 x s16>)321 PseudoRET implicit $v8m8322 323...324---325name: zext_nxv1i32_nxv1i16326legalized: true327tracksRegLiveness: true328body: |329 bb.0.entry:330 liveins: $v8331 332 ; CHECK-LABEL: name: zext_nxv1i32_nxv1i16333 ; CHECK: liveins: $v8334 ; CHECK-NEXT: {{ $}}335 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8336 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_ZEXT [[COPY]](<vscale x 1 x s16>)337 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 1 x s32>)338 ; CHECK-NEXT: PseudoRET implicit $v8339 %0:_(<vscale x 1 x s16>) = COPY $v8340 %1:_(<vscale x 1 x s32>) = G_ZEXT %0(<vscale x 1 x s16>)341 $v8 = COPY %1(<vscale x 1 x s32>)342 PseudoRET implicit $v8343 344...345---346name: zext_nxv1i64_nxv1i16347legalized: true348tracksRegLiveness: true349body: |350 bb.0.entry:351 liveins: $v8352 353 ; CHECK-LABEL: name: zext_nxv1i64_nxv1i16354 ; CHECK: liveins: $v8355 ; CHECK-NEXT: {{ $}}356 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8357 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_ZEXT [[COPY]](<vscale x 1 x s16>)358 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 1 x s64>)359 ; CHECK-NEXT: PseudoRET implicit $v8360 %0:_(<vscale x 1 x s16>) = COPY $v8361 %1:_(<vscale x 1 x s64>) = G_ZEXT %0(<vscale x 1 x s16>)362 $v8 = COPY %1(<vscale x 1 x s64>)363 PseudoRET implicit $v8364 365...366---367name: zext_nxv2i32_nxv2i16368legalized: true369tracksRegLiveness: true370body: |371 bb.0.entry:372 liveins: $v8373 374 ; CHECK-LABEL: name: zext_nxv2i32_nxv2i16375 ; CHECK: liveins: $v8376 ; CHECK-NEXT: {{ $}}377 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8378 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_ZEXT [[COPY]](<vscale x 2 x s16>)379 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 2 x s32>)380 ; CHECK-NEXT: PseudoRET implicit $v8381 %0:_(<vscale x 2 x s16>) = COPY $v8382 %1:_(<vscale x 2 x s32>) = G_ZEXT %0(<vscale x 2 x s16>)383 $v8 = COPY %1(<vscale x 2 x s32>)384 PseudoRET implicit $v8385 386...387---388name: zext_nxv2i64_nxv2i16389legalized: true390tracksRegLiveness: true391body: |392 bb.0.entry:393 liveins: $v8394 395 ; CHECK-LABEL: name: zext_nxv2i64_nxv2i16396 ; CHECK: liveins: $v8397 ; CHECK-NEXT: {{ $}}398 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8399 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_ZEXT [[COPY]](<vscale x 2 x s16>)400 ; CHECK-NEXT: $v8m2 = COPY [[ZEXT]](<vscale x 2 x s64>)401 ; CHECK-NEXT: PseudoRET implicit $v8m2402 %0:_(<vscale x 2 x s16>) = COPY $v8403 %1:_(<vscale x 2 x s64>) = G_ZEXT %0(<vscale x 2 x s16>)404 $v8m2 = COPY %1(<vscale x 2 x s64>)405 PseudoRET implicit $v8m2406 407...408---409name: zext_nxv4i32_nxv4i16410legalized: true411tracksRegLiveness: true412body: |413 bb.0.entry:414 liveins: $v8415 416 ; CHECK-LABEL: name: zext_nxv4i32_nxv4i16417 ; CHECK: liveins: $v8418 ; CHECK-NEXT: {{ $}}419 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8420 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_ZEXT [[COPY]](<vscale x 4 x s16>)421 ; CHECK-NEXT: $v8m2 = COPY [[ZEXT]](<vscale x 4 x s32>)422 ; CHECK-NEXT: PseudoRET implicit $v8m2423 %0:_(<vscale x 4 x s16>) = COPY $v8424 %1:_(<vscale x 4 x s32>) = G_ZEXT %0(<vscale x 4 x s16>)425 $v8m2 = COPY %1(<vscale x 4 x s32>)426 PseudoRET implicit $v8m2427 428...429---430name: zext_nxv4i64_nxv4i16431legalized: true432tracksRegLiveness: true433body: |434 bb.0.entry:435 liveins: $v8436 437 ; CHECK-LABEL: name: zext_nxv4i64_nxv4i16438 ; CHECK: liveins: $v8439 ; CHECK-NEXT: {{ $}}440 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8441 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_ZEXT [[COPY]](<vscale x 4 x s16>)442 ; CHECK-NEXT: $v8m4 = COPY [[ZEXT]](<vscale x 4 x s64>)443 ; CHECK-NEXT: PseudoRET implicit $v8m4444 %0:_(<vscale x 4 x s16>) = COPY $v8445 %1:_(<vscale x 4 x s64>) = G_ZEXT %0(<vscale x 4 x s16>)446 $v8m4 = COPY %1(<vscale x 4 x s64>)447 PseudoRET implicit $v8m4448 449...450---451name: zext_nxv8i32_nxv8i16452legalized: true453tracksRegLiveness: true454body: |455 bb.0.entry:456 liveins: $v8457 458 ; CHECK-LABEL: name: zext_nxv8i32_nxv8i16459 ; CHECK: liveins: $v8460 ; CHECK-NEXT: {{ $}}461 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8m2462 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_ZEXT [[COPY]](<vscale x 8 x s16>)463 ; CHECK-NEXT: $v8m4 = COPY [[ZEXT]](<vscale x 8 x s32>)464 ; CHECK-NEXT: PseudoRET implicit $v8m4465 %0:_(<vscale x 8 x s16>) = COPY $v8m2466 %1:_(<vscale x 8 x s32>) = G_ZEXT %0(<vscale x 8 x s16>)467 $v8m4 = COPY %1(<vscale x 8 x s32>)468 PseudoRET implicit $v8m4469 470...471---472name: zext_nxv8i64_nxv8i16473legalized: true474tracksRegLiveness: true475body: |476 bb.0.entry:477 liveins: $v8478 479 ; CHECK-LABEL: name: zext_nxv8i64_nxv8i16480 ; CHECK: liveins: $v8481 ; CHECK-NEXT: {{ $}}482 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8m4483 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_ZEXT [[COPY]](<vscale x 8 x s16>)484 ; CHECK-NEXT: $v8m8 = COPY [[ZEXT]](<vscale x 8 x s64>)485 ; CHECK-NEXT: PseudoRET implicit $v8m8486 %0:_(<vscale x 8 x s16>) = COPY $v8m4487 %1:_(<vscale x 8 x s64>) = G_ZEXT %0(<vscale x 8 x s16>)488 $v8m8 = COPY %1(<vscale x 8 x s64>)489 PseudoRET implicit $v8m8490 491...492---493name: zext_nxv16i32_nxv16i16494legalized: true495tracksRegLiveness: true496body: |497 bb.0.entry:498 liveins: $v8499 500 ; CHECK-LABEL: name: zext_nxv16i32_nxv16i16501 ; CHECK: liveins: $v8502 ; CHECK-NEXT: {{ $}}503 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8m4504 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_ZEXT [[COPY]](<vscale x 16 x s16>)505 ; CHECK-NEXT: $v8m8 = COPY [[ZEXT]](<vscale x 16 x s32>)506 ; CHECK-NEXT: PseudoRET implicit $v8m8507 %0:_(<vscale x 16 x s16>) = COPY $v8m4508 %1:_(<vscale x 16 x s32>) = G_ZEXT %0(<vscale x 16 x s16>)509 $v8m8 = COPY %1(<vscale x 16 x s32>)510 PseudoRET implicit $v8m8511 512...513---514name: zext_nxv1i64_nxv1i32515legalized: true516tracksRegLiveness: true517body: |518 bb.0.entry:519 liveins: $v8520 521 ; CHECK-LABEL: name: zext_nxv1i64_nxv1i32522 ; CHECK: liveins: $v8523 ; CHECK-NEXT: {{ $}}524 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s32>) = COPY $v8525 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_ZEXT [[COPY]](<vscale x 1 x s32>)526 ; CHECK-NEXT: $v8 = COPY [[ZEXT]](<vscale x 1 x s64>)527 ; CHECK-NEXT: PseudoRET implicit $v8528 %0:_(<vscale x 1 x s32>) = COPY $v8529 %1:_(<vscale x 1 x s64>) = G_ZEXT %0(<vscale x 1 x s32>)530 $v8 = COPY %1(<vscale x 1 x s64>)531 PseudoRET implicit $v8532 533...534---535name: zext_nxv2i64_nxv2i32536legalized: true537tracksRegLiveness: true538body: |539 bb.0.entry:540 liveins: $v8541 542 ; CHECK-LABEL: name: zext_nxv2i64_nxv2i32543 ; CHECK: liveins: $v8544 ; CHECK-NEXT: {{ $}}545 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8546 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_ZEXT [[COPY]](<vscale x 2 x s32>)547 ; CHECK-NEXT: $v8m2 = COPY [[ZEXT]](<vscale x 2 x s64>)548 ; CHECK-NEXT: PseudoRET implicit $v8m2549 %0:_(<vscale x 2 x s32>) = COPY $v8550 %1:_(<vscale x 2 x s64>) = G_ZEXT %0(<vscale x 2 x s32>)551 $v8m2 = COPY %1(<vscale x 2 x s64>)552 PseudoRET implicit $v8m2553 554...555---556name: zext_nxv4i64_nxv4i32557legalized: true558tracksRegLiveness: true559body: |560 bb.0.entry:561 liveins: $v8562 563 ; CHECK-LABEL: name: zext_nxv4i64_nxv4i32564 ; CHECK: liveins: $v8565 ; CHECK-NEXT: {{ $}}566 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s32>) = COPY $v8m2567 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_ZEXT [[COPY]](<vscale x 4 x s32>)568 ; CHECK-NEXT: $v8m4 = COPY [[ZEXT]](<vscale x 4 x s64>)569 ; CHECK-NEXT: PseudoRET implicit $v8m4570 %0:_(<vscale x 4 x s32>) = COPY $v8m2571 %1:_(<vscale x 4 x s64>) = G_ZEXT %0(<vscale x 4 x s32>)572 $v8m4 = COPY %1(<vscale x 4 x s64>)573 PseudoRET implicit $v8m4574 575...576---577name: zext_nxv8i64_nxv8i32578legalized: true579tracksRegLiveness: true580body: |581 bb.0.entry:582 liveins: $v8583 584 ; CHECK-LABEL: name: zext_nxv8i64_nxv8i32585 ; CHECK: liveins: $v8586 ; CHECK-NEXT: {{ $}}587 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s32>) = COPY $v8m4588 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_ZEXT [[COPY]](<vscale x 8 x s32>)589 ; CHECK-NEXT: $v8m8 = COPY [[ZEXT]](<vscale x 8 x s64>)590 ; CHECK-NEXT: PseudoRET implicit $v8m8591 %0:_(<vscale x 8 x s32>) = COPY $v8m4592 %1:_(<vscale x 8 x s64>) = G_ZEXT %0(<vscale x 8 x s32>)593 $v8m8 = COPY %1(<vscale x 8 x s64>)594 PseudoRET implicit $v8m8595 596...597