This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[Bug c/53485] gcc -O -mavx generates illegal instruction on win64


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53485

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl.tools at gmail dot com

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2012-05-25 15:49:05 UTC ---
(In reply to comment #0)
> Created attachment 27495 [details]
> preprocessed source
> 
> Compiling the attached program with optimization and AVX for Win64 generates an
> illegal instruction. The same code runs correctly on Win32 and on Linux64.
> 
> $ x86_64-w64-mingw32-gcc -m64 -mavx bug.c -O -g -o bug.exe -Wall -Wextra
> -save-temps
> $ ./bug.exe
> BUG PROGRAM START: We should get this message once.
> DEBUG fun1 start...
> Illegal instruction
> $ gdb bug.exe
> (gdb) r
> Starting program: C:\cygwin\home\nas/bug.exe
> [New Thread 2436.0x38c]
> BUG PROGRAM START: We should get this message once.
> DEBUG fun1 start...
> 
> Program received signal SIGILL, Illegal instruction.
> fun1 () at bug.c:95
> 95         v1 = vfone;
> (gdb) x/i $pc
> => 0x4015e7 <fun1+54>:  vmovaps 0x7b11(%rip),%ymm0        # 0x409100
> (gdb) p $rip
> $1 = (void (*)()) 0x4015e7 <fun1+54>
> (gdb) info frame
> Stack level 0, frame at 0x22fe40:
>  rip = 0x4015e7 in fun1 (bug.c:95); saved rip 0x40171b

It looks like 0x7b11(%rip) isn't aligned to 16 byte.


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