brintos

brintos / llvm-project-archived public Read only

0
0
Text · 41.0 KiB · babc64a Raw
1055 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass post-RA-hazard-rec,amdgpu-wait-sgpr-hazards -amdgpu-sgpr-hazard-boundary-cull=0 -o - %s | FileCheck -check-prefixes=GCN,NOBC,NOMEMC %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass post-RA-hazard-rec,amdgpu-wait-sgpr-hazards -amdgpu-sgpr-hazard-boundary-cull=1 -o - %s | FileCheck -check-prefixes=GCN,BC,NOMEMC %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass post-RA-hazard-rec,amdgpu-wait-sgpr-hazards -amdgpu-sgpr-hazard-boundary-cull=0 -amdgpu-sgpr-hazard-mem-wait-cull=1 -amdgpu-sgpr-hazard-mem-wait-cull-threshold=1 -o - %s | FileCheck -check-prefixes=GCN,NOBC,MEMC %s5 6--- |7  @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>]8 9  define amdgpu_gs void @hazard_getpc1() { ret void }10  define amdgpu_gs void @hazard_getpc2() { ret void }11  define amdgpu_gs void @hazard_getpc3() { ret void }12  define amdgpu_gs void @hazard_getpc4() { ret void }13  define amdgpu_gs void @hazard_vcc1() { ret void }14  define amdgpu_gs void @hazard_vcc2() { ret void }15  define amdgpu_gs void @hazard_vcc3() { ret void }16  define amdgpu_gs void @hazard_merge_vcc() { ret void }17  define amdgpu_gs void @hazard_addc1() { ret void }18  define amdgpu_gs void @hazard_addc2() { ret void }19  define amdgpu_gs void @hazard_addc3() { ret void }20  define amdgpu_gs void @hazard_addc4() { ret void }21  define amdgpu_gs void @hazard_addc5() { ret void }22  define amdgpu_gs void @hazard_addc6() { ret void }23  define amdgpu_gs void @hazard_vaddc1() { ret void }24  define amdgpu_gs void @hazard_gap1() { ret void }25  define amdgpu_gs void @hazard_gap2() { ret void }26  define amdgpu_gs void @hazard_gap3() { ret void }27  define amdgpu_gs void @hazard_gap4_no_hazard() { ret void }28  define amdgpu_gs void @hazard_valu_write1_no_hazard() { ret void }29  define amdgpu_gs void @hazard_post_order1() { ret void }30  define amdgpu_gs void @hazard_post_order2() { ret void }31  define amdgpu_gs void @hazard_post_order_cycle() { ret void }32  define amdgpu_cs void @hazard_calls() { ret void }33  define void @hazard_callee1() { ret void }34  define void @hazard_callee2() { ret void }35  define amdgpu_cs void @hazard_carry_vcc() { ret void }36  define amdgpu_cs void @hazard_carry_vcc_no_hazard() { ret void }37  define amdgpu_cs void @hazard_carry_sgpr() { ret void }38  define amdgpu_cs void @hazard_carry_sgpr_no_hazard1() { ret void }39  define amdgpu_cs void @hazard_carry_sgpr_no_hazard2() { ret void }40  define amdgpu_cs void @hazard_carry_sgpr_no_hazard3() { ret void }41  define amdgpu_cs void @hazard_cull_vmem() { ret void }42  define amdgpu_cs void @hazard_cull_sample() { ret void }43  define amdgpu_cs void @hazard_cull_bvh() { ret void }44  define amdgpu_cs void @hazard_nocull_scratch() { ret void }45  define amdgpu_cs void @hazard_cull_global() { ret void }46  define amdgpu_cs void @hazard_nocull_flat() { ret void }47  define amdgpu_cs void @hazard_existing_cull() { ret void }48...49 50---51name:            hazard_getpc152body:            |53  bb.0:54    ; GCN-LABEL: name: hazard_getpc155    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec56    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B6457    ; GCN-NEXT: S_WAITCNT_DEPCTR 6543858    ; GCN-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc59    ; GCN-NEXT: S_ENDPGM 060    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec61    $sgpr0_sgpr1 = S_GETPC_B6462    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc63    S_ENDPGM 064...65 66---67name:            hazard_getpc268body:            |69  bb.0:70    ; GCN-LABEL: name: hazard_getpc271    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr1, implicit $exec72    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B6473    ; GCN-NEXT: S_WAITCNT_DEPCTR 6543874    ; GCN-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc75    ; GCN-NEXT: S_ENDPGM 076    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr1, implicit $exec77    $sgpr0_sgpr1 = S_GETPC_B6478    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc79    S_ENDPGM 080...81 82---83name:            hazard_getpc384body:            |85  bb.0:86    ; GCN-LABEL: name: hazard_getpc387    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec88    ; GCN-NEXT: BUNDLE implicit-def $sgpr0_sgpr1 {89    ; GCN-NEXT:   $sgpr0_sgpr1 = S_GETPC_B6490    ; GCN-NEXT:   S_WAITCNT_DEPCTR 6543891    ; GCN-NEXT:   $sgpr0 = S_ADD_U32 $sgpr0, target-flags(amdgpu-rel32-lo) @mem + 8, implicit-def $scc92    ; GCN-NEXT:   $sgpr1 = S_ADDC_U32 $sgpr1, target-flags(amdgpu-rel32-hi) @mem + 16, implicit-def $scc, implicit $scc93    ; GCN-NEXT: }94    ; GCN-NEXT: S_ENDPGM 095    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec96    BUNDLE implicit-def $sgpr0_sgpr1 {97      $sgpr0_sgpr1 = S_GETPC_B6498      $sgpr0 = S_ADD_U32 $sgpr0, target-flags(amdgpu-rel32-lo) @mem + 4, implicit-def $scc99      $sgpr1 = S_ADDC_U32 $sgpr1, target-flags(amdgpu-rel32-hi) @mem + 12, implicit-def $scc, implicit $scc100    }101    S_ENDPGM 0102...103 104---105name:            hazard_getpc4106body:            |107  bb.0:108    ; GCN-LABEL: name: hazard_getpc4109    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec110    ; GCN-NEXT: BUNDLE implicit-def $sgpr0_sgpr1 {111    ; GCN-NEXT:   $sgpr0_sgpr1 = S_GETPC_B64112    ; GCN-NEXT:   S_WAITCNT_DEPCTR 65438113    ; GCN-NEXT:   $sgpr1 = S_SEXT_I32_I16 $sgpr1114    ; GCN-NEXT:   $sgpr0 = S_ADD_U32 $sgpr0, target-flags(amdgpu-rel32-lo) @mem + 12, implicit-def $scc115    ; GCN-NEXT:   S_WAITCNT_DEPCTR 65438116    ; GCN-NEXT:   $sgpr1 = S_ADDC_U32 $sgpr1, target-flags(amdgpu-rel32-hi) @mem + 24, implicit-def $scc, implicit $scc117    ; GCN-NEXT: }118    ; GCN-NEXT: S_ENDPGM 0119    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec120    BUNDLE implicit-def $sgpr0_sgpr1 {121      $sgpr0_sgpr1 = S_GETPC_B64122      $sgpr1 = S_SEXT_I32_I16 $sgpr1123      $sgpr0 = S_ADD_U32 $sgpr0, target-flags(amdgpu-rel32-lo) @mem + 8, implicit-def $scc124      $sgpr1 = S_ADDC_U32 $sgpr1, target-flags(amdgpu-rel32-hi) @mem + 16, implicit-def $scc, implicit $scc125    }126    S_ENDPGM 0127...128 129---130name:            hazard_vcc1131body:            |132  bb.0:133    ; GCN-LABEL: name: hazard_vcc1134    ; GCN: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2, implicit $exec135    ; GCN-NEXT: $sgpr3 = S_CSELECT_B32 -1, 0, implicit $scc136    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438137    ; GCN-NEXT: $sgpr4 = S_ADD_U32 $sgpr3, 0, implicit-def $scc138    ; GCN-NEXT: S_ENDPGM 0139    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr2, implicit $exec140    $sgpr3 = S_CSELECT_B32 -1, 0, implicit $scc141    $sgpr4 = S_ADD_U32 $sgpr3, 0, implicit-def $scc142    S_ENDPGM 0143...144 145---146name:            hazard_vcc2147body:            |148  bb.0:149    ; GCN-LABEL: name: hazard_vcc2150    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc_lo, implicit $exec151    ; GCN-NEXT: $vcc_lo = S_CSELECT_B32 -1, 0, implicit $scc152    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438153    ; GCN-NEXT: $sgpr4 = S_ADD_U32 $vcc_lo, 0, implicit-def $scc154    ; GCN-NEXT: S_ENDPGM 0155    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec156    $vcc_lo = S_CSELECT_B32 -1, 0, implicit $scc157    $sgpr4 = S_ADD_U32 $vcc_lo, 0, implicit-def $scc158    S_ENDPGM 0159...160 161---162name:            hazard_vcc3163body:            |164  bb.0:165    ; GCN-LABEL: name: hazard_vcc3166    ; GCN: $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc_lo, implicit $exec167    ; GCN-NEXT: $vcc_lo = S_CSELECT_B32 -1, 0, implicit $scc168    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438169    ; GCN-NEXT: $vgpr3 = V_CNDMASK_B32_e32 $vgpr4, $vgpr5, implicit $vcc_lo, implicit $exec170    ; GCN-NEXT: S_ENDPGM 0171    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec172    $vcc_lo = S_CSELECT_B32 -1, 0, implicit $scc173    $vgpr3 = V_CNDMASK_B32_e32 $vgpr4, $vgpr5, implicit $vcc, implicit $exec174    S_ENDPGM 0175...176 177---178name:            hazard_merge_vcc179body:            |180  ; GCN-LABEL: name: hazard_merge_vcc181  ; GCN: bb.0:182  ; GCN-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)183  ; GCN-NEXT: {{  $}}184  ; GCN-NEXT:   $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc_lo, implicit $exec185  ; GCN-NEXT:   S_CBRANCH_SCC0 %bb.1, implicit $scc186  ; GCN-NEXT:   S_BRANCH %bb.2187  ; GCN-NEXT: {{  $}}188  ; GCN-NEXT: bb.1:189  ; GCN-NEXT:   successors: %bb.3(0x80000000)190  ; GCN-NEXT: {{  $}}191  ; GCN-NEXT:   $vcc_lo = S_CSELECT_B32 -1, 0, implicit $scc192  ; GCN-NEXT:   S_BRANCH %bb.3193  ; GCN-NEXT: {{  $}}194  ; GCN-NEXT: bb.2:195  ; GCN-NEXT:   successors: %bb.3(0x80000000)196  ; GCN-NEXT: {{  $}}197  ; GCN-NEXT:   $vcc_lo = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec198  ; GCN-NEXT:   S_BRANCH %bb.3199  ; GCN-NEXT: {{  $}}200  ; GCN-NEXT: bb.3:201  ; GCN-NEXT:   S_WAITCNT_DEPCTR 65436202  ; GCN-NEXT:   $vgpr3 = V_CNDMASK_B32_e32 $vgpr4, $vgpr5, implicit $vcc_lo, implicit $exec203  ; GCN-NEXT:   S_ENDPGM 0204  bb.0:205    $vgpr1 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec206    S_CBRANCH_SCC0 %bb.1, implicit $scc207    S_BRANCH %bb.2208  bb.1:209    $vcc_lo = S_CSELECT_B32 -1, 0, implicit $scc210    S_BRANCH %bb.3211  bb.2:212    $vcc_lo = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec213    S_BRANCH %bb.3214  bb.3:215    $vgpr3 = V_CNDMASK_B32_e32 $vgpr4, $vgpr5, implicit $vcc, implicit $exec216    S_ENDPGM 0217...218 219---220name:            hazard_addc1221body:            |222  bb.0:223    ; GCN-LABEL: name: hazard_addc1224    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec225    ; GCN-NEXT: $sgpr0 = S_CSELECT_B32 -1, 0, implicit $scc226    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438227    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr0, 0, implicit-def $scc228    ; GCN-NEXT: S_ENDPGM 0229    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec230    $sgpr0 = S_CSELECT_B32 -1, 0, implicit $scc231    $sgpr2 = S_ADD_U32 $sgpr0, 0, implicit-def $scc232    S_ENDPGM 0233...234 235---236name:            hazard_addc2237body:            |238  bb.0:239    ; GCN-LABEL: name: hazard_addc2240    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr1, 0, implicit $exec241    ; GCN-NEXT: $sgpr0 = S_CSELECT_B32 -1, 0, implicit $scc242    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438243    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr0, 0, implicit-def $scc244    ; GCN-NEXT: S_ENDPGM 0245    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr1, 0, implicit $exec246    $sgpr0 = S_CSELECT_B32 -1, 0, implicit $scc247    $sgpr2 = S_ADD_U32 $sgpr0, 0, implicit-def $scc248    S_ENDPGM 0249...250 251---252name:            hazard_addc3253body:            |254  bb.0:255    ; GCN-LABEL: name: hazard_addc3256    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec257    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc258    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438259    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc260    ; GCN-NEXT: S_ENDPGM 0261    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec262    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc263    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc264    S_ENDPGM 0265...266 267---268name:            hazard_addc4269body:            |270  bb.0:271    ; GCN-LABEL: name: hazard_addc4272    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr3, 0, implicit $exec273    ; GCN-NEXT: $sgpr3 = S_CSELECT_B32 -1, 0, implicit $scc274    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438275    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr3, 0, implicit-def $scc276    ; GCN-NEXT: S_ENDPGM 0277    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr3, 0, implicit $exec278    $sgpr3 = S_CSELECT_B32 -1, 0, implicit $scc279    $sgpr2 = S_ADD_U32 $sgpr3, 0, implicit-def $scc280    S_ENDPGM 0281...282 283---284name:            hazard_addc5285body:            |286  bb.0:287    ; GCN-LABEL: name: hazard_addc5288    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec289    ; GCN-NEXT: $sgpr16 = S_MOV_B32 0290    ; GCN-NEXT: $sgpr32 = S_MOV_B32 0291    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc292    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438293    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc294    ; GCN-NEXT: S_ENDPGM 0295    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec296    $sgpr16 = S_MOV_B32 0297    $sgpr32 = S_MOV_B32 0298    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc299    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc300    S_ENDPGM 0301...302 303---304name:            hazard_addc6305body:            |306  bb.0:307    ; GCN-LABEL: name: hazard_addc6308    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec309    ; GCN-NEXT: $sgpr16 = S_MOV_B32 0310    ; GCN-NEXT: $sgpr32 = S_MOV_B32 0311    ; GCN-NEXT: $sgpr48 = S_MOV_B32 0312    ; GCN-NEXT: $sgpr80 = S_MOV_B32 0313    ; GCN-NEXT: $sgpr96 = S_MOV_B32 0314    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc315    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438316    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc317    ; GCN-NEXT: S_ENDPGM 0318    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec319    $sgpr16 = S_MOV_B32 0320    $sgpr32 = S_MOV_B32 0321    $sgpr48 = S_MOV_B32 0322    $sgpr80 = S_MOV_B32 0323    $sgpr96 = S_MOV_B32 0324    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc325    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc326    S_ENDPGM 0327...328 329---330name:            hazard_vaddc1331body:            |332  bb.0:333    ; GCN-LABEL: name: hazard_vaddc1334    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec335    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc336    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438337    ; GCN-NEXT: $vgpr2, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr1, 0, implicit $exec338    ; GCN-NEXT: S_ENDPGM 0339    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec340    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc341    $vgpr2, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr1, 0, implicit $exec342    S_ENDPGM 0343...344 345---346name:            hazard_gap1347body:            |348  bb.0:349    ; GCN-LABEL: name: hazard_gap1350    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec351    ; GCN-NEXT: S_NOP 0352    ; GCN-NEXT: S_NOP 0353    ; GCN-NEXT: S_NOP 0354    ; GCN-NEXT: S_NOP 0355    ; GCN-NEXT: S_NOP 0356    ; GCN-NEXT: S_NOP 0357    ; GCN-NEXT: S_NOP 0358    ; GCN-NEXT: S_NOP 0359    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc360    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438361    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc362    ; GCN-NEXT: S_ENDPGM 0363    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec364    S_NOP 0365    S_NOP 0366    S_NOP 0367    S_NOP 0368    S_NOP 0369    S_NOP 0370    S_NOP 0371    S_NOP 0372    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc373    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc374    S_ENDPGM 0375...376 377---378name:            hazard_gap2379body:            |380  bb.0:381    ; GCN-LABEL: name: hazard_gap2382    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec383    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc384    ; GCN-NEXT: S_NOP 0385    ; GCN-NEXT: S_NOP 0386    ; GCN-NEXT: S_NOP 0387    ; GCN-NEXT: S_NOP 0388    ; GCN-NEXT: S_NOP 0389    ; GCN-NEXT: S_NOP 0390    ; GCN-NEXT: S_NOP 0391    ; GCN-NEXT: S_NOP 0392    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438393    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc394    ; GCN-NEXT: S_ENDPGM 0395    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec396    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc397    S_NOP 0398    S_NOP 0399    S_NOP 0400    S_NOP 0401    S_NOP 0402    S_NOP 0403    S_NOP 0404    S_NOP 0405    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc406    S_ENDPGM 0407...408 409---410name:            hazard_gap3411body:            |412  bb.0:413    ; GCN-LABEL: name: hazard_gap3414    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec415    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc416    ; GCN-NEXT: $sgpr4 = S_ADD_U32 $sgpr3, 0, implicit-def $scc417    ; GCN-NEXT: $sgpr6 = S_ADD_U32 $sgpr5, 0, implicit-def $scc418    ; GCN-NEXT: $sgpr8 = S_ADD_U32 $sgpr7, 0, implicit-def $scc419    ; GCN-NEXT: $sgpr10 = S_ADD_U32 $sgpr9, 0, implicit-def $scc420    ; GCN-NEXT: $sgpr12 = S_ADD_U32 $sgpr11, 0, implicit-def $scc421    ; GCN-NEXT: $sgpr14 = S_ADD_U32 $sgpr13, 0, implicit-def $scc422    ; GCN-NEXT: $sgpr16 = S_ADD_U32 $sgpr15, 0, implicit-def $scc423    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438424    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc425    ; GCN-NEXT: S_ENDPGM 0426    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec427    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc428    $sgpr4 = S_ADD_U32 $sgpr3, 0, implicit-def $scc429    $sgpr6 = S_ADD_U32 $sgpr5, 0, implicit-def $scc430    $sgpr8 = S_ADD_U32 $sgpr7, 0, implicit-def $scc431    $sgpr10 = S_ADD_U32 $sgpr9, 0, implicit-def $scc432    $sgpr12 = S_ADD_U32 $sgpr11, 0, implicit-def $scc433    $sgpr14 = S_ADD_U32 $sgpr13, 0, implicit-def $scc434    $sgpr16 = S_ADD_U32 $sgpr15, 0, implicit-def $scc435    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc436    S_ENDPGM 0437...438 439---440name:            hazard_gap4_no_hazard441body:            |442  bb.0:443    ; GCN-LABEL: name: hazard_gap4_no_hazard444    ; GCN: $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec445    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc446    ; GCN-NEXT: $sgpr4 = S_ADD_U32 $sgpr3, 0, implicit-def $scc447    ; GCN-NEXT: $sgpr6 = S_ADD_U32 $sgpr5, 0, implicit-def $scc448    ; GCN-NEXT: $sgpr8 = S_ADD_U32 $sgpr7, 0, implicit-def $scc449    ; GCN-NEXT: $sgpr10 = S_ADD_U32 $sgpr9, 0, implicit-def $scc450    ; GCN-NEXT: $sgpr12 = S_ADD_U32 $sgpr11, 0, implicit-def $scc451    ; GCN-NEXT: $sgpr14 = S_ADD_U32 $sgpr13, 0, implicit-def $scc452    ; GCN-NEXT: $sgpr16 = S_ADD_U32 $sgpr15, 0, implicit-def $scc453    ; GCN-NEXT: $sgpr18 = S_ADD_U32 $sgpr17, 0, implicit-def $scc454    ; GCN-NEXT: $sgpr20 = S_ADD_U32 $sgpr19, 0, implicit-def $scc455    ; GCN-NEXT: $sgpr22 = S_ADD_U32 $sgpr21, 0, implicit-def $scc456    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438457    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc458    ; GCN-NEXT: S_ENDPGM 0459    $vgpr1, $vcc_lo = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec460    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc461    $sgpr4 = S_ADD_U32 $sgpr3, 0, implicit-def $scc462    $sgpr6 = S_ADD_U32 $sgpr5, 0, implicit-def $scc463    $sgpr8 = S_ADD_U32 $sgpr7, 0, implicit-def $scc464    $sgpr10 = S_ADD_U32 $sgpr9, 0, implicit-def $scc465    $sgpr12 = S_ADD_U32 $sgpr11, 0, implicit-def $scc466    $sgpr14 = S_ADD_U32 $sgpr13, 0, implicit-def $scc467    $sgpr16 = S_ADD_U32 $sgpr15, 0, implicit-def $scc468    $sgpr18 = S_ADD_U32 $sgpr17, 0, implicit-def $scc469    $sgpr20 = S_ADD_U32 $sgpr19, 0, implicit-def $scc470    $sgpr22 = S_ADD_U32 $sgpr21, 0, implicit-def $scc471    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc472    S_ENDPGM 0473...474 475---476name:            hazard_valu_write1_no_hazard477body:            |478  bb.0:479    ; GCN-LABEL: name: hazard_valu_write1_no_hazard480    ; GCN: $sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec481    ; GCN-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc482    ; GCN-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc483    ; GCN-NEXT: S_ENDPGM 0484    $sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec485    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc486    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc487    S_ENDPGM 0488...489 490---491name:            hazard_post_order1492body:            |493  bb.0:494    ; GCN-LABEL: name: hazard_post_order1495    ; GCN: $sgpr0_sgpr1 = S_GETPC_B64496    ; GCN-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc497    ; GCN-NEXT: $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec498    ; GCN-NEXT: S_ENDPGM 0499    $sgpr0_sgpr1 = S_GETPC_B64500    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc501    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec502    S_ENDPGM 0503...504 505---506name:            hazard_post_order2507body:            |508  ; GCN-LABEL: name: hazard_post_order2509  ; GCN: bb.0:510  ; GCN-NEXT:   successors: %bb.1(0x80000000)511  ; GCN-NEXT: {{  $}}512  ; GCN-NEXT:   $sgpr0_sgpr1 = S_GETPC_B64513  ; GCN-NEXT:   $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc514  ; GCN-NEXT:   S_BRANCH %bb.1515  ; GCN-NEXT: {{  $}}516  ; GCN-NEXT: bb.1:517  ; GCN-NEXT:   $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec518  ; GCN-NEXT:   S_ENDPGM 0519  bb.0:520    $sgpr0_sgpr1 = S_GETPC_B64521    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc522    S_BRANCH %bb.1523 524  bb.1:525    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec526    S_ENDPGM 0527...528 529---530name:            hazard_post_order_cycle531body:            |532  ; GCN-LABEL: name: hazard_post_order_cycle533  ; GCN: bb.0:534  ; GCN-NEXT:   successors: %bb.1(0x80000000)535  ; GCN-NEXT: {{  $}}536  ; GCN-NEXT:   S_NOP 0537  ; GCN-NEXT: {{  $}}538  ; GCN-NEXT: bb.1:539  ; GCN-NEXT:   successors: %bb.2(0x80000000)540  ; GCN-NEXT: {{  $}}541  ; GCN-NEXT:   $sgpr0_sgpr1 = S_GETPC_B64542  ; GCN-NEXT:   S_WAITCNT_DEPCTR 65438543  ; GCN-NEXT:   $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc544  ; GCN-NEXT: {{  $}}545  ; GCN-NEXT: bb.2:546  ; GCN-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)547  ; GCN-NEXT: {{  $}}548  ; GCN-NEXT:   $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec549  ; GCN-NEXT:   S_CBRANCH_SCC0 %bb.1, implicit $scc550  ; GCN-NEXT: {{  $}}551  ; GCN-NEXT: bb.3:552  ; GCN-NEXT:   S_ENDPGM 0553  bb.0:554    S_NOP 0555 556  bb.1:557    $sgpr0_sgpr1 = S_GETPC_B64558    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc559 560  bb.2:561    $vgpr1 = V_CNDMASK_B32_e64 0, $vgpr1, 0, $vgpr2, $sgpr0, implicit $exec562    S_CBRANCH_SCC0 %bb.1, implicit $scc563 564  bb.3:565    S_ENDPGM 0566...567 568---569name:            hazard_calls570frameInfo:571  hasCalls: true572body:            |573  ; NOBC-LABEL: name: hazard_calls574  ; NOBC: bb.0:575  ; NOBC-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)576  ; NOBC-NEXT: {{  $}}577  ; NOBC-NEXT:   $vgpr0 = V_WRITELANE_B32 0, $sgpr4, $vgpr0578  ; NOBC-NEXT:   $vgpr0 = V_WRITELANE_B32 1, $sgpr8, $vgpr0579  ; NOBC-NEXT:   $vgpr0 = V_WRITELANE_B32 2, $sgpr16, $vgpr0580  ; NOBC-NEXT:   $vgpr0 = V_WRITELANE_B32 3, $sgpr18, $vgpr0581  ; NOBC-NEXT:   $vgpr0 = V_WRITELANE_B32 4, $sgpr20, $vgpr0582  ; NOBC-NEXT:   $vgpr0 = V_WRITELANE_B32 5, $sgpr22, $vgpr0583  ; NOBC-NEXT:   S_CBRANCH_SCC0 %bb.2, implicit $scc584  ; NOBC-NEXT:   S_BRANCH %bb.1585  ; NOBC-NEXT: {{  $}}586  ; NOBC-NEXT: bb.1:587  ; NOBC-NEXT:   successors: %bb.3(0x40000000), %bb.4(0x40000000)588  ; NOBC-NEXT: {{  $}}589  ; NOBC-NEXT:   S_CBRANCH_SCC0 %bb.3, implicit $scc590  ; NOBC-NEXT:   S_BRANCH %bb.4591  ; NOBC-NEXT: {{  $}}592  ; NOBC-NEXT: bb.2:593  ; NOBC-NEXT:   $sgpr16 = S_MOV_B32 0594  ; NOBC-NEXT:   S_WAITCNT_DEPCTR 65438595  ; NOBC-NEXT:   S_SETPC_B64 $sgpr0_sgpr1596  ; NOBC-NEXT: {{  $}}597  ; NOBC-NEXT: bb.3:598  ; NOBC-NEXT:   $sgpr18 = S_MOV_B32 0599  ; NOBC-NEXT:   S_WAITCNT_DEPCTR 65438600  ; NOBC-NEXT:   S_SETPC_B64_return $sgpr0_sgpr1601  ; NOBC-NEXT: {{  $}}602  ; NOBC-NEXT: bb.4:603  ; NOBC-NEXT:   successors: %bb.5(0x80000000)604  ; NOBC-NEXT: {{  $}}605  ; NOBC-NEXT:   $vcc_lo = S_MOV_B32 0606  ; NOBC-NEXT:   $sgpr20 = S_MOV_B32 0607  ; NOBC-NEXT:   S_WAITCNT_DEPCTR 65438608  ; NOBC-NEXT:   $sgpr4_sgpr5 = S_SWAPPC_B64 $sgpr2_sgpr3609  ; NOBC-NEXT:   S_WAITCNT_DEPCTR 65438610  ; NOBC-NEXT:   $sgpr4 = S_ADD_U32 $sgpr4, 0, implicit-def $scc611  ; NOBC-NEXT: {{  $}}612  ; NOBC-NEXT: bb.5:613  ; NOBC-NEXT:   successors: %bb.6(0x80000000)614  ; NOBC-NEXT: {{  $}}615  ; NOBC-NEXT:   S_WAITCNT_DEPCTR 65438616  ; NOBC-NEXT:   $sgpr8_sgpr9 = S_CALL_B64 0617  ; NOBC-NEXT: {{  $}}618  ; NOBC-NEXT: bb.6:619  ; NOBC-NEXT:   S_WAITCNT_DEPCTR 65438620  ; NOBC-NEXT:   $sgpr22 = S_MOV_B32 $sgpr8621  ; NOBC-NEXT:   S_ENDPGM 0622  ;623  ; BC-LABEL: name: hazard_calls624  ; BC: bb.0:625  ; BC-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)626  ; BC-NEXT: {{  $}}627  ; BC-NEXT:   $vgpr0 = V_WRITELANE_B32 0, $sgpr4, $vgpr0628  ; BC-NEXT:   $vgpr0 = V_WRITELANE_B32 1, $sgpr8, $vgpr0629  ; BC-NEXT:   $vgpr0 = V_WRITELANE_B32 2, $sgpr16, $vgpr0630  ; BC-NEXT:   $vgpr0 = V_WRITELANE_B32 3, $sgpr18, $vgpr0631  ; BC-NEXT:   $vgpr0 = V_WRITELANE_B32 4, $sgpr20, $vgpr0632  ; BC-NEXT:   $vgpr0 = V_WRITELANE_B32 5, $sgpr22, $vgpr0633  ; BC-NEXT:   S_CBRANCH_SCC0 %bb.2, implicit $scc634  ; BC-NEXT:   S_BRANCH %bb.1635  ; BC-NEXT: {{  $}}636  ; BC-NEXT: bb.1:637  ; BC-NEXT:   successors: %bb.3(0x40000000), %bb.4(0x40000000)638  ; BC-NEXT: {{  $}}639  ; BC-NEXT:   S_CBRANCH_SCC0 %bb.3, implicit $scc640  ; BC-NEXT:   S_BRANCH %bb.4641  ; BC-NEXT: {{  $}}642  ; BC-NEXT: bb.2:643  ; BC-NEXT:   $sgpr16 = S_MOV_B32 0644  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec645  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec646  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec647  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec648  ; BC-NEXT:   S_WAITCNT_DEPCTR 65438649  ; BC-NEXT:   S_SETPC_B64 $sgpr0_sgpr1650  ; BC-NEXT: {{  $}}651  ; BC-NEXT: bb.3:652  ; BC-NEXT:   $sgpr18 = S_MOV_B32 0653  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec654  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec655  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec656  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec657  ; BC-NEXT:   S_WAITCNT_DEPCTR 65438658  ; BC-NEXT:   S_SETPC_B64_return $sgpr0_sgpr1659  ; BC-NEXT: {{  $}}660  ; BC-NEXT: bb.4:661  ; BC-NEXT:   successors: %bb.5(0x80000000)662  ; BC-NEXT: {{  $}}663  ; BC-NEXT:   $vcc_lo = S_MOV_B32 0664  ; BC-NEXT:   $sgpr20 = S_MOV_B32 0665  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec666  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec667  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec668  ; BC-NEXT:   DS_NOP implicit $m0, implicit $exec669  ; BC-NEXT:   S_WAITCNT_DEPCTR 65438670  ; BC-NEXT:   $sgpr4_sgpr5 = S_SWAPPC_B64 $sgpr2_sgpr3671  ; BC-NEXT:   $sgpr4 = S_ADD_U32 $sgpr4, 0, implicit-def $scc672  ; BC-NEXT: {{  $}}673  ; BC-NEXT: bb.5:674  ; BC-NEXT:   successors: %bb.6(0x80000000)675  ; BC-NEXT: {{  $}}676  ; BC-NEXT:   $sgpr8_sgpr9 = S_CALL_B64 0677  ; BC-NEXT: {{  $}}678  ; BC-NEXT: bb.6:679  ; BC-NEXT:   $sgpr22 = S_MOV_B32 $sgpr8680  ; BC-NEXT:   S_ENDPGM 0681  bb.0:682    $vgpr0 = V_WRITELANE_B32 0, $sgpr4, $vgpr0683    $vgpr0 = V_WRITELANE_B32 1, $sgpr8, $vgpr0684    $vgpr0 = V_WRITELANE_B32 2, $sgpr16, $vgpr0685    $vgpr0 = V_WRITELANE_B32 3, $sgpr18, $vgpr0686    $vgpr0 = V_WRITELANE_B32 4, $sgpr20, $vgpr0687    $vgpr0 = V_WRITELANE_B32 5, $sgpr22, $vgpr0688    S_CBRANCH_SCC0 %bb.2, implicit $scc689    S_BRANCH %bb.1690 691  bb.1:692    S_CBRANCH_SCC0 %bb.3, implicit $scc693    S_BRANCH %bb.4694 695  bb.2:696    $sgpr16 = S_MOV_B32 0697    S_SETPC_B64 $sgpr0_sgpr1698 699  bb.3:700    $sgpr18 = S_MOV_B32 0701    S_SETPC_B64_return $sgpr0_sgpr1702 703  bb.4:704    $vcc_lo = S_MOV_B32 0705    $sgpr20 = S_MOV_B32 0706    $sgpr4_sgpr5 = S_SWAPPC_B64 $sgpr2_sgpr3707    $sgpr4 = S_ADD_U32 $sgpr4, 0, implicit-def $scc708 709  bb.5:710    $sgpr8_sgpr9 = S_CALL_B64 0711 712  bb.6:713    $sgpr22 = S_MOV_B32 $sgpr8714    S_ENDPGM 0715...716 717---718name:            hazard_callee1719body:            |720  bb.0:721    ; NOBC-LABEL: name: hazard_callee1722    ; NOBC: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc723    ; NOBC-NEXT: S_WAITCNT_DEPCTR 65438724    ; NOBC-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc725    ; NOBC-NEXT: S_WAITCNT_DEPCTR 65438726    ; NOBC-NEXT: S_SETPC_B64_return $sgpr30_sgpr31727    ;728    ; BC-LABEL: name: hazard_callee1729    ; BC: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc730    ; BC-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc731    ; BC-NEXT: S_SETPC_B64_return $sgpr30_sgpr31732    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc733    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc734    S_SETPC_B64_return $sgpr30_sgpr31735...736 737---738name:            hazard_callee2739body:            |740  bb.0:741    ; NOBC-LABEL: name: hazard_callee2742    ; NOBC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec743    ; NOBC-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc744    ; NOBC-NEXT: S_WAITCNT_DEPCTR 65438745    ; NOBC-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc746    ; NOBC-NEXT: S_WAITCNT_DEPCTR 65438747    ; NOBC-NEXT: S_SETPC_B64_return $sgpr30_sgpr31748    ;749    ; BC-LABEL: name: hazard_callee2750    ; BC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec751    ; BC-NEXT: $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc752    ; BC-NEXT: S_WAITCNT_DEPCTR 65438753    ; BC-NEXT: $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc754    ; BC-NEXT: DS_NOP implicit $m0, implicit $exec755    ; BC-NEXT: DS_NOP implicit $m0, implicit $exec756    ; BC-NEXT: DS_NOP implicit $m0, implicit $exec757    ; BC-NEXT: DS_NOP implicit $m0, implicit $exec758    ; BC-NEXT: S_SETPC_B64_return $sgpr30_sgpr31759    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec760    $sgpr1 = S_CSELECT_B32 -1, 0, implicit $scc761    $sgpr2 = S_ADD_U32 $sgpr1, 0, implicit-def $scc762    S_SETPC_B64_return $sgpr30_sgpr31763...764 765---766name:            hazard_carry_vcc767body:            |768  bb.0:769    ; GCN-LABEL: name: hazard_carry_vcc770    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $vcc_lo, 0, implicit $exec771    ; GCN-NEXT: $vgpr0 = V_ADD_CO_U32_e32 $vgpr0, $vgpr1, implicit-def $vcc_lo, implicit $exec772    ; GCN-NEXT: S_WAITCNT_DEPCTR 65437773    ; GCN-NEXT: $vgpr1 = V_ADDC_U32_e32 $vgpr2, $vgpr3, implicit-def $vcc_lo, implicit $vcc_lo, implicit $exec774    ; GCN-NEXT: S_ENDPGM 0775    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $vcc_lo, 0, implicit $exec776    $vgpr0 = V_ADD_CO_U32_e32 $vgpr0, $vgpr1, implicit-def $vcc, implicit $exec777    $vgpr1 = V_ADDC_U32_e32 $vgpr2, $vgpr3, implicit-def $vcc, implicit $vcc, implicit $exec778    S_ENDPGM 0779...780 781---782name:            hazard_carry_vcc_no_hazard783body:            |784  bb.0:785    ; GCN-LABEL: name: hazard_carry_vcc_no_hazard786    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $vcc_lo, 0, implicit $exec787    ; GCN-NEXT: $vgpr0 = V_ADD_CO_U32_e32 $vgpr0, $vgpr1, implicit-def $vcc_lo, implicit $exec788    ; GCN-NEXT: $sgpr8 = S_MOV_B32 $vcc_lo789    ; GCN-NEXT: $vgpr1 = V_ADDC_U32_e32 $vgpr2, $vgpr3, implicit-def $vcc_lo, implicit $vcc_lo, implicit $exec790    ; GCN-NEXT: S_ENDPGM 0791    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $vcc_lo, 0, implicit $exec792    $vgpr0 = V_ADD_CO_U32_e32 $vgpr0, $vgpr1, implicit-def $vcc, implicit $exec793    $sgpr8 = S_MOV_B32 $vcc_lo794    $vgpr1 = V_ADDC_U32_e32 $vgpr2, $vgpr3, implicit-def $vcc, implicit $vcc, implicit $exec795    S_ENDPGM 0796...797 798---799name:            hazard_carry_sgpr800body:            |801  bb.0:802    ; GCN-LABEL: name: hazard_carry_sgpr803    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec804    ; GCN-NEXT: $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec805    ; GCN-NEXT: S_WAITCNT_DEPCTR 61855806    ; GCN-NEXT: $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec807    ; GCN-NEXT: S_ENDPGM 0808    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec809    $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec810    $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec811    S_ENDPGM 0812...813 814---815name:            hazard_carry_sgpr_no_hazard1816body:            |817  bb.0:818    ; GCN-LABEL: name: hazard_carry_sgpr_no_hazard1819    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec820    ; GCN-NEXT: $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec821    ; GCN-NEXT: $sgpr8 = S_MOV_B32 $sgpr0822    ; GCN-NEXT: $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec823    ; GCN-NEXT: S_ENDPGM 0824    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec825    $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec826    $sgpr8 = S_MOV_B32 $sgpr0827    $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec828    S_ENDPGM 0829...830 831---832name:            hazard_carry_sgpr_no_hazard2833body:            |834  bb.0:835    ; GCN-LABEL: name: hazard_carry_sgpr_no_hazard2836    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec837    ; GCN-NEXT: $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec838    ; GCN-NEXT: $vgpr3 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8, 0, 0, 0, implicit $exec839    ; GCN-NEXT: $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec840    ; GCN-NEXT: S_ENDPGM 0841    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec842    $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec843    $vgpr3 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8, 0, 0, 0, implicit $exec844    $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec845    S_ENDPGM 0846...847 848---849name:            hazard_carry_sgpr_no_hazard3850body:            |851  bb.0:852    ; GCN-LABEL: name: hazard_carry_sgpr_no_hazard3853    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec854    ; GCN-NEXT: $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec855    ; GCN-NEXT: $sgpr8 = S_LOAD_DWORD_IMM $sgpr6_sgpr7, 0, 0856    ; GCN-NEXT: $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec857    ; GCN-NEXT: S_ENDPGM 0858    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec859    $vgpr0, $sgpr0 = V_ADD_CO_U32_e64 $vgpr0, $vgpr1, 0, implicit $exec860    $sgpr8 = S_LOAD_DWORD_IMM $sgpr6_sgpr7, 0, 0861    $vgpr1, $sgpr1 = V_ADDC_U32_e64 $vgpr2, $vgpr3, $sgpr0, 0, implicit $exec862    S_ENDPGM 0863...864 865---866name:            hazard_cull_vmem867body:            |868  bb.0:869    ; NOMEMC-LABEL: name: hazard_cull_vmem870    ; NOMEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec871    ; NOMEMC-NEXT: $vgpr3 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8, 0, 0, 0, implicit $exec872    ; NOMEMC-NEXT: S_WAIT_LOADCNT 0873    ; NOMEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64874    ; NOMEMC-NEXT: S_WAITCNT_DEPCTR 65438875    ; NOMEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc876    ; NOMEMC-NEXT: S_ENDPGM 0877    ;878    ; MEMC-LABEL: name: hazard_cull_vmem879    ; MEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec880    ; MEMC-NEXT: $vgpr3 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8, 0, 0, 0, implicit $exec881    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec882    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec883    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec884    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec885    ; MEMC-NEXT: S_WAIT_LOADCNT 0886    ; MEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64887    ; MEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc888    ; MEMC-NEXT: S_ENDPGM 0889    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec890    $vgpr3 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8, 0, 0, 0, implicit $exec891    S_WAIT_LOADCNT 0892    $sgpr0_sgpr1 = S_GETPC_B64893    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc894    S_ENDPGM 0895...896 897---898name:            hazard_cull_sample899body:            |900  bb.0:901    ; NOMEMC-LABEL: name: hazard_cull_sample902    ; NOMEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec903    ; NOMEMC-NEXT: $vgpr10 = IMAGE_SAMPLE_LZ_V1_V2_gfx12 $vgpr3, $vgpr4, $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (load (s128))904    ; NOMEMC-NEXT: S_WAIT_SAMPLECNT 0905    ; NOMEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64906    ; NOMEMC-NEXT: S_WAITCNT_DEPCTR 65438907    ; NOMEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc908    ; NOMEMC-NEXT: S_ENDPGM 0909    ;910    ; MEMC-LABEL: name: hazard_cull_sample911    ; MEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec912    ; MEMC-NEXT: $vgpr10 = IMAGE_SAMPLE_LZ_V1_V2_gfx12 $vgpr3, $vgpr4, $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (load (s128))913    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec914    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec915    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec916    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec917    ; MEMC-NEXT: S_WAIT_SAMPLECNT 0918    ; MEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64919    ; MEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc920    ; MEMC-NEXT: S_ENDPGM 0921    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec922    $vgpr10 = IMAGE_SAMPLE_LZ_V1_V2_gfx12 $vgpr3, $vgpr4, $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (load (s128))923    S_WAIT_SAMPLECNT 0924    $sgpr0_sgpr1 = S_GETPC_B64925    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc926    S_ENDPGM 0927...928 929---930name:            hazard_cull_bvh931body:            |932  bb.0:933    ; NOMEMC-LABEL: name: hazard_cull_bvh934    ; NOMEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec935    ; NOMEMC-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = IMAGE_BVH_INTERSECT_RAY_sa_gfx11 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, implicit $exec :: (dereferenceable load (s128), addrspace 7)936    ; NOMEMC-NEXT: S_WAIT_BVHCNT 0937    ; NOMEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64938    ; NOMEMC-NEXT: S_WAITCNT_DEPCTR 65438939    ; NOMEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc940    ; NOMEMC-NEXT: S_ENDPGM 0941    ;942    ; MEMC-LABEL: name: hazard_cull_bvh943    ; MEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec944    ; MEMC-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = IMAGE_BVH_INTERSECT_RAY_sa_gfx11 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, implicit $exec :: (dereferenceable load (s128), addrspace 7)945    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec946    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec947    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec948    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec949    ; MEMC-NEXT: S_WAIT_BVHCNT 0950    ; MEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64951    ; MEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc952    ; MEMC-NEXT: S_ENDPGM 0953    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec954    $vgpr0_vgpr1_vgpr2_vgpr3 = IMAGE_BVH_INTERSECT_RAY_sa_gfx11 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, implicit $exec :: (dereferenceable load (s128), addrspace 7)955    S_WAIT_BVHCNT 0956    $sgpr0_sgpr1 = S_GETPC_B64957    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc958    S_ENDPGM 0959...960 961---962name:            hazard_nocull_scratch963body:            |964  bb.0:965    ; GCN-LABEL: name: hazard_nocull_scratch966    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec967    ; GCN-NEXT: $vgpr0 = SCRATCH_LOAD_DWORD $vgpr0, 0, 0, implicit $exec, implicit $flat_scr968    ; GCN-NEXT: S_WAIT_LOADCNT 0969    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64970    ; GCN-NEXT: S_WAITCNT_DEPCTR 65438971    ; GCN-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc972    ; GCN-NEXT: S_ENDPGM 0973    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec974    $vgpr0 = SCRATCH_LOAD_DWORD $vgpr0, 0, 0, implicit $exec, implicit $flat_scr975    S_WAIT_LOADCNT 0976    $sgpr0_sgpr1 = S_GETPC_B64977    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc978    S_ENDPGM 0979...980 981---982name:            hazard_cull_global983body:            |984  bb.0:985    ; NOMEMC-LABEL: name: hazard_cull_global986    ; NOMEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec987    ; NOMEMC-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec988    ; NOMEMC-NEXT: S_WAIT_LOADCNT 0989    ; NOMEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B64990    ; NOMEMC-NEXT: S_WAITCNT_DEPCTR 65438991    ; NOMEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc992    ; NOMEMC-NEXT: S_ENDPGM 0993    ;994    ; MEMC-LABEL: name: hazard_cull_global995    ; MEMC: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec996    ; MEMC-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec997    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec998    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec999    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec1000    ; MEMC-NEXT: DS_NOP implicit $m0, implicit $exec1001    ; MEMC-NEXT: S_WAIT_LOADCNT 01002    ; MEMC-NEXT: $sgpr0_sgpr1 = S_GETPC_B641003    ; MEMC-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc1004    ; MEMC-NEXT: S_ENDPGM 01005    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec1006    $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec1007    S_WAIT_LOADCNT 01008    $sgpr0_sgpr1 = S_GETPC_B641009    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc1010    S_ENDPGM 01011...1012 1013---1014name:            hazard_nocull_flat1015body:            |1016  bb.0:1017    ; GCN-LABEL: name: hazard_nocull_flat1018    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec1019    ; GCN-NEXT: $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr1020    ; GCN-NEXT: S_WAIT_LOADCNT 01021    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B641022    ; GCN-NEXT: S_WAITCNT_DEPCTR 654381023    ; GCN-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc1024    ; GCN-NEXT: S_ENDPGM 01025    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec1026    $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr1027    S_WAIT_LOADCNT 01028    $sgpr0_sgpr1 = S_GETPC_B641029    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc1030    S_ENDPGM 01031...1032 1033---1034name:            hazard_existing_cull1035body:            |1036  bb.0:1037    ; GCN-LABEL: name: hazard_existing_cull1038    ; GCN: $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec1039    ; GCN-NEXT: DS_NOP implicit $m0, implicit $exec1040    ; GCN-NEXT: DS_NOP implicit $m0, implicit $exec1041    ; GCN-NEXT: DS_NOP implicit $m0, implicit $exec1042    ; GCN-NEXT: DS_NOP implicit $m0, implicit $exec1043    ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B641044    ; GCN-NEXT: $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc1045    ; GCN-NEXT: S_ENDPGM 01046    $vgpr1, $sgpr0 = V_ADDC_U32_e64 0, $vgpr1, $sgpr0, 0, implicit $exec1047    DS_NOP implicit $m0, implicit $exec1048    DS_NOP implicit $m0, implicit $exec1049    DS_NOP implicit $m0, implicit $exec1050    DS_NOP implicit $m0, implicit $exec1051    $sgpr0_sgpr1 = S_GETPC_B641052    $sgpr3 = S_ADD_U32 $sgpr0, 0, implicit-def $scc1053    S_ENDPGM 01054...1055