diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2024-02-20 16:31:54 +0000 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2024-05-14 20:50:27 +0000 |
commit | 97698e564acc9ee560fade47bd566fe9cdeae3dc (patch) | |
tree | cb3aae65ca3366362a900248365c651fecf987ff | |
parent | e9a25151fa90c0b100cda695b1d142c3ee8d4dbb (diff) |
aco: add SFPU/ValuPseudoScalarTrans instr class
The latency is from LLVM's SISchedule.td
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29162>
-rw-r--r-- | src/amd/compiler/aco_opcodes.py | 2 | ||||
-rw-r--r-- | src/amd/compiler/aco_statistics.cpp | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_opcodes.py b/src/amd/compiler/aco_opcodes.py index a424400045a..bed1f1533ed 100644 --- a/src/amd/compiler/aco_opcodes.py +++ b/src/amd/compiler/aco_opcodes.py @@ -23,8 +23,10 @@ class InstrClass(Enum): ValuDoubleAdd = "valu_double_add" ValuDoubleConvert = "valu_double_convert" ValuDoubleTranscendental = "valu_double_transcendental" + ValuPseudoScalarTrans = "valu_pseudo_scalar_trans" WMMA = "wmma" Salu = "salu" + SFPU = "sfpu" SMem = "smem" Barrier = "barrier" Branch = "branch" diff --git a/src/amd/compiler/aco_statistics.cpp b/src/amd/compiler/aco_statistics.cpp index 65777f8fb6b..9260ed94b18 100644 --- a/src/amd/compiler/aco_statistics.cpp +++ b/src/amd/compiler/aco_statistics.cpp @@ -183,6 +183,9 @@ get_perf_info(const Program& program, const Instruction& instr) case instr_class::valu_double_transcendental: return {24, WAIT_USE(valu, 16), WAIT_USE(valu_complex, 16)}; case instr_class::salu: return {2, WAIT_USE(scalar, 1)}; + case instr_class::sfpu: return {4, WAIT_USE(scalar, 1)}; + case instr_class::valu_pseudo_scalar_trans: + return {7, WAIT_USE(valu, 1), WAIT_USE(valu_complex, 1)}; case instr_class::smem: return {0, WAIT_USE(scalar, 1)}; case instr_class::branch: case instr_class::sendmsg: return {0, WAIT_USE(branch_sendmsg, 1)}; |