diff options
author | Erico Nunes <[email protected]> | 2019-04-16 22:49:41 +0200 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2019-04-19 15:42:23 +0000 |
commit | 4577eb7b7cddb0a5dd2ee77682eab01a4d55676b (patch) | |
tree | e78a233f7f588e52eb8f59dc766e1c8990151693 /src/compiler/nir/nir.h | |
parent | f9c594cdf5a69aabe2dfb8e6f61224cc2ff7b149 (diff) |
nir/algebraic: add lowering for fsign
The mali utgard pp doesn't support a sign instruction.
In the ARM offline shader compiler, the sign function is implemented
using sub(gt(0.0, a), lt(0.0, a)).
This is a generic optimization, so implement it in the nir level when
lower_fsign is set, alongside the lowering for isign.
Signed-off-by: Erico Nunes <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir.h')
-rw-r--r-- | src/compiler/nir/nir.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 2a381d28d7c..c79dcecafc4 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -2242,6 +2242,9 @@ typedef struct nir_shader_compiler_options { /** enables rules to lower isign to imin+imax */ bool lower_isign; + /** enables rules to lower fsign to fsub and flt */ + bool lower_fsign; + /* Does the native fdot instruction replicate its result for four * components? If so, then opt_algebraic_late will turn all fdotN * instructions into fdot_replicatedN instructions. |