From 70e86a3f2d2285e580f0faef959f429d61b40632 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 14 Feb 2017 22:22:36 -0800 Subject: [PATCH] nir/algebraic: Optimize 64bit pack/unpack This reduces the instruction count in some fp64 and int64 piglit tests Reviewed-by: Kenneth Graunke --- src/compiler/nir/nir_opt_algebraic.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 8a6dd073e9f..d3eaa1f1f2c 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -306,6 +306,12 @@ optimizations = [ (('fabs', ('b2f', a)), ('b2f', a)), (('iabs', ('b2i', a)), ('b2i', a)), + # Packing and then unpacking does nothing + (('unpack_64_2x32_split_x', ('pack_64_2x32_split', a, b)), a), + (('unpack_64_2x32_split_y', ('pack_64_2x32_split', a, b)), b), + (('pack_64_2x32_split', ('unpack_64_2x32_split_x', a), + ('unpack_64_2x32_split_y', a)), a), + # Byte extraction (('ushr', a, 24), ('extract_u8', a, 3), '!options->lower_extract_byte'), (('iand', 0xff, ('ushr', a, 16)), ('extract_u8', a, 2), '!options->lower_extract_byte'), -- 2.30.2