nir/opt_algebraic: Add an option to lower uclz.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18951>
This commit is contained in:
Georg Lehmann 2022-10-04 15:38:58 +02:00
parent 049b60cf4b
commit 7505be3497
2 changed files with 7 additions and 0 deletions

View file

@ -3507,6 +3507,11 @@ typedef struct nir_shader_compiler_options {
*/
bool lower_mul_32x16;
/**
* Set if uclz should be lowered to find_msb_rev.
*/
bool lower_uclz;
/**
* Should IO be re-vectorized? Some scalar ISAs still operate on vec4's
* for IO purposes and would prefer loads/stores be vectorized.

View file

@ -1889,6 +1889,8 @@ optimizations.extend([
('ufind_msb_rev', 'value')),
'options->lower_find_msb_to_reverse'),
(('uclz', a), ('umin', 32, ('ufind_msb_rev', a)), 'options->lower_uclz'),
(('find_lsb', 'value'),
('ufind_msb', ('iand', 'value', ('ineg', 'value'))),
'options->lower_find_lsb'),