Menu

#681 Assembler Error: invalid register for .seh_savexmm when compiling with avx-512

v1.0 (example)
open
nobody
None
5
2022-04-20
2017-10-11
Holy Wu
No
Holy@HOLY MINGW64 ~
$ g++ -c "foo.cpp" -O3 -mfpmath=sse -mavx512f
C:\msys64\tmp\cculpWC2.s: Assembler messages:
C:\msys64\tmp\cculpWC2.s:44: Error: invalid register for .seh_savexmm
C:\msys64\tmp\cculpWC2.s:46: Error: invalid register for .seh_savexmm
C:\msys64\tmp\cculpWC2.s:48: Error: invalid register for .seh_savexmm
C:\msys64\tmp\cculpWC2.s:50: Error: invalid register for .seh_savexmm

Holy@HOLY MINGW64 ~
$ g++ -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw64\bin\g++.exe
COLLECT_LTO_WRAPPER=C:/msys64/mingw64/libexec/gcc/x86_64-w64-mingw32/7.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-7.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw710/x86_64-710-posix-seh-rt_v5-rev2/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev2, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev2/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev2/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev2/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw710/x86_64-710-posix-seh-rt_v5-rev2/mingw64/opt/lib -L/c/mingw710/prerequisites/x86_64-zlib-static/lib -L/c/mingw710/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 7.1.0 (x86_64-posix-seh-rev2, Built by MinGW-W64 project)

It compiled fine with -O0, but failed with either -O1, -O2, or -O3 along with -mavx512f. Moreover, the issue only exists in 64 bit. In 32 bit it compiled all fine.

There is a similar bug report at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65782.

1 Attachments

Discussion

  • Nikola Stojkov

    Nikola Stojkov - 2017-10-31

    Hello,

    I'm facing the same issue on Intel CPU with 8 cores, on 64bit version of MinGW 6.4.0. I tried also version 7.2.0 but same issue pops up about seh_savexmm.

    Is there some patch for this? 32bit version is working correctly...

    Br,
    Nikola

     

    Last edit: Nikola Stojkov 2017-10-31
  • Niklas Fiekas

    Niklas Fiekas - 2022-04-20

    Still reproducible with:

    g++.exe (Rev10, Built by MSYS2 project) 11.2.0
    
     
    • Niklas Fiekas

      Niklas Fiekas - 2022-04-20

      Apologies. I was confusing this with a different issue. It actually works works fine with that gcc version.

       

Log in to post a comment.

MongoDB Logo MongoDB