On Fri, Aug 17, 2018 at 10:06 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > This adds the "(a << N) >> M" family of mask or sign-extensions. Not a > huge win right now but this pattern will soon be generated by NIR format > lowering code. > > Shader-db results on Kaby Lake: > > total instructions in shared programs: 15166918 -> 15166916 (<.01%) > instructions in affected programs: 36 -> 34 (-5.56%) > helped: 2 > HURT: 0 > --- > src/compiler/nir/nir_opt_algebraic.py | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/src/compiler/nir/nir_opt_algebraic.py > b/src/compiler/nir/nir_opt_algebraic.py > index 28090d069cd..07fbb161a4e 100644 > --- a/src/compiler/nir/nir_opt_algebraic.py > +++ b/src/compiler/nir/nir_opt_algebraic.py > @@ -543,13 +543,23 @@ optimizations = [ > ('unpack_64_2x32_split_y', a)), a), > > # Byte extraction > + (('ushr', ('ishl', 'a@32', 24), 24), ('extract_u8', a, 0), > '!options->lower_extract_byte'), > + (('ushr', ('ishl', 'a@32', 16), 24), ('extract_u8', a, 1), > '!options->lower_extract_byte'), > + (('ushr', ('ishl', 'a@32', 8), 24), ('extract_u8', a, 2), > '!options->lower_extract_byte'), > (('ushr', 'a@32', 24), ('extract_u8', a, 3), > '!options->lower_extract_byte'), > + (('ishr', ('ishl', 'a@32', 24), 24), ('extract_i8', a, 0), > '!options->lower_extract_byte'), > + (('ishr', ('ishl', 'a@32', 16), 24), ('extract_i8', a, 1), > '!options->lower_extract_byte'), > + (('ishr', ('ishl', 'a@32', 8), 24), ('extract_i8', a, 2), > '!options->lower_extract_byte'), > + (('ishr', 'a@32', 24), ('extract_i8', a, 3), > '!options->lower_extract_byte'), > (('iand', 0xff, ('ushr', a, 16)), ('extract_u8', a, 2), > '!options->lower_extract_byte'), > (('iand', 0xff, ('ushr', a, 8)), ('extract_u8', a, 1), > '!options->lower_extract_byte'), > (('iand', 0xff, a), ('extract_u8', a, 0), '!options->lower_extract_byte'), > > # Word extraction > + (('ushr', ('ishl', 'a@16', 16), 16), ('extract_u16', a, 0), > '!options->lower_extract_word'), > (('ushr', 'a@16', 16), ('extract_u16', a, 1), > '!options->lower_extract_word'), > + (('ishr', ('ishl', 'a@16', 16), 16), ('extract_i16', a, 0), > '!options->lower_extract_word'), > + (('ishr', 'a@16', 16), ('extract_i16', a, 1), > '!options->lower_extract_word'), > (('iand', 0xffff, a), ('extract_u16', a, 0), > '!options->lower_extract_word'),
I think this all should be @32 too. With that patch 1-2 are Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> > > # Subtracts > -- > 2.17.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev