@@ -520,6 +520,7 @@ body: |
520520 ; GCN-NEXT: GLOBAL_STORE_DWORDX2 $vgpr0_vgpr1, $vgpr4_vgpr5, 16, 0, implicit $exec
521521 ; GCN-NEXT: S_WAIT_KMCNT 0
522522 ; GCN-NEXT: $sgpr2 = S_ADD_I32 $sgpr0, 100, implicit-def $scc
523+ ; GCN-NEXT: S_WAIT_XCNT 0
523524 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 20, implicit $exec
524525 $sgpr2_sgpr3 = S_LOAD_DWORDX2_IMM $sgpr0_sgpr1, 0, 0 :: (load (s64), addrspace 4)
525526 $vgpr0 = V_MOV_B32_e32 1, implicit $exec
@@ -921,7 +922,6 @@ body: |
921922 $vgpr2 = V_MOV_B32_e32 1, implicit $exec
922923 ...
923924
924- # FIXME: Missing S_WAIT_XCNT before overwriting vgpr0.
925925---
926926name : wait_kmcnt_with_outstanding_vmem
927927tracksRegLiveness : true
@@ -937,14 +937,14 @@ body: |
937937 ; GCN-NEXT: $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
938938 ; GCN-NEXT: S_WAIT_KMCNT 0
939939 ; GCN-NEXT: $sgpr2 = S_MOV_B32 $sgpr2
940+ ; GCN-NEXT: S_WAIT_XCNT 0
940941 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
941942 $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
942943 $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
943944 $sgpr2 = S_MOV_B32 $sgpr2
944945 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
945946 ...
946947
947- # FIXME: Missing S_WAIT_XCNT before overwriting sgpr0.
948948---
949949name : wait_loadcnt_with_outstanding_smem
950950tracksRegLiveness : true
@@ -960,14 +960,14 @@ body: |
960960 ; GCN-NEXT: $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
961961 ; GCN-NEXT: S_WAIT_LOADCNT 0
962962 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr2, implicit $exec
963+ ; GCN-NEXT: S_WAIT_XCNT 0
963964 ; GCN-NEXT: $sgpr0 = S_MOV_B32 0
964965 $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
965966 $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
966967 $vgpr2 = V_MOV_B32_e32 $vgpr2, implicit $exec
967968 $sgpr0 = S_MOV_B32 0
968969 ...
969970
970- # TODO: Unnecessary wait before overwriting vgpr0.
971971---
972972name : overwrite_vgpr_after_smem
973973tracksRegLiveness : true
@@ -981,14 +981,12 @@ body: |
981981 ; GCN-NEXT: {{ $}}
982982 ; GCN-NEXT: $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
983983 ; GCN-NEXT: $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
984- ; GCN-NEXT: S_WAIT_XCNT 0
985984 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
986985 $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
987986 $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
988987 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
989988 ...
990989
991- # TODO: Unnecessary wait before overwriting sgpr0.
992990---
993991name : overwrite_sgpr_after_vmem
994992tracksRegLiveness : true
@@ -1002,7 +1000,6 @@ body: |
10021000 ; GCN-NEXT: {{ $}}
10031001 ; GCN-NEXT: $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
10041002 ; GCN-NEXT: $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
1005- ; GCN-NEXT: S_WAIT_XCNT 0
10061003 ; GCN-NEXT: $sgpr0 = S_MOV_B32 0
10071004 $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0
10081005 $vgpr2 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
0 commit comments