Files
llvm-project/llvm/test/CodeGen/AMDGPU/waitcnt-debug.mir
vporpo d394d153fb [AMDGPU][MIRFormatter] Printer & parser for S_WAITCNT human-readable mask (#193895)
This patch implements a printer and parser for the S_WAITCNT mask. It
prints the mask in a human-readable format, showing the counter values
like `Vmcnt_<NUM>_Expcnt_<NUM>_Lgkmcnt_<NUM>`.

The format matches the printing style of S_WAITCNT_DEPCTR. For example:
```
 S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
 S_WAITCNT .Expcnt_0
 S_WAITCNT .AllOff
```
Counters at their maximum value (meaning "don't wait") are omitted. When
all counters are at max, `.AllOff` is printed.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-04-28 14:34:46 -07:00

45 lines
1.5 KiB
YAML

# REQUIRES: asserts
# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-insert-waitcnts -debug-counter=si-insert-waitcnts-forcelgkm=0 -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=0-1 -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=0-2 -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=0-1 -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 .Lgkmcnt_0
# LGKM-NEXT: S_NOP 0
# LGKM-NEXT: S_NOP 0
# EXP: S_WAITCNT .Expcnt_0
# EXP-NEXT: S_NOP 0
# EXP-NEXT: S_WAITCNT .Expcnt_0
# EXP-NEXT: S_NOP 0
# VM: S_WAITCNT .Vmcnt_0
# VM-NEXT: S_NOP 0
# VM-NEXT: S_WAITCNT .Vmcnt_0
# VM-NEXT: S_NOP 0
# VM-NEXT: S_WAITCNT .Vmcnt_0
# VM-NEXT: S_NOP 0
# ZERO: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
# ZERO-NEXT: S_NOP 0
# ZERO-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
# ZERO-NEXT: S_NOP 0
# ZERO-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
# ZERO-NEXT: S_NOP 0
name: waitcnt-debug
liveins:
machineFunctionInfo:
isEntryFunction: true
body: |
bb.0:
S_NOP 0
S_NOP 0
S_NOP 0
S_NOP 0
...