This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
(something of an absence of) SSE2 documentation
- From: "Tom Womack" <tom at womack dot net>
- To: <gcc at gcc dot gnu dot org>
- Date: Tue, 5 Feb 2002 12:00:28 -0000
- Subject: (something of an absence of) SSE2 documentation
Hi.
In what section of which manual ought the asm() constraints for SSE
registers to be documented? They somehow fall between the cracks;
I was expecting to find the documentation in a "machine-specific"
section under "extended assembly" in info gcc. It wouldn't make
sense to document them in info as, they're very much gcc constructs.
I ended up guessing that the information might be in gcc/config/i386.h,
which told me the letters
x SSE registers
y MMX registers
Y 'SSE2' registers
but I don't see what the distinction between SSE and SSE2 _registers_ is
supposed to be; the SSE and SSE2 operations all act on the same
set of eight registers.
Looking through i386.md, "Y" constraints are associated with DF and
V2DF-mode instructions, and there seems to be really very little handling at
all of the SSE2 extended-MMX instructions, which use operands of type V16QI,
V8HI, V4SI and V2DI.
Even some SSE2 operations are missing entirely -- SQRTPD and MAXPD, for
instance; to make them used, would I have to do anything beyond copying the
define_insn for the PS variants, checking TARGET_SSE2 rather than
TARGET_SSE, and changing "xm" to "Ym" and "v4sf" to "v2df"?
Tom