From 65da866ad96bbe5a1683c98191331827ea3bd580 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 16 Nov 2021 15:32:58 +0100 Subject: [PATCH] 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: 0ffcb19b9d9 ("ir3: Rewrite register allocation") Part-of: --- src/freedreno/ir3/ir3_lower_parallelcopy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/freedreno/ir3/ir3_lower_parallelcopy.c b/src/freedreno/ir3/ir3_lower_parallelcopy.c index 0350a97e3ea..b927e031a17 100644 --- a/src/freedreno/ir3/ir3_lower_parallelcopy.c +++ b/src/freedreno/ir3/ir3_lower_parallelcopy.c @@ -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;