# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py # RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=si-insert-waitcnts -o - %s | FileCheck -check-prefix=GCN %s # Make sure no waitcnt is inserted for meta instruction uses. --- name: waitcnt_kill body: | bb.0: liveins: $vgpr0_vgpr1 ; GCN-LABEL: name: waitcnt_kill ; GCN: liveins: $vgpr0_vgpr1 ; GCN-NEXT: {{ $}} ; GCN-NEXT: S_WAITCNT 0 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec ; GCN-NEXT: KILL $vgpr0 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec KILL $vgpr0 ... --- name: waitcnt_implicit_def body: | bb.0: liveins: $vgpr0_vgpr1 ; GCN-LABEL: name: waitcnt_implicit_def ; GCN: liveins: $vgpr0_vgpr1 ; GCN-NEXT: {{ $}} ; GCN-NEXT: S_WAITCNT 0 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec ; GCN-NEXT: $vgpr0 = IMPLICIT_DEF $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec $vgpr0 = IMPLICIT_DEF ... --- name: waitcnt_eh_label body: | bb.0: liveins: $vgpr0_vgpr1, $vgpr2 ; GCN-LABEL: name: waitcnt_eh_label ; GCN: liveins: $vgpr0_vgpr1, $vgpr2 ; GCN-NEXT: {{ $}} ; GCN-NEXT: S_WAITCNT 0 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec ; GCN-NEXT: EH_LABEL <mcsymbol Ltmp0>, implicit $vgpr0 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec EH_LABEL <mcsymbol Ltmp0>, implicit $vgpr0 ... --- name: waitcnt_cfi body: | bb.0: liveins: $vgpr0_vgpr1, $vgpr2 ; GCN-LABEL: name: waitcnt_cfi ; GCN: liveins: $vgpr0_vgpr1, $vgpr2 ; GCN-NEXT: {{ $}} ; GCN-NEXT: S_WAITCNT 0 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec ; GCN-NEXT: CFI_INSTRUCTION offset $vgpr0_lo16, 16 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec CFI_INSTRUCTION offset $vgpr0, 16 ...