diff --git a/.pick_status.json b/.pick_status.json index 0172496f9f0..8e6cc4c1865 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3614,7 +3614,7 @@ "description": "r00/sfn: Fix copy propagation into buffer load address", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "79ca456b4837b3bc21cf9ef3c03c505c4b4909f6", "notes": null diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp index 86fd6bba91e..1a8c90cf08c 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp @@ -124,6 +124,8 @@ FetchInstr::replace_source(PRegister old_src, PVirtualValue new_src) bool success = false; auto new_reg = new_src->as_register(); if (new_reg) { + if (!new_reg->has_flag(Register::ssa) && new_reg->addr()) + return false; if (old_src->equal_to(*m_src)) { m_src->del_use(this); m_src = new_reg;