This testcase: #include <xmmintrin.h> __m128i r(__m128 d1, __m128 d2, __m128 d3, __m128i r, int t, __m128i s) {return r+s;}
compiles to: _r: subl $12, %esp movdqa %xmm3, %xmm0 paddq 32(%esp), %xmm0 addl $12, %esp ret with apple gcc 4.0 and 4.2. It compiles to this with FSF 4.2: _r: subl $12, %esp movdqa 48(%esp), %xmm0 paddq 16(%esp), %xmm0 addl $12, %esp ret Since apple GCC defines the ABI on darwin, this is an FSF GCC ABI bug for that platform. -- Summary: FSF GCC ABI bug on darwin/x86-32 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sabre at nondot dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36399