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 <nunes.erico@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user