| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 |
| # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=si-insert-waitcnts %s -o - | FileCheck -check-prefix=GCN %s |
| |
| --- |
| name: signal_isfirst_imm_same_barrier_wait |
| body: | |
| bb.0: |
| ; GCN-LABEL: name: signal_isfirst_imm_same_barrier_wait |
| ; GCN: S_WAIT_LOADCNT_DSCNT 0 |
| ; GCN-NEXT: S_WAIT_EXPCNT 0 |
| ; GCN-NEXT: S_WAIT_SAMPLECNT 0 |
| ; GCN-NEXT: S_WAIT_BVHCNT 0 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: S_CMP_EQ_U32 0, 0, implicit-def $scc |
| ; GCN-NEXT: S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc |
| ; GCN-NEXT: S_BARRIER_WAIT -1 |
| ; GCN-NEXT: renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| S_CMP_EQ_U32 0, 0, implicit-def $scc |
| S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc |
| S_BARRIER_WAIT -1 |
| renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| ... |
| |
| --- |
| name: signal_isfirst_imm_different_barrier_wait |
| body: | |
| bb.0: |
| ; GCN-LABEL: name: signal_isfirst_imm_different_barrier_wait |
| ; GCN: S_WAIT_LOADCNT_DSCNT 0 |
| ; GCN-NEXT: S_WAIT_EXPCNT 0 |
| ; GCN-NEXT: S_WAIT_SAMPLECNT 0 |
| ; GCN-NEXT: S_WAIT_BVHCNT 0 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: S_CMP_EQ_U32 0, 0, implicit-def $scc |
| ; GCN-NEXT: S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc |
| ; GCN-NEXT: S_BARRIER_WAIT 0 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| S_CMP_EQ_U32 0, 0, implicit-def $scc |
| S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc |
| S_BARRIER_WAIT 0 |
| renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| ... |
| |
| --- |
| name: signal_isfirst_m0_same_barrier_wait |
| body: | |
| bb.0: |
| ; GCN-LABEL: name: signal_isfirst_m0_same_barrier_wait |
| ; GCN: S_WAIT_LOADCNT_DSCNT 0 |
| ; GCN-NEXT: S_WAIT_EXPCNT 0 |
| ; GCN-NEXT: S_WAIT_SAMPLECNT 0 |
| ; GCN-NEXT: S_WAIT_BVHCNT 0 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: S_CMP_EQ_U32 0, 0, implicit-def $scc |
| ; GCN-NEXT: $m0 = S_MOV_B32 -1 |
| ; GCN-NEXT: S_BARRIER_SIGNAL_ISFIRST_M0 implicit $m0, implicit-def $scc, implicit killed $scc |
| ; GCN-NEXT: S_BARRIER_WAIT -1 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| S_CMP_EQ_U32 0, 0, implicit-def $scc |
| $m0 = S_MOV_B32 -1 |
| S_BARRIER_SIGNAL_ISFIRST_M0 implicit $m0, implicit-def $scc, implicit killed $scc |
| S_BARRIER_WAIT -1 |
| renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| ... |
| |
| --- |
| name: signal_isfirst_m0_different_barrier_wait |
| body: | |
| bb.0: |
| ; GCN-LABEL: name: signal_isfirst_m0_different_barrier_wait |
| ; GCN: S_WAIT_LOADCNT_DSCNT 0 |
| ; GCN-NEXT: S_WAIT_EXPCNT 0 |
| ; GCN-NEXT: S_WAIT_SAMPLECNT 0 |
| ; GCN-NEXT: S_WAIT_BVHCNT 0 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: S_CMP_EQ_U32 0, 0, implicit-def $scc |
| ; GCN-NEXT: $m0 = S_MOV_B32 -1 |
| ; GCN-NEXT: S_BARRIER_SIGNAL_ISFIRST_M0 implicit $m0, implicit-def $scc, implicit killed $scc |
| ; GCN-NEXT: S_BARRIER_WAIT 0 |
| ; GCN-NEXT: S_WAIT_KMCNT 0 |
| ; GCN-NEXT: renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| S_CMP_EQ_U32 0, 0, implicit-def $scc |
| $m0 = S_MOV_B32 -1 |
| S_BARRIER_SIGNAL_ISFIRST_M0 implicit $m0, implicit-def $scc, implicit killed $scc |
| S_BARRIER_WAIT 0 |
| renamable $sgpr0 = S_CSELECT_B32 -1, 0, implicit killed $scc |
| renamable $vgpr0 = V_CNDMASK_B32_e64 0, 0, 0, 1, killed $sgpr0, implicit $exec |
| S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0 |
| ... |