Compiling following:
/* movaps.c */
struct v4f { float f[4];} __attribute__ ((aligned (16),packed));
void foo (void)
{
struct v4f a = {{1.0f, 2.0f, 3.0f, 4.0f}};
__asm__ __volatile__ ("movaps %0, %%xmm0"::"X"(a));
}
with gcc -c -msse2 -masm=intel movaps.c
gives:
> movaps.c: In function `void foo()':
> movaps.c:7: internal compiler error: in print_operand, at
config/i386/i386.c:6564
The code compiles without error, using default asm syntax
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --
host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --
enable-languages=c,c++,objc --disable-win32-registry --disable-shared --enable-
sjlj-exceptions --disable-libmudflap --disable-checking
Thread model: win32
gcc version 4.0.0 20041101 (experimental)
3.3.3 and 3.4.3 releases also ICE with -masm=intel
Danny
--
Summary: ICE with "movaps" in inline asm when using -masm=intel
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dannysmith at users dot sourceforge dot net
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-mingw32
GCC host triplet: i686-pc-mingw32
GCC target triplet: i686-pc-mingw32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18353