mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
f238c8d80a
Preexisting waitcnt may not update the scoreboard if the instruction being examined needed to wait on fewer counters than what was encoded in the old waitcnt instruction. Fixing this results in the elimination of some redudnat waitcnt. These changes also enable combining consecutive waitcnt into a single S_WAITCNT or S_WAITCNT_VSCNT instruction. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D100281
45 lines
1.4 KiB
YAML
45 lines
1.4 KiB
YAML
# 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_NOP 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:
|
|
machineFunctionInfo:
|
|
isEntryFunction: true
|
|
body: |
|
|
bb.0:
|
|
S_NOP 0
|
|
S_NOP 0
|
|
S_NOP 0
|
|
S_NOP 0
|
|
...
|