jay: fix simd32 deswizzle

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41064>
This commit is contained in:
Alyssa Rosenzweig 2026-04-15 15:49:27 -04:00 committed by Marge Bot
parent f728e3cb05
commit d637554418
2 changed files with 5 additions and 2 deletions

View file

@ -127,6 +127,7 @@ lower(jay_builder *b, jay_inst *I)
case JAY_OPCODE_DESWIZZLE: {
unsigned size = jay_deswizzle_size(I);
assert(b->shader->partition.blocks[GPR][0].start == 1);
/* Odd: copy both halves to contiguous pair after payload */
for (unsigned i = 0; i < (size / 2); ++i) {

View file

@ -362,11 +362,13 @@ emit(struct brw_codegen *p,
brw_BFN(p, dst, SRC(0), SRC(1), SRC(2), brw_imm_ud(jay_bfn_ctrl(I)));
break;
case JAY_OPCODE_DESWIZZLE_ODD:
bool hi = simd_offs ? true : jay_deswizzle_odd_src2_hi(I);
case JAY_OPCODE_DESWIZZLE_ODD: {
bool hi = simd_offs == 0 ? true : jay_deswizzle_odd_src2_hi(I);
brw_set_default_group(p, 0);
brw_MOV(p, dst,
byte_offset(to_brw_reg(f, I, simd_offs, 0, false), hi ? 64 : 0));
break;
}
case JAY_OPCODE_DESWIZZLE_EVEN:
brw_set_default_exec_size(p, BRW_EXECUTE_16);