411 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s3# RUN: llc -mtriple=riscv64 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s4 5---6name: implicitdef_nxv1i17legalized: false8tracksRegLiveness: true9body: |10 bb.0.entry:11 ; CHECK-LABEL: name: implicitdef_nxv1i112 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF13 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s1>)14 ; CHECK-NEXT: PseudoRET implicit $v815 %0:_(<vscale x 1 x s1>) = G_IMPLICIT_DEF16 $v8 = COPY %0(<vscale x 1 x s1>)17 PseudoRET implicit $v818...19---20name: implicitdef_nxv2i121legalized: false22tracksRegLiveness: true23body: |24 bb.0.entry:25 ; CHECK-LABEL: name: implicitdef_nxv2i126 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF27 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s1>)28 ; CHECK-NEXT: PseudoRET implicit $v829 %0:_(<vscale x 2 x s1>) = G_IMPLICIT_DEF30 $v8 = COPY %0(<vscale x 2 x s1>)31 PseudoRET implicit $v832...33---34name: implicitdef_nxv4i135legalized: false36tracksRegLiveness: true37body: |38 bb.0.entry:39 ; CHECK-LABEL: name: implicitdef_nxv4i140 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF41 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s1>)42 ; CHECK-NEXT: PseudoRET implicit $v843 %0:_(<vscale x 4 x s1>) = G_IMPLICIT_DEF44 $v8 = COPY %0(<vscale x 4 x s1>)45 PseudoRET implicit $v846...47---48name: implicitdef_nxv8i149legalized: false50tracksRegLiveness: true51body: |52 bb.0.entry:53 ; CHECK-LABEL: name: implicitdef_nxv8i154 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF55 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 8 x s1>)56 ; CHECK-NEXT: PseudoRET implicit $v857 %0:_(<vscale x 8 x s1>) = G_IMPLICIT_DEF58 $v8 = COPY %0(<vscale x 8 x s1>)59 PseudoRET implicit $v860...61---62name: implicitdef_nxv16i163legalized: false64tracksRegLiveness: true65body: |66 bb.0.entry:67 ; CHECK-LABEL: name: implicitdef_nxv16i168 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF69 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 16 x s1>)70 ; CHECK-NEXT: PseudoRET implicit $v871 %0:_(<vscale x 16 x s1>) = G_IMPLICIT_DEF72 $v8 = COPY %0(<vscale x 16 x s1>)73 PseudoRET implicit $v874...75---76name: implicitdef_nxv32i177legalized: false78tracksRegLiveness: true79body: |80 bb.0.entry:81 ; CHECK-LABEL: name: implicitdef_nxv32i182 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 32 x s1>) = G_IMPLICIT_DEF83 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 32 x s1>)84 ; CHECK-NEXT: PseudoRET implicit $v885 %0:_(<vscale x 32 x s1>) = G_IMPLICIT_DEF86 $v8 = COPY %0(<vscale x 32 x s1>)87 PseudoRET implicit $v888...89---90name: implicitdef_nxv64i191legalized: false92tracksRegLiveness: true93body: |94 bb.0.entry:95 ; CHECK-LABEL: name: implicitdef_nxv64i196 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 64 x s1>) = G_IMPLICIT_DEF97 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 64 x s1>)98 ; CHECK-NEXT: PseudoRET implicit $v899 %0:_(<vscale x 64 x s1>) = G_IMPLICIT_DEF100 $v8 = COPY %0(<vscale x 64 x s1>)101 PseudoRET implicit $v8102...103---104name: implicitdef_nxv1i8105legalized: false106tracksRegLiveness: true107body: |108 bb.0.entry:109 ; CHECK-LABEL: name: implicitdef_nxv1i8110 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF111 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s8>)112 ; CHECK-NEXT: PseudoRET implicit $v8113 %0:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF114 $v8 = COPY %0(<vscale x 1 x s8>)115 PseudoRET implicit $v8116...117---118name: implicitdef_nxv2i8119legalized: false120tracksRegLiveness: true121body: |122 bb.0.entry:123 ; CHECK-LABEL: name: implicitdef_nxv2i8124 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF125 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s8>)126 ; CHECK-NEXT: PseudoRET implicit $v8127 %0:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF128 $v8 = COPY %0(<vscale x 2 x s8>)129 PseudoRET implicit $v8130...131---132name: implicitdef_nxv4i8133legalized: false134tracksRegLiveness: true135body: |136 bb.0.entry:137 ; CHECK-LABEL: name: implicitdef_nxv4i8138 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF139 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s8>)140 ; CHECK-NEXT: PseudoRET implicit $v8141 %0:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF142 $v8 = COPY %0(<vscale x 4 x s8>)143 PseudoRET implicit $v8144...145---146name: implicitdef_nxv8i8147legalized: false148tracksRegLiveness: true149body: |150 bb.0.entry:151 ; CHECK-LABEL: name: implicitdef_nxv8i8152 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF153 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 8 x s8>)154 ; CHECK-NEXT: PseudoRET implicit $v8155 %0:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF156 $v8 = COPY %0(<vscale x 8 x s8>)157 PseudoRET implicit $v8158...159---160name: implicitdef_nxv16i8161legalized: false162tracksRegLiveness: true163body: |164 bb.0.entry:165 ; CHECK-LABEL: name: implicitdef_nxv16i8166 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF167 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 16 x s8>)168 ; CHECK-NEXT: PseudoRET implicit $v8m2169 %0:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF170 $v8m2 = COPY %0(<vscale x 16 x s8>)171 PseudoRET implicit $v8m2172...173---174name: implicitdef_nxv32i8175legalized: false176tracksRegLiveness: true177body: |178 bb.0.entry:179 ; CHECK-LABEL: name: implicitdef_nxv32i8180 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 32 x s8>) = G_IMPLICIT_DEF181 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 32 x s8>)182 ; CHECK-NEXT: PseudoRET implicit $v8m4183 %0:_(<vscale x 32 x s8>) = G_IMPLICIT_DEF184 $v8m4 = COPY %0(<vscale x 32 x s8>)185 PseudoRET implicit $v8m4186...187---188name: implicitdef_nxv64i8189legalized: false190tracksRegLiveness: true191body: |192 bb.0.entry:193 ; CHECK-LABEL: name: implicitdef_nxv64i8194 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 64 x s8>) = G_IMPLICIT_DEF195 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 64 x s8>)196 ; CHECK-NEXT: PseudoRET implicit $v8m8197 %0:_(<vscale x 64 x s8>) = G_IMPLICIT_DEF198 $v8m8 = COPY %0(<vscale x 64 x s8>)199 PseudoRET implicit $v8m8200...201---202name: implicitdef_nxv1i16203legalized: false204tracksRegLiveness: true205body: |206 bb.0.entry:207 ; CHECK-LABEL: name: implicitdef_nxv1i16208 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF209 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s16>)210 ; CHECK-NEXT: PseudoRET implicit $v8211 %0:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF212 $v8 = COPY %0(<vscale x 1 x s16>)213 PseudoRET implicit $v8214...215---216name: implicitdef_nxv2i16217legalized: false218tracksRegLiveness: true219body: |220 bb.0.entry:221 ; CHECK-LABEL: name: implicitdef_nxv2i16222 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF223 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s16>)224 ; CHECK-NEXT: PseudoRET implicit $v8225 %0:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF226 $v8 = COPY %0(<vscale x 2 x s16>)227 PseudoRET implicit $v8228...229---230name: implicitdef_nxv4i16231legalized: false232tracksRegLiveness: true233body: |234 bb.0.entry:235 ; CHECK-LABEL: name: implicitdef_nxv4i16236 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF237 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s16>)238 ; CHECK-NEXT: PseudoRET implicit $v8239 %0:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF240 $v8 = COPY %0(<vscale x 4 x s16>)241 PseudoRET implicit $v8242...243---244name: implicitdef_nxv8i16245legalized: false246tracksRegLiveness: true247body: |248 bb.0.entry:249 ; CHECK-LABEL: name: implicitdef_nxv8i16250 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF251 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 8 x s16>)252 ; CHECK-NEXT: PseudoRET implicit $v8m2253 %0:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF254 $v8m2 = COPY %0(<vscale x 8 x s16>)255 PseudoRET implicit $v8m2256...257---258name: implicitdef_nxv16i16259legalized: false260tracksRegLiveness: true261body: |262 bb.0.entry:263 ; CHECK-LABEL: name: implicitdef_nxv16i16264 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF265 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 16 x s16>)266 ; CHECK-NEXT: PseudoRET implicit $v8m4267 %0:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF268 $v8m4 = COPY %0(<vscale x 16 x s16>)269 PseudoRET implicit $v8m4270...271---272name: implicitdef_nxv32i16273legalized: false274tracksRegLiveness: true275body: |276 bb.0.entry:277 ; CHECK-LABEL: name: implicitdef_nxv32i16278 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 32 x s16>) = G_IMPLICIT_DEF279 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 32 x s16>)280 ; CHECK-NEXT: PseudoRET implicit $v8m8281 %0:_(<vscale x 32 x s16>) = G_IMPLICIT_DEF282 $v8m8 = COPY %0(<vscale x 32 x s16>)283 PseudoRET implicit $v8m8284...285---286name: implicitdef_nxv1i32287legalized: false288tracksRegLiveness: true289body: |290 bb.0.entry:291 ; CHECK-LABEL: name: implicitdef_nxv1i32292 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF293 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s32>)294 ; CHECK-NEXT: PseudoRET implicit $v8295 %0:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF296 $v8 = COPY %0(<vscale x 1 x s32>)297 PseudoRET implicit $v8298...299---300name: implicitdef_nxv2i32301legalized: false302tracksRegLiveness: true303body: |304 bb.0.entry:305 ; CHECK-LABEL: name: implicitdef_nxv2i32306 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF307 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s32>)308 ; CHECK-NEXT: PseudoRET implicit $v8309 %0:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF310 $v8 = COPY %0(<vscale x 2 x s32>)311 PseudoRET implicit $v8312...313---314name: implicitdef_nxv4i32315legalized: false316tracksRegLiveness: true317body: |318 bb.0.entry:319 ; CHECK-LABEL: name: implicitdef_nxv4i32320 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF321 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 4 x s32>)322 ; CHECK-NEXT: PseudoRET implicit $v8m2323 %0:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF324 $v8m2 = COPY %0(<vscale x 4 x s32>)325 PseudoRET implicit $v8m2326...327---328name: implicitdef_nxv8i32329legalized: false330tracksRegLiveness: true331body: |332 bb.0.entry:333 ; CHECK-LABEL: name: implicitdef_nxv8i32334 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF335 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 8 x s32>)336 ; CHECK-NEXT: PseudoRET implicit $v8m4337 %0:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF338 $v8m4 = COPY %0(<vscale x 8 x s32>)339 PseudoRET implicit $v8m4340...341---342name: implicitdef_nxv16i32343legalized: false344tracksRegLiveness: true345body: |346 bb.0.entry:347 ; CHECK-LABEL: name: implicitdef_nxv16i32348 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF349 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 16 x s32>)350 ; CHECK-NEXT: PseudoRET implicit $v8m8351 %0:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF352 $v8m8 = COPY %0(<vscale x 16 x s32>)353 PseudoRET implicit $v8m8354...355---356name: implicitdef_nxv1i64357legalized: false358tracksRegLiveness: true359body: |360 bb.0.entry:361 ; CHECK-LABEL: name: implicitdef_nxv1i64362 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF363 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s64>)364 ; CHECK-NEXT: PseudoRET implicit $v8365 %0:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF366 $v8 = COPY %0(<vscale x 1 x s64>)367 PseudoRET implicit $v8368...369---370name: implicitdef_nxv2i64371legalized: false372tracksRegLiveness: true373body: |374 bb.0.entry:375 ; CHECK-LABEL: name: implicitdef_nxv2i64376 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF377 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 2 x s64>)378 ; CHECK-NEXT: PseudoRET implicit $v8m2379 %0:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF380 $v8m2 = COPY %0(<vscale x 2 x s64>)381 PseudoRET implicit $v8m2382...383---384name: implicitdef_nxv4i64385legalized: false386tracksRegLiveness: true387body: |388 bb.0.entry:389 ; CHECK-LABEL: name: implicitdef_nxv4i64390 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF391 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 4 x s64>)392 ; CHECK-NEXT: PseudoRET implicit $v8m4393 %0:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF394 $v8m4 = COPY %0(<vscale x 4 x s64>)395 PseudoRET implicit $v8m4396...397---398name: implicitdef_nxv8i64399legalized: false400tracksRegLiveness: true401body: |402 bb.0.entry:403 ; CHECK-LABEL: name: implicitdef_nxv8i64404 ; CHECK: [[DEF:%[0-9]+]]:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF405 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 8 x s64>)406 ; CHECK-NEXT: PseudoRET implicit $v8m8407 %0:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF408 $v8m8 = COPY %0(<vscale x 8 x s64>)409 PseudoRET implicit $v8m8410...411