This is the mail archive of the gcc@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]

Re: SSE1 support anytime soon?



----- Original Message -----
From: "Paolo Carlini" <pcarlini@unitus.it>
To: "Tim Prince" <tprince@computer.org>; <gcc@gcc.gnu.org>
Sent: Monday, June 11, 2001 6:18 AM
Subject: Re: SSE1 support anytime soon?


> Hi,
>
> (caveat: presently I don't have a PIII neither a PIV at hand so I cannot
> perform any experiment myself)
>
> Tim Prince wrote:
>
> > I noticed that the prerelease binutils announced yesterday continues to
> > request only 4-byte alignments on my platform, so it is not supporting
> > SSE.
>
> This is unbelievable! Jan Hubicka back in february, that is well before
the
> binutils2.11 release, said that the support was present in the binutils
> snapshots:
>
>     http://gcc.gnu.org/ml/gcc/2001-02/msg00437.html
>
> And in fact is still not there in 2.11.1 ?!?
>
> >  In the past, I tried the -sse snapshot support, and it attempted
> > to use mmx instructions mixed with x87 instructions, so was broken for
> > anything less than P4.
>
> You mean that on the P4, on the other hand, -msse2 works? Together with
> which binutils ???
>
> Cheers,
> P.

I meant only to point out that P4 is capable of mixing mmx and x87
instructions, while P-III is not.  My impression has been that Jan was most
interested in supporting P4; it is a bit late in the game to be putting a
serious effort into P-III alone.  I recall him saying he had plans to deal
with the Windows alignment problem, but I don't suppose that is high on the
impressive list of projects undertaken by SuSE (of which I know little).

I installed the prerelease binutils which was announced yesterday on
cygwin, and was impressed by the way it worked out of the box, but then
found, as you did, that I need gcc-3.1 to attempt any sse. I haven't seen
anything about which targets are intentionally supported with 4-byte, and
which with 16-byte alignments, but the 4-byte alignments are (apparently)
required to support the gcc-2.95 version of g++ with newlib, so we are
stuck with breakage somewhere.  I suppose that targets which use the
current glibc should support 16-byte alignments.

 Speaking of disappointments in gcc-3.0, I see that the i386 code generated
by the truncate float (and double) to int operation is inferior to that of
gcc-2.95, decidedly so when run on P4.  The operations with the floating
point control word need to be done entirely with 16-bit operations, as
gcc-2.95 did, by or'ing the byte mask into the short value before it is
used by the fldcw instruction, not by a separate byte store to memory.
sse2 of course has single instructions for this, both single and parallel
versions.

 Tim



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