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>
This commit is contained in:
Rhys Perry 2024-02-20 16:31:54 +00:00 committed by Marge Bot
parent e9a25151fa
commit 97698e564a
2 changed files with 5 additions and 0 deletions

View File

@ -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"

View File

@ -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)};