diff --git a/src/freedreno/ir3/ir3_array_to_ssa.c b/src/freedreno/ir3/ir3_array_to_ssa.c index 2e9d6820663..d3ea899ed90 100644 --- a/src/freedreno/ir3/ir3_array_to_ssa.c +++ b/src/freedreno/ir3/ir3_array_to_ssa.c @@ -236,10 +236,13 @@ ir3_array_to_ssa(struct ir3 *ir) foreach_block (block, &ir->block_list) { foreach_instr_safe (instr, &block->instr_list) { - if (instr->opc == OPC_META_PHI) + if (instr->opc == OPC_META_PHI) { + if (!(instr->dsts[0]->flags & IR3_REG_ARRAY)) + continue; remove_trivial_phi(instr); - else + } else { break; + } } }