diff options
author | Samuel Iglesias Gonsálvez <[email protected]> | 2018-12-04 16:41:36 +0100 |
---|---|---|
committer | Dylan Baker <[email protected]> | 2019-09-18 09:38:42 -0700 |
commit | 0ff13c291b5ccaa0b6683bd32f081f00614f8e44 (patch) | |
tree | 5b490b1b843d1b79fd40855cc9b756e78e62e441 | |
parent | 71fafc13b9491f4ccc75fa821008fb863ffdb033 (diff) |
intel/nir: do not apply the fsin and fcos trig workarounds for consts
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 <[email protected]>
Signed-off-by: Andres Gomez <[email protected]>
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
(cherry picked from commit 3c474f851313db5318d727d017b763ea2cb01e6d)
-rw-r--r-- | src/intel/compiler/brw_nir_trig_workarounds.py | 4 |
1 files 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)), ] |