Module: Mesa Branch: master Commit: d4c7c3c225b7c34669498c15c2d3186cf6a4647e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4c7c3c225b7c34669498c15c2d3186cf6a4647e
Author: Eric Anholt <e...@anholt.net> Date: Fri May 4 13:33:47 2018 -0700 nir: Add lowering for ifind_msb to ufind_msb. ufind_msb is easily expressed in terms of clz, and we can reduce ifind_msb to that. Reviewed-by: Matt Turner <matts...@gmail.com> Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> --- src/compiler/nir/nir.h | 2 ++ src/compiler/nir/nir_opt_algebraic.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 519c019887..9fca61f007 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1913,6 +1913,8 @@ typedef struct nir_shader_compiler_options { bool lower_bitfield_insert_to_shifts; /** Lowers bfm to shifts and subtracts. */ bool lower_bfm; + /** Lowers ifind_msb to compare and ufind_msb */ + bool lower_ifind_msb; bool lower_uadd_carry; bool lower_usub_borrow; /** lowers fneg and ineg to fsub and isub. */ diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index eaa8b14164..f6685977f3 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -555,6 +555,10 @@ optimizations = [ ('bfm', 'bits', 0))), 'options->lower_bitfield_extract_to_shifts'), + (('ifind_msb', 'value'), + ('ufind_msb', ('bcsel', ('ilt', 'value', 0), ('inot', 'value'), 'value')), + 'options->lower_ifind_msb'), + (('extract_i8', a, 'b@32'), ('ishr', ('ishl', a, ('imul', ('isub', 3, b), 8)), 24), 'options->lower_extract_byte'), _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit