| # RUN: llc -mtriple=amdgpu9.00 -run-pass si-insert-waitcnts %s -o - | FileCheck %s | |
| # Ensure we insert waitcnts after any meta instructions at the start of | |
| # non-kernel functions. Without this, the inserted waitcnts can affect e.g. the | |
| # PC ranges covered by CFI and debug values. | |
| --- | |
| # CHECK-LABEL: name: skip_implicit_def{{$}} | |
| # CHECK: IMPLICIT_DEF | |
| # CHECK: S_WAITCNT | |
| name: skip_implicit_def | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| $sgpr0 = IMPLICIT_DEF | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_kill{{$}} | |
| # CHECK: KILL | |
| # CHECK: S_WAITCNT | |
| name: skip_kill | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| KILL $sgpr0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_cfi{{$}} | |
| # CHECK: CFI_INSTRUCTION | |
| # CHECK: S_WAITCNT | |
| name: skip_cfi | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| CFI_INSTRUCTION undefined $sgpr0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_eh_label{{$}} | |
| # CHECK: EH_LABEL | |
| # CHECK: S_WAITCNT | |
| name: skip_eh_label | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| EH_LABEL 0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_gc_label{{$}} | |
| # CHECK: GC_LABEL | |
| # CHECK: S_WAITCNT | |
| name: skip_gc_label | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| GC_LABEL 0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_dbg_value{{$}} | |
| # CHECK: DBG_VALUE | |
| # CHECK: S_WAITCNT | |
| name: skip_dbg_value | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| DBG_VALUE 0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_dbg_label{{$}} | |
| # CHECK: DBG_LABEL | |
| # CHECK: S_WAITCNT | |
| name: skip_dbg_label | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| DBG_LABEL 0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_lifetime_start{{$}} | |
| # CHECK: LIFETIME_START | |
| # CHECK: S_WAITCNT | |
| name: skip_lifetime_start | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| LIFETIME_START 0 | |
| ... | |
| --- | |
| # CHECK-LABEL: name: skip_lifetime_end{{$}} | |
| # CHECK: LIFETIME_END | |
| # CHECK: S_WAITCNT | |
| name: skip_lifetime_end | |
| machineFunctionInfo: | |
| body: | | |
| bb.0: | |
| LIFETIME_END 0 | |
| ... |