From 8006feda09869a0feedd33714358821e81d1f762 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 16 Jun 2020 10:03:52 +0100 Subject: [PATCH] aco: don't allow SGPRs on logical phis aco_validate() is called after phi lowering, now. Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_validate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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()); -- 2.30.2