https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82990
--- Comment #7 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> --- Author: hjl Date: Wed Nov 15 19:30:58 2017 New Revision: 254783 URL: https://gcc.gnu.org/viewcvs?rev=254783&root=gcc&view=rev Log: i386: Add X86_TUNE_EMIT_VZEROUPPER Add X86_TUNE_EMIT_VZEROUPPER to indicate if vzeroupper instruction should be inserted before a transfer of control flow out of the function. It is turned on by default unless we are tuning for KNL. Users can always use -mzeroupper or -mno-zeroupper to override X86_TUNE_EMIT_VZEROUPPER. gcc/ PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove TARGET_AVX512ER check. (ix86_option_override_internal): Set MASK_VZEROUPPER if neither -mzeroupper nor -mno-zeroupper is used and TARGET_EMIT_VZEROUPPER is set. * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. gcc/testsuite/ PR target/82990 * gcc.target/i386/pr82942-2.c: Add -mtune=knl. * gcc.target/i386/pr82990-1.c: New test. * gcc.target/i386/pr82990-2.c: Likewise. * gcc.target/i386/pr82990-3.c: Likewise. * gcc.target/i386/pr82990-4.c: Likewise. * gcc.target/i386/pr82990-5.c: Likewise. * gcc.target/i386/pr82990-6.c: Likewise. * gcc.target/i386/pr82990-7.c: Likewise. Added: trunk/gcc/testsuite/gcc.target/i386/pr82990-1.c trunk/gcc/testsuite/gcc.target/i386/pr82990-2.c trunk/gcc/testsuite/gcc.target/i386/pr82990-3.c trunk/gcc/testsuite/gcc.target/i386/pr82990-4.c trunk/gcc/testsuite/gcc.target/i386/pr82990-5.c trunk/gcc/testsuite/gcc.target/i386/pr82990-6.c trunk/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.h trunk/gcc/config/i386/x86-tune.def trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr82942-2.c