Mesa (main): aco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 22 15:59:43 UTC 2021
Module: Mesa
Branch: main
Commit: 211d1dfd34499d57709c15d10bdadc514e9e13c2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=211d1dfd34499d57709c15d10bdadc514e9e13c2
Author: Rhys Perry <pendingchaos02 at gmail.com>
Date: Wed Jul 21 20:18:12 2021 +0100
aco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16
Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5105
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12004>
---
src/amd/compiler/aco_optimizer.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp
index f6198e4b465..a4d84a3a4e2 100644
--- a/src/amd/compiler/aco_optimizer.cpp
+++ b/src/amd/compiler/aco_optimizer.cpp
@@ -3760,6 +3760,11 @@ select_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
if ((instr->opcode == aco_opcode::v_fma_f32 || instr->opcode == aco_opcode::v_fma_f16) &&
ctx.program->chip_class < GFX10)
return;
+ /* There are no v_fmaak_legacy_f16/v_fmamk_legacy_f16 and on chips where VOP3 can take
+ * literals (GFX10+), these instructions don't exist.
+ */
+ if (instr->opcode == aco_opcode::v_fma_legacy_f16)
+ return;
bool sgpr_used = false;
uint32_t literal_idx = 0;
More information about the mesa-commit
mailing list