From a3348f88c8716c1dcc1f0fafb09004693d9f0786 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 12 Jun 2020 17:47:19 -0400 Subject: [PATCH] pan/mdg: Canonicalize (x * 2.0) to (x + x) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This lets the previous commit kick in to schedule to either a multiply or an add. GLES2 shader-db: total instructions in shared programs: 50514 -> 50459 (-0.11%) instructions in affected programs: 7436 -> 7381 (-0.74%) helped: 14 HURT: 7 helped stats (abs) min: 2 max: 8 x̄: 5.00 x̃: 5 helped stats (rel) min: 0.95% max: 1.14% x̄: 1.07% x̃: 1.08% HURT stats (abs) min: 2 max: 3 x̄: 2.14 x̃: 2 HURT stats (rel) min: 0.85% max: 8.57% x̄: 2.73% x̃: 1.26% 95% mean confidence interval for instructions value: -4.37 -0.87 95% mean confidence interval for instructions %-change: -0.91% 1.31% Inconclusive result (%-change mean confidence interval includes 0). total bundles in shared programs: 25680 -> 25573 (-0.42%) bundles in affected programs: 6148 -> 6041 (-1.74%) helped: 37 HURT: 7 helped stats (abs) min: 1 max: 9 x̄: 3.14 x̃: 2 helped stats (rel) min: 0.63% max: 8.33% x̄: 2.02% x̃: 2.13% HURT stats (abs) min: 1 max: 2 x̄: 1.29 x̃: 1 HURT stats (rel) min: 0.88% max: 11.11% x̄: 3.92% x̃: 1.30% 95% mean confidence interval for bundles value: -3.32 -1.54 95% mean confidence interval for bundles %-change: -2.00% -0.14% Bundles are helped. total quadwords in shared programs: 40887 -> 40815 (-0.18%) quadwords in affected programs: 14203 -> 14131 (-0.51%) helped: 61 HURT: 2 helped stats (abs) min: 1 max: 4 x̄: 1.21 x̃: 1 helped stats (rel) min: 0.16% max: 11.11% x̄: 1.11% x̃: 0.57% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 2.86% max: 4.00% x̄: 3.43% x̃: 3.43% 95% mean confidence interval for quadwords value: -1.32 -0.96 95% mean confidence interval for quadwords %-change: -1.46% -0.48% Quadwords are helped. total registers in shared programs: 3916 -> 3913 (-0.08%) registers in affected programs: 46 -> 43 (-6.52%) helped: 5 HURT: 1 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 10.00% max: 33.33% x̄: 14.89% x̃: 10.00% HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% 95% mean confidence interval for registers value: -1.79 0.79 95% mean confidence interval for registers %-change: -33.51% 25.37% Inconclusive result (value mean confidence interval includes 0). total threads in shared programs: 2455 -> 2454 (-0.04%) threads in affected programs: 5 -> 4 (-20.00%) helped: 1 HURT: 1 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% total loops in shared programs: 6 -> 6 (0.00%) loops in affected programs: 0 -> 0 helped: 0 HURT: 0 total spills in shared programs: 168 -> 168 (0.00%) spills in affected programs: 0 -> 0 helped: 0 HURT: 0 total fills in shared programs: 186 -> 186 (0.00%) fills in affected programs: 0 -> 0 helped: 0 HURT: 0 Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/midgard/midgard_nir_algebraic.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/panfrost/midgard/midgard_nir_algebraic.py b/src/panfrost/midgard/midgard_nir_algebraic.py index fd250c1..108ecf6 100644 --- a/src/panfrost/midgard/midgard_nir_algebraic.py +++ b/src/panfrost/midgard/midgard_nir_algebraic.py @@ -64,6 +64,9 @@ algebraic_late = [ (('ishl', 'a@8', b), ('u2u8', ('u2u16', ('ishl', ('u2u32', ('u2u16', a)), b)))), (('ishr', 'a@8', b), ('i2i8', ('i2i16', ('ishr', ('i2i32', ('i2i16', a)), b)))), (('ushr', 'a@8', b), ('u2u8', ('u2u16', ('ushr', ('u2u32', ('u2u16', a)), b)))), + + # Canonical form. The scheduler will convert back if it makes sense. + (('fmul', a, 2.0), ('fadd', a, a)) ] -- 2.7.4