ARMv6: Add fast path for over_reverse_n_8888
Benchmark results, "before" is upstream commit
c343846 lowlevel-blt-bench: add in_reverse_8888_8888 test
and "after" is with this patch only added on top.
lowlevel-blt-bench, over_reverse_n_8888, 100 iterations:
Before After
Mean StdDev Mean StdDev Confidence Change
L1 15.1 0.1 274.5 2.3 100.00% +1718.9%
L2 12.8 0.3 181.8 0.7 100.00% +1315.5%
M 10.8 0.0 77.9 0.0 100.00% +621.2%
HT 9.7 0.0 29.4 0.2 100.00% +204.9%
VT 9.5 0.0 26.7 0.1 100.00% +179.3%
R 9.3 0.0 25.3 0.1 100.00% +173.6%
RT 6.0 0.1 11.0 0.2 100.00% +82.9%
At most 16 outliers rejected per case per set.
cairo-perf-trace with trimmed traces, 30 iterations:
Before After
Mean StdDev Mean StdDev Confidence Change
t-poppler.trace 12.9 0.1 9.7 0.0 100.00% +32.6%
t-firefox-talos-gfx.trace 33.2 0.7 32.9 0.4 95.23% +0.9% (insignificant)
t-firefox-particles.trace 27.4 0.1 27.3 0.2 99.65% +0.4%
t-firefox-canvas-alpha.trace 20.5 0.3 20.5 0.3 57.51% +0.3% (insignificant)
t-poppler-reseau.trace 22.4 0.1 22.4 0.1 95.69% +0.3% (insignificant)
t-firefox-fishtank.trace 13.2 0.0 13.2 0.0 99.84% +0.1%
t-swfdec-giant-steps.trace 14.9 0.0 14.9 0.0 87.68% +0.1% (insignificant)
t-swfdec-youtube.trace 7.8 0.0 7.8 0.0 35.22% +0.1% (insignificant)
t-firefox-planet-gnome.trace 11.5 0.0 11.5 0.0 29.37% +0.0% (insignificant)
t-firefox-fishbowl.trace 21.2 0.0 21.2 0.0 18.09% +0.0% (insignificant)
t-grads-heat-map.trace 4.4 0.0 4.4 0.0 1.84% +0.0% (insignificant)
t-firefox-paintball.trace 18.0 0.0 18.0 0.0 33.43% -0.0% (insignificant)
t-firefox-talos-svg.trace 20.5 0.0 20.5 0.1 68.56% -0.1% (insignificant)
t-midori-zoomed.trace 8.0 0.0 8.0 0.0 99.98% -0.1%
t-firefox-canvas-swscroll.trace 32.1 0.1 32.1 0.1 85.27% -0.1% (insignificant)
t-gnome-system-monitor.trace 17.2 0.0 17.2 0.0 99.97% -0.2%
t-firefox-chalkboard.trace 36.5 0.0 36.6 0.0 100.00% -0.2%
t-firefox-asteroids.trace 11.1 0.0 11.1 0.0 100.00% -0.2%
t-firefox-canvas.trace 17.9 0.0 18.0 0.0 100.00% -0.3%
t-chromium-tabs.trace 4.9 0.0 4.9 0.0 97.95% -0.3% (insignificant)
t-xfce4-terminal-a1.trace 4.8 0.0 4.8 0.0 100.00% -0.4%
t-firefox-scrolling.trace 31.1 0.1 31.2 0.1 100.00% -0.5%
t-evolution.trace 13.7 0.1 13.8 0.1 99.99% -0.6%
t-gnome-terminal-vim.trace 22.0 0.2 22.2 0.1 99.99% -0.7%
t-gvim.trace 33.2 0.2 33.5 0.2 100.00% -0.8%
At most 6 outliers rejected per case per set.
Cairo perf reports the running time, but the change is computed for
operations per second instead (inverse of running time).
Changes in the order of +/- 1% can be accounted for measurement errors,
even if they are deemed to be statistically significant. This claim is
based on comparing two 30-iteration identical "before" runs using the
exact same binaries, and observing changes from -0.4% to +0.5% with
>=99% confidence.
Confidence is based on Welch's t-test.
v4, Pekka Paalanen <pekka.paalanen@collabora.co.uk> :
Rebased, re-benchmarked on Raspberry Pi, commit message.