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 <robdclark@gmail.com>
This commit is contained in:
Rob Clark 2019-02-25 14:22:04 -05:00
parent edd5b3126d
commit cabe55a2e7

View file

@ -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:
*/