From 3c474f851313db5318d727d017b763ea2cb01e6d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Samuel=20Iglesias=20Gons=C3=A1lvez?= Date: Tue, 4 Dec 2018 16:41:36 +0100 Subject: [PATCH] intel/nir: do not apply the fsin and fcos trig workarounds for consts MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If we have fsin or fcos trigonometric operations with constant values as inputs, we will multiply the result by 0.99997 in brw_nir_apply_trig_workarounds, making the result wrong. Adjusting the rules so they do not apply to const values we let a later constant fold to deal with it. v2: - Do not early constant fold but only apply the trig workaround for non constants (Caio). - Add fixes tag to commit log (Caio). Fixes: bfd17c76c12 "i965: Port INTEL_PRECISE_TRIG=1 to NIR." Signed-off-by: Samuel Iglesias Gonsálvez Signed-off-by: Andres Gomez Reviewed-by: Caio Marcelo de Oliveira Filho --- src/intel/compiler/brw_nir_trig_workarounds.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py index d60e094c625..dddadc71da2 100644 --- a/src/intel/compiler/brw_nir_trig_workarounds.py +++ b/src/intel/compiler/brw_nir_trig_workarounds.py @@ -37,8 +37,8 @@ import argparse import sys TRIG_WORKAROUNDS = [ - (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.99997)), - (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.99997)), + (('fsin', 'x(is_not_const)'), ('fmul', ('fsin', 'x'), 0.99997)), + (('fcos', 'x(is_not_const)'), ('fmul', ('fcos', 'x'), 0.99997)), ] -- 2.30.2