From 4cfb8005f08b7efe8b76c8e9bd426b5fd0c42d93 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 9 May 2023 23:53:24 +0100 Subject: [PATCH] nir: use more nir_ffma_imm variants nir_ffma_imm has several variants that allows specific arguments to be immediates. Use them for simplicity. Reviewed-by: Faith Ekstrand Reviewed-by: Alyssa Rosenzweig Part-of: --- src/compiler/nir/nir_lower_double_ops.c | 4 ++-- src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.cpp | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/compiler/nir/nir_lower_double_ops.c b/src/compiler/nir/nir_lower_double_ops.c index 240709b..e80900b 100644 --- a/src/compiler/nir/nir_lower_double_ops.c +++ b/src/compiler/nir/nir_lower_double_ops.c @@ -146,8 +146,8 @@ lower_rcp(nir_builder *b, nir_ssa_def *src) * See https://en.wikipedia.org/wiki/Division_algorithm for more details. */ - ra = nir_ffma(b, nir_fneg(b, ra), nir_ffma(b, ra, src, nir_imm_double(b, -1)), ra); - ra = nir_ffma(b, nir_fneg(b, ra), nir_ffma(b, ra, src, nir_imm_double(b, -1)), ra); + ra = nir_ffma(b, nir_fneg(b, ra), nir_ffma_imm2(b, ra, src, -1), ra); + ra = nir_ffma(b, nir_fneg(b, ra), nir_ffma_imm2(b, ra, src, -1), ra); return fix_inv_result(b, ra, src, new_exp); } diff --git a/src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.cpp b/src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.cpp index b9edbe5..4a8710e 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.cpp @@ -111,15 +111,15 @@ LowerSinCos::lower(nir_instr *instr) assert(alu->op == nir_op_fsin || alu->op == nir_op_fcos); auto fract = nir_ffract(b, - nir_ffma(b, - nir_ssa_for_alu_src(b, alu, 0), - nir_imm_float(b, 0.15915494), - nir_imm_float(b, 0.5))); + nir_ffma_imm12(b, + nir_ssa_for_alu_src(b, alu, 0), + 0.15915494, + 0.5)); auto normalized = m_gxf_level != R600 ? nir_fadd_imm(b, fract, -0.5) - : nir_ffma(b, fract, nir_imm_float(b, 2.0f * M_PI), nir_imm_float(b, -M_PI)); + : nir_ffma_imm12(b, fract, 2.0f * M_PI, -M_PI); if (alu->op == nir_op_fsin) return nir_fsin_amd(b, normalized); -- 2.7.4