From 4d7fe94f3a0d86c65f126da914883829b0707d5f Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Tue, 6 Sep 2022 14:47:19 +0200 Subject: [PATCH] nir/opt_algebraic: Optimize unpacking of upcasts to 64bit integers. Foz-DB Navi21: Totals from 7 (0.01% of 134913) affected shaders: CodeSize: 213364 -> 213028 (-0.16%) Instrs: 38347 -> 38319 (-0.07%) Latency: 780148 -> 779776 (-0.05%) InvThroughput: 520098 -> 519851 (-0.05%) Signed-off-by: Georg Lehmann Reviewed-by: Rhys Perry Reviewed-by: Emma Anholt Part-of: --- src/compiler/nir/nir_opt_algebraic.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 1a782bc9d23..2930715e01d 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -1466,6 +1466,10 @@ optimizations.extend([ (('unpack_64_2x32_split_y', ('pack_64_2x32_split', a, b)), b), (('unpack_64_2x32_split_x', ('pack_64_2x32', a)), 'a.x'), (('unpack_64_2x32_split_y', ('pack_64_2x32', a)), 'a.y'), + (('unpack_64_2x32_split_x', ('u2u64', 'a@32')), a), + (('unpack_64_2x32_split_y', ('u2u64', a)), 0), + (('unpack_64_2x32_split_x', ('i2i64', 'a@32')), a), + (('unpack_64_2x32_split_y', ('i2i64(is_used_once)', 'a@32')), ('ishr', a, 31)), (('unpack_64_2x32', ('pack_64_2x32_split', a, b)), ('vec2', a, b)), (('unpack_64_2x32', ('pack_64_2x32', a)), a), (('unpack_double_2x32_dxil', ('pack_double_2x32_dxil', a)), a),