nir/algebraic: Add downcast-of-pack opts

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4365>
This commit is contained in:
Jason Ekstrand
2020-03-28 11:24:08 -05:00
committed by Marge Bot
parent 14a49f31d3
commit 84ab61160a
+9
View File
@@ -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):