brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.5 KiB · a8cd974 Raw
430 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX6  %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX9  %s4 5# Can't narrow this; need known bits6---7name: shl_s64_by_2_from_anyext_s328tracksRegLiveness: true9legalized: true10body:             |11  bb.0:12    liveins: $vgpr013 14    ; GFX6-LABEL: name: shl_s64_by_2_from_anyext_s3215    ; GFX6: liveins: $vgpr016    ; GFX6-NEXT: {{  $}}17    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr018    ; GFX6-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s32)19    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 220    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[ANYEXT]], [[C]](s32)21    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SHL]](s64)22    ;23    ; GFX9-LABEL: name: shl_s64_by_2_from_anyext_s3224    ; GFX9: liveins: $vgpr025    ; GFX9-NEXT: {{  $}}26    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr027    ; GFX9-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s32)28    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 229    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[ANYEXT]], [[C]](s32)30    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[SHL]](s64)31    %0:_(s32) = COPY $vgpr032    %1:_(s64) = G_ANYEXT %033    %2:_(s32) = G_CONSTANT i32 234    %3:_(s64) = G_SHL %1, %235    $vgpr0_vgpr1 = COPY %336...37 38# Can't narrow this; need known bits39---40name: shl_s64_by_2_from_sext_s3241tracksRegLiveness: true42legalized: true43body:             |44  bb.0:45    liveins: $vgpr046 47    ; GFX6-LABEL: name: shl_s64_by_2_from_sext_s3248    ; GFX6: liveins: $vgpr049    ; GFX6-NEXT: {{  $}}50    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr051    ; GFX6-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s32)52    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 253    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[SEXT]], [[C]](s32)54    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SHL]](s64)55    ;56    ; GFX9-LABEL: name: shl_s64_by_2_from_sext_s3257    ; GFX9: liveins: $vgpr058    ; GFX9-NEXT: {{  $}}59    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr060    ; GFX9-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s32)61    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 262    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[SEXT]], [[C]](s32)63    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[SHL]](s64)64    %0:_(s32) = COPY $vgpr065    %1:_(s64) = G_SEXT %066    %2:_(s32) = G_CONSTANT i32 267    %3:_(s64) = G_SHL %1, %268    $vgpr0_vgpr1 = COPY %369...70 71# Can't narrow this; need known bits72---73name: shl_s64_by_2_from_zext_s3274tracksRegLiveness: true75legalized: true76body:             |77  bb.0:78    liveins: $vgpr079 80    ; GFX6-LABEL: name: shl_s64_by_2_from_zext_s3281    ; GFX6: liveins: $vgpr082    ; GFX6-NEXT: {{  $}}83    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr084    ; GFX6-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)85    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 286    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[ZEXT]], [[C]](s32)87    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SHL]](s64)88    ;89    ; GFX9-LABEL: name: shl_s64_by_2_from_zext_s3290    ; GFX9: liveins: $vgpr091    ; GFX9-NEXT: {{  $}}92    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr093    ; GFX9-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)94    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 295    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[ZEXT]], [[C]](s32)96    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[SHL]](s64)97    %0:_(s32) = COPY $vgpr098    %1:_(s64) = G_ZEXT %099    %2:_(s32) = G_CONSTANT i32 2100    %3:_(s64) = G_SHL %1, %2101    $vgpr0_vgpr1 = COPY %3102...103 104---105name: narrow_shl_s64_by_2_from_anyext_s32106tracksRegLiveness: true107legalized: true108body:             |109  bb.0:110    liveins: $vgpr0111 112    ; GFX6-LABEL: name: narrow_shl_s64_by_2_from_anyext_s32113    ; GFX6: liveins: $vgpr0114    ; GFX6-NEXT: {{  $}}115    ; GFX6-NEXT: %narrow:_(s32) = COPY $vgpr0116    ; GFX6-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823117    ; GFX6-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30118    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2119    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)120    ; GFX6-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)121    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)122    ;123    ; GFX9-LABEL: name: narrow_shl_s64_by_2_from_anyext_s32124    ; GFX9: liveins: $vgpr0125    ; GFX9-NEXT: {{  $}}126    ; GFX9-NEXT: %narrow:_(s32) = COPY $vgpr0127    ; GFX9-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823128    ; GFX9-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30129    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2130    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)131    ; GFX9-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)132    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)133    %narrow:_(s32) = COPY $vgpr0134    %masklow30:_(s32) = G_CONSTANT i32 1073741823135    %masked:_(s32) = G_AND %narrow, %masklow30136    %extend:_(s64) = G_ANYEXT %masked137    %shiftamt:_(s32) = G_CONSTANT i32 2138    %shl:_(s64) = G_SHL %extend, %shiftamt139    $vgpr0_vgpr1 = COPY %shl140...141 142---143name: narrow_shl_s64_by_2_from_zext_s32144tracksRegLiveness: true145legalized: true146body:             |147  bb.0:148    liveins: $vgpr0149 150    ; GFX6-LABEL: name: narrow_shl_s64_by_2_from_zext_s32151    ; GFX6: liveins: $vgpr0152    ; GFX6-NEXT: {{  $}}153    ; GFX6-NEXT: %narrow:_(s32) = COPY $vgpr0154    ; GFX6-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823155    ; GFX6-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30156    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2157    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)158    ; GFX6-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)159    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)160    ;161    ; GFX9-LABEL: name: narrow_shl_s64_by_2_from_zext_s32162    ; GFX9: liveins: $vgpr0163    ; GFX9-NEXT: {{  $}}164    ; GFX9-NEXT: %narrow:_(s32) = COPY $vgpr0165    ; GFX9-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823166    ; GFX9-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30167    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2168    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)169    ; GFX9-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)170    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)171    %narrow:_(s32) = COPY $vgpr0172    %masklow30:_(s32) = G_CONSTANT i32 1073741823173    %masked:_(s32) = G_AND %narrow, %masklow30174    %extend:_(s64) = G_ZEXT %masked175    %shiftamt:_(s32) = G_CONSTANT i32 2176    %shl:_(s64) = G_SHL %extend, %shiftamt177    $vgpr0_vgpr1 = COPY %shl178...179 180---181name: narrow_shl_s64_by_2_from_sext_s32182tracksRegLiveness: true183legalized: true184body:             |185  bb.0:186    liveins: $vgpr0187 188    ; GFX6-LABEL: name: narrow_shl_s64_by_2_from_sext_s32189    ; GFX6: liveins: $vgpr0190    ; GFX6-NEXT: {{  $}}191    ; GFX6-NEXT: %narrow:_(s32) = COPY $vgpr0192    ; GFX6-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823193    ; GFX6-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30194    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2195    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)196    ; GFX6-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)197    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)198    ;199    ; GFX9-LABEL: name: narrow_shl_s64_by_2_from_sext_s32200    ; GFX9: liveins: $vgpr0201    ; GFX9-NEXT: {{  $}}202    ; GFX9-NEXT: %narrow:_(s32) = COPY $vgpr0203    ; GFX9-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823204    ; GFX9-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30205    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2206    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)207    ; GFX9-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)208    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)209    %narrow:_(s32) = COPY $vgpr0210    %masklow30:_(s32) = G_CONSTANT i32 1073741823211    %masked:_(s32) = G_AND %narrow, %masklow30212    %extend:_(s64) = G_SEXT %masked213    %shiftamt:_(s32) = G_CONSTANT i32 2214    %shl:_(s64) = G_SHL %extend, %shiftamt215    $vgpr0_vgpr1 = COPY %shl216...217 218---219name: narrow_shl_s64_by_2_from_zext_s32_lookthrough_amount220tracksRegLiveness: true221legalized: true222body:             |223  bb.0:224    liveins: $vgpr0225 226    ; GFX6-LABEL: name: narrow_shl_s64_by_2_from_zext_s32_lookthrough_amount227    ; GFX6: liveins: $vgpr0228    ; GFX6-NEXT: {{  $}}229    ; GFX6-NEXT: %narrow:_(s32) = COPY $vgpr0230    ; GFX6-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823231    ; GFX6-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30232    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2233    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)234    ; GFX6-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)235    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)236    ;237    ; GFX9-LABEL: name: narrow_shl_s64_by_2_from_zext_s32_lookthrough_amount238    ; GFX9: liveins: $vgpr0239    ; GFX9-NEXT: {{  $}}240    ; GFX9-NEXT: %narrow:_(s32) = COPY $vgpr0241    ; GFX9-NEXT: %masklow30:_(s32) = G_CONSTANT i32 1073741823242    ; GFX9-NEXT: %masked:_(s32) = G_AND %narrow, %masklow30243    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2244    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %masked, [[C]](s32)245    ; GFX9-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s32)246    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)247    %narrow:_(s32) = COPY $vgpr0248    %masklow30:_(s32) = G_CONSTANT i32 1073741823249    %masked:_(s32) = G_AND %narrow, %masklow30250    %extend:_(s64) = G_ZEXT %masked251    %shiftamt64:_(s64) = G_CONSTANT i64 2252    %shiftamt:_(s32) = G_TRUNC %shiftamt64253    %shl:_(s64) = G_SHL %extend, %shiftamt254    $vgpr0_vgpr1 = COPY %shl255...256 257# Can't introduce a 16-bit shift before gfx8258---259name: narrow_shl_s32_by_2_from_zext_s16260tracksRegLiveness: true261legalized: true262body:             |263  bb.0:264    liveins: $vgpr0265 266    ; GFX6-LABEL: name: narrow_shl_s32_by_2_from_zext_s16267    ; GFX6: liveins: $vgpr0268    ; GFX6-NEXT: {{  $}}269    ; GFX6-NEXT: %argument:_(s32) = COPY $vgpr0270    ; GFX6-NEXT: %narrow:_(s16) = G_TRUNC %argument(s32)271    ; GFX6-NEXT: %masklow14:_(s16) = G_CONSTANT i16 16383272    ; GFX6-NEXT: %masked:_(s16) = G_AND %narrow, %masklow14273    ; GFX6-NEXT: %extend:_(s32) = G_ZEXT %masked(s16)274    ; GFX6-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 2275    ; GFX6-NEXT: %shl:_(s32) = G_SHL %extend, %shiftamt(s32)276    ; GFX6-NEXT: $vgpr0 = COPY %shl(s32)277    ;278    ; GFX9-LABEL: name: narrow_shl_s32_by_2_from_zext_s16279    ; GFX9: liveins: $vgpr0280    ; GFX9-NEXT: {{  $}}281    ; GFX9-NEXT: %argument:_(s32) = COPY $vgpr0282    ; GFX9-NEXT: %narrow:_(s16) = G_TRUNC %argument(s32)283    ; GFX9-NEXT: %masklow14:_(s16) = G_CONSTANT i16 16383284    ; GFX9-NEXT: %masked:_(s16) = G_AND %narrow, %masklow14285    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 2286    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s16) = G_SHL %masked, [[C]](s16)287    ; GFX9-NEXT: %shl:_(s32) = G_ZEXT [[SHL]](s16)288    ; GFX9-NEXT: $vgpr0 = COPY %shl(s32)289    %argument:_(s32) = COPY $vgpr0290    %narrow:_(s16) = G_TRUNC %argument291    %masklow14:_(s16) = G_CONSTANT i16 16383292    %masked:_(s16) = G_AND %narrow, %masklow14293    %extend:_(s32) = G_ZEXT %masked294    %shiftamt:_(s32) = G_CONSTANT i32 2295    %shl:_(s32) = G_SHL %extend, %shiftamt296    $vgpr0 = COPY %shl297...298 299---300name: narrow_shl_s64_by_2_from_zext_s16301tracksRegLiveness: true302legalized: true303body:             |304  bb.0:305    liveins: $vgpr0306 307    ; GFX6-LABEL: name: narrow_shl_s64_by_2_from_zext_s16308    ; GFX6: liveins: $vgpr0309    ; GFX6-NEXT: {{  $}}310    ; GFX6-NEXT: %argument:_(s32) = COPY $vgpr0311    ; GFX6-NEXT: %narrow:_(s16) = G_TRUNC %argument(s32)312    ; GFX6-NEXT: %masklow14:_(s16) = G_CONSTANT i16 16383313    ; GFX6-NEXT: %masked:_(s16) = G_AND %narrow, %masklow14314    ; GFX6-NEXT: %extend:_(s64) = G_ZEXT %masked(s16)315    ; GFX6-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 2316    ; GFX6-NEXT: %shl:_(s64) = G_SHL %extend, %shiftamt(s32)317    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)318    ;319    ; GFX9-LABEL: name: narrow_shl_s64_by_2_from_zext_s16320    ; GFX9: liveins: $vgpr0321    ; GFX9-NEXT: {{  $}}322    ; GFX9-NEXT: %argument:_(s32) = COPY $vgpr0323    ; GFX9-NEXT: %narrow:_(s16) = G_TRUNC %argument(s32)324    ; GFX9-NEXT: %masklow14:_(s16) = G_CONSTANT i16 16383325    ; GFX9-NEXT: %masked:_(s16) = G_AND %narrow, %masklow14326    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 2327    ; GFX9-NEXT: [[SHL:%[0-9]+]]:_(s16) = G_SHL %masked, [[C]](s16)328    ; GFX9-NEXT: %shl:_(s64) = G_ZEXT [[SHL]](s16)329    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY %shl(s64)330    %argument:_(s32) = COPY $vgpr0331    %narrow:_(s16) = G_TRUNC %argument332    %masklow14:_(s16) = G_CONSTANT i16 16383333    %masked:_(s16) = G_AND %narrow, %masklow14334    %extend:_(s64) = G_ZEXT %masked335    %shiftamt:_(s32) = G_CONSTANT i32 2336    %shl:_(s64) = G_SHL %extend, %shiftamt337    $vgpr0_vgpr1 = COPY %shl338...339 340---341name: do_not_shl_s32_zero_by_16_from_zext_s16342tracksRegLiveness: true343legalized: true344 345body:             |346  bb.0:347    liveins: $vgpr0348    ; GFX6-LABEL: name: do_not_shl_s32_zero_by_16_from_zext_s16349    ; GFX6: liveins: $vgpr0350    ; GFX6-NEXT: {{  $}}351    ; GFX6-NEXT: %extend:_(s32) = G_CONSTANT i32 0352    ; GFX6-NEXT: $vgpr0 = COPY %extend(s32)353    ;354    ; GFX9-LABEL: name: do_not_shl_s32_zero_by_16_from_zext_s16355    ; GFX9: liveins: $vgpr0356    ; GFX9-NEXT: {{  $}}357    ; GFX9-NEXT: %extend:_(s32) = G_CONSTANT i32 0358    ; GFX9-NEXT: $vgpr0 = COPY %extend(s32)359    %zero:_(s16) = G_CONSTANT i16 0360    %extend:_(s32) = G_ZEXT %zero:_(s16)361    %shiftamt:_(s16) = G_CONSTANT i16 16362    %shl:_(s32) = G_SHL %extend, %shiftamt(s16)363    $vgpr0 = COPY %shl364...365 366---367name: do_not_shl_v2s32_zero_by_16_from_zext_v2s16368tracksRegLiveness: true369legalized: true370 371body:             |372  bb.0:373    liveins: $vgpr0374    ; GFX6-LABEL: name: do_not_shl_v2s32_zero_by_16_from_zext_v2s16375    ; GFX6: liveins: $vgpr0376    ; GFX6-NEXT: {{  $}}377    ; GFX6-NEXT: %6:_(s32) = G_CONSTANT i32 0378    ; GFX6-NEXT: %shl:_(<2 x s32>) = G_BUILD_VECTOR %6(s32), %6(s32)379    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY %shl(<2 x s32>)380    ;381    ; GFX9-LABEL: name: do_not_shl_v2s32_zero_by_16_from_zext_v2s16382    ; GFX9: liveins: $vgpr0383    ; GFX9-NEXT: {{  $}}384    ; GFX9-NEXT: %6:_(s32) = G_CONSTANT i32 0385    ; GFX9-NEXT: %shl:_(<2 x s32>) = G_BUILD_VECTOR %6(s32), %6(s32)386    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY %shl(<2 x s32>)387    %zero:_(s16) = G_CONSTANT i16 0388    %zerovector:_(<2 x s16>) = G_BUILD_VECTOR %zero, %zero:_(s16)389    %shiftamt:_(s16) = G_CONSTANT i16 16390    %shiftamtvector:_(<2 x s16>) = G_BUILD_VECTOR %shiftamt, %shiftamt:_(s16)391    %extend:_(<2 x s32>) = G_ZEXT %zerovector:_(<2 x s16>)392    %shl:_(<2 x s32>) = G_SHL %extend, %shiftamtvector393    $vgpr0_vgpr1 = COPY %shl394...395 396---397name: do_not_shl_s32_by_16_from_zext_s16398tracksRegLiveness: true399legalized: true400 401body:             |402  bb.0:403    liveins: $vgpr0404    ; GFX6-LABEL: name: do_not_shl_s32_by_16_from_zext_s16405    ; GFX6: liveins: $vgpr0406    ; GFX6-NEXT: {{  $}}407    ; GFX6-NEXT: %argument:_(s32) = COPY $vgpr0408    ; GFX6-NEXT: %truncate:_(s16) = G_TRUNC %argument(s32)409    ; GFX6-NEXT: %shiftamt:_(s16) = G_CONSTANT i16 16410    ; GFX6-NEXT: %extend:_(s32) = G_ZEXT %truncate(s16)411    ; GFX6-NEXT: %shl:_(s32) = G_SHL %extend, %shiftamt(s16)412    ; GFX6-NEXT: $vgpr0 = COPY %shl(s32)413    ;414    ; GFX9-LABEL: name: do_not_shl_s32_by_16_from_zext_s16415    ; GFX9: liveins: $vgpr0416    ; GFX9-NEXT: {{  $}}417    ; GFX9-NEXT: %argument:_(s32) = COPY $vgpr0418    ; GFX9-NEXT: %truncate:_(s16) = G_TRUNC %argument(s32)419    ; GFX9-NEXT: %shiftamt:_(s16) = G_CONSTANT i16 16420    ; GFX9-NEXT: %extend:_(s32) = G_ZEXT %truncate(s16)421    ; GFX9-NEXT: %shl:_(s32) = G_SHL %extend, %shiftamt(s16)422    ; GFX9-NEXT: $vgpr0 = COPY %shl(s32)423    %argument:_(s32) = COPY $vgpr0424    %truncate:_(s16) = G_TRUNC %argument:_(s32)425    %shiftamt:_(s16) = G_CONSTANT i16 16426    %extend:_(s32) = G_ZEXT %truncate:_(s16)427    %shl:_(s32) = G_SHL %extend, %shiftamt(s16)428    $vgpr0 = COPY %shl429...430