[Pixman] [PATCH] mmx: Use MMX2 intrinsics from xmmintrin.h directly.
mattst88 at gmail.com
Sun Oct 25 13:13:09 PDT 2015
On Sun, Oct 11, 2015 at 8:59 PM, Matt Turner <mattst88 at gmail.com> wrote:
> We had lots of hacks to handle the inability to include xmmintrin.h
> without compiling with -msse (lest SSE instructions be used in
> pixman-mmx.c). Some recent version of gcc relaxed this restriction.
> Change configure.ac to test that xmmintrin.h can be included and that we
> can use some intrinsics from it, and remove the work-around code from
> Evidently allows gcc 4.9.3 to optimize better as well:
> text data bss dec hex filename
> 657078 30848 680 688606 a81de libpixman-1.so.0.33.3 before
> 656710 30848 680 688238 a806e libpixman-1.so.0.33.3 after
> Signed-off-by: Matt Turner <mattst88 at gmail.com>
Ugh. This is apparently not sufficient...
GCC allows you to *include* xmmintrin.h without enabling SSE, but it
still doesn't allow you to use any of the functions:
conftest.c: In function ‘main’:
error: inlining failed in call to always_inline ‘_mm_mulhi_pu16’:
target specific option mismatch
_mm_mulhi_pu16 (__m64 __A, __m64 __B)
conftest.c:12:7: error: called from here
w = _mm_mulhi_pu16(w, w);
I'm not sure what to do except to revert.
The MMX but no SSE case is important, at least it was in the past
because of OLPC's XO-1.
Suggestions besides reverting this?
More information about the Pixman