aboutsummaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2020-06-12 17:47:19 -0400
committerMarge Bot <[email protected]>2020-06-17 12:57:34 +0000
commita3348f88c8716c1dcc1f0fafb09004693d9f0786 (patch)
tree23a75fd165a51fda4984cda065ebd2c81f0f5063 /src/panfrost
parent6318e461416feacd352b611fd28e698dd654c6a4 (diff)
pan/mdg: Canonicalize (x * 2.0) to (x + x)
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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5475>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/midgard/midgard_nir_algebraic.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/panfrost/midgard/midgard_nir_algebraic.py b/src/panfrost/midgard/midgard_nir_algebraic.py
index fd250c1ba94..108ecf6ed95 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))
]