summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir.h
diff options
context:
space:
mode:
authorErico Nunes <[email protected]>2019-04-16 22:49:41 +0200
committerEric Anholt <[email protected]>2019-04-19 15:42:23 +0000
commit4577eb7b7cddb0a5dd2ee77682eab01a4d55676b (patch)
treee78a233f7f588e52eb8f59dc766e1c8990151693 /src/compiler/nir/nir.h
parentf9c594cdf5a69aabe2dfb8e6f61224cc2ff7b149 (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.h3
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.