Module: Mesa
Branch: main
Commit: 4d7fe94f3a0d86c65f126da914883829b0707d5f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4d7fe94f3a0d86c65f126da914883829b0707d5f

Author: Georg Lehmann <[email protected]>
Date:   Tue Sep  6 14:47:19 2022 +0200

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 <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Reviewed-by: Emma Anholt <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18435>

---

 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),

Reply via email to