aco/ra: fix v3b VALU at byte>0

This can happen with v_cndmask_b32, if we were required to take the
sub-dword path in get_reg_simple().

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41018>
This commit is contained in:
Rhys Perry 2026-04-09 14:00:15 +01:00 committed by Marge Bot
parent 62a268eb5f
commit 2d5478fc3f

View file

@ -645,7 +645,9 @@ get_subdword_operand_stride(amd_gfx_level gfx_level, const aco_ptr<Instruction>&
return rc.bytes() % 2 == 0 ? 2 : 1;
}
assert(rc.bytes() <= 2);
if (rc.bytes() > 2)
return 4;
if (instr->isVALU()) {
if (can_use_SDWA(gfx_level, instr, false))
return rc.bytes();
@ -766,8 +768,11 @@ DefInfo::get_subdword_definition_info(Program* program, const aco_ptr<Instructio
}
if (instr->isVALU()) {
if (rc.bytes() == 3)
if (rc.bytes() == 3) {
rc = v1;
stride = 4;
return;
}
if (can_use_SDWA(gfx_level, instr, false))
return;