On Sun, Feb 21, 2010 at 9:27 AM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Sun, Feb 21, 2010 at 9:15 AM, Geert Bosch <bo...@adacore.com> wrote: > >>> As I understand it, whether -mfpmath=387 (with excess precision) or >>> -mfpmath=sse is the default is also considered part of the platform API >>> (like whether char is signed or unsigned by default, for example), in >>> addition to the ABI issues that can slow things down when SSE is used. >> >> No, this is not a new ABI. The ABI stays exactly the same. The I of >> ABI stands for Interface. That is, the ABI has nothing to say about >> how a function will compute any results. That is the area of language >> standards. The only way we'd violate the ABI is the reliance on SSE2 >> instructions being available and SSE2 registers being saved by the OS. >> >> However, since any other compiler uses SSE2 instructions by default, >> I don't see why GCC should be any different. If anything, since the >> GCC target audience is more focused on Free and open source software, >> we could be more aggressive in taking advantage of newer hardware. >> What about an autoconf test for availability of 486 atomic instructions, >> and SSE2 instructions in order, and choosing the default target based >> on the host? Not too crazy, is it? >> > > I agreed that gcc for x86 should choose a sensible default for 95% of > current x86 processors in use. People with those old processors can > use older gcc or -march=. > > Default to SSE2 is a good first step. >
FWIW, here is a patch to add --with-math=sse for x86: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00714.html -- H.J.