reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
# REQUIRES: asserts
# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-insert-waitcnts -debug-counter=si-insert-waitcnts-forcelgkm-count=1 -o - %s | FileCheck -check-prefixes=GCN,LGKM %s
# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-insert-waitcnts -debug-counter=si-insert-waitcnts-forceexp-count=2 -o - %s | FileCheck -check-prefixes=GCN,EXP %s
# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-insert-waitcnts -debug-counter=si-insert-waitcnts-forcevm-count=3 -o - %s | FileCheck -check-prefixes=GCN,VM %s
# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-insert-waitcnts -amdgpu-waitcnt-forcezero=1 -debug-counter=si-insert-waitcnts-forcevm-count=2 -o - %s | FileCheck -check-prefixes=GCN,ZERO %s

# check that the waitcnt pass options that force insertion of waitcnt instructions are working as expected

...
# GCN-LABEL: name: waitcnt-debug
# LGKM: S_WAITCNT 127
# LGKM-NEXT: S_NOP 0
# LGKM-NEXT: S_NOP 0

# EXP: S_WAITCNT 3855
# EXP-NEXT: S_NOP 0
# EXP-NEXT: S_WAITCNT 3855
# EXP-NEXT: S_NOP 0

# VM: S_WAITCNT 3952
# VM-NEXT: S_NOP 0
# VM-NEXT: S_WAITCNT 3952
# VM-NEXT: S_NOP 0
# VM-NEXT: S_WAITCNT 3952
# VM-NEXT: S_NOP 0

# ZERO: S_WAITCNT 0
# ZERO-NEXT: S_WAITCNT 0
# ZERO-NEXT: S_NOP 0
# ZERO-NEXT: S_WAITCNT 0
# ZERO-NEXT: S_NOP 0

name:            waitcnt-debug
liveins:
body:             |
  bb.0:
    S_NOP 0
    S_NOP 0
    S_NOP 0
    S_NOP 0
...