nir: Add lowering for find_lsb.
There is a fairly simple relation to turn this into ufind_msb. Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -1915,6 +1915,8 @@ typedef struct nir_shader_compiler_options {
|
||||
bool lower_bfm;
|
||||
/** Lowers ifind_msb to compare and ufind_msb */
|
||||
bool lower_ifind_msb;
|
||||
/** Lowers find_lsb to ufind_msb and logic ops */
|
||||
bool lower_find_lsb;
|
||||
bool lower_uadd_carry;
|
||||
bool lower_usub_borrow;
|
||||
/** lowers fneg and ineg to fsub and isub. */
|
||||
|
@@ -559,6 +559,10 @@ optimizations = [
|
||||
('ufind_msb', ('bcsel', ('ilt', 'value', 0), ('inot', 'value'), 'value')),
|
||||
'options->lower_ifind_msb'),
|
||||
|
||||
(('find_lsb', 'value'),
|
||||
('ufind_msb', ('iand', 'value', ('ineg', 'value'))),
|
||||
'options->lower_find_lsb'),
|
||||
|
||||
(('extract_i8', a, 'b@32'),
|
||||
('ishr', ('ishl', a, ('imul', ('isub', 3, b), 8)), 24),
|
||||
'options->lower_extract_byte'),
|
||||
|
Reference in New Issue
Block a user