diff --git a/.pick_status.json b/.pick_status.json index eabdd93bc31..baec00cd037 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -544,7 +544,7 @@ "description": "ir3/array_to_ssa: skip remove_trivial_phi for non-array phis", "nominated": true, "nomination_type": 4, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null 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; + } } }