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

Reply via email to