1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=si-insert-waitcnts -o - %s | FileCheck -check-prefix=GCN %s 3 4# Make sure no waitcnt is inserted for meta instruction uses. 5 6--- 7 8name: waitcnt_kill 9 10body: | 11 bb.0: 12 liveins: $vgpr0_vgpr1 13 ; GCN-LABEL: name: waitcnt_kill 14 ; GCN: liveins: $vgpr0_vgpr1 15 ; GCN-NEXT: {{ $}} 16 ; GCN-NEXT: S_WAITCNT 0 17 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 18 ; GCN-NEXT: KILL $vgpr0 19 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 20 KILL $vgpr0 21... 22 23--- 24 25name: waitcnt_implicit_def 26 27body: | 28 bb.0: 29 liveins: $vgpr0_vgpr1 30 ; GCN-LABEL: name: waitcnt_implicit_def 31 ; GCN: liveins: $vgpr0_vgpr1 32 ; GCN-NEXT: {{ $}} 33 ; GCN-NEXT: S_WAITCNT 0 34 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 35 ; GCN-NEXT: $vgpr0 = IMPLICIT_DEF 36 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 37 $vgpr0 = IMPLICIT_DEF 38... 39 40--- 41 42name: waitcnt_eh_label 43 44body: | 45 bb.0: 46 liveins: $vgpr0_vgpr1, $vgpr2 47 ; GCN-LABEL: name: waitcnt_eh_label 48 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2 49 ; GCN-NEXT: {{ $}} 50 ; GCN-NEXT: S_WAITCNT 0 51 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 52 ; GCN-NEXT: EH_LABEL <mcsymbol Ltmp0>, implicit $vgpr0 53 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 54 EH_LABEL <mcsymbol Ltmp0>, implicit $vgpr0 55 56... 57 58--- 59 60name: waitcnt_cfi 61 62body: | 63 bb.0: 64 liveins: $vgpr0_vgpr1, $vgpr2 65 ; GCN-LABEL: name: waitcnt_cfi 66 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2 67 ; GCN-NEXT: {{ $}} 68 ; GCN-NEXT: S_WAITCNT 0 69 ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 70 ; GCN-NEXT: CFI_INSTRUCTION offset $vgpr0_lo16, 16 71 $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec 72 CFI_INSTRUCTION offset $vgpr0, 16 73 74... 75