[Mesa-dev] [PATCH V5] mesa: add SSE optimisation forglDrawElements

Marc Dietrich marvin24 at gmx.de
Thu Nov 6 14:33:28 PST 2014


Am Donnerstag, 6. November 2014, 11:55:59 schrieb Matt Turner:
> On Wed, Nov 5, 2014 at 12:54 PM, Matt Turner <mattst88 at gmail.com> wrote:
> > On Wed, Nov 5, 2014 at 12:50 PM, Timothy Arceri <t_arceri at yahoo.com.au> 
wrote:
> >> There have been quite a few eyes over this now but nobody has given it a
> >> reviewed by yet.
> >> 
> >> Would be nice to get it in before the code freeze. Any takers?
> > 
> > Yes, I'll make sure that happens.
> 
> I made a couple of trivial changes to the commit message and added
> some spaces between __m128i and * in casts and pushed it with review.

somehow this managed to successfully break my build - so finally a nice 
testcase :-)

Using CFLAGS="-march=native -fLTO". My cpu does not support sse4.1. During 
compile time, -mno-sse4.1 -msse4.1 is passed, while during linktime, only -
mno-sse4.1 is passed.

usr/lib64/gcc/x86_64-suse-linux/4.9/include/smmintrin.h: In function 
'vbo_get_minmax_indices':
/usr/lib64/gcc/x86_64-suse-linux/4.9/include/smmintrin.h:320:20: error: 
'__builtin_ia32_pmaxud128' needs isa option -m32 -msse4.1
   return (__m128i) __builtin_ia32_pmaxud128 ((__v4si)__X, (__v4si)__Y);
                    ^
/usr/lib64/gcc/x86_64-suse-linux/4.9/include/smmintrin.h:314:20: error: 
'__builtin_ia32_pminud128' needs isa option -m32 -msse4.1
   return (__m128i) __builtin_ia32_pminud128 ((__v4si)__X, (__v4si)__Y);
                    ^
make[4]: *** [/tmp/cc5QZcUd.ltrans1.ltrans.o] Error 1

So opposite to my earlier thoughts, the "-m" flags are not kept per-file 
during link. On the other hand, removing "-march=native" gives:

  CXXLD    gallium_dri.la
../../src/mesa/vbo/vbo_exec_array.c: In function 'vbo_get_minmax_indices':
../../src/mesa/vbo/vbo_exec_array.c:197:0: internal compiler error: in 
propagate_rhs_into_lhs, at tree-ssa-dom.c:2913
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.

with gcc-4.9.2 from opensuse/factory, so who knows what is really happening.

Trying with gcc-4.8 also fails like in the first example, even without 
"march=native", maybe because the default march is x86_64 which also does not 
support see4.1.

So this is only a problem with Link-Time-Opt.

Marc



More information about the mesa-dev mailing list