brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.9 KiB · 052459a Raw
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