r600/sfn: check number of fsat64 source uses properly

Fixes: 255eee10ac
    r600/sfn: Implement fsat for 64 bit ops

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36585>
This commit is contained in:
Gert Wollny 2025-06-20 22:16:18 +02:00 committed by Marge Bot
parent 206ec1ff77
commit 67d0f51029

View file

@ -1925,6 +1925,9 @@ emit_alu_abs64(const nir_alu_instr& alu, Shader& shader)
static bool
try_propagat_fsat64(const nir_alu_instr& alu, Shader& shader)
{
if (list_length(&alu.src[0].src.ssa->uses) > 1)
return false;
auto& value_factory = shader.value_factory();
auto src0 = value_factory.src64(alu.src[0], 0, 0);
auto reg0 = src0->as_register();
@ -1934,12 +1937,6 @@ try_propagat_fsat64(const nir_alu_instr& alu, Shader& shader)
if (!reg0->has_flag(Register::ssa))
return false;
if (reg0->parents().size() != 1)
return false;
if (!reg0->uses().empty())
return false;
auto parent = (*reg0->parents().begin())->as_alu();
if (!parent)
return false;