aco: fix validation of v_s_ opcodes

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Fixes: 284b9965e8 ("aco/gfx11.5+: allow sgpr dst for trans ops and use pseudo scalar ops on gfx12")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30477>
(cherry picked from commit 911fdce0b6)
This commit is contained in:
Rhys Perry 2024-07-25 12:59:15 +01:00 committed by Eric Engestrom
parent 5df25b68ea
commit f71ba676b7
2 changed files with 4 additions and 2 deletions

View file

@ -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

View file

@ -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 {