This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Change to gcc/config/i386/emmintrin.h


Ian/Jakub,
I will commit the attached patch to mainline. I have bootstrapped and
run make check for i686-pc-linux-gnu to ensure all tests pass as
expected.

2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>

        * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
        conditional to __SSE2__.
        (Entries below should have been added to first ChangeLog
        dated 2007-02-05 for amdfam10)
        * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
        defined.
        * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
        defined.
        * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
        defined.

Thanks for catching this issue and I will watch out for the other
suggestions you have made in the future.
- Harsha



>-----Original Message-----
>From: Ian Lance Taylor [mailto:iant@google.com]
>Sent: Wednesday, February 07, 2007 9:19 AM
>To: Jagasia, Harsha
>Cc: Jakub Jelinek; gcc-patches@gcc.gnu.org
>Subject: Re: Change to gcc/config/i386/emmintrin.h
>
>Your mailer is not threading properly.  It is not inserting
>appropriate References headers.
>
>"Jagasia, Harsha" <harsha.jagasia@amd.com> writes:
>
>> Hi Jakub,
>>
>> >On Tue, Feb 06, 2007 at 12:11:17PM -0600, Jagasia, Harsha wrote:
>> >> From what I can see, xmmintrin.h (SSE header) includes emmintrin.h
>> (SSE2
>> >> header) at the end of the file.
>> >>
>> >> 	/* For backward source compatibility.  */
>> >> 	#include <emmintrin.h>
>> >
>> >Then perhaps you can do there:
>> >/* For backward source compatibility.  */
>> >#ifdef __SSE2__
>> ># include <emmintrin.h>
>> >#endif
>> >
>> >	Jakub
>> >
>>
>> Sure, that's the easy fix. I suspect any code base that Ian or others
>> are running outside of the testsuite, which relies on this behavior,
>> will have to change the makefiles etc accordingly.
>
>That #include was added when emmintrin.h was introduced, here:
>
>http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00229.html
>
>It was introduced for backward compatibility.  Your change breaks that
>backward compatibility.  This should have been handled separately from
>the amdfam10 patches.  It has nothing to do with amdfam10, and it was
>quite easy to miss the change in the patch, especially without the
>ChangeLog entry.  In the future, please send unrelated patches in
>separate e-mail messages.  Thanks.
>
>In order to acheive the two goals of backward compatibility (insofar
>as that is important) and correctness, Jakub's patch looks right to
>me.  I don't see why it would require any changes to Makefiles.  The
>intrinsic functions in emmintrin.h were ineffective without -msse2.
>
>So I will preapprove that patch.  Harsha, please test it with a
>bootstrap and testsuite run for the target i686-pc-linux-gnu--i.e., a
>target which does not natively support any form of SSE.  If it passes,
>please commit it with an appropriate ChangeLog entry.  If you have any
>questions or concerns, please ask.  Thanks.
>
>Ian
>

Attachment: fix-xmmintrin.patch
Description: fix-xmmintrin.patch


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]