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: lshr_s32_ss11legalized: true12regBankSelected: true13 14body: |15 bb.0:16 liveins: $sgpr0, $sgpr117 ; GFX6-LABEL: name: lshr_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_LSHR_B32_:%[0-9]+]]:sreg_32 = S_LSHR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc23 ; GFX6-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B32_]]24 ;25 ; GFX7-LABEL: name: lshr_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_LSHR_B32_:%[0-9]+]]:sreg_32 = S_LSHR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc31 ; GFX7-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B32_]]32 ;33 ; GFX8-LABEL: name: lshr_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_LSHR_B32_:%[0-9]+]]:sreg_32 = S_LSHR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc39 ; GFX8-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B32_]]40 ;41 ; GFX9-LABEL: name: lshr_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_LSHR_B32_:%[0-9]+]]:sreg_32 = S_LSHR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc47 ; GFX9-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B32_]]48 ;49 ; GFX10-LABEL: name: lshr_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_LSHR_B32_:%[0-9]+]]:sreg_32 = S_LSHR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc55 ; GFX10-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B32_]]56 %0:sgpr(s32) = COPY $sgpr057 %1:sgpr(s32) = COPY $sgpr158 %2:sgpr(s32) = G_LSHR %0, %159 S_ENDPGM 0, implicit %260...61 62---63name: lshr_s32_sv64legalized: true65regBankSelected: true66 67body: |68 bb.0:69 liveins: $sgpr0, $vgpr070 ; GFX6-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec76 ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]77 ;78 ; GFX7-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec84 ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]85 ;86 ; GFX8-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec92 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]93 ;94 ; GFX9-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec100 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]101 ;102 ; GFX10-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec108 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]109 %0:sgpr(s32) = COPY $sgpr0110 %1:vgpr(s32) = COPY $vgpr0111 %2:vgpr(s32) = G_LSHR %0, %1112 S_ENDPGM 0, implicit %2113...114 115---116name: lshr_s32_vs117legalized: true118regBankSelected: true119 120body: |121 bb.0:122 liveins: $sgpr0, $vgpr0123 ; GFX6-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec129 ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]130 ;131 ; GFX7-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec137 ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]138 ;139 ; GFX8-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec145 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]146 ;147 ; GFX9-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec153 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]154 ;155 ; GFX10-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec161 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]162 %0:vgpr(s32) = COPY $vgpr0163 %1:sgpr(s32) = COPY $sgpr0164 %2:vgpr(s32) = G_LSHR %0, %1165 S_ENDPGM 0, implicit %2166...167 168---169name: lshr_s32_vv170legalized: true171regBankSelected: true172 173body: |174 bb.0:175 liveins: $vgpr0, $vgpr1176 ; GFX6-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec182 ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]183 ;184 ; GFX7-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec190 ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]191 ;192 ; GFX8-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec198 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]199 ;200 ; GFX9-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec206 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]207 ;208 ; GFX10-LABEL: name: lshr_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_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 [[COPY1]], [[COPY]], implicit $exec214 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B32_e64_]]215 %0:vgpr(s32) = COPY $vgpr0216 %1:vgpr(s32) = COPY $vgpr1217 %2:vgpr(s32) = G_LSHR %0, %1218 S_ENDPGM 0, implicit %2219...220 221---222name: lshr_s64_ss223legalized: true224regBankSelected: true225 226body: |227 bb.0:228 liveins: $sgpr0_sgpr1, $sgpr2229 ; GFX6-LABEL: name: lshr_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_LSHR_B64_:%[0-9]+]]:sreg_64 = S_LSHR_B64 [[COPY]], [[COPY1]], implicit-def dead $scc235 ; GFX6-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B64_]]236 ;237 ; GFX7-LABEL: name: lshr_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_LSHR_B64_:%[0-9]+]]:sreg_64 = S_LSHR_B64 [[COPY]], [[COPY1]], implicit-def dead $scc243 ; GFX7-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B64_]]244 ;245 ; GFX8-LABEL: name: lshr_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_LSHR_B64_:%[0-9]+]]:sreg_64 = S_LSHR_B64 [[COPY]], [[COPY1]], implicit-def dead $scc251 ; GFX8-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B64_]]252 ;253 ; GFX9-LABEL: name: lshr_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_LSHR_B64_:%[0-9]+]]:sreg_64 = S_LSHR_B64 [[COPY]], [[COPY1]], implicit-def dead $scc259 ; GFX9-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B64_]]260 ;261 ; GFX10-LABEL: name: lshr_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_LSHR_B64_:%[0-9]+]]:sreg_64 = S_LSHR_B64 [[COPY]], [[COPY1]], implicit-def dead $scc267 ; GFX10-NEXT: S_ENDPGM 0, implicit [[S_LSHR_B64_]]268 %0:sgpr(s64) = COPY $sgpr0_sgpr1269 %1:sgpr(s32) = COPY $sgpr2270 %2:sgpr(s64) = G_LSHR %0, %1271 S_ENDPGM 0, implicit %2272...273 274---275name: lshr_s64_sv276legalized: true277regBankSelected: true278 279body: |280 bb.0:281 liveins: $sgpr0_sgpr1, $vgpr0282 ; GFX6-LABEL: name: lshr_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_LSHR_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHR_B64_e64 [[COPY]], [[COPY1]], implicit $exec288 ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHR_B64_e64_]]289 ;290 ; GFX7-LABEL: name: lshr_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_LSHR_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHR_B64_e64 [[COPY]], [[COPY1]], implicit $exec296 ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHR_B64_e64_]]297 ;298 ; GFX8-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec304 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]305 ;306 ; GFX9-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec312 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]313 ;314 ; GFX10-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec320 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]321 %0:sgpr(s64) = COPY $sgpr0_sgpr1322 %1:vgpr(s32) = COPY $vgpr0323 %2:vgpr(s64) = G_LSHR %0, %1324 S_ENDPGM 0, implicit %2325...326 327---328name: lshr_s64_vs329legalized: true330regBankSelected: true331 332body: |333 bb.0:334 liveins: $sgpr0, $vgpr0_vgpr1335 ; GFX6-LABEL: name: lshr_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_LSHR_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHR_B64_e64 [[COPY]], [[COPY1]], implicit $exec341 ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHR_B64_e64_]]342 ;343 ; GFX7-LABEL: name: lshr_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_LSHR_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHR_B64_e64 [[COPY]], [[COPY1]], implicit $exec349 ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHR_B64_e64_]]350 ;351 ; GFX8-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec357 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]358 ;359 ; GFX9-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec365 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]366 ;367 ; GFX10-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec373 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]374 %0:vgpr(s64) = COPY $vgpr0_vgpr1375 %1:sgpr(s32) = COPY $sgpr0376 %2:vgpr(s64) = G_LSHR %0, %1377 S_ENDPGM 0, implicit %2378...379 380---381name: lshr_s64_vv382legalized: true383regBankSelected: true384 385body: |386 bb.0:387 liveins: $vgpr0_vgpr1, $vgpr2388 ; GFX6-LABEL: name: lshr_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_LSHR_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHR_B64_e64 [[COPY]], [[COPY1]], implicit $exec394 ; GFX6-NEXT: S_ENDPGM 0, implicit [[V_LSHR_B64_e64_]]395 ;396 ; GFX7-LABEL: name: lshr_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_LSHR_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHR_B64_e64 [[COPY]], [[COPY1]], implicit $exec402 ; GFX7-NEXT: S_ENDPGM 0, implicit [[V_LSHR_B64_e64_]]403 ;404 ; GFX8-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec410 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]411 ;412 ; GFX9-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec418 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]419 ;420 ; GFX10-LABEL: name: lshr_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_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64 = V_LSHRREV_B64_e64 [[COPY1]], [[COPY]], implicit $exec426 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_LSHRREV_B64_e64_]]427 %0:vgpr(s64) = COPY $vgpr0_vgpr1428 %1:vgpr(s32) = COPY $vgpr2429 %2:vgpr(s64) = G_LSHR %0, %1430 S_ENDPGM 0, implicit %2431...432 433