From: Daniel Schürmann Date: Tue, 16 Jun 2020 09:03:52 +0000 (+0100) Subject: aco: don't allow SGPRs on logical phis X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8006feda09869a0feedd33714358821e81d1f762;p=mesa.git aco: don't allow SGPRs on logical phis aco_validate() is called after phi lowering, now. Reviewed-by: Rhys Perry Part-of: --- diff --git a/src/amd/compiler/aco_validate.cpp b/src/amd/compiler/aco_validate.cpp index 53c16bc5ac7..26e1c9b35bc 100644 --- a/src/amd/compiler/aco_validate.cpp +++ b/src/amd/compiler/aco_validate.cpp @@ -317,7 +317,7 @@ void validate(Program* program, FILE * output) } } else if (instr->opcode == aco_opcode::p_phi) { check(instr->operands.size() == block.logical_preds.size(), "Number of Operands does not match number of predecessors", instr.get()); - check(instr->definitions[0].getTemp().type() == RegType::vgpr || instr->definitions[0].getTemp().regClass() == program->lane_mask, "Logical Phi Definition must be vgpr or divergent boolean", instr.get()); + check(instr->definitions[0].getTemp().type() == RegType::vgpr, "Logical Phi Definition must be vgpr", instr.get()); } else if (instr->opcode == aco_opcode::p_linear_phi) { for (const Operand& op : instr->operands) check(!op.isTemp() || op.getTemp().is_linear(), "Wrong Operand type", instr.get());