648 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck %s3# RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck %s4 5---6name: test_implicit_def_s17body: |8 bb.0:9 10 ; CHECK-LABEL: name: test_implicit_def_s111 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF12 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)13 %0:_(s1) = G_IMPLICIT_DEF14 %1:_(s32) = G_ANYEXT %015 $vgpr0 = COPY %116...17 18---19name: test_implicit_def_s720body: |21 bb.0:22 23 ; CHECK-LABEL: name: test_implicit_def_s724 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF25 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)26 %0:_(s7) = G_IMPLICIT_DEF27 %1:_(s32) = G_ANYEXT %028 $vgpr0 = COPY %129...30 31---32name: test_implicit_def_s833body: |34 bb.0:35 36 ; CHECK-LABEL: name: test_implicit_def_s837 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF38 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)39 %0:_(s8) = G_IMPLICIT_DEF40 %1:_(s32) = G_ANYEXT %041 $vgpr0 = COPY %142...43 44---45name: test_implicit_def_s1646body: |47 bb.0:48 49 ; CHECK-LABEL: name: test_implicit_def_s1650 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF51 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)52 %0:_(s16) = G_IMPLICIT_DEF53 %1:_(s32) = G_ANYEXT %054 $vgpr0 = COPY %155...56 57---58name: test_implicit_def_s3259body: |60 bb.0:61 62 ; CHECK-LABEL: name: test_implicit_def_s3263 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF64 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)65 %0:_(s32) = G_IMPLICIT_DEF66 $vgpr0 = COPY %067...68 69---70name: test_implicit_def_4871body: |72 bb.0:73 74 ; CHECK-LABEL: name: test_implicit_def_4875 ; CHECK: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF76 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](s64)77 %0:_(s48) = G_IMPLICIT_DEF78 %1:_(s64) = G_ANYEXT %079 $vgpr0_vgpr1 = COPY %180...81 82---83name: test_implicit_def_s6484body: |85 bb.0:86 87 ; CHECK-LABEL: name: test_implicit_def_s6488 ; CHECK: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF89 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](s64)90 %0:_(s64) = G_IMPLICIT_DEF91 $vgpr0_vgpr1 = COPY %092...93 94---95name: test_implicit_def_s6596body: |97 bb.0:98 99 ; CHECK-LABEL: name: test_implicit_def_s65100 ; CHECK: [[DEF:%[0-9]+]]:_(s128) = G_IMPLICIT_DEF101 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s96) = G_TRUNC [[DEF]](s128)102 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[TRUNC]](s96)103 %0:_(s65) = G_IMPLICIT_DEF104 %1:_(s96) = G_ANYEXT %0105 $vgpr0_vgpr1_vgpr2 = COPY %1106...107 108---109name: test_implicit_def_s128110body: |111 bb.0:112 113 ; CHECK-LABEL: name: test_implicit_def_s128114 ; CHECK: [[DEF:%[0-9]+]]:_(s128) = G_IMPLICIT_DEF115 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DEF]](s128)116 %0:_(s128) = G_IMPLICIT_DEF117 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %0118...119 120---121name: test_implicit_def_256122body: |123 bb.0:124 125 ; CHECK-LABEL: name: test_implicit_def_256126 ; CHECK: [[DEF:%[0-9]+]]:_(s256) = G_IMPLICIT_DEF127 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[DEF]](s256)128 %0:_(s256) = G_IMPLICIT_DEF129 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %0130...131 132---133name: test_implicit_def_s448134body: |135 bb.0:136 137 ; CHECK-LABEL: name: test_implicit_def_s448138 ; CHECK: [[DEF:%[0-9]+]]:_(s512) = G_IMPLICIT_DEF139 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s448) = G_TRUNC [[DEF]](s512)140 ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[TRUNC]](s448), 0141 ; CHECK-NEXT: $vgpr0 = COPY [[EXTRACT]](s32)142 %0:_(s448) = G_IMPLICIT_DEF143 %1:_(s32) = G_EXTRACT %0, 0144 $vgpr0 = COPY %1145...146 147---148name: test_implicit_def_s512149body: |150 bb.0:151 152 ; CHECK-LABEL: name: test_implicit_def_s512153 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF154 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)155 %0:_(s512) = G_IMPLICIT_DEF156 %1:_(s32) = G_EXTRACT %0, 0157 $vgpr0 = COPY %1158...159 160---161name: test_implicit_def_s1024162body: |163 bb.0:164 165 ; CHECK-LABEL: name: test_implicit_def_s1024166 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF167 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)168 %0:_(s1024) = G_IMPLICIT_DEF169 %1:_(s32) = G_EXTRACT %0, 0170 $vgpr0 = COPY %1171...172 173---174name: test_implicit_def_s1056175body: |176 bb.0:177 178 ; CHECK-LABEL: name: test_implicit_def_s1056179 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF180 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)181 %0:_(s1056) = G_IMPLICIT_DEF182 %1:_(s32) = G_TRUNC %0183 $vgpr0 = COPY %1184...185 186---187name: test_implicit_def_s2048188body: |189 bb.0:190 191 ; CHECK-LABEL: name: test_implicit_def_s2048192 ; CHECK: [[DEF:%[0-9]+]]:_(s1024) = G_IMPLICIT_DEF193 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[DEF]](s1024)194 ; CHECK-NEXT: $vgpr0 = COPY [[TRUNC]](s32)195 %0:_(s2048) = G_IMPLICIT_DEF196 %1:_(s32) = G_TRUNC %0197 $vgpr0 = COPY %1198...199 200---201name: test_implicit_def_v2s32202body: |203 bb.0:204 205 ; CHECK-LABEL: name: test_implicit_def_v2s32206 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s32>) = G_IMPLICIT_DEF207 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](<2 x s32>)208 %0:_(<2 x s32>) = G_IMPLICIT_DEF209 $vgpr0_vgpr1 = COPY %0210...211 212---213name: test_implicit_def_v3s32214body: |215 bb.0:216 217 ; CHECK-LABEL: name: test_implicit_def_v3s32218 ; CHECK: [[DEF:%[0-9]+]]:_(<3 x s32>) = G_IMPLICIT_DEF219 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[DEF]](<3 x s32>)220 %0:_(<3 x s32>) = G_IMPLICIT_DEF221 $vgpr0_vgpr1_vgpr2 = COPY %0222...223 224---225name: test_implicit_def_v4s32226body: |227 bb.0:228 229 ; CHECK-LABEL: name: test_implicit_def_v4s32230 ; CHECK: [[DEF:%[0-9]+]]:_(<4 x s32>) = G_IMPLICIT_DEF231 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DEF]](<4 x s32>)232 %0:_(<4 x s32>) = G_IMPLICIT_DEF233 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %0234...235 236---237name: test_implicit_def_v5s32238body: |239 bb.0:240 241 ; CHECK-LABEL: name: test_implicit_def_v5s32242 ; CHECK: [[DEF:%[0-9]+]]:_(<5 x s32>) = G_IMPLICIT_DEF243 ; CHECK-NEXT: S_NOP 0, implicit [[DEF]](<5 x s32>)244 %0:_(<5 x s32>) = G_IMPLICIT_DEF245 S_NOP 0, implicit %0246...247 248---249name: test_implicit_def_v6s32250body: |251 bb.0:252 253 ; CHECK-LABEL: name: test_implicit_def_v6s32254 ; CHECK: [[DEF:%[0-9]+]]:_(<6 x s32>) = G_IMPLICIT_DEF255 ; CHECK-NEXT: S_NOP 0, implicit [[DEF]](<6 x s32>)256 %0:_(<6 x s32>) = G_IMPLICIT_DEF257 S_NOP 0, implicit %0258...259 260---261name: test_implicit_def_v7s32262body: |263 bb.0:264 265 ; CHECK-LABEL: name: test_implicit_def_v7s32266 ; CHECK: [[DEF:%[0-9]+]]:_(<7 x s32>) = G_IMPLICIT_DEF267 ; CHECK-NEXT: S_NOP 0, implicit [[DEF]](<7 x s32>)268 %0:_(<7 x s32>) = G_IMPLICIT_DEF269 S_NOP 0, implicit %0270...271 272---273name: test_implicit_def_v8s32274body: |275 bb.0:276 277 ; CHECK-LABEL: name: test_implicit_def_v8s32278 ; CHECK: [[DEF:%[0-9]+]]:_(<8 x s32>) = G_IMPLICIT_DEF279 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[DEF]](<8 x s32>)280 %0:_(<8 x s32>) = G_IMPLICIT_DEF281 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %0282...283 284---285name: test_implicit_def_v16s32286body: |287 bb.0:288 289 ; CHECK-LABEL: name: test_implicit_def_v16s32290 ; CHECK: [[DEF:%[0-9]+]]:_(<16 x s32>) = G_IMPLICIT_DEF291 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[DEF]](<16 x s32>)292 %0:_(<16 x s32>) = G_IMPLICIT_DEF293 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %0294...295 296---297name: test_implicit_def_v32s32298body: |299 bb.0:300 301 ; CHECK-LABEL: name: test_implicit_def_v32s32302 ; CHECK: [[DEF:%[0-9]+]]:_(<32 x s32>) = G_IMPLICIT_DEF303 ; CHECK-NEXT: S_NOP 0, implicit [[DEF]](<32 x s32>)304 %0:_(<32 x s32>) = G_IMPLICIT_DEF305 S_NOP 0, implicit %0306...307 308---309name: test_implicit_def_v33s32310body: |311 bb.0:312 liveins: $vgpr0_vgpr1313 314 ; CHECK-LABEL: name: test_implicit_def_v33s32315 ; CHECK: liveins: $vgpr0_vgpr1316 ; CHECK-NEXT: {{ $}}317 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF318 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1319 ; CHECK-NEXT: G_STORE [[DEF]](s32), [[COPY]](p1) :: (volatile store (s32), addrspace 1)320 ; CHECK-NEXT: G_STORE [[DEF]](s32), [[COPY]](p1) :: (volatile store (s32), addrspace 1)321 %0:_(<33 x s32>) = G_IMPLICIT_DEF322 %1:_(s32), %2:_(s32), %3:_(s32), %4:_(s32), %5:_(s32), %6:_(s32), %7:_(s32), %8:_(s32), %9:_(s32), %10:_(s32), %11:_(s32), %12:_(s32), %13:_(s32), %14:_(s32), %15:_(s32), %16:_(s32), %17:_(s32), %18:_(s32), %19:_(s32), %20:_(s32), %21:_(s32), %22:_(s32), %23:_(s32), %24:_(s32), %25:_(s32), %26:_(s32), %27:_(s32), %28:_(s32), %29:_(s32), %30:_(s32), %31:_(s32), %32:_(s32), %33:_(s32) = G_UNMERGE_VALUES %0323 %34:_(p1) = COPY $vgpr0_vgpr1324 G_STORE %1, %34 :: (volatile store (s32), align 4, addrspace 1)325 G_STORE %33, %34 :: (volatile store (s32), align 4, addrspace 1)326 327...328 329---330name: test_implicit_def_v64s32331body: |332 bb.0:333 334 ; CHECK-LABEL: name: test_implicit_def_v64s32335 ; CHECK: [[DEF:%[0-9]+]]:_(<32 x s32>) = G_IMPLICIT_DEF336 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<64 x s32>) = G_CONCAT_VECTORS [[DEF]](<32 x s32>), [[DEF]](<32 x s32>)337 ; CHECK-NEXT: S_NOP 0, implicit [[CONCAT_VECTORS]](<64 x s32>), implicit [[DEF]](<32 x s32>)338 %0:_(<64 x s32>) = G_IMPLICIT_DEF339 %1:_(<32 x s32>), %2:_(<32 x s32>) = G_UNMERGE_VALUES %0340 S_NOP 0, implicit %0, implicit %1341...342 343---344name: test_implicit_def_v2s1345body: |346 bb.0:347 348 ; CHECK-LABEL: name: test_implicit_def_v2s1349 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s32>) = G_IMPLICIT_DEF350 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](<2 x s32>)351 %0:_(<2 x s1>) = G_IMPLICIT_DEF352 %1:_(<2 x s32>) = G_ANYEXT %0353 $vgpr0_vgpr1 = COPY %1354...355 356---357name: test_implicit_def_v3s1358body: |359 bb.0:360 361 ; CHECK-LABEL: name: test_implicit_def_v3s1362 ; CHECK: [[DEF:%[0-9]+]]:_(<3 x s32>) = G_IMPLICIT_DEF363 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[DEF]](<3 x s32>)364 %0:_(<3 x s1>) = G_IMPLICIT_DEF365 %1:_(<3 x s32>) = G_ANYEXT %0366 $vgpr0_vgpr1_vgpr2 = COPY %1367...368 369---370name: test_implicit_def_v2s8371body: |372 bb.0:373 374 ; CHECK-LABEL: name: test_implicit_def_v2s8375 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s32>) = G_IMPLICIT_DEF376 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](<2 x s32>)377 %0:_(<2 x s8>) = G_IMPLICIT_DEF378 %1:_(<2 x s32>) = G_ANYEXT %0379 $vgpr0_vgpr1 = COPY %1380...381 382---383name: test_implicit_def_v3s8384body: |385 bb.0:386 387 ; CHECK-LABEL: name: test_implicit_def_v3s8388 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF389 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[DEF]](s32), [[DEF]](s32), [[DEF]](s32)390 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)391 %0:_(<3 x s8>) = G_IMPLICIT_DEF392 %1:_(<3 x s32>) = G_ANYEXT %0393 $vgpr0_vgpr1_vgpr2 = COPY %1394...395 396---397name: test_implicit_def_v2s16398body: |399 bb.0:400 401 ; CHECK-LABEL: name: test_implicit_def_v2s16402 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s16>) = G_IMPLICIT_DEF403 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](<2 x s16>)404 %0:_(<2 x s16>) = G_IMPLICIT_DEF405 $vgpr0 = COPY %0406...407 408---409name: test_implicit_def_v3s16410body: |411 bb.0:412 413 ; CHECK-LABEL: name: test_implicit_def_v3s16414 ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0415 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16416 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)417 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL]]418 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)419 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)420 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL1]]421 ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)422 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>)423 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)424 %0:_(<3 x s16>) = G_IMPLICIT_DEF425 %1:_(<4 x s16>) = G_IMPLICIT_DEF426 %2:_(<4 x s16>) = G_INSERT %1, %0, 0427 $vgpr0_vgpr1 = COPY %2428...429 430---431name: test_implicit_def_v4s16432body: |433 bb.0:434 435 ; CHECK-LABEL: name: test_implicit_def_v4s16436 ; CHECK: [[DEF:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF437 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](<4 x s16>)438 %0:_(<4 x s16>) = G_IMPLICIT_DEF439 $vgpr0_vgpr1 = COPY %0440...441 442---443name: test_implicit_def_v5s16444body: |445 bb.0:446 447 ; CHECK-LABEL: name: test_implicit_def_v5s16448 ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0449 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16450 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)451 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL]]452 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)453 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)454 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL1]]455 ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)456 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)457 ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL2]]458 ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR2]](s32)459 ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)460 ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL3]]461 ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR3]](s32)462 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BITCAST2]](<2 x s16>), [[BITCAST3]](<2 x s16>)463 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<8 x s16>)464 %0:_(<5 x s16>) = G_IMPLICIT_DEF465 %1:_(<8 x s16>) = G_IMPLICIT_DEF466 %2:_(<8 x s16>) = G_INSERT %1, %0, 0467 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2468...469 470---471name: test_implicit_def_v6s16472body: |473 bb.0:474 475 ; CHECK-LABEL: name: test_implicit_def_v6s16476 ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0477 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16478 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)479 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL]]480 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)481 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)482 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL1]]483 ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)484 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)485 ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL2]]486 ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR2]](s32)487 ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)488 ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL3]]489 ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR3]](s32)490 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BITCAST2]](<2 x s16>), [[BITCAST3]](<2 x s16>)491 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<8 x s16>)492 %0:_(<6 x s16>) = G_IMPLICIT_DEF493 %1:_(<8 x s16>) = G_IMPLICIT_DEF494 %2:_(<8 x s16>) = G_INSERT %1, %0, 0495 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2496...497 498---499name: test_implicit_def_v8s16500body: |501 bb.0:502 503 ; CHECK-LABEL: name: test_implicit_def_v8s16504 ; CHECK: [[DEF:%[0-9]+]]:_(<8 x s16>) = G_IMPLICIT_DEF505 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DEF]](<8 x s16>)506 %0:_(<8 x s16>) = G_IMPLICIT_DEF507 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %0508...509 510---511name: test_implicit_def_v2s64512body: |513 bb.0:514 515 ; CHECK-LABEL: name: test_implicit_def_v2s64516 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s64>) = G_IMPLICIT_DEF517 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DEF]](<2 x s64>)518 %0:_(<2 x s64>) = G_IMPLICIT_DEF519 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %0520...521 522---523name: test_implicit_def_v4s8524body: |525 bb.0:526 527 ; CHECK-LABEL: name: test_implicit_def_v4s8528 ; CHECK: [[DEF:%[0-9]+]]:_(<4 x s32>) = G_IMPLICIT_DEF529 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[DEF]](<4 x s32>)530 ; CHECK-NEXT: $vgpr0 = COPY [[TRUNC]](<4 x s8>)531 %0:_(<4 x s8>) = G_IMPLICIT_DEF532 $vgpr0 = COPY %0533...534 535---536name: test_implicit_def_p0537body: |538 bb.0:539 540 ; CHECK-LABEL: name: test_implicit_def_p0541 ; CHECK: [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF542 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](p0)543 %0:_(p0) = G_IMPLICIT_DEF544 $vgpr0_vgpr1 = COPY %0545...546 547---548name: test_implicit_def_p1549body: |550 bb.0:551 552 ; CHECK-LABEL: name: test_implicit_def_p1553 ; CHECK: [[DEF:%[0-9]+]]:_(p1) = G_IMPLICIT_DEF554 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](p1)555 %0:_(p1) = G_IMPLICIT_DEF556 $vgpr0_vgpr1 = COPY %0557...558 559---560name: test_implicit_def_p2561body: |562 bb.0:563 564 ; CHECK-LABEL: name: test_implicit_def_p2565 ; CHECK: [[DEF:%[0-9]+]]:_(p2) = G_IMPLICIT_DEF566 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](p2)567 %0:_(p2) = G_IMPLICIT_DEF568 $vgpr0 = COPY %0569...570 571---572name: test_implicit_def_p3573body: |574 bb.0:575 576 ; CHECK-LABEL: name: test_implicit_def_p3577 ; CHECK: [[DEF:%[0-9]+]]:_(p3) = G_IMPLICIT_DEF578 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](p3)579 %0:_(p3) = G_IMPLICIT_DEF580 $vgpr0 = COPY %0581...582 583---584name: test_implicit_def_p4585body: |586 bb.0:587 588 ; CHECK-LABEL: name: test_implicit_def_p4589 ; CHECK: [[DEF:%[0-9]+]]:_(p4) = G_IMPLICIT_DEF590 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](p4)591 %0:_(p4) = G_IMPLICIT_DEF592 $vgpr0_vgpr1 = COPY %0593...594 595---596name: test_implicit_def_p5597body: |598 bb.0:599 600 ; CHECK-LABEL: name: test_implicit_def_p5601 ; CHECK: [[DEF:%[0-9]+]]:_(p5) = G_IMPLICIT_DEF602 ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](p5)603 %0:_(p5) = G_IMPLICIT_DEF604 $vgpr0 = COPY %0605...606 607---608name: test_implicit_def_p999609body: |610 bb.0:611 612 ; CHECK-LABEL: name: test_implicit_def_p999613 ; CHECK: [[DEF:%[0-9]+]]:_(p999) = G_IMPLICIT_DEF614 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[DEF]](p999)615 %0:_(p999) = G_IMPLICIT_DEF616 $vgpr0_vgpr1 = COPY %0617 618...619 620---621name: test_implicit_def_v2s1024622body: |623 bb.0:624 625 ; CHECK-LABEL: name: test_implicit_def_v2s1024626 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s1024>) = G_IMPLICIT_DEF627 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s1024), [[UV1:%[0-9]+]]:_(s1024) = G_UNMERGE_VALUES [[DEF]](<2 x s1024>)628 ; CHECK-NEXT: S_ENDPGM 0, implicit [[UV]](s1024), implicit [[UV1]](s1024)629 %0:_(<2 x s1024>) = G_IMPLICIT_DEF630 %1:_(s1024), %2:_(s1024) = G_UNMERGE_VALUES %0631 S_ENDPGM 0, implicit %1, implicit %2632...633 634---635 636name: test_implicit_def_v3s1024637body: |638 bb.0:639 640 ; CHECK-LABEL: name: test_implicit_def_v3s1024641 ; CHECK: [[DEF:%[0-9]+]]:_(<3 x s1024>) = G_IMPLICIT_DEF642 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s1024), [[UV1:%[0-9]+]]:_(s1024), [[UV2:%[0-9]+]]:_(s1024) = G_UNMERGE_VALUES [[DEF]](<3 x s1024>)643 ; CHECK-NEXT: S_ENDPGM 0, implicit [[UV]](s1024), implicit [[UV1]](s1024), implicit [[UV2]](s1024)644 %0:_(<3 x s1024>) = G_IMPLICIT_DEF645 %1:_(s1024), %2:_(s1024), %3:_(s1024) = G_UNMERGE_VALUES %0646 S_ENDPGM 0, implicit %1, implicit %2, implicit %3647...648