From 827681f9213189374a75b3838a03296bdd7e9716 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 23 Jan 2020 20:03:40 +0000 Subject: [PATCH] aco: always add sgprs to sgpr_ids when choosing literals MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Even if it's a literal, we should add this to sgpr_ids. No pipeline-db changes. Signed-off-by: Rhys Perry Fixes: 0be74090696 ('aco: rewrite literal combining') Reviewed-by: Daniel Schürmann Part-of: --- src/amd/compiler/aco_optimizer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 73b9c653a64..fbeb76df990 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -2682,13 +2682,15 @@ void select_instruction(opt_ctx &ctx, aco_ptr& instr) /* choose a literal to apply */ for (unsigned i = 0; i < num_operands; i++) { Operand op = instr->operands[i]; + + if (instr->isVALU() && op.isTemp() && op.getTemp().type() == RegType::sgpr && + op.tempId() != sgpr_ids[0]) + sgpr_ids[!!sgpr_ids[0]] = op.tempId(); + if (op.isLiteral()) { current_literal = op; continue; } else if (!op.isTemp() || !ctx.info[op.tempId()].is_literal()) { - if (instr->isVALU() && op.isTemp() && op.getTemp().type() == RegType::sgpr && - op.tempId() != sgpr_ids[0]) - sgpr_ids[!!sgpr_ids[0]] = op.tempId(); continue; } -- 2.30.2