From 67d0f51029be4cb4787ff860af51f5d7d0580460 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Fri, 20 Jun 2025 22:16:18 +0200 Subject: [PATCH] r600/sfn: check number of fsat64 source uses properly Fixes: 255eee10ace253d61570d9b97b44158082ae8de4 r600/sfn: Implement fsat for 64 bit ops Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp index 957561f5d2f..4dcd88efe7f 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp @@ -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;