Module: Mesa Branch: master Commit: 5ccc7c277c86f754f40515820b27b55296107c54 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ccc7c277c86f754f40515820b27b55296107c54
Author: Rhys Perry <[email protected]> Date: Fri May 22 15:42:39 2020 +0100 aco: consider SDWA during value numbering Signed-off-by: Rhys Perry <[email protected]> Fixes: 23ac24f5b1fdde73cf8ec1ef6cbe08d73d6776f5 ('aco: add missing conversion operations for small bitsizes') Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5164> --- src/amd/compiler/aco_opt_value_numbering.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/amd/compiler/aco_opt_value_numbering.cpp b/src/amd/compiler/aco_opt_value_numbering.cpp index 4ab3d6d56e5..487d1588128 100644 --- a/src/amd/compiler/aco_opt_value_numbering.cpp +++ b/src/amd/compiler/aco_opt_value_numbering.cpp @@ -86,6 +86,9 @@ struct InstrHash { if (instr->isDPP()) return hash_murmur_32<DPP_instruction>(instr); + if (instr->isSDWA()) + return hash_murmur_32<SDWA_instruction>(instr); + switch (instr->format) { case Format::SMEM: return hash_murmur_32<SMEM_instruction>(instr); @@ -199,6 +202,20 @@ struct InstrPred { aDPP->neg[0] == bDPP->neg[0] && aDPP->neg[1] == bDPP->neg[1]; } + if (a->isSDWA()) { + SDWA_instruction* aSDWA = static_cast<SDWA_instruction*>(a); + SDWA_instruction* bSDWA = static_cast<SDWA_instruction*>(b); + return aSDWA->sel[0] == bSDWA->sel[0] && + aSDWA->sel[1] == bSDWA->sel[1] && + aSDWA->dst_sel == bSDWA->dst_sel && + aSDWA->abs[0] == bSDWA->abs[0] && + aSDWA->abs[1] == bSDWA->abs[1] && + aSDWA->neg[0] == bSDWA->neg[0] && + aSDWA->neg[1] == bSDWA->neg[1] && + aSDWA->dst_preserve == bSDWA->dst_preserve && + aSDWA->clamp == bSDWA->clamp && + aSDWA->omod == bSDWA->omod; + } switch (a->format) { case Format::SOPK: { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
