gallium/auxiliary: optimize rgb9e5 helper some more
authorRoland Scheidegger <sroland@vmware.com>
Sun, 9 Aug 2015 00:50:10 +0000 (02:50 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 26 Aug 2015 00:57:38 +0000 (02:57 +0200)
commit48e6404c04da6c9655d7a8b625830d0d40f393ae
treed8924b77e5b3e15fb6efda8fca508d2e5ad29cf1
parent941346a80323c9419b70e3987b900a69ebb08fb4
gallium/auxiliary: optimize rgb9e5 helper some more

I used this as some testing ground for investigating some compiler
bits initially (e.g. lrint calls etc.), figured I could do much better
in the end just for fun...
This is mathematically equivalent, but uses some tricks to avoid
doubles and also replaces some float math with ints. Good for another
performance doubling or so. As a side note, some quick tests show that
llvm's loop vectorizer would be able to properly vectorize this version
(which it failed to do earlier due to doubles, producing a mess), giving
another 3 times performance increase with sse2 (more with sse4.1), but this
may not apply to mesa.
No piglit change.

Acked-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/util/u_format_rgb9e5.h