From f71ba676b72251ad3dd3cf2a74971be5984e5681 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 25 Jul 2024 12:59:15 +0100 Subject: [PATCH] aco: fix validation of v_s_ opcodes Signed-off-by: Rhys Perry Reviewed-by: Georg Lehmann Fixes: 284b9965e820 ("aco/gfx11.5+: allow sgpr dst for trans ops and use pseudo scalar ops on gfx12") Part-of: (cherry picked from commit 911fdce0b6a1ec7b0944034c7a231de68656afa3) --- .pick_status.json | 2 +- src/amd/compiler/aco_validate.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 54cd1033b41..57a174d8aae 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -914,7 +914,7 @@ "description": "aco: fix validation of v_s_ opcodes", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "284b9965e820aefb55494a15a1f08ed112de4d10", "notes": null diff --git a/src/amd/compiler/aco_validate.cpp b/src/amd/compiler/aco_validate.cpp index f3c5bfddac3..8df35e4ab97 100644 --- a/src/amd/compiler/aco_validate.cpp +++ b/src/amd/compiler/aco_validate.cpp @@ -425,7 +425,9 @@ validate_ir(Program* program) if (instr->isVOPC() || instr->opcode == aco_opcode::v_readfirstlane_b32 || instr->opcode == aco_opcode::v_readlane_b32 || - instr->opcode == aco_opcode::v_readlane_b32_e64) { + instr->opcode == aco_opcode::v_readlane_b32_e64 || + instr_info.classes[(int)instr->opcode] == + instr_class::valu_pseudo_scalar_trans) { check(instr->definitions[0].regClass().type() == RegType::sgpr, "Wrong Definition type for VALU instruction", instr.get()); } else {