blob: 3972553867ab93b0b851d0b3e7d5944bcfca788a [file] [edit]
# 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
...