From 6a43e6c9e0efa9ee6fafbac1fd011639c825f524 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 21 Apr 2026 13:59:42 -0400 Subject: [PATCH] nir/opt_algebraic: add redundant u2u32/unpack_64_2x32_split_x patterns reduces hello world kernel 57 -> 44 inst on jay. why do we have two opcodes that do literally the same thing? :/ Signed-off-by: Alyssa Rosenzweig Reviewed-by: Georg Lehmann 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 b065ca59181..d87d40f8402 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -2231,9 +2231,13 @@ optimizations.extend([ # Reduce intermediate precision with int64. (('u2u32', ('iadd(is_used_once)', 'a@64', b)), ('iadd', ('u2u32', a), ('u2u32', b))), + (('unpack_64_2x32_split_x', ('iadd(is_used_once)', 'a@64', b)), + ('iadd', ('u2u32', a), ('u2u32', b))), (('u2u32', ('imul(is_used_once)', 'a@64', b)), ('imul', ('u2u32', a), ('u2u32', b))), + (('unpack_64_2x32_split_x', ('imul(is_used_once)', 'a@64', b)), + ('imul', ('u2u32', a), ('u2u32', b))), (('u2f32', ('u2u64', 'a@32')), ('u2f32', a)),