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>
45 lines
1.5 KiB
YAML
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
|
|
...
|