From c0dbf42a03842981284839d277f1ed5086381fdf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Fri, 22 Nov 2019 11:57:45 +0100 Subject: [PATCH] aco/wave32: Change uniform bool optimization to work with wave32. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Rhys Perry Reviewed-by: Daniel Schürmann --- src/amd/compiler/aco_optimizer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 7b66aa1..3622812 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -993,13 +993,13 @@ void label_instruction(opt_ctx &ctx, Block& block, aco_ptr& instr) case aco_opcode::s_add_u32: ctx.info[instr->definitions[0].tempId()].set_add_sub(instr.get()); break; + case aco_opcode::s_and_b32: case aco_opcode::s_and_b64: if (instr->operands[1].isFixed() && instr->operands[1].physReg() == exec && instr->operands[0].isTemp() && ctx.info[instr->operands[0].tempId()].is_uniform_bool()) { ctx.info[instr->definitions[1].tempId()].set_temp(ctx.info[instr->operands[0].tempId()].temp); } /* fallthrough */ - case aco_opcode::s_and_b32: case aco_opcode::s_not_b32: case aco_opcode::s_not_b64: case aco_opcode::s_or_b32: @@ -1042,6 +1042,7 @@ void label_instruction(opt_ctx &ctx, Block& block, aco_ptr& instr) ctx.info[instr->definitions[0].tempId()].set_fcmp(instr.get()); break; case aco_opcode::s_cselect_b64: + case aco_opcode::s_cselect_b32: if (instr->operands[0].constantEquals((unsigned) -1) && instr->operands[1].constantEquals(0)) { /* Found a cselect that operates on a uniform bool that comes from eg. s_cmp */ -- 2.7.4