From cabe55a2e73e947f368b852298c7ff92b6ffea22 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Mon, 25 Feb 2019 14:22:04 -0500 Subject: [PATCH] freedreno/ir3/a6xx: fix non-ssa atomic dst We weren't propagating the array info for cases where result of atomic is array/reg. This can happen, for example, if result is part of a phi web lowered to regs. Fixes dEQP-GLES31.functional.ssbo.atomic.compswap.* Signed-off-by: Rob Clark --- src/freedreno/ir3/ir3_a6xx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/freedreno/ir3/ir3_a6xx.c b/src/freedreno/ir3/ir3_a6xx.c index 1a10b63edb2..3bb9e3496f4 100644 --- a/src/freedreno/ir3/ir3_a6xx.c +++ b/src/freedreno/ir3/ir3_a6xx.c @@ -374,6 +374,11 @@ get_atomic_dest_mov(struct ir3_instruction *atomic) mov->flags |= IR3_INSTR_SY; + if (atomic->regs[0]->flags & IR3_REG_ARRAY) { + mov->regs[0]->flags |= IR3_REG_ARRAY; + mov->regs[0]->array = atomic->regs[0]->array; + } + /* it will have already been appended to the end of the block, which * isn't where we want it, so fix-up the location: */ -- 2.30.2