https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77845
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-*-*, i?86-*-* Status|UNCONFIRMED |NEW Keywords| |lto Last reconfirmed| |2016-10-05 Component|lto |target CC| |hubicka at gcc dot gnu.org, | |rguenth at gcc dot gnu.org, | |uros at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |5.4.0, 6.2.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- the lto_opts section still contains -mavx and -msse2 for the respective objects which are passed down at link time. It looks like the DECL_FUNCTION_SPECIFIC_TARGET node free-lang-data (is supposed to) installs doesn't "undo" -mavx fully. I suppose the ix86_sse2avx flag is to handle this. Confirmed for GCC 5 and GCC 6. Breakpoint 1, ix86_function_specific_restore (opts=0x2440b80 <global_options>, ptr=0x7ffff6a6cbd0) at /space/rguenther/src/svn/gcc-6-branch/gcc/config/i386/i386.c:5748 warning: Source file is more recent than executable. 5748 int i; Missing separate debuginfos, use: zypper install libgmp10-debuginfo-6.0.0-71.1.x86_64 libisl15-debuginfo-0.16.1-0.x86_64 libmpc3-debuginfo-1.0.2-38.2.x86_64 libmpfr4-debuginfo-3.1.2-3.1.2.x86_64 (gdb) p opts->x_ix86_sse2avx $1 = 0 (gdb) p ptr->x_ix86_sse2avx $2 = 0 (gdb) p cfun $3 = (function *) 0x7ffff6a702a0 (gdb) p debug_generic_expr (cfun->decl) my_simd_func_avx so I may be mistaken. Not sure how saving/restoring of flags like -mavx or -msse2 is supposed to work.