From: Jason Ekstrand Date: Sat, 28 Mar 2020 16:24:08 +0000 (-0500) Subject: nir/algebraic: Add downcast-of-pack opts X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=84ab61160a18edab0e1698e1e54e560b57d5a9ab;p=mesa.git nir/algebraic: Add downcast-of-pack opts Reviewed-by: Alyssa Rosenzweig Reviewed-by: Ian Romanick Part-of: --- diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index dbfd4917503..472db765026 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -1400,6 +1400,15 @@ for N, M in itertools.product(type_sizes('uint'), type_sizes('uint')): # The N == M case is handled by other optimizations pass +# Downcast operations should be able to see through pack +for t in ['i', 'u']: + for N in [8, 16, 32]: + x2xN = '{0}2{0}{1}'.format(t, N) + optimizations += [ + ((x2xN, ('pack_64_2x32_split', a, b)), (x2xN, a)), + ((x2xN, ('pack_64_2x32_split', a, b)), (x2xN, a)), + ] + # Optimize comparisons with up-casts for t in ['int', 'uint', 'float']: for N, M in itertools.product(type_sizes(t), repeat=2):