brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.9 KiB · fcbf0f0 Raw
433 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX6 %s3# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX7 %s4# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX8 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX10 %s7# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX10 %s8 9---10name: shl_s32_ss11legalized: true12regBankSelected: true13 14body: |15  bb.0:16    liveins: $sgpr0, $sgpr117    ; GFX6-LABEL: name: shl_s32_ss18    ; GFX6: liveins: $sgpr0, $sgpr119    ; GFX6-NEXT: {{  $}}20    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr021    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr122    ; GFX6-NEXT: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def dead $scc23    ; GFX6-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B32_]]24    ;25    ; GFX7-LABEL: name: shl_s32_ss26    ; GFX7: liveins: $sgpr0, $sgpr127    ; GFX7-NEXT: {{  $}}28    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr029    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr130    ; GFX7-NEXT: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def dead $scc31    ; GFX7-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B32_]]32    ;33    ; GFX8-LABEL: name: shl_s32_ss34    ; GFX8: liveins: $sgpr0, $sgpr135    ; GFX8-NEXT: {{  $}}36    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr037    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr138    ; GFX8-NEXT: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def dead $scc39    ; GFX8-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B32_]]40    ;41    ; GFX9-LABEL: name: shl_s32_ss42    ; GFX9: liveins: $sgpr0, $sgpr143    ; GFX9-NEXT: {{  $}}44    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr045    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr146    ; GFX9-NEXT: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def dead $scc47    ; GFX9-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B32_]]48    ;49    ; GFX10-LABEL: name: shl_s32_ss50    ; GFX10: liveins: $sgpr0, $sgpr151    ; GFX10-NEXT: {{  $}}52    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr053    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr154    ; GFX10-NEXT: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def dead $scc55    ; GFX10-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B32_]]56    %0:sgpr(s32) = COPY $sgpr057    %1:sgpr(s32) = COPY $sgpr158    %2:sgpr(s32) = G_SHL %0, %159    S_ENDPGM 0, implicit %260...61 62---63name: shl_s32_sv64legalized: true65regBankSelected: true66 67body: |68  bb.0:69    liveins: $sgpr0, $vgpr070    ; GFX6-LABEL: name: shl_s32_sv71    ; GFX6: liveins: $sgpr0, $vgpr072    ; GFX6-NEXT: {{  $}}73    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr074    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr075    ; GFX6-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec76    ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]77    ;78    ; GFX7-LABEL: name: shl_s32_sv79    ; GFX7: liveins: $sgpr0, $vgpr080    ; GFX7-NEXT: {{  $}}81    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr082    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr083    ; GFX7-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec84    ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]85    ;86    ; GFX8-LABEL: name: shl_s32_sv87    ; GFX8: liveins: $sgpr0, $vgpr088    ; GFX8-NEXT: {{  $}}89    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr090    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr091    ; GFX8-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec92    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]93    ;94    ; GFX9-LABEL: name: shl_s32_sv95    ; GFX9: liveins: $sgpr0, $vgpr096    ; GFX9-NEXT: {{  $}}97    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr098    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr099    ; GFX9-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec100    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]101    ;102    ; GFX10-LABEL: name: shl_s32_sv103    ; GFX10: liveins: $sgpr0, $vgpr0104    ; GFX10-NEXT: {{  $}}105    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0106    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0107    ; GFX10-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec108    ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]109    %0:sgpr(s32) = COPY $sgpr0110    %1:vgpr(s32) = COPY $vgpr0111    %2:vgpr(s32) = G_SHL %0, %1112    S_ENDPGM 0, implicit %2113...114 115---116name: shl_s32_vs117legalized: true118regBankSelected: true119 120body: |121  bb.0:122    liveins: $sgpr0, $vgpr0123    ; GFX6-LABEL: name: shl_s32_vs124    ; GFX6: liveins: $sgpr0, $vgpr0125    ; GFX6-NEXT: {{  $}}126    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0127    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0128    ; GFX6-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec129    ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]130    ;131    ; GFX7-LABEL: name: shl_s32_vs132    ; GFX7: liveins: $sgpr0, $vgpr0133    ; GFX7-NEXT: {{  $}}134    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0135    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0136    ; GFX7-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec137    ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]138    ;139    ; GFX8-LABEL: name: shl_s32_vs140    ; GFX8: liveins: $sgpr0, $vgpr0141    ; GFX8-NEXT: {{  $}}142    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0143    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0144    ; GFX8-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec145    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]146    ;147    ; GFX9-LABEL: name: shl_s32_vs148    ; GFX9: liveins: $sgpr0, $vgpr0149    ; GFX9-NEXT: {{  $}}150    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0151    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0152    ; GFX9-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec153    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]154    ;155    ; GFX10-LABEL: name: shl_s32_vs156    ; GFX10: liveins: $sgpr0, $vgpr0157    ; GFX10-NEXT: {{  $}}158    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0159    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0160    ; GFX10-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec161    ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]162    %0:vgpr(s32) = COPY $vgpr0163    %1:sgpr(s32) = COPY $sgpr0164    %2:vgpr(s32) = G_SHL %0, %1165    S_ENDPGM 0, implicit %2166...167 168---169name: shl_s32_vv170legalized: true171regBankSelected: true172 173body: |174  bb.0:175    liveins: $vgpr0, $vgpr1176    ; GFX6-LABEL: name: shl_s32_vv177    ; GFX6: liveins: $vgpr0, $vgpr1178    ; GFX6-NEXT: {{  $}}179    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0180    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1181    ; GFX6-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec182    ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]183    ;184    ; GFX7-LABEL: name: shl_s32_vv185    ; GFX7: liveins: $vgpr0, $vgpr1186    ; GFX7-NEXT: {{  $}}187    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0188    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1189    ; GFX7-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec190    ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]191    ;192    ; GFX8-LABEL: name: shl_s32_vv193    ; GFX8: liveins: $vgpr0, $vgpr1194    ; GFX8-NEXT: {{  $}}195    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0196    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1197    ; GFX8-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec198    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]199    ;200    ; GFX9-LABEL: name: shl_s32_vv201    ; GFX9: liveins: $vgpr0, $vgpr1202    ; GFX9-NEXT: {{  $}}203    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0204    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1205    ; GFX9-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec206    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]207    ;208    ; GFX10-LABEL: name: shl_s32_vv209    ; GFX10: liveins: $vgpr0, $vgpr1210    ; GFX10-NEXT: {{  $}}211    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0212    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1213    ; GFX10-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec214    ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]]215    %0:vgpr(s32) = COPY $vgpr0216    %1:vgpr(s32) = COPY $vgpr1217    %2:vgpr(s32) = G_SHL %0, %1218    S_ENDPGM 0, implicit %2219...220 221---222name: shl_s64_ss223legalized: true224regBankSelected: true225 226body: |227  bb.0:228    liveins: $sgpr0_sgpr1, $sgpr2229    ; GFX6-LABEL: name: shl_s64_ss230    ; GFX6: liveins: $sgpr0_sgpr1, $sgpr2231    ; GFX6-NEXT: {{  $}}232    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1233    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2234    ; GFX6-NEXT: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def dead $scc235    ; GFX6-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B64_]]236    ;237    ; GFX7-LABEL: name: shl_s64_ss238    ; GFX7: liveins: $sgpr0_sgpr1, $sgpr2239    ; GFX7-NEXT: {{  $}}240    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1241    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2242    ; GFX7-NEXT: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def dead $scc243    ; GFX7-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B64_]]244    ;245    ; GFX8-LABEL: name: shl_s64_ss246    ; GFX8: liveins: $sgpr0_sgpr1, $sgpr2247    ; GFX8-NEXT: {{  $}}248    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1249    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2250    ; GFX8-NEXT: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def dead $scc251    ; GFX8-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B64_]]252    ;253    ; GFX9-LABEL: name: shl_s64_ss254    ; GFX9: liveins: $sgpr0_sgpr1, $sgpr2255    ; GFX9-NEXT: {{  $}}256    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1257    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2258    ; GFX9-NEXT: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def dead $scc259    ; GFX9-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B64_]]260    ;261    ; GFX10-LABEL: name: shl_s64_ss262    ; GFX10: liveins: $sgpr0_sgpr1, $sgpr2263    ; GFX10-NEXT: {{  $}}264    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1265    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2266    ; GFX10-NEXT: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def dead $scc267    ; GFX10-NEXT: S_ENDPGM 0, implicit [[S_LSHL_B64_]]268    %0:sgpr(s64) = COPY $sgpr0_sgpr1269    %1:sgpr(s32) = COPY $sgpr2270    %2:sgpr(s64) = G_SHL %0, %1271    S_ENDPGM 0, implicit %2272...273 274---275name: shl_s64_sv276legalized: true277regBankSelected: true278 279body: |280  bb.0:281    liveins: $sgpr0_sgpr1, $vgpr0282    ; GFX6-LABEL: name: shl_s64_sv283    ; GFX6: liveins: $sgpr0_sgpr1, $vgpr0284    ; GFX6-NEXT: {{  $}}285    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1286    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0287    ; GFX6-NEXT: [[V_LSHL_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHL_B64_e64 [[COPY]], [[COPY1]], implicit $exec288    ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHL_B64_e64_]]289    ;290    ; GFX7-LABEL: name: shl_s64_sv291    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0292    ; GFX7-NEXT: {{  $}}293    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1294    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0295    ; GFX7-NEXT: [[V_LSHL_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHL_B64_e64 [[COPY]], [[COPY1]], implicit $exec296    ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHL_B64_e64_]]297    ;298    ; GFX8-LABEL: name: shl_s64_sv299    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0300    ; GFX8-NEXT: {{  $}}301    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1302    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0303    ; GFX8-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec304    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]305    ;306    ; GFX9-LABEL: name: shl_s64_sv307    ; GFX9: liveins: $sgpr0_sgpr1, $vgpr0308    ; GFX9-NEXT: {{  $}}309    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1310    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0311    ; GFX9-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec312    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]313    ;314    ; GFX10-LABEL: name: shl_s64_sv315    ; GFX10: liveins: $sgpr0_sgpr1, $vgpr0316    ; GFX10-NEXT: {{  $}}317    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1318    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0319    ; GFX10-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec320    ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]321    %0:sgpr(s64) = COPY $sgpr0_sgpr1322    %1:vgpr(s32) = COPY $vgpr0323    %2:vgpr(s64) = G_SHL %0, %1324    S_ENDPGM 0, implicit %2325...326 327---328name: shl_s64_vs329legalized: true330regBankSelected: true331 332body: |333  bb.0:334    liveins: $sgpr0, $vgpr0_vgpr1335    ; GFX6-LABEL: name: shl_s64_vs336    ; GFX6: liveins: $sgpr0, $vgpr0_vgpr1337    ; GFX6-NEXT: {{  $}}338    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1339    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0340    ; GFX6-NEXT: [[V_LSHL_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHL_B64_e64 [[COPY]], [[COPY1]], implicit $exec341    ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHL_B64_e64_]]342    ;343    ; GFX7-LABEL: name: shl_s64_vs344    ; GFX7: liveins: $sgpr0, $vgpr0_vgpr1345    ; GFX7-NEXT: {{  $}}346    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1347    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0348    ; GFX7-NEXT: [[V_LSHL_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHL_B64_e64 [[COPY]], [[COPY1]], implicit $exec349    ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHL_B64_e64_]]350    ;351    ; GFX8-LABEL: name: shl_s64_vs352    ; GFX8: liveins: $sgpr0, $vgpr0_vgpr1353    ; GFX8-NEXT: {{  $}}354    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1355    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0356    ; GFX8-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec357    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]358    ;359    ; GFX9-LABEL: name: shl_s64_vs360    ; GFX9: liveins: $sgpr0, $vgpr0_vgpr1361    ; GFX9-NEXT: {{  $}}362    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1363    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0364    ; GFX9-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec365    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]366    ;367    ; GFX10-LABEL: name: shl_s64_vs368    ; GFX10: liveins: $sgpr0, $vgpr0_vgpr1369    ; GFX10-NEXT: {{  $}}370    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1371    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0372    ; GFX10-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec373    ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]374    %0:vgpr(s64) = COPY $vgpr0_vgpr1375    %1:sgpr(s32) = COPY $sgpr0376    %2:vgpr(s64) = G_SHL %0, %1377    S_ENDPGM 0, implicit %2378...379 380---381name: shl_s64_vv382legalized: true383regBankSelected: true384 385body: |386  bb.0:387    liveins: $vgpr0_vgpr1, $vgpr2388    ; GFX6-LABEL: name: shl_s64_vv389    ; GFX6: liveins: $vgpr0_vgpr1, $vgpr2390    ; GFX6-NEXT: {{  $}}391    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1392    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2393    ; GFX6-NEXT: [[V_LSHL_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHL_B64_e64 [[COPY]], [[COPY1]], implicit $exec394    ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHL_B64_e64_]]395    ;396    ; GFX7-LABEL: name: shl_s64_vv397    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2398    ; GFX7-NEXT: {{  $}}399    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1400    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2401    ; GFX7-NEXT: [[V_LSHL_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHL_B64_e64 [[COPY]], [[COPY1]], implicit $exec402    ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHL_B64_e64_]]403    ;404    ; GFX8-LABEL: name: shl_s64_vv405    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2406    ; GFX8-NEXT: {{  $}}407    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1408    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2409    ; GFX8-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec410    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]411    ;412    ; GFX9-LABEL: name: shl_s64_vv413    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2414    ; GFX9-NEXT: {{  $}}415    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1416    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2417    ; GFX9-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec418    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]419    ;420    ; GFX10-LABEL: name: shl_s64_vv421    ; GFX10: liveins: $vgpr0_vgpr1, $vgpr2422    ; GFX10-NEXT: {{  $}}423    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1424    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2425    ; GFX10-NEXT: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec426    ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHLREV_B64_e64_]]427    %0:vgpr(s64) = COPY $vgpr0_vgpr1428    %1:vgpr(s32) = COPY $vgpr2429    %2:vgpr(s64) = G_SHL %0, %1430    S_ENDPGM 0, implicit %2431...432 433