527 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX11 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX12 %s4 5---6name: partial_forwarding_1_hazard7body: |8 bb.0:9 ; GFX11-LABEL: name: partial_forwarding_1_hazard10 ; GFX11: $vgpr0 = V_MOV_B32_e32 0, implicit $exec11 ; GFX11-NEXT: $exec = S_MOV_B64 -112 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec13 ; GFX11-NEXT: S_WAITCNT_DEPCTR 399914 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec15 ; GFX11-NEXT: S_ENDPGM 016 ;17 ; GFX12-LABEL: name: partial_forwarding_1_hazard18 ; GFX12: $vgpr0 = V_MOV_B32_e32 0, implicit $exec19 ; GFX12-NEXT: $exec = S_MOV_B64 -120 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec21 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec22 ; GFX12-NEXT: S_ENDPGM 023 $vgpr0 = V_MOV_B32_e32 0, implicit $exec24 $exec = S_MOV_B64 -125 $vgpr1 = V_MOV_B32_e32 0, implicit $exec26 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec27 S_ENDPGM 028...29 30---31name: partial_forwarding_2_hazard32body: |33 bb.0:34 ; GFX11-LABEL: name: partial_forwarding_2_hazard35 ; GFX11: $vgpr0 = V_MOV_B32_e32 0, implicit $exec36 ; GFX11-NEXT: $sgpr0 = S_MOV_B32 037 ; GFX11-NEXT: $sgpr1 = S_MOV_B32 038 ; GFX11-NEXT: $sgpr2 = S_MOV_B32 039 ; GFX11-NEXT: $exec = S_MOV_B64 -140 ; GFX11-NEXT: $sgpr3 = S_MOV_B32 041 ; GFX11-NEXT: $sgpr4 = S_MOV_B32 042 ; GFX11-NEXT: $sgpr5 = S_MOV_B32 043 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec44 ; GFX11-NEXT: $sgpr6 = S_MOV_B32 045 ; GFX11-NEXT: $sgpr7 = S_MOV_B32 046 ; GFX11-NEXT: $sgpr8 = S_MOV_B32 047 ; GFX11-NEXT: $sgpr9 = S_MOV_B32 048 ; GFX11-NEXT: $sgpr10 = S_MOV_B32 049 ; GFX11-NEXT: S_WAITCNT_DEPCTR 399950 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec51 ; GFX11-NEXT: S_ENDPGM 052 ;53 ; GFX12-LABEL: name: partial_forwarding_2_hazard54 ; GFX12: $vgpr0 = V_MOV_B32_e32 0, implicit $exec55 ; GFX12-NEXT: $sgpr0 = S_MOV_B32 056 ; GFX12-NEXT: $sgpr1 = S_MOV_B32 057 ; GFX12-NEXT: $sgpr2 = S_MOV_B32 058 ; GFX12-NEXT: $exec = S_MOV_B64 -159 ; GFX12-NEXT: $sgpr3 = S_MOV_B32 060 ; GFX12-NEXT: $sgpr4 = S_MOV_B32 061 ; GFX12-NEXT: $sgpr5 = S_MOV_B32 062 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec63 ; GFX12-NEXT: $sgpr6 = S_MOV_B32 064 ; GFX12-NEXT: $sgpr7 = S_MOV_B32 065 ; GFX12-NEXT: $sgpr8 = S_MOV_B32 066 ; GFX12-NEXT: $sgpr9 = S_MOV_B32 067 ; GFX12-NEXT: $sgpr10 = S_MOV_B32 068 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec69 ; GFX12-NEXT: S_ENDPGM 070 $vgpr0 = V_MOV_B32_e32 0, implicit $exec71 $sgpr0 = S_MOV_B32 072 $sgpr1 = S_MOV_B32 073 $sgpr2 = S_MOV_B32 074 $exec = S_MOV_B64 -175 $sgpr3 = S_MOV_B32 076 $sgpr4 = S_MOV_B32 077 $sgpr5 = S_MOV_B32 078 $vgpr1 = V_MOV_B32_e32 0, implicit $exec79 $sgpr6 = S_MOV_B32 080 $sgpr7 = S_MOV_B32 081 $sgpr8 = S_MOV_B32 082 $sgpr9 = S_MOV_B32 083 $sgpr10 = S_MOV_B32 084 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec85 S_ENDPGM 086...87 88---89name: partial_forwarding_3_hazard90body: |91 bb.0:92 ; GFX11-LABEL: name: partial_forwarding_3_hazard93 ; GFX11: $vgpr0 = V_MOV_B32_e32 0, implicit $exec94 ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec95 ; GFX11-NEXT: $exec = S_MOV_B64 -196 ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec97 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec98 ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec99 ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec100 ; GFX11-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec101 ; GFX11-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec102 ; GFX11-NEXT: S_WAITCNT_DEPCTR 3999103 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec104 ; GFX11-NEXT: S_ENDPGM 0105 ;106 ; GFX12-LABEL: name: partial_forwarding_3_hazard107 ; GFX12: $vgpr0 = V_MOV_B32_e32 0, implicit $exec108 ; GFX12-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec109 ; GFX12-NEXT: $exec = S_MOV_B64 -1110 ; GFX12-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec111 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec112 ; GFX12-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec113 ; GFX12-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec114 ; GFX12-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec115 ; GFX12-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec116 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec117 ; GFX12-NEXT: S_ENDPGM 0118 $vgpr0 = V_MOV_B32_e32 0, implicit $exec119 $vgpr10 = V_MOV_B32_e32 0, implicit $exec120 $exec = S_MOV_B64 -1121 $vgpr11 = V_MOV_B32_e32 0, implicit $exec122 $vgpr1 = V_MOV_B32_e32 0, implicit $exec123 $vgpr12 = V_MOV_B32_e32 0, implicit $exec124 $vgpr13 = V_MOV_B32_e32 0, implicit $exec125 $vgpr14 = V_MOV_B32_e32 0, implicit $exec126 $vgpr15 = V_MOV_B32_e32 0, implicit $exec127 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec128 S_ENDPGM 0129...130 131---132name: partial_forwarding_3_no_hazard_1133body: |134 bb.0:135 ; GCN-LABEL: name: partial_forwarding_3_no_hazard_1136 ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec137 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec138 ; GCN-NEXT: $vgpr20 = V_MOV_B32_e32 0, implicit $exec139 ; GCN-NEXT: $exec = S_MOV_B64 -1140 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec141 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec142 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec143 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec144 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec145 ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec146 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec147 ; GCN-NEXT: S_ENDPGM 0148 $vgpr0 = V_MOV_B32_e32 0, implicit $exec149 $vgpr10 = V_MOV_B32_e32 0, implicit $exec150 $vgpr20 = V_MOV_B32_e32 0, implicit $exec151 $exec = S_MOV_B64 -1152 $vgpr11 = V_MOV_B32_e32 0, implicit $exec153 $vgpr1 = V_MOV_B32_e32 0, implicit $exec154 $vgpr12 = V_MOV_B32_e32 0, implicit $exec155 $vgpr13 = V_MOV_B32_e32 0, implicit $exec156 $vgpr14 = V_MOV_B32_e32 0, implicit $exec157 $vgpr15 = V_MOV_B32_e32 0, implicit $exec158 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec159 S_ENDPGM 0160...161 162---163name: partial_forwarding_3_no_hazard_2164body: |165 bb.0:166 ; GCN-LABEL: name: partial_forwarding_3_no_hazard_2167 ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec168 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec169 ; GCN-NEXT: $exec = S_MOV_B64 -1170 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec171 ; GCN-NEXT: $vgpr20 = V_MOV_B32_e32 0, implicit $exec172 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec173 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec174 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec175 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec176 ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec177 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec178 ; GCN-NEXT: S_ENDPGM 0179 $vgpr0 = V_MOV_B32_e32 0, implicit $exec180 $vgpr10 = V_MOV_B32_e32 0, implicit $exec181 $exec = S_MOV_B64 -1182 $vgpr11 = V_MOV_B32_e32 0, implicit $exec183 $vgpr20 = V_MOV_B32_e32 0, implicit $exec184 $vgpr1 = V_MOV_B32_e32 0, implicit $exec185 $vgpr12 = V_MOV_B32_e32 0, implicit $exec186 $vgpr13 = V_MOV_B32_e32 0, implicit $exec187 $vgpr14 = V_MOV_B32_e32 0, implicit $exec188 $vgpr15 = V_MOV_B32_e32 0, implicit $exec189 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec190 S_ENDPGM 0191...192 193---194name: partial_forwarding_3_no_hazard_3195body: |196 bb.0:197 ; GCN-LABEL: name: partial_forwarding_3_no_hazard_3198 ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec199 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec200 ; GCN-NEXT: $exec = S_MOV_B64 -1201 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec202 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec203 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec204 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec205 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec206 ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec207 ; GCN-NEXT: $vgpr20 = V_MOV_B32_e32 0, implicit $exec208 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec209 ; GCN-NEXT: S_ENDPGM 0210 $vgpr0 = V_MOV_B32_e32 0, implicit $exec211 $vgpr10 = V_MOV_B32_e32 0, implicit $exec212 $exec = S_MOV_B64 -1213 $vgpr11 = V_MOV_B32_e32 0, implicit $exec214 $vgpr1 = V_MOV_B32_e32 0, implicit $exec215 $vgpr12 = V_MOV_B32_e32 0, implicit $exec216 $vgpr13 = V_MOV_B32_e32 0, implicit $exec217 $vgpr14 = V_MOV_B32_e32 0, implicit $exec218 $vgpr15 = V_MOV_B32_e32 0, implicit $exec219 $vgpr20 = V_MOV_B32_e32 0, implicit $exec220 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec221 S_ENDPGM 0222...223 224---225name: partial_forwarding_4_hazard226body: |227 bb.0:228 ; GFX11-LABEL: name: partial_forwarding_4_hazard229 ; GFX11: $vgpr0 = V_MOV_B32_e32 0, implicit $exec230 ; GFX11-NEXT: $exec = S_MOV_B64 -1231 ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec232 ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec233 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec234 ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec235 ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec236 ; GFX11-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec237 ; GFX11-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec238 ; GFX11-NEXT: S_WAITCNT_DEPCTR 3999239 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec240 ; GFX11-NEXT: S_ENDPGM 0241 ;242 ; GFX12-LABEL: name: partial_forwarding_4_hazard243 ; GFX12: $vgpr0 = V_MOV_B32_e32 0, implicit $exec244 ; GFX12-NEXT: $exec = S_MOV_B64 -1245 ; GFX12-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec246 ; GFX12-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec247 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec248 ; GFX12-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec249 ; GFX12-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec250 ; GFX12-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec251 ; GFX12-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec252 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec253 ; GFX12-NEXT: S_ENDPGM 0254 $vgpr0 = V_MOV_B32_e32 0, implicit $exec255 $exec = S_MOV_B64 -1256 $vgpr10 = V_MOV_B32_e32 0, implicit $exec257 $vgpr11 = V_MOV_B32_e32 0, implicit $exec258 $vgpr1 = V_MOV_B32_e32 0, implicit $exec259 $vgpr12 = V_MOV_B32_e32 0, implicit $exec260 $vgpr13 = V_MOV_B32_e32 0, implicit $exec261 $vgpr14 = V_MOV_B32_e32 0, implicit $exec262 $vgpr15 = V_MOV_B32_e32 0, implicit $exec263 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec264 S_ENDPGM 0265...266 267---268name: partial_forwarding_4_no_hazard269body: |270 bb.0:271 ; GCN-LABEL: name: partial_forwarding_4_no_hazard272 ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec273 ; GCN-NEXT: $exec = S_MOV_B64 -1274 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec275 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec276 ; GCN-NEXT: $vgpr21 = V_MOV_B32_e32 0, implicit $exec277 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec278 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec279 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec280 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec281 ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec282 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec283 ; GCN-NEXT: S_ENDPGM 0284 $vgpr0 = V_MOV_B32_e32 0, implicit $exec285 $exec = S_MOV_B64 -1286 $vgpr10 = V_MOV_B32_e32 0, implicit $exec287 $vgpr11 = V_MOV_B32_e32 0, implicit $exec288 $vgpr21 = V_MOV_B32_e32 0, implicit $exec289 $vgpr1 = V_MOV_B32_e32 0, implicit $exec290 $vgpr12 = V_MOV_B32_e32 0, implicit $exec291 $vgpr13 = V_MOV_B32_e32 0, implicit $exec292 $vgpr14 = V_MOV_B32_e32 0, implicit $exec293 $vgpr15 = V_MOV_B32_e32 0, implicit $exec294 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec295 S_ENDPGM 0296...297 298---299name: partial_forwarding_5_hazard300body: |301 bb.0:302 ; GFX11-LABEL: name: partial_forwarding_5_hazard303 ; GFX11: $vgpr0 = V_MOV_B32_e32 0, implicit $exec304 ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec305 ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec306 ; GFX11-NEXT: $exec = S_MOV_B64 -1307 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec308 ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec309 ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec310 ; GFX11-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec311 ; GFX11-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec312 ; GFX11-NEXT: S_WAITCNT_DEPCTR 3999313 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec314 ; GFX11-NEXT: S_ENDPGM 0315 ;316 ; GFX12-LABEL: name: partial_forwarding_5_hazard317 ; GFX12: $vgpr0 = V_MOV_B32_e32 0, implicit $exec318 ; GFX12-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec319 ; GFX12-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec320 ; GFX12-NEXT: $exec = S_MOV_B64 -1321 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec322 ; GFX12-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec323 ; GFX12-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec324 ; GFX12-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec325 ; GFX12-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec326 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec327 ; GFX12-NEXT: S_ENDPGM 0328 $vgpr0 = V_MOV_B32_e32 0, implicit $exec329 $vgpr10 = V_MOV_B32_e32 0, implicit $exec330 $vgpr11 = V_MOV_B32_e32 0, implicit $exec331 $exec = S_MOV_B64 -1332 $vgpr1 = V_MOV_B32_e32 0, implicit $exec333 $vgpr12 = V_MOV_B32_e32 0, implicit $exec334 $vgpr13 = V_MOV_B32_e32 0, implicit $exec335 $vgpr14 = V_MOV_B32_e32 0, implicit $exec336 $vgpr15 = V_MOV_B32_e32 0, implicit $exec337 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec338 S_ENDPGM 0339...340 341---342name: partial_forwarding_5_no_hazard343body: |344 bb.0:345 ; GCN-LABEL: name: partial_forwarding_5_no_hazard346 ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec347 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec348 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec349 ; GCN-NEXT: $vgpr21 = V_MOV_B32_e32 0, implicit $exec350 ; GCN-NEXT: $exec = S_MOV_B64 -1351 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec352 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec353 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec354 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec355 ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec356 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec357 ; GCN-NEXT: S_ENDPGM 0358 $vgpr0 = V_MOV_B32_e32 0, implicit $exec359 $vgpr10 = V_MOV_B32_e32 0, implicit $exec360 $vgpr11 = V_MOV_B32_e32 0, implicit $exec361 $vgpr21 = V_MOV_B32_e32 0, implicit $exec362 $exec = S_MOV_B64 -1363 $vgpr1 = V_MOV_B32_e32 0, implicit $exec364 $vgpr12 = V_MOV_B32_e32 0, implicit $exec365 $vgpr13 = V_MOV_B32_e32 0, implicit $exec366 $vgpr14 = V_MOV_B32_e32 0, implicit $exec367 $vgpr15 = V_MOV_B32_e32 0, implicit $exec368 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec369 S_ENDPGM 0370...371 372---373name: partial_forwarding_branching_1a374body: |375 ; GFX11-LABEL: name: partial_forwarding_branching_1a376 ; GFX11: bb.0:377 ; GFX11-NEXT: successors: %bb.2(0x80000000)378 ; GFX11-NEXT: {{ $}}379 ; GFX11-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec380 ; GFX11-NEXT: $exec = S_MOV_B64 -1381 ; GFX11-NEXT: S_BRANCH %bb.2382 ; GFX11-NEXT: {{ $}}383 ; GFX11-NEXT: bb.1:384 ; GFX11-NEXT: successors: %bb.2(0x80000000)385 ; GFX11-NEXT: {{ $}}386 ; GFX11-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec387 ; GFX11-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec388 ; GFX11-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec389 ; GFX11-NEXT: S_BRANCH %bb.2390 ; GFX11-NEXT: {{ $}}391 ; GFX11-NEXT: bb.2:392 ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec393 ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec394 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec395 ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec396 ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec397 ; GFX11-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec398 ; GFX11-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec399 ; GFX11-NEXT: S_WAITCNT_DEPCTR 3999400 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec401 ; GFX11-NEXT: S_ENDPGM 0402 ;403 ; GFX12-LABEL: name: partial_forwarding_branching_1a404 ; GFX12: bb.0:405 ; GFX12-NEXT: successors: %bb.2(0x80000000)406 ; GFX12-NEXT: {{ $}}407 ; GFX12-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec408 ; GFX12-NEXT: $exec = S_MOV_B64 -1409 ; GFX12-NEXT: S_BRANCH %bb.2410 ; GFX12-NEXT: {{ $}}411 ; GFX12-NEXT: bb.1:412 ; GFX12-NEXT: successors: %bb.2(0x80000000)413 ; GFX12-NEXT: {{ $}}414 ; GFX12-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec415 ; GFX12-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec416 ; GFX12-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec417 ; GFX12-NEXT: S_BRANCH %bb.2418 ; GFX12-NEXT: {{ $}}419 ; GFX12-NEXT: bb.2:420 ; GFX12-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec421 ; GFX12-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec422 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec423 ; GFX12-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec424 ; GFX12-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec425 ; GFX12-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec426 ; GFX12-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec427 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec428 ; GFX12-NEXT: S_ENDPGM 0429 bb.0:430 $vgpr0 = V_MOV_B32_e32 0, implicit $exec431 $exec = S_MOV_B64 -1432 S_BRANCH %bb.2433 bb.1:434 $vgpr0 = V_MOV_B32_e32 0, implicit $exec435 $vgpr30 = V_MOV_B32_e32 0, implicit $exec436 $vgpr31 = V_MOV_B32_e32 0, implicit $exec437 S_BRANCH %bb.2438 bb.2:439 $vgpr10 = V_MOV_B32_e32 0, implicit $exec440 $vgpr11 = V_MOV_B32_e32 0, implicit $exec441 $vgpr1 = V_MOV_B32_e32 0, implicit $exec442 $vgpr12 = V_MOV_B32_e32 0, implicit $exec443 $vgpr13 = V_MOV_B32_e32 0, implicit $exec444 $vgpr14 = V_MOV_B32_e32 0, implicit $exec445 $vgpr15 = V_MOV_B32_e32 0, implicit $exec446 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec447 S_ENDPGM 0448...449 450---451name: partial_forwarding_branching_1b452body: |453 ; GFX11-LABEL: name: partial_forwarding_branching_1b454 ; GFX11: bb.0:455 ; GFX11-NEXT: successors: %bb.2(0x80000000)456 ; GFX11-NEXT: {{ $}}457 ; GFX11-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec458 ; GFX11-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec459 ; GFX11-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec460 ; GFX11-NEXT: S_BRANCH %bb.2461 ; GFX11-NEXT: {{ $}}462 ; GFX11-NEXT: bb.1:463 ; GFX11-NEXT: successors: %bb.2(0x80000000)464 ; GFX11-NEXT: {{ $}}465 ; GFX11-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec466 ; GFX11-NEXT: $exec = S_MOV_B64 -1467 ; GFX11-NEXT: S_BRANCH %bb.2468 ; GFX11-NEXT: {{ $}}469 ; GFX11-NEXT: bb.2:470 ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec471 ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec472 ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec473 ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec474 ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec475 ; GFX11-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec476 ; GFX11-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec477 ; GFX11-NEXT: S_WAITCNT_DEPCTR 3999478 ; GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec479 ; GFX11-NEXT: S_ENDPGM 0480 ;481 ; GFX12-LABEL: name: partial_forwarding_branching_1b482 ; GFX12: bb.0:483 ; GFX12-NEXT: successors: %bb.2(0x80000000)484 ; GFX12-NEXT: {{ $}}485 ; GFX12-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec486 ; GFX12-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec487 ; GFX12-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec488 ; GFX12-NEXT: S_BRANCH %bb.2489 ; GFX12-NEXT: {{ $}}490 ; GFX12-NEXT: bb.1:491 ; GFX12-NEXT: successors: %bb.2(0x80000000)492 ; GFX12-NEXT: {{ $}}493 ; GFX12-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec494 ; GFX12-NEXT: $exec = S_MOV_B64 -1495 ; GFX12-NEXT: S_BRANCH %bb.2496 ; GFX12-NEXT: {{ $}}497 ; GFX12-NEXT: bb.2:498 ; GFX12-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec499 ; GFX12-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec500 ; GFX12-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec501 ; GFX12-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec502 ; GFX12-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec503 ; GFX12-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec504 ; GFX12-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec505 ; GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec506 ; GFX12-NEXT: S_ENDPGM 0507 bb.0:508 $vgpr0 = V_MOV_B32_e32 0, implicit $exec509 $vgpr30 = V_MOV_B32_e32 0, implicit $exec510 $vgpr31 = V_MOV_B32_e32 0, implicit $exec511 S_BRANCH %bb.2512 bb.1:513 $vgpr0 = V_MOV_B32_e32 0, implicit $exec514 $exec = S_MOV_B64 -1515 S_BRANCH %bb.2516 bb.2:517 $vgpr10 = V_MOV_B32_e32 0, implicit $exec518 $vgpr11 = V_MOV_B32_e32 0, implicit $exec519 $vgpr1 = V_MOV_B32_e32 0, implicit $exec520 $vgpr12 = V_MOV_B32_e32 0, implicit $exec521 $vgpr13 = V_MOV_B32_e32 0, implicit $exec522 $vgpr14 = V_MOV_B32_e32 0, implicit $exec523 $vgpr15 = V_MOV_B32_e32 0, implicit $exec524 $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec525 S_ENDPGM 0526...527