From 874005aeb72801d5494a605bcb3e433ed18bc828 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Thu, 31 Jul 2025 17:16:45 +0200 Subject: [PATCH] r00/sfn: Fix copy propagation into buffer load address A buffer load can not use an indirect register as address. Fixes: 79ca456b483 ("r600/sfn: rewrite NIR backend") Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp index 98fc94f893e..8165f3e6d7d 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;