ir3/lower_pcopy: Fix shr.b illegal copy lowering

The immediate shouldn't be half-reg because the other source isn't.
Fixes an assertion failure with
dEQP-VK.ssbo.phys.layout.random.16bit.scalar.35.

Fixes: 0ffcb19b9d ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13818>
This commit is contained in:
Connor Abbott
2021-11-16 15:32:58 +01:00
committed by Marge Bot
parent 9912c61362
commit 65da866ad9
+2 -2
View File
@@ -223,12 +223,12 @@ do_copy(struct ir3_compiler *compiler, struct ir3_instruction *instr,
cov->cat1.src_type = TYPE_U32;
ir3_instr_move_before(cov, instr);
} else {
/* shr.b dst, src, h(16) */
/* shr.b dst, src, (16) */
struct ir3_instruction *shr =
ir3_instr_create(instr->block, OPC_SHR_B, 1, 2);
ir3_dst_create(shr, dst_num, entry->flags);
ir3_src_create(shr, src_num, entry->flags & ~IR3_REG_HALF);
ir3_src_create(shr, 0, entry->flags | IR3_REG_IMMED)->uim_val = 16;
ir3_src_create(shr, 0, IR3_REG_IMMED)->uim_val = 16;
ir3_instr_move_before(shr, instr);
}
return;