[Mesa-dev] [PATCH 11/11] nir/algebraic: Recognize open-coded fsign
Ian Romanick
idr at freedesktop.org
Mon Sep 10 23:29:14 UTC 2018
From: Ian Romanick <ian.d.romanick at intel.com>
I don't intend to push this. The results are pretty horrifying.
Broadwell
total instructions in shared programs: 15387998 -> 15383192 (-0.03%)
instructions in affected programs: 1223940 -> 1219134 (-0.39%)
helped: 700
HURT: 63
helped stats (abs) min: 1 max: 81 x̄: 7.68 x̃: 5
helped stats (rel) min: 0.14% max: 4.76% x̄: 0.77% x̃: 0.45%
HURT stats (abs) min: 4 max: 83 x̄: 9.03 x̃: 6
HURT stats (rel) min: 0.13% max: 4.02% x̄: 0.34% x̃: 0.20%
95% mean confidence interval for instructions value: -6.95 -5.64
95% mean confidence interval for instructions %-change: -0.72% -0.63%
Instructions are helped.
total cycles in shared programs: 600707435 -> 601996933 (0.21%)
cycles in affected programs: 137816437 -> 139105935 (0.94%)
helped: 195
HURT: 529
helped stats (abs) min: 1 max: 3666 x̄: 159.20 x̃: 18
helped stats (rel) min: 0.01% max: 32.80% x̄: 1.53% x̃: 0.46%
HURT stats (abs) min: 1 max: 6711 x̄: 2496.30 x̃: 2865
HURT stats (rel) min: <.01% max: 7.48% x̄: 1.15% x̃: 1.03%
95% mean confidence interval for cycles value: 1622.18 1939.97
95% mean confidence interval for cycles %-change: 0.26% 0.60%
Cycles are HURT.
total spills in shared programs: 80928 -> 81130 (0.25%)
spills in affected programs: 15915 -> 16117 (1.27%)
helped: 18
HURT: 63
total fills in shared programs: 93056 -> 93069 (0.01%)
fills in affected programs: 16050 -> 16063 (0.08%)
helped: 18
HURT: 63
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
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 cada08d274d..984aa0ee35d 100644
--- a/src/compiler/nir/nir_opt_algebraic.py
+++ b/src/compiler/nir/nir_opt_algebraic.py
@@ -381,6 +381,10 @@ optimizations = [
# so emit an open-coded version of that.
(('bcsel at 32', ('feq', a, 0.0), 1.0, ('i2f32', ('iadd', ('ineg', ('flt', 0.0, 'a at 32')), ('flt', 'a at 32', 0.0)))),
('ior', 0x3f800000, ('iand', a, 0x80000000))),
+ (('bcsel at 32', ('feq', a, 0.0), 1.0, ('fsign', a)),
+ ('ior', 0x3f800000, ('iand', a, 0x80000000))),
+
+ (('i2f32', ('iadd', ('ineg', ('flt', 0.0, 'a at 32')), ('flt', 'a at 32', 0.0))), ('fsign', a)),
(('ior', 'a at bool', ('ieq', a, False)), True),
(('ior', 'a at bool', ('inot', a)), True),
--
2.14.4
More information about the mesa-dev
mailing list