From 9ef0c96f2622bc252c4e7a93adcbe3a9ac4f4e19 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Fri, 17 Oct 2025 14:42:45 +0200 Subject: [PATCH] nir/opt_algebraic: optimize open coded pack_32_2x16 Foz-DB Navi48: Totals from 4 (0.00% of 80287) affected shaders: Instrs: 6231 -> 6101 (-2.09%) CodeSize: 35916 -> 35156 (-2.12%) Latency: 72190 -> 71317 (-1.21%) InvThroughput: 20817 -> 19962 (-4.11%) VALU: 3145 -> 3029 (-3.69%) VOPD: 310 -> 312 (+0.65%) Acked-by: Alyssa Rosenzweig Part-of: --- src/compiler/nir/nir_opt_algebraic.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 25899fc82c5..10b2773d8c5 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -2134,6 +2134,8 @@ optimizations.extend([ (('ior', ('ishl', ('u2u32', 'a@8'), 24), ('ior', ('ishl', ('u2u32', 'b@8'), 16), ('ior', ('ishl', ('u2u32', 'c@8'), 8), ('u2u32', 'd@8')))), ('pack_32_4x8', ('vec4', d, c, b, a)), 'options->has_pack_32_4x8'), + (('ior', ('ishl', a, 16), ('u2u32', 'b@16')), ('pack_32_2x16_split', b, ('u2u16', a)), '!options->lower_pack_32_2x16_split && !options->lower_pack_split'), + # Mixed 16-bit/8-bit loads vectorized to 8-bit vector load and then lowered to 32-bit (('ior', ('u2u16', ('unpack_32_4x8', a)), ('ishl', ('u2u16', ('unpack_32_4x8.y', a)), 8)), ('unpack_32_2x16_split_x', a), '!options->lower_unpack_32_2x16_split'),