# RUN: llc -march=amdgcn -mcpu=gfx900 -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 ...