1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX6 %s 3# RUN: llc -march=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX7 %s 4# RUN: llc -march=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX8 %s 5# RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX9 %s 6# RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX10 %s 7 8--- 9name: shl_s32_ss 10legalized: true 11regBankSelected: true 12 13body: | 14 bb.0: 15 liveins: $sgpr0, $sgpr1 16 ; GFX6-LABEL: name: shl_s32_ss 17 ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 18 ; GFX6: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 19 ; GFX6: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def $scc 20 ; GFX6: S_ENDPGM 0, implicit [[S_LSHL_B32_]] 21 ; GFX7-LABEL: name: shl_s32_ss 22 ; GFX7: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 23 ; GFX7: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 24 ; GFX7: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def $scc 25 ; GFX7: S_ENDPGM 0, implicit [[S_LSHL_B32_]] 26 ; GFX8-LABEL: name: shl_s32_ss 27 ; GFX8: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 28 ; GFX8: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 29 ; GFX8: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def $scc 30 ; GFX8: S_ENDPGM 0, implicit [[S_LSHL_B32_]] 31 ; GFX9-LABEL: name: shl_s32_ss 32 ; GFX9: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 33 ; GFX9: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 34 ; GFX9: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def $scc 35 ; GFX9: S_ENDPGM 0, implicit [[S_LSHL_B32_]] 36 ; GFX10-LABEL: name: shl_s32_ss 37 ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 38 ; GFX10: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 39 ; GFX10: [[S_LSHL_B32_:%[0-9]+]]:sreg_32 = S_LSHL_B32 [[COPY]], [[COPY1]], implicit-def $scc 40 ; GFX10: S_ENDPGM 0, implicit [[S_LSHL_B32_]] 41 %0:sgpr(s32) = COPY $sgpr0 42 %1:sgpr(s32) = COPY $sgpr1 43 %2:sgpr(s32) = G_SHL %0, %1 44 S_ENDPGM 0, implicit %2 45... 46 47--- 48name: shl_s32_sv 49legalized: true 50regBankSelected: true 51 52body: | 53 bb.0: 54 liveins: $sgpr0, $vgpr0 55 ; GFX6-LABEL: name: shl_s32_sv 56 ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 57 ; GFX6: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 58 ; GFX6: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 59 ; GFX6: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 60 ; GFX7-LABEL: name: shl_s32_sv 61 ; GFX7: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 62 ; GFX7: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 63 ; GFX7: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 64 ; GFX7: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 65 ; GFX8-LABEL: name: shl_s32_sv 66 ; GFX8: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 67 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 68 ; GFX8: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 69 ; GFX8: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 70 ; GFX9-LABEL: name: shl_s32_sv 71 ; GFX9: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 72 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 73 ; GFX9: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 74 ; GFX9: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 75 ; GFX10-LABEL: name: shl_s32_sv 76 ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 77 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 78 ; GFX10: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 79 ; GFX10: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 80 %0:sgpr(s32) = COPY $sgpr0 81 %1:vgpr(s32) = COPY $vgpr0 82 %2:vgpr(s32) = G_SHL %0, %1 83 S_ENDPGM 0, implicit %2 84... 85 86--- 87name: shl_s32_vs 88legalized: true 89regBankSelected: true 90 91body: | 92 bb.0: 93 liveins: $sgpr0, $vgpr0 94 ; GFX6-LABEL: name: shl_s32_vs 95 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 96 ; GFX6: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 97 ; GFX6: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 98 ; GFX6: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 99 ; GFX7-LABEL: name: shl_s32_vs 100 ; GFX7: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 101 ; GFX7: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 102 ; GFX7: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 103 ; GFX7: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 104 ; GFX8-LABEL: name: shl_s32_vs 105 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 106 ; GFX8: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 107 ; GFX8: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 108 ; GFX8: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 109 ; GFX9-LABEL: name: shl_s32_vs 110 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 111 ; GFX9: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 112 ; GFX9: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 113 ; GFX9: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 114 ; GFX10-LABEL: name: shl_s32_vs 115 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 116 ; GFX10: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 117 ; GFX10: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 118 ; GFX10: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 119 %0:vgpr(s32) = COPY $vgpr0 120 %1:sgpr(s32) = COPY $sgpr0 121 %2:vgpr(s32) = G_SHL %0, %1 122 S_ENDPGM 0, implicit %2 123... 124 125--- 126name: shl_s32_vv 127legalized: true 128regBankSelected: true 129 130body: | 131 bb.0: 132 liveins: $vgpr0, $vgpr1 133 ; GFX6-LABEL: name: shl_s32_vv 134 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 135 ; GFX6: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 136 ; GFX6: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 137 ; GFX6: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 138 ; GFX7-LABEL: name: shl_s32_vv 139 ; GFX7: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 140 ; GFX7: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 141 ; GFX7: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 142 ; GFX7: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 143 ; GFX8-LABEL: name: shl_s32_vv 144 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 145 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 146 ; GFX8: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 147 ; GFX8: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 148 ; GFX9-LABEL: name: shl_s32_vv 149 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 150 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 151 ; GFX9: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 152 ; GFX9: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 153 ; GFX10-LABEL: name: shl_s32_vv 154 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 155 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 156 ; GFX10: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec 157 ; GFX10: S_ENDPGM 0, implicit [[V_LSHLREV_B32_e64_]] 158 %0:vgpr(s32) = COPY $vgpr0 159 %1:vgpr(s32) = COPY $vgpr1 160 %2:vgpr(s32) = G_SHL %0, %1 161 S_ENDPGM 0, implicit %2 162... 163 164--- 165name: shl_s64_ss 166legalized: true 167regBankSelected: true 168 169body: | 170 bb.0: 171 liveins: $sgpr0_sgpr1, $sgpr2 172 ; GFX6-LABEL: name: shl_s64_ss 173 ; GFX6: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 174 ; GFX6: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2 175 ; GFX6: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def $scc 176 ; GFX6: S_ENDPGM 0, implicit [[S_LSHL_B64_]] 177 ; GFX7-LABEL: name: shl_s64_ss 178 ; GFX7: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 179 ; GFX7: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2 180 ; GFX7: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def $scc 181 ; GFX7: S_ENDPGM 0, implicit [[S_LSHL_B64_]] 182 ; GFX8-LABEL: name: shl_s64_ss 183 ; GFX8: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 184 ; GFX8: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2 185 ; GFX8: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def $scc 186 ; GFX8: S_ENDPGM 0, implicit [[S_LSHL_B64_]] 187 ; GFX9-LABEL: name: shl_s64_ss 188 ; GFX9: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 189 ; GFX9: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2 190 ; GFX9: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def $scc 191 ; GFX9: S_ENDPGM 0, implicit [[S_LSHL_B64_]] 192 ; GFX10-LABEL: name: shl_s64_ss 193 ; GFX10: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 194 ; GFX10: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr2 195 ; GFX10: [[S_LSHL_B64_:%[0-9]+]]:sreg_64 = S_LSHL_B64 [[COPY]], [[COPY1]], implicit-def $scc 196 ; GFX10: S_ENDPGM 0, implicit [[S_LSHL_B64_]] 197 %0:sgpr(s64) = COPY $sgpr0_sgpr1 198 %1:sgpr(s32) = COPY $sgpr2 199 %2:sgpr(s64) = G_SHL %0, %1 200 S_ENDPGM 0, implicit %2 201... 202 203--- 204name: shl_s64_sv 205legalized: true 206regBankSelected: true 207 208body: | 209 bb.0: 210 liveins: $sgpr0_sgpr1, $vgpr0 211 ; GFX6-LABEL: name: shl_s64_sv 212 ; GFX6: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 213 ; GFX6: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 214 ; GFX6: [[V_LSHL_B64_:%[0-9]+]]:vreg_64 = V_LSHL_B64 [[COPY]], [[COPY1]], implicit $exec 215 ; GFX6: S_ENDPGM 0, implicit [[V_LSHL_B64_]] 216 ; GFX7-LABEL: name: shl_s64_sv 217 ; GFX7: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 218 ; GFX7: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 219 ; GFX7: [[V_LSHL_B64_:%[0-9]+]]:vreg_64 = V_LSHL_B64 [[COPY]], [[COPY1]], implicit $exec 220 ; GFX7: S_ENDPGM 0, implicit [[V_LSHL_B64_]] 221 ; GFX8-LABEL: name: shl_s64_sv 222 ; GFX8: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 223 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 224 ; GFX8: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 225 ; GFX8: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 226 ; GFX9-LABEL: name: shl_s64_sv 227 ; GFX9: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 228 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 229 ; GFX9: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 230 ; GFX9: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 231 ; GFX10-LABEL: name: shl_s64_sv 232 ; GFX10: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 233 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 234 ; GFX10: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 235 ; GFX10: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 236 %0:sgpr(s64) = COPY $sgpr0_sgpr1 237 %1:vgpr(s32) = COPY $vgpr0 238 %2:vgpr(s64) = G_SHL %0, %1 239 S_ENDPGM 0, implicit %2 240... 241 242--- 243name: shl_s64_vs 244legalized: true 245regBankSelected: true 246 247body: | 248 bb.0: 249 liveins: $sgpr0, $vgpr0_vgpr1 250 ; GFX6-LABEL: name: shl_s64_vs 251 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 252 ; GFX6: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 253 ; GFX6: [[V_LSHL_B64_:%[0-9]+]]:vreg_64 = V_LSHL_B64 [[COPY]], [[COPY1]], implicit $exec 254 ; GFX6: S_ENDPGM 0, implicit [[V_LSHL_B64_]] 255 ; GFX7-LABEL: name: shl_s64_vs 256 ; GFX7: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 257 ; GFX7: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 258 ; GFX7: [[V_LSHL_B64_:%[0-9]+]]:vreg_64 = V_LSHL_B64 [[COPY]], [[COPY1]], implicit $exec 259 ; GFX7: S_ENDPGM 0, implicit [[V_LSHL_B64_]] 260 ; GFX8-LABEL: name: shl_s64_vs 261 ; GFX8: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 262 ; GFX8: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 263 ; GFX8: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 264 ; GFX8: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 265 ; GFX9-LABEL: name: shl_s64_vs 266 ; GFX9: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 267 ; GFX9: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 268 ; GFX9: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 269 ; GFX9: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 270 ; GFX10-LABEL: name: shl_s64_vs 271 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 272 ; GFX10: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 273 ; GFX10: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 274 ; GFX10: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 275 %0:vgpr(s64) = COPY $vgpr0_vgpr1 276 %1:sgpr(s32) = COPY $sgpr0 277 %2:vgpr(s64) = G_SHL %0, %1 278 S_ENDPGM 0, implicit %2 279... 280 281--- 282name: shl_s64_vv 283legalized: true 284regBankSelected: true 285 286body: | 287 bb.0: 288 liveins: $vgpr0_vgpr1, $vgpr2 289 ; GFX6-LABEL: name: shl_s64_vv 290 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 291 ; GFX6: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2 292 ; GFX6: [[V_LSHL_B64_:%[0-9]+]]:vreg_64 = V_LSHL_B64 [[COPY]], [[COPY1]], implicit $exec 293 ; GFX6: S_ENDPGM 0, implicit [[V_LSHL_B64_]] 294 ; GFX7-LABEL: name: shl_s64_vv 295 ; GFX7: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 296 ; GFX7: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2 297 ; GFX7: [[V_LSHL_B64_:%[0-9]+]]:vreg_64 = V_LSHL_B64 [[COPY]], [[COPY1]], implicit $exec 298 ; GFX7: S_ENDPGM 0, implicit [[V_LSHL_B64_]] 299 ; GFX8-LABEL: name: shl_s64_vv 300 ; GFX8: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 301 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2 302 ; GFX8: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 303 ; GFX8: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 304 ; GFX9-LABEL: name: shl_s64_vv 305 ; GFX9: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 306 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2 307 ; GFX9: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 308 ; GFX9: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 309 ; GFX10-LABEL: name: shl_s64_vv 310 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 311 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2 312 ; GFX10: [[V_LSHLREV_B64_:%[0-9]+]]:vreg_64 = V_LSHLREV_B64 [[COPY1]], [[COPY]], implicit $exec 313 ; GFX10: S_ENDPGM 0, implicit [[V_LSHLREV_B64_]] 314 %0:vgpr(s64) = COPY $vgpr0_vgpr1 315 %1:vgpr(s32) = COPY $vgpr2 316 %2:vgpr(s64) = G_SHL %0, %1 317 S_ENDPGM 0, implicit %2 318... 319 320