From 410937d8e83a38ec1f84259b6ea570d71f33af57 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: (cherry picked from commit 67d0f51029be4cb4787ff860af51f5d7d0580460) --- .pick_status.json | 2 +- src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index fe88db46c6a..c2984049de1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4014,7 +4014,7 @@ "description": "r600/sfn: check number of fsat64 source uses properly", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "255eee10ace253d61570d9b97b44158082ae8de4", "notes": null diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp index 598ce109a0c..9a256680c8d 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp @@ -1979,6 +1979,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(); @@ -1988,12 +1991,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;