aco: fix validation of SOP1 instructions without definitions
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 16 Jun 2022 12:49:24 +0000 (14:49 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 20 Jun 2022 07:08:28 +0000 (07:08 +0000)
Like s_setpc_b64.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17082>

src/amd/compiler/aco_validate.cpp

index f0da221..dd474ef 100644 (file)
@@ -379,8 +379,9 @@ validate_ir(Program* program)
             }
 
             if (instr->isSOP1() || instr->isSOP2()) {
-               check(instr->definitions[0].getTemp().type() == RegType::sgpr,
-                     "Wrong Definition type for SALU instruction", instr.get());
+               if (!instr->definitions.empty())
+                  check(instr->definitions[0].getTemp().type() == RegType::sgpr,
+                        "Wrong Definition type for SALU instruction", instr.get());
                for (const Operand& op : instr->operands) {
                   check(op.isConstant() || op.regClass().type() <= RegType::sgpr,
                         "Wrong Operand type for SALU instruction", instr.get());