brintos

brintos / llvm-project-archived public Read only

0
0
Text · 46.8 KiB · f659587 Raw
1152 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,amdgpu-wait-sgpr-hazards -o - %s | FileCheck -check-prefixes=GCN,GFX12 %s4 5--- |6  @mem = internal unnamed_addr addrspace(4) constant [4 x <4 x i32>] [<4 x i32> <i32 0, i32 0, i32 0, i32 0>, <4 x i32> <i32 0, i32 0, i32 0, i32 0>, <4 x i32> <i32 0, i32 0, i32 0, i32 0>, <4 x i32> <i32 0, i32 0, i32 0, i32 0>]7 8  define amdgpu_gs void @mask_hazard_getpc1() { ret void }9  define amdgpu_gs void @mask_hazard_getpc2() { ret void }10  define amdgpu_gs void @mask_hazard_vcc1() { ret void }11  define amdgpu_gs void @mask_hazard_vcc2() { ret void }12  define amdgpu_gs void @mask_hazard_cndmask_dpp1() { ret void }13  define amdgpu_gs void @mask_hazard_cndmask_dpp2() { ret void }14  define amdgpu_gs void @mask_hazard_cndmask_dpp3() { ret void }15  define amdgpu_gs void @mask_hazard_addc1() { ret void }16  define amdgpu_gs void @mask_hazard_addc2() { ret void }17  define amdgpu_gs void @mask_hazard_addc3() { ret void }18  define amdgpu_gs void @mask_hazard_addc4() { ret void }19  define amdgpu_gs void @mask_hazard_subb1() { ret void }20  define amdgpu_gs void @mask_hazard_subb2() { ret void }21  define amdgpu_gs void @mask_hazard_subb3() { ret void }22  define amdgpu_gs void @mask_hazard_subb4() { ret void }23  define amdgpu_gs void @mask_hazard_subbrev1() { ret void }24  define amdgpu_gs void @mask_hazard_subbrev2() { ret void }25  define amdgpu_gs void @mask_hazard_subbrev3() { ret void }26  define amdgpu_gs void @mask_hazard_subbrev4() { ret void }27  define amdgpu_gs void @mask_hazard_div_fmas_f32() { ret void }28  define amdgpu_gs void @mask_hazard_div_fmas_f64() { ret void }29  define amdgpu_gs void @mask_hazard_subreg1() { ret void }30  define amdgpu_gs void @mask_hazard_subreg2() { ret void }31  define amdgpu_gs void @mask_hazard_subreg3() { ret void }32  define amdgpu_gs void @mask_hazard_subreg4() { ret void }33  define amdgpu_gs void @mask_hazard_subreg5() { ret void }34  define amdgpu_gs void @mask_hazard_waitcnt() { ret void }35  define amdgpu_gs void @mask_hazard_gap1() { ret void }36  define amdgpu_gs void @mask_hazard_gap2() { ret void }37  define amdgpu_gs void @mask_hazard_gap3() { ret void }38  define amdgpu_gs void @mask_hazard_no_hazard1() { ret void }39  define amdgpu_gs void @mask_hazard_no_hazard2() { ret void }40  define amdgpu_gs void @mask_hazard_no_hazard3() { ret void }41  define amdgpu_gs void @mask_hazard_cancel_hazard1() { ret void }42  define amdgpu_gs void @mask_hazard_cancel_hazard2() { ret void }43  define amdgpu_gs void @mask_hazard_cancel_hazard3() { ret void }44  define amdgpu_gs void @mask_hazard_cancel_hazard4() { ret void }45  define amdgpu_gs void @mask_hazard_partial_cancel1() { ret void }46  define amdgpu_gs void @mask_hazard_partial_cancel2() { ret void }47  define amdgpu_gs void @mask_hazard_partial_cancel3() { ret void }48  define amdgpu_gs void @mask_hazard_partial_cancel4() { ret void }49  define amdgpu_gs void @mask_hazard_valu_readlane1() { ret void }50  define amdgpu_gs void @mask_hazard_valu_readlane2() { ret void }51  define amdgpu_gs void @mask_hazard_valu_readlane3() { ret void }52  define amdgpu_gs void @mask_hazard_valu_readfirstlane() { ret void }53  define amdgpu_gs void @mask_hazard_valu_vcmp_vcc() { ret void }54  define amdgpu_gs void @mask_hazard_valu_vcmp_sgpr() { ret void }55  define amdgpu_gs void @mask_hazard_combine1() { ret void }56  define amdgpu_gs void @mask_hazard_combine2() { ret void }57  define amdgpu_gs void @mask_hazard_combine3() { ret void }58  define amdgpu_gs void @mask_hazard_combine4() { ret void }59  define amdgpu_gs void @mask_hazard_combine5() { ret void }60...61 62---63name:            mask_hazard_getpc164body:            |65  bb.0:66    ; GCN-LABEL: name: mask_hazard_getpc167    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec68    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B6469    ; GCN-NEXT: S_WAITCNT_DEPCTR 6543870    ; GCN-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc71    ; GCN-NEXT: S_ENDPGM 072    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec73    $sgpr0_sgpr1 = S_GETPC_B6474    $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc75    S_ENDPGM 076...77 78---79name:            mask_hazard_getpc280body:            |81  bb.0:82    ; GCN-LABEL: name: mask_hazard_getpc283    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec84    ; GCN-NEXT: BUNDLE implicit-def $sgpr0_sgpr1 {85    ; GCN-NEXT:   $sgpr0_sgpr1 = S_GETPC_B6486    ; GCN-NEXT:   S_WAITCNT_DEPCTR 6543887    ; GCN-NEXT:   $sgpr0 = S_ADD_U32 $sgpr0, target-flags(amdgpu-rel32-lo) @mem + 8, implicit-def $scc88    ; GCN-NEXT:   $sgpr1 = S_ADDC_U32 $sgpr1, target-flags(amdgpu-rel32-lo) @mem + 16, implicit-def $scc, implicit $scc89    ; GCN-NEXT: }90    ; GCN-NEXT: S_ENDPGM 091    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec92    BUNDLE implicit-def $sgpr0_sgpr1 {93      $sgpr0_sgpr1 = S_GETPC_B6494      $sgpr0 = S_ADD_U32 $sgpr0, target-flags(amdgpu-rel32-lo) @mem + 4, implicit-def $scc95      $sgpr1 = S_ADDC_U32 $sgpr1, target-flags(amdgpu-rel32-lo) @mem + 12, implicit-def $scc, implicit $scc96    }97    S_ENDPGM 098...99 100---101name:            mask_hazard_vcc1102body:            |103  bb.0:104    ; GFX11-LABEL: name: mask_hazard_vcc1105    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec106    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc107    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438108    ; GFX11-NEXT: S_ENDPGM 0109    ;110    ; GFX12-LABEL: name: mask_hazard_vcc1111    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec112    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc113    ; GFX12-NEXT: S_ENDPGM 0114    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec115    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc116    S_ENDPGM 0117...118 119---120name:            mask_hazard_vcc2121body:            |122  bb.0:123    ; GFX11-LABEL: name: mask_hazard_vcc2124    ; GFX11: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec125    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc126    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438127    ; GFX11-NEXT: S_ENDPGM 0128    ;129    ; GFX12-LABEL: name: mask_hazard_vcc2130    ; GFX12: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec131    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc132    ; GFX12-NEXT: S_ENDPGM 0133    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec134    $vcc = S_CSELECT_B64 -1, 0, implicit $scc135    S_ENDPGM 0136...137 138---139name:            mask_hazard_cndmask_dpp1140body:            |141  bb.0:142    ; GFX11-LABEL: name: mask_hazard_cndmask_dpp1143    ; GFX11: $vgpr0 = V_CNDMASK_B32_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, 1, 15, 15, 1, implicit $vcc, implicit $exec144    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc145    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438146    ; GFX11-NEXT: S_ENDPGM 0147    ;148    ; GFX12-LABEL: name: mask_hazard_cndmask_dpp1149    ; GFX12: $vgpr0 = V_CNDMASK_B32_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, 1, 15, 15, 1, implicit $vcc, implicit $exec150    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc151    ; GFX12-NEXT: S_ENDPGM 0152    $vgpr0 = V_CNDMASK_B32_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, 1, 15, 15, 1, implicit $vcc, implicit $exec153    $vcc = S_CSELECT_B64 -1, 0, implicit $scc154    S_ENDPGM 0155...156 157---158name:            mask_hazard_cndmask_dpp2159body:            |160  bb.0:161    ; GFX11-LABEL: name: mask_hazard_cndmask_dpp2162    ; GFX11: $vgpr0 = V_CNDMASK_B32_e64_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, 1, 15, 15, 1, implicit $exec163    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc164    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438165    ; GFX11-NEXT: S_ENDPGM 0166    ;167    ; GFX12-LABEL: name: mask_hazard_cndmask_dpp2168    ; GFX12: $vgpr0 = V_CNDMASK_B32_e64_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, 1, 15, 15, 1, implicit $exec169    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc170    ; GFX12-NEXT: S_ENDPGM 0171    $vgpr0 = V_CNDMASK_B32_e64_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, 1, 15, 15, 1, implicit $exec172    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc173    S_ENDPGM 0174...175 176---177name:            mask_hazard_cndmask_dpp3178body:            |179  bb.0:180    ; GFX11-LABEL: name: mask_hazard_cndmask_dpp3181    ; GFX11: $vgpr0 = V_CNDMASK_B16_fake16_e64_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, 1, 15, 15, 1, implicit $exec182    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc183    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438184    ; GFX11-NEXT: S_ENDPGM 0185    ;186    ; GFX12-LABEL: name: mask_hazard_cndmask_dpp3187    ; GFX12: $vgpr0 = V_CNDMASK_B16_fake16_e64_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, 1, 15, 15, 1, implicit $exec188    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc189    ; GFX12-NEXT: S_ENDPGM 0190    $vgpr0 = V_CNDMASK_B16_fake16_e64_dpp $vgpr0, 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, 1, 15, 15, 1, implicit $exec191    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc192    S_ENDPGM 0193...194 195---196name:            mask_hazard_addc1197body:            |198  bb.0:199    ; GFX11-LABEL: name: mask_hazard_addc1200    ; GFX11: $vgpr1, $vcc = V_ADDC_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec201    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc202    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438203    ; GFX11-NEXT: S_ENDPGM 0204    ;205    ; GFX12-LABEL: name: mask_hazard_addc1206    ; GFX12: $vgpr1, $vcc = V_ADDC_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec207    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc208    ; GFX12-NEXT: S_ENDPGM 0209    $vgpr1, $vcc = V_ADDC_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec210    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc211    S_ENDPGM 0212...213 214---215name:            mask_hazard_addc2216body:            |217  bb.0:218    ; GFX11-LABEL: name: mask_hazard_addc2219    ; GFX11: $vgpr1 = V_ADDC_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec220    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc221    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438222    ; GFX11-NEXT: S_ENDPGM 0223    ;224    ; GFX12-LABEL: name: mask_hazard_addc2225    ; GFX12: $vgpr1 = V_ADDC_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec226    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc227    ; GFX12-NEXT: S_ENDPGM 0228    $vgpr1 = V_ADDC_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec229    $vcc = S_CSELECT_B64 -1, 0, implicit $scc230    S_ENDPGM 0231...232 233---234name:            mask_hazard_addc3235body:            |236  bb.0:237    ; GFX11-LABEL: name: mask_hazard_addc3238    ; GFX11: $vgpr0 = V_ADDC_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec239    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc240    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438241    ; GFX11-NEXT: S_ENDPGM 0242    ;243    ; GFX12-LABEL: name: mask_hazard_addc3244    ; GFX12: $vgpr0 = V_ADDC_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec245    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc246    ; GFX12-NEXT: S_ENDPGM 0247    $vgpr0 = V_ADDC_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec248    $vcc = S_CSELECT_B64 -1, 0, implicit $scc249    S_ENDPGM 0250...251 252---253name:            mask_hazard_addc4254body:            |255  bb.0:256    ; GFX11-LABEL: name: mask_hazard_addc4257    ; GFX11: $vgpr0, $sgpr2_sgpr3 = V_ADDC_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec258    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc259    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438260    ; GFX11-NEXT: S_ENDPGM 0261    ;262    ; GFX12-LABEL: name: mask_hazard_addc4263    ; GFX12: $vgpr0, $sgpr2_sgpr3 = V_ADDC_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec264    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc265    ; GFX12-NEXT: S_ENDPGM 0266    $vgpr0, $sgpr2_sgpr3 = V_ADDC_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec267    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc268    S_ENDPGM 0269...270 271---272name:            mask_hazard_subb1273body:            |274  bb.0:275    ; GFX11-LABEL: name: mask_hazard_subb1276    ; GFX11: $vgpr1, $vcc = V_SUBB_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec277    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc278    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438279    ; GFX11-NEXT: S_ENDPGM 0280    ;281    ; GFX12-LABEL: name: mask_hazard_subb1282    ; GFX12: $vgpr1, $vcc = V_SUBB_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec283    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc284    ; GFX12-NEXT: S_ENDPGM 0285    $vgpr1, $vcc = V_SUBB_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec286    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc287    S_ENDPGM 0288...289 290---291name:            mask_hazard_subb2292body:            |293  bb.0:294    ; GFX11-LABEL: name: mask_hazard_subb2295    ; GFX11: $vgpr1 = V_SUBB_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec296    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc297    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438298    ; GFX11-NEXT: S_ENDPGM 0299    ;300    ; GFX12-LABEL: name: mask_hazard_subb2301    ; GFX12: $vgpr1 = V_SUBB_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec302    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc303    ; GFX12-NEXT: S_ENDPGM 0304    $vgpr1 = V_SUBB_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec305    $vcc = S_CSELECT_B64 -1, 0, implicit $scc306    S_ENDPGM 0307...308 309---310name:            mask_hazard_subb3311body:            |312  bb.0:313    ; GFX11-LABEL: name: mask_hazard_subb3314    ; GFX11: $vgpr0 = V_SUBB_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec315    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc316    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438317    ; GFX11-NEXT: S_ENDPGM 0318    ;319    ; GFX12-LABEL: name: mask_hazard_subb3320    ; GFX12: $vgpr0 = V_SUBB_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec321    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc322    ; GFX12-NEXT: S_ENDPGM 0323    $vgpr0 = V_SUBB_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec324    $vcc = S_CSELECT_B64 -1, 0, implicit $scc325    S_ENDPGM 0326...327 328---329name:            mask_hazard_subb4330body:            |331  bb.0:332    ; GFX11-LABEL: name: mask_hazard_subb4333    ; GFX11: $vgpr0, $sgpr2_sgpr3 = V_SUBB_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec334    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc335    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438336    ; GFX11-NEXT: S_ENDPGM 0337    ;338    ; GFX12-LABEL: name: mask_hazard_subb4339    ; GFX12: $vgpr0, $sgpr2_sgpr3 = V_SUBB_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec340    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc341    ; GFX12-NEXT: S_ENDPGM 0342    $vgpr0, $sgpr2_sgpr3 = V_SUBB_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec343    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc344    S_ENDPGM 0345...346 347---348name:            mask_hazard_subbrev1349body:            |350  bb.0:351    ; GFX11-LABEL: name: mask_hazard_subbrev1352    ; GFX11: $vgpr1, $vcc = V_SUBBREV_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec353    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc354    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438355    ; GFX11-NEXT: S_ENDPGM 0356    ;357    ; GFX12-LABEL: name: mask_hazard_subbrev1358    ; GFX12: $vgpr1, $vcc = V_SUBBREV_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec359    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc360    ; GFX12-NEXT: S_ENDPGM 0361    $vgpr1, $vcc = V_SUBBREV_U32_e64 0, $vgpr1, $sgpr2_sgpr3, 0, implicit $exec362    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc363    S_ENDPGM 0364...365 366---367name:            mask_hazard_subbrev2368body:            |369  bb.0:370    ; GFX11-LABEL: name: mask_hazard_subbrev2371    ; GFX11: $vgpr1 = V_SUBBREV_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec372    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc373    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438374    ; GFX11-NEXT: S_ENDPGM 0375    ;376    ; GFX12-LABEL: name: mask_hazard_subbrev2377    ; GFX12: $vgpr1 = V_SUBBREV_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec378    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc379    ; GFX12-NEXT: S_ENDPGM 0380    $vgpr1 = V_SUBBREV_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec381    $vcc = S_CSELECT_B64 -1, 0, implicit $scc382    S_ENDPGM 0383...384 385---386name:            mask_hazard_subbrev3387body:            |388  bb.0:389    ; GFX11-LABEL: name: mask_hazard_subbrev3390    ; GFX11: $vgpr0 = V_SUBBREV_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec391    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc392    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438393    ; GFX11-NEXT: S_ENDPGM 0394    ;395    ; GFX12-LABEL: name: mask_hazard_subbrev3396    ; GFX12: $vgpr0 = V_SUBBREV_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec397    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc398    ; GFX12-NEXT: S_ENDPGM 0399    $vgpr0 = V_SUBBREV_U32_dpp $vgpr0, $vgpr1, $vgpr2, 1, 15, 15, 1, implicit-def $vcc, implicit $vcc, implicit $exec400    $vcc = S_CSELECT_B64 -1, 0, implicit $scc401    S_ENDPGM 0402...403 404---405name:            mask_hazard_subbrev4406body:            |407  bb.0:408    ; GFX11-LABEL: name: mask_hazard_subbrev4409    ; GFX11: $vgpr0, $sgpr2_sgpr3 = V_SUBBREV_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec410    ; GFX11-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc411    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438412    ; GFX11-NEXT: S_ENDPGM 0413    ;414    ; GFX12-LABEL: name: mask_hazard_subbrev4415    ; GFX12: $vgpr0, $sgpr2_sgpr3 = V_SUBBREV_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec416    ; GFX12-NEXT: $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc417    ; GFX12-NEXT: S_ENDPGM 0418    $vgpr0, $sgpr2_sgpr3 = V_SUBBREV_U32_e64_dpp $vgpr0, $vgpr1, $vgpr2, $sgpr2_sgpr3, 0, 1, 15, 15, 1, implicit $exec419    $sgpr2_sgpr3 = S_CSELECT_B64 -1, 0, implicit $scc420    S_ENDPGM 0421...422 423---424name:            mask_hazard_div_fmas_f32425body:            |426  bb.0:427    ; GFX11-LABEL: name: mask_hazard_div_fmas_f32428    ; GFX11: $vgpr0 = V_DIV_FMAS_F32_e64 0, $vgpr1, 0, $vgpr2, 0, $vgpr3, 0, 0, implicit $mode, implicit $vcc, implicit $exec429    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc430    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438431    ; GFX11-NEXT: S_ENDPGM 0432    ;433    ; GFX12-LABEL: name: mask_hazard_div_fmas_f32434    ; GFX12: $vgpr0 = V_DIV_FMAS_F32_e64 0, $vgpr1, 0, $vgpr2, 0, $vgpr3, 0, 0, implicit $mode, implicit $vcc, implicit $exec435    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc436    ; GFX12-NEXT: S_ENDPGM 0437    $vgpr0 = V_DIV_FMAS_F32_e64 0, $vgpr1, 0, $vgpr2, 0, $vgpr3, 0, 0, implicit $mode, implicit $vcc, implicit $exec438    $vcc = S_CSELECT_B64 -1, 0, implicit $scc439    S_ENDPGM 0440...441 442---443name:            mask_hazard_div_fmas_f64444body:            |445  bb.0:446    ; GFX11-LABEL: name: mask_hazard_div_fmas_f64447    ; GFX11: $vgpr0_vgpr1 = V_DIV_FMAS_F64_e64 0, $vgpr0_vgpr1, 0, $vgpr2_vgpr3, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $vcc, implicit $exec448    ; GFX11-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc449    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438450    ; GFX11-NEXT: S_ENDPGM 0451    ;452    ; GFX12-LABEL: name: mask_hazard_div_fmas_f64453    ; GFX12: $vgpr0_vgpr1 = V_DIV_FMAS_F64_e64 0, $vgpr0_vgpr1, 0, $vgpr2_vgpr3, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $vcc, implicit $exec454    ; GFX12-NEXT: $vcc = S_CSELECT_B64 -1, 0, implicit $scc455    ; GFX12-NEXT: S_ENDPGM 0456    $vgpr0_vgpr1 = V_DIV_FMAS_F64_e64 0, $vgpr0_vgpr1, 0, $vgpr2_vgpr3, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $vcc, implicit $exec457    $vcc = S_CSELECT_B64 -1, 0, implicit $scc458    S_ENDPGM 0459...460 461# Check low word overlap462---463name:            mask_hazard_subreg1464body:            |465  bb.0:466    ; GFX11-LABEL: name: mask_hazard_subreg1467    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec468    ; GFX11-NEXT: $sgpr2 = S_MOV_B32 0469    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438470    ; GFX11-NEXT: S_ENDPGM 0471    ;472    ; GFX12-LABEL: name: mask_hazard_subreg1473    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec474    ; GFX12-NEXT: $sgpr2 = S_MOV_B32 0475    ; GFX12-NEXT: S_ENDPGM 0476    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec477    $sgpr2 = S_MOV_B32 0478    S_ENDPGM 0479...480 481# Check high word overlap482---483name:            mask_hazard_subreg2484body:            |485  bb.0:486    ; GFX11-LABEL: name: mask_hazard_subreg2487    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec488    ; GFX11-NEXT: $sgpr3 = S_MOV_B32 0489    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438490    ; GFX11-NEXT: S_ENDPGM 0491    ;492    ; GFX12-LABEL: name: mask_hazard_subreg2493    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec494    ; GFX12-NEXT: $sgpr3 = S_MOV_B32 0495    ; GFX12-NEXT: S_ENDPGM 0496    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec497    $sgpr3 = S_MOV_B32 0498    S_ENDPGM 0499...500 501# Check multiple subreg overlap502---503name:            mask_hazard_subreg3504body:            |505  bb.0:506    ; GFX11-LABEL: name: mask_hazard_subreg3507    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec508    ; GFX11-NEXT: $sgpr2 = S_MOV_B32 0509    ; GFX11-NEXT: $sgpr3 = S_MOV_B32 0510    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438511    ; GFX11-NEXT: S_ENDPGM 0512    ;513    ; GFX12-LABEL: name: mask_hazard_subreg3514    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec515    ; GFX12-NEXT: $sgpr2 = S_MOV_B32 0516    ; GFX12-NEXT: $sgpr3 = S_MOV_B32 0517    ; GFX12-NEXT: S_ENDPGM 0518    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec519    $sgpr2 = S_MOV_B32 0520    $sgpr3 = S_MOV_B32 0521    S_ENDPGM 0522...523 524# Check vcc_lo overlap525---526name:            mask_hazard_subreg4527body:            |528  bb.0:529    ; GCN-LABEL: name: mask_hazard_subreg4530    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec531    ; GCN-NEXT: $vcc_lo = S_MOV_B32 0532    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438533    ; GCN-NEXT: $sgpr2 = S_MOV_B32 $vcc_lo534    ; GCN-NEXT: S_ENDPGM 0535    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec536    $vcc_lo = S_MOV_B32 0537    $sgpr2 = S_MOV_B32 $vcc_lo538    S_ENDPGM 0539...540 541# Check vcc_hi overlap542---543name:            mask_hazard_subreg5544body:            |545  bb.0:546    ; GCN-LABEL: name: mask_hazard_subreg5547    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec548    ; GCN-NEXT: $vcc_hi = S_MOV_B32 0549    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438550    ; GCN-NEXT: $sgpr2 = S_MOV_B32 $vcc_hi551    ; GCN-NEXT: S_ENDPGM 0552    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec553    $vcc_hi = S_MOV_B32 0554    $sgpr2 = S_MOV_B32 $vcc_hi555    S_ENDPGM 0556...557 558# S_WAITCNT does not mitigate hazard559---560name:            mask_hazard_waitcnt561body:            |562  bb.0:563    ; GCN-LABEL: name: mask_hazard_waitcnt564    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec565    ; GCN-NEXT: S_WAITCNT 0566    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64567    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438568    ; GCN-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc569    ; GCN-NEXT: S_ENDPGM 0570    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec571    S_WAITCNT 0572    $sgpr0_sgpr1 = S_GETPC_B64573    $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc574    S_ENDPGM 0575...576 577# Check implicit $exec578---579name:            mask_hazard_gap1580body:            |581  bb.0:582    ; GCN-LABEL: name: mask_hazard_gap1583    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec584    ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec585    ; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec586    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64587    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438588    ; GCN-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc589    ; GCN-NEXT: S_ENDPGM 0590    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec591    $vgpr2 = V_MOV_B32_e32 0, implicit $exec592    $vgpr3 = V_MOV_B32_e32 0, implicit $exec593    $sgpr0_sgpr1 = S_GETPC_B64594    $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc595    S_ENDPGM 0596...597 598# Check implicit $mode599---600name:            mask_hazard_gap2601body:            |602  bb.0:603    ; GCN-LABEL: name: mask_hazard_gap2604    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec605    ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec, implicit $mode606    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64607    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438608    ; GCN-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc609    ; GCN-NEXT: S_ENDPGM 0610    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec611    $vgpr2 = V_MOV_B32_e32 0, implicit $exec, implicit $mode612    $sgpr0_sgpr1 = S_GETPC_B64613    $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc614    S_ENDPGM 0615...616 617# Check explicit $exec618---619name:            mask_hazard_gap3620body:            |621  bb.0:622    ; GCN-LABEL: name: mask_hazard_gap3623    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec624    ; GCN-NEXT: $vgpr2 = V_WRITELANE_B32 $exec_lo, 0, $vgpr2625    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64626    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438627    ; GCN-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc628    ; GCN-NEXT: S_ENDPGM 0629    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec630    $vgpr2 = V_WRITELANE_B32 $exec_lo, 0, $vgpr2631    $sgpr0_sgpr1 = S_GETPC_B64632    $sgpr0 = S_ADD_U32 $sgpr0, 0, implicit-def $scc633    S_ENDPGM 0634...635 636# Different SGPR write637---638name:            mask_hazard_no_hazard1639body:            |640  bb.0:641    ; GCN-LABEL: name: mask_hazard_no_hazard1642    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec643    ; GCN-NEXT: $sgpr0 = S_MOV_B32 0644    ; GCN-NEXT: S_ENDPGM 0645    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec646    $sgpr0 = S_MOV_B32 0647    S_ENDPGM 0648...649 650# Different SGPR write with mask read overlap651---652name:            mask_hazard_no_hazard2653body:            |654  bb.0:655    ; GCN-LABEL: name: mask_hazard_no_hazard2656    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec657    ; GCN-NEXT: $sgpr0_sgpr1 = S_MOV_B64 $vcc658    ; GCN-NEXT: S_ENDPGM 0659    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec660    $sgpr0_sgpr1 = S_MOV_B64 $vcc661    S_ENDPGM 0662...663 664# Overlapping VGPR write665---666name:            mask_hazard_no_hazard3667body:            |668  bb.0:669    ; GCN-LABEL: name: mask_hazard_no_hazard3670    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec671    ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec672    ; GCN-NEXT: S_ENDPGM 0673    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec674    $vgpr2 = V_MOV_B32_e32 0, implicit $exec675    S_ENDPGM 0676...677 678---679name:            mask_hazard_cancel_hazard1680body:            |681  bb.0:682    ; GCN-LABEL: name: mask_hazard_cancel_hazard1683    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec684    ; GCN-NEXT: $vcc_lo = S_MOV_B32 0685    ; GCN-NEXT: $vcc_hi = S_MOV_B32 0686    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438687    ; GCN-NEXT: $sgpr0 = S_MOV_B32 $vcc_lo688    ; GCN-NEXT: $vcc = S_MOV_B64 1689    ; GCN-NEXT: S_ENDPGM 0690    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec691    $vcc_lo = S_MOV_B32 0692    $vcc_hi = S_MOV_B32 0693    $sgpr0 = S_MOV_B32 $vcc_lo694    $vcc = S_MOV_B64 1695    S_ENDPGM 0696...697 698---699name:            mask_hazard_cancel_hazard2700body:            |701  bb.0:702    ; GCN-LABEL: name: mask_hazard_cancel_hazard2703    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec704    ; GCN-NEXT: $vcc = S_MOV_B64 0705    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438706    ; GCN-NEXT: $sgpr0 = S_MOV_B32 $vcc_lo707    ; GCN-NEXT: $vcc = S_MOV_B64 1708    ; GCN-NEXT: S_ENDPGM 0709    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec710    $vcc = S_MOV_B64 0711    $sgpr0 = S_MOV_B32 $vcc_lo712    $vcc = S_MOV_B64 1713    S_ENDPGM 0714...715 716---717name:            mask_hazard_cancel_hazard3718body:            |719  bb.0:720    ; GCN-LABEL: name: mask_hazard_cancel_hazard3721    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec722    ; GCN-NEXT: $sgpr0_sgpr1 = S_MOV_B64 0723    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438724    ; GCN-NEXT: $sgpr4 = S_MOV_B32 $sgpr0725    ; GCN-NEXT: $sgpr0_sgpr1 = S_MOV_B64 1726    ; GCN-NEXT: S_ENDPGM 0727    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec728    $sgpr0_sgpr1 = S_MOV_B64 0729    $sgpr4 = S_MOV_B32 $sgpr0730    $sgpr0_sgpr1 = S_MOV_B64 1731    S_ENDPGM 0732...733 734---735name:            mask_hazard_cancel_hazard4736body:            |737  bb.0:738    ; GCN-LABEL: name: mask_hazard_cancel_hazard4739    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec740    ; GCN-NEXT: $sgpr0 = S_MOV_B32 0741    ; GCN-NEXT: $sgpr1 = S_MOV_B32 0742    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438743    ; GCN-NEXT: $sgpr4 = S_MOV_B32 $sgpr0744    ; GCN-NEXT: $sgpr0_sgpr1 = S_MOV_B64 1745    ; GCN-NEXT: S_ENDPGM 0746    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec747    $sgpr0 = S_MOV_B32 0748    $sgpr1 = S_MOV_B32 0749    $sgpr4 = S_MOV_B32 $sgpr0750    $sgpr0_sgpr1 = S_MOV_B64 1751    S_ENDPGM 0752...753 754---755name:            mask_hazard_partial_cancel1756body:            |757  bb.0:758    ; GFX11-LABEL: name: mask_hazard_partial_cancel1759    ; GFX11: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec760    ; GFX11-NEXT: $vcc_lo = S_MOV_B32 0761    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438762    ; GFX11-NEXT: $sgpr0 = S_MOV_B32 $vcc_lo763    ; GFX11-NEXT: $vcc = S_MOV_B64 1764    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438765    ; GFX11-NEXT: S_ENDPGM 0766    ;767    ; GFX12-LABEL: name: mask_hazard_partial_cancel1768    ; GFX12: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec769    ; GFX12-NEXT: $vcc_lo = S_MOV_B32 0770    ; GFX12-NEXT: S_WAITCNT_DEPCTR 65438771    ; GFX12-NEXT: $sgpr0 = S_MOV_B32 $vcc_lo772    ; GFX12-NEXT: $vcc = S_MOV_B64 1773    ; GFX12-NEXT: S_ENDPGM 0774    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec775    $vcc_lo = S_MOV_B32 0776    $sgpr0 = S_MOV_B32 $vcc_lo777    $vcc = S_MOV_B64 1778    S_ENDPGM 0779...780 781---782name:            mask_hazard_partial_cancel2783body:            |784  bb.0:785    ; GFX11-LABEL: name: mask_hazard_partial_cancel2786    ; GFX11: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec787    ; GFX11-NEXT: $vcc_hi = S_MOV_B32 0788    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438789    ; GFX11-NEXT: $sgpr0 = S_MOV_B32 $vcc_lo790    ; GFX11-NEXT: $vcc = S_MOV_B64 1791    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438792    ; GFX11-NEXT: S_ENDPGM 0793    ;794    ; GFX12-LABEL: name: mask_hazard_partial_cancel2795    ; GFX12: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec796    ; GFX12-NEXT: $vcc_hi = S_MOV_B32 0797    ; GFX12-NEXT: S_WAITCNT_DEPCTR 65438798    ; GFX12-NEXT: $sgpr0 = S_MOV_B32 $vcc_lo799    ; GFX12-NEXT: $vcc = S_MOV_B64 1800    ; GFX12-NEXT: S_ENDPGM 0801    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec802    $vcc_hi = S_MOV_B32 0803    $sgpr0 = S_MOV_B32 $vcc_lo804    $vcc = S_MOV_B64 1805    S_ENDPGM 0806...807 808---809name:            mask_hazard_partial_cancel3810body:            |811  bb.0:812    ; GFX11-LABEL: name: mask_hazard_partial_cancel3813    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec814    ; GFX11-NEXT: $sgpr0 = S_MOV_B32 0815    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438816    ; GFX11-NEXT: $sgpr3 = S_MOV_B32 $sgpr0817    ; GFX11-NEXT: $sgpr0_sgpr1 = S_MOV_B64 1818    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438819    ; GFX11-NEXT: S_ENDPGM 0820    ;821    ; GFX12-LABEL: name: mask_hazard_partial_cancel3822    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec823    ; GFX12-NEXT: $sgpr0 = S_MOV_B32 0824    ; GFX12-NEXT: S_WAITCNT_DEPCTR 65438825    ; GFX12-NEXT: $sgpr3 = S_MOV_B32 $sgpr0826    ; GFX12-NEXT: $sgpr0_sgpr1 = S_MOV_B64 1827    ; GFX12-NEXT: S_ENDPGM 0828    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec829    $sgpr0 = S_MOV_B32 0830    $sgpr3 = S_MOV_B32 $sgpr0831    $sgpr0_sgpr1 = S_MOV_B64 1832    S_ENDPGM 0833...834 835---836name:            mask_hazard_partial_cancel4837body:            |838  bb.0:839    ; GFX11-LABEL: name: mask_hazard_partial_cancel4840    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec841    ; GFX11-NEXT: $sgpr1 = S_MOV_B32 0842    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438843    ; GFX11-NEXT: $sgpr3 = S_MOV_B32 $sgpr1844    ; GFX11-NEXT: $sgpr0_sgpr1 = S_MOV_B64 1845    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65438846    ; GFX11-NEXT: S_ENDPGM 0847    ;848    ; GFX12-LABEL: name: mask_hazard_partial_cancel4849    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec850    ; GFX12-NEXT: $sgpr1 = S_MOV_B32 0851    ; GFX12-NEXT: S_WAITCNT_DEPCTR 65438852    ; GFX12-NEXT: $sgpr3 = S_MOV_B32 $sgpr1853    ; GFX12-NEXT: $sgpr0_sgpr1 = S_MOV_B64 1854    ; GFX12-NEXT: S_ENDPGM 0855    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec856    $sgpr1 = S_MOV_B32 0857    $sgpr3 = S_MOV_B32 $sgpr1858    $sgpr0_sgpr1 = S_MOV_B64 1859    S_ENDPGM 0860...861 862---863name:            mask_hazard_valu_readlane1864body:            |865  bb.0:866    ; GFX11-LABEL: name: mask_hazard_valu_readlane1867    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec868    ; GFX11-NEXT: $sgpr2 = V_READLANE_B32 $vgpr3, 0869    ; GFX11-NEXT: S_WAITCNT_DEPCTR 61855870    ; GFX11-NEXT: S_ENDPGM 0871    ;872    ; GFX12-LABEL: name: mask_hazard_valu_readlane1873    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec874    ; GFX12-NEXT: $sgpr2 = V_READLANE_B32 $vgpr3, 0875    ; GFX12-NEXT: S_ENDPGM 0876    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec877    $sgpr2 = V_READLANE_B32 $vgpr3, 0878    S_ENDPGM 0879...880 881---882name:            mask_hazard_valu_readlane2883body:            |884  bb.0:885    ; GFX11-LABEL: name: mask_hazard_valu_readlane2886    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec887    ; GFX11-NEXT: $sgpr3 = V_READLANE_B32 $vgpr3, 1888    ; GFX11-NEXT: S_WAITCNT_DEPCTR 61855889    ; GFX11-NEXT: S_ENDPGM 0890    ;891    ; GFX12-LABEL: name: mask_hazard_valu_readlane2892    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec893    ; GFX12-NEXT: $sgpr3 = V_READLANE_B32 $vgpr3, 1894    ; GFX12-NEXT: S_ENDPGM 0895    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec896    $sgpr3 = V_READLANE_B32 $vgpr3, 1897    S_ENDPGM 0898...899 900---901name:            mask_hazard_valu_readlane3902body:            |903  bb.0:904    ; GFX11-LABEL: name: mask_hazard_valu_readlane3905    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec906    ; GFX11-NEXT: $sgpr2 = V_READLANE_B32 $vgpr3, 0907    ; GFX11-NEXT: $sgpr3 = V_READLANE_B32 $vgpr3, 1908    ; GFX11-NEXT: S_WAITCNT_DEPCTR 61855909    ; GFX11-NEXT: S_ENDPGM 0910    ;911    ; GFX12-LABEL: name: mask_hazard_valu_readlane3912    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec913    ; GFX12-NEXT: $sgpr2 = V_READLANE_B32 $vgpr3, 0914    ; GFX12-NEXT: $sgpr3 = V_READLANE_B32 $vgpr3, 1915    ; GFX12-NEXT: S_ENDPGM 0916    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec917    $sgpr2 = V_READLANE_B32 $vgpr3, 0918    $sgpr3 = V_READLANE_B32 $vgpr3, 1919    S_ENDPGM 0920...921 922---923name:            mask_hazard_valu_readfirstlane924body:            |925  bb.0:926    ; GFX11-LABEL: name: mask_hazard_valu_readfirstlane927    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec928    ; GFX11-NEXT: $sgpr2 = V_READFIRSTLANE_B32 $vgpr3, implicit $exec929    ; GFX11-NEXT: S_WAITCNT_DEPCTR 61855930    ; GFX11-NEXT: S_ENDPGM 0931    ;932    ; GFX12-LABEL: name: mask_hazard_valu_readfirstlane933    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec934    ; GFX12-NEXT: $sgpr2 = V_READFIRSTLANE_B32 $vgpr3, implicit $exec935    ; GFX12-NEXT: S_ENDPGM 0936    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec937    $sgpr2 = V_READFIRSTLANE_B32 $vgpr3, implicit $exec938    S_ENDPGM 0939...940 941---942name:            mask_hazard_valu_vcmp_vcc943body:            |944  bb.0:945    ; GFX11-LABEL: name: mask_hazard_valu_vcmp_vcc946    ; GFX11: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec947    ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec948    ; GFX11-NEXT: S_WAITCNT_DEPCTR 65437949    ; GFX11-NEXT: S_ENDPGM 0950    ;951    ; GFX12-LABEL: name: mask_hazard_valu_vcmp_vcc952    ; GFX12: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec953    ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec954    ; GFX12-NEXT: S_ENDPGM 0955    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec956    V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec957    S_ENDPGM 0958...959 960---961name:            mask_hazard_valu_vcmp_sgpr962body:            |963  bb.0:964    ; GFX11-LABEL: name: mask_hazard_valu_vcmp_sgpr965    ; GFX11: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec966    ; GFX11-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec967    ; GFX11-NEXT: S_WAITCNT_DEPCTR 61855968    ; GFX11-NEXT: S_ENDPGM 0969    ;970    ; GFX12-LABEL: name: mask_hazard_valu_vcmp_sgpr971    ; GFX12: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec972    ; GFX12-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec973    ; GFX12-NEXT: S_ENDPGM 0974    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec975    $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec976    S_ENDPGM 0977...978 979---980name:            mask_hazard_combine1981body:            |982  bb.0:983    ; GFX11-LABEL: name: mask_hazard_combine1984    ; GFX11: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec985    ; GFX11-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec986    ; GFX11-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec987    ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec988    ; GFX11-NEXT: $sgpr0 = S_MOV_B32 0989    ; GFX11-NEXT: $sgpr1 = S_MOV_B32 0990    ; GFX11-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec991    ; GFX11-NEXT: S_WAITCNT_DEPCTR 61852992    ; GFX11-NEXT: S_ENDPGM 0993    ;994    ; GFX12-LABEL: name: mask_hazard_combine1995    ; GFX12: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec996    ; GFX12-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec997    ; GFX12-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec998    ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec999    ; GFX12-NEXT: $sgpr0 = S_MOV_B32 01000    ; GFX12-NEXT: $sgpr1 = S_MOV_B32 01001    ; GFX12-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec1002    ; GFX12-NEXT: S_ENDPGM 01003    $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1004    $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1005    $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1006    V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1007    $sgpr0 = S_MOV_B32 01008    $sgpr1 = S_MOV_B32 01009    $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec1010    S_ENDPGM 01011...1012 1013---1014name:            mask_hazard_combine21015body:            |1016  bb.0:1017    ; GFX11-LABEL: name: mask_hazard_combine21018    ; GFX11: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1019    ; GFX11-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1020    ; GFX11-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1021    ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1022    ; GFX11-NEXT: $sgpr0 = S_MOV_B32 01023    ; GFX11-NEXT: S_WAITCNT_DEPCTR 654361024    ; GFX11-NEXT: $sgpr1 = S_MOV_B32 $sgpr41025    ; GFX11-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec1026    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618541027    ; GFX11-NEXT: S_ENDPGM 01028    ;1029    ; GFX12-LABEL: name: mask_hazard_combine21030    ; GFX12: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1031    ; GFX12-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1032    ; GFX12-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1033    ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1034    ; GFX12-NEXT: $sgpr0 = S_MOV_B32 01035    ; GFX12-NEXT: $sgpr1 = S_MOV_B32 $sgpr41036    ; GFX12-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec1037    ; GFX12-NEXT: S_ENDPGM 01038    $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1039    $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1040    $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1041    V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1042    $sgpr0 = S_MOV_B32 01043    $sgpr1 = S_MOV_B32 $sgpr41044    $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $vgpr5, implicit $exec1045    S_ENDPGM 01046...1047 1048---1049name:            mask_hazard_combine31050body:            |1051  bb.0:1052    ; GFX11-LABEL: name: mask_hazard_combine31053    ; GFX11: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1054    ; GFX11-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1055    ; GFX11-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1056    ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1057    ; GFX11-NEXT: S_WAITCNT_DEPCTR 654371058    ; GFX11-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1059    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618551060    ; GFX11-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1061    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618551062    ; GFX11-NEXT: S_ENDPGM 01063    ;1064    ; GFX12-LABEL: name: mask_hazard_combine31065    ; GFX12: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1066    ; GFX12-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1067    ; GFX12-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1068    ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1069    ; GFX12-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1070    ; GFX12-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1071    ; GFX12-NEXT: S_ENDPGM 01072    $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1073    $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1074    $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1075    V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1076    $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1077    $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1078    S_ENDPGM 01079...1080 1081---1082name:            mask_hazard_combine41083body:            |1084  bb.0:1085    ; GFX11-LABEL: name: mask_hazard_combine41086    ; GFX11: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1087    ; GFX11-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1088    ; GFX11-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1089    ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1090    ; GFX11-NEXT: S_WAITCNT_DEPCTR 654371091    ; GFX11-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1092    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618551093    ; GFX11-NEXT: $sgpr4_sgpr5 = S_MOV_B64 $vcc1094    ; GFX11-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1095    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618551096    ; GFX11-NEXT: S_ENDPGM 01097    ;1098    ; GFX12-LABEL: name: mask_hazard_combine41099    ; GFX12: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1100    ; GFX12-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1101    ; GFX12-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1102    ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1103    ; GFX12-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1104    ; GFX12-NEXT: $sgpr4_sgpr5 = S_MOV_B64 $vcc1105    ; GFX12-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1106    ; GFX12-NEXT: S_ENDPGM 01107    $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1108    $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1109    $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1110    V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1111    $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1112    $sgpr4_sgpr5 = S_MOV_B64 $vcc1113    $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1114    S_ENDPGM 01115...1116 1117---1118name:            mask_hazard_combine51119body:            |1120  bb.0:1121    ; GFX11-LABEL: name: mask_hazard_combine51122    ; GFX11: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1123    ; GFX11-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1124    ; GFX11-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1125    ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1126    ; GFX11-NEXT: S_WAITCNT_DEPCTR 654371127    ; GFX11-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1128    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618551129    ; GFX11-NEXT: $sgpr5 = S_MOV_B32 $sgpr11130    ; GFX11-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1131    ; GFX11-NEXT: S_WAITCNT_DEPCTR 618551132    ; GFX11-NEXT: S_ENDPGM 01133    ;1134    ; GFX12-LABEL: name: mask_hazard_combine51135    ; GFX12: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1136    ; GFX12-NEXT: $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1137    ; GFX12-NEXT: $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1138    ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1139    ; GFX12-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1140    ; GFX12-NEXT: $sgpr5 = S_MOV_B32 $sgpr11141    ; GFX12-NEXT: $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1142    ; GFX12-NEXT: S_ENDPGM 01143    $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec1144    $vgpr4 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0_sgpr1, implicit $exec1145    $vgpr5 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2_sgpr3, implicit $exec1146    V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec1147    $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 2, $sgpr10, implicit $exec1148    $sgpr5 = S_MOV_B32 $sgpr11149    $sgpr2_sgpr3 = V_CMP_EQ_U32_e64 3, $sgpr10, implicit $exec1150    S_ENDPGM 01151...1152