From 84ab61160a18edab0e1698e1e54e560b57d5a9ab Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Sat, 28 Mar 2020 11:24:08 -0500 Subject: [PATCH] nir/algebraic: Add downcast-of-pack opts Reviewed-by: Alyssa Rosenzweig Reviewed-by: Ian Romanick Part-of: --- src/compiler/nir/nir_opt_algebraic.py | 9 +++++++++ 1 file changed, 9 insertions(+) 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): -- 2.30.2