nir: Add a flag for lowering fsqrt(x) to frcp(frsqrt(x)).
vc4 cse/algebraic-disabled stats: total uniforms in shared programs: 13972 -> 13966 (-0.04%) uniforms in affected programs: 408 -> 402 (-1.47%) total instructions in shared programs: 44973 -> 44911 (-0.14%) instructions in affected programs: 1551 -> 1489 (-4.00%) v2: Rebase to master (no TGSI->NIR present) Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
This commit is contained in:
@@ -1328,6 +1328,7 @@ typedef struct nir_function {
|
||||
|
||||
typedef struct nir_shader_compiler_options {
|
||||
bool lower_fpow;
|
||||
bool lower_fsqrt;
|
||||
} nir_shader_compiler_options;
|
||||
|
||||
typedef struct nir_shader {
|
||||
|
||||
@@ -128,7 +128,8 @@ optimizations = [
|
||||
(('fdiv', 1.0, a), ('frcp', a)),
|
||||
(('frcp', ('frcp', a)), a),
|
||||
(('frcp', ('fsqrt', a)), ('frsq', a)),
|
||||
(('frcp', ('frsq', a)), ('fsqrt', a)),
|
||||
(('fsqrt', a), ('frcp', ('frsq', a)), 'options->lower_fsqrt'),
|
||||
(('frcp', ('frsq', a)), ('fsqrt', a), '!options->lower_fsqrt'),
|
||||
# Boolean simplifications
|
||||
(('ine', 'a@bool', 0), 'a'),
|
||||
(('ieq', 'a@bool', 0), ('inot', 'a')),
|
||||
|
||||
Reference in New Issue
Block a user