[Bug target/85473] internal compiler error: in emit_move_insn, at expr.c:3722
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85473 --- Comment #4 from speryt at gcc dot gnu.org --- Author: speryt Date: Wed Apr 25 12:39:57 2018 New Revision: 259648 URL: https://gcc.gnu.org/viewcvs?rev=259648&root=gcc&view=rev Log: 2018-04-25 Sebastian Peryt gcc/ChangeLog: PR target/85473 * config/i386/i386.c (ix86_expand_builtin): Change memory operand to XI, extend p0 to Pmode. * config/i386/i386.md: Change unspec volatile and operand 1 mode to XI, change operand 0 mode to P. gcc/testsuite/ChangeLog: PR target/85473 * gcc.target/i386/pr85473-1.c: New test. * gcc.target/i386/pr85473-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr85473-1.c trunk/gcc/testsuite/gcc.target/i386/pr85473-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/testsuite/ChangeLog
[Bug target/86752] [9 Regression] FAIL: gcc.target/i386/avx2-cvt-2.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86752 Sebastian Peryt changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||speryt at gcc dot gnu.org Resolution|--- |DUPLICATE --- Comment #1 from Sebastian Peryt --- Duplicate of PR86745 *** This bug has been marked as a duplicate of bug 86745 ***
[Bug target/86745] [9 regression] gcc.target/i386/avx-cvt-2.c etc. FAIL on 64-bit x86
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86745 Sebastian Peryt changed: What|Removed |Added CC||hjl.tools at gmail dot com --- Comment #1 from Sebastian Peryt --- *** Bug 86752 has been marked as a duplicate of this bug. ***
[Bug target/82942] Generate vzeroupper with -mavx512f -mno-avx512er -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82942 --- Comment #8 from speryt at gcc dot gnu.org --- Author: speryt Date: Mon Dec 4 11:03:37 2017 New Revision: 255378 URL: https://gcc.gnu.org/viewcvs?rev=255378&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 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. 2017-12-04 Sebastian Peryt H.J. Lu gcc/ Bakcported from trunk PR target/82941 PR target/82942 PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper): Remove TARGET_AVX512F check from gate condition. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. (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: (host_detect_local_cpu): New define. (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. 2017-12-04 Sebastian Peryt H.J. Lu gcc/testsuite/ Backported from trunk PR target/82941 PR target/82942 PR target/82990 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: Likewise. * gcc.target/i386/pr82942-1.c: Likewise. * gcc.target/i386/pr82942-2.c: Likewise. * gcc.target/i386/pr82990-1.c: Likewise. * 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: branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82941-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82941-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82942-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82942-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-3.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-4.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-5.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-6.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/i386/i386.c branches/gcc-7-branch/gcc/config/i386/i386.h branches/gcc-7-branch/gcc/config/i386/x86-tune.def branches/gcc-7-branch/gcc/testsuite/ChangeLog
[Bug target/82990] Update the default -mzeroupper setting
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82990 --- Comment #9 from speryt at gcc dot gnu.org --- Author: speryt Date: Mon Dec 4 11:03:37 2017 New Revision: 255378 URL: https://gcc.gnu.org/viewcvs?rev=255378&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 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. 2017-12-04 Sebastian Peryt H.J. Lu gcc/ Bakcported from trunk PR target/82941 PR target/82942 PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper): Remove TARGET_AVX512F check from gate condition. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. (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: (host_detect_local_cpu): New define. (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. 2017-12-04 Sebastian Peryt H.J. Lu gcc/testsuite/ Backported from trunk PR target/82941 PR target/82942 PR target/82990 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: Likewise. * gcc.target/i386/pr82942-1.c: Likewise. * gcc.target/i386/pr82942-2.c: Likewise. * gcc.target/i386/pr82990-1.c: Likewise. * 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: branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82941-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82941-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82942-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82942-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-3.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-4.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-5.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-6.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/i386/i386.c branches/gcc-7-branch/gcc/config/i386/i386.h branches/gcc-7-branch/gcc/config/i386/x86-tune.def branches/gcc-7-branch/gcc/testsuite/ChangeLog
[Bug target/82941] Missing vzeroupper with -march=skylake-avx512 -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82941 --- Comment #3 from speryt at gcc dot gnu.org --- Author: speryt Date: Mon Dec 4 11:03:37 2017 New Revision: 255378 URL: https://gcc.gnu.org/viewcvs?rev=255378&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 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. 2017-12-04 Sebastian Peryt H.J. Lu gcc/ Bakcported from trunk PR target/82941 PR target/82942 PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper): Remove TARGET_AVX512F check from gate condition. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. (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: (host_detect_local_cpu): New define. (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. 2017-12-04 Sebastian Peryt H.J. Lu gcc/testsuite/ Backported from trunk PR target/82941 PR target/82942 PR target/82990 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: Likewise. * gcc.target/i386/pr82942-1.c: Likewise. * gcc.target/i386/pr82942-2.c: Likewise. * gcc.target/i386/pr82990-1.c: Likewise. * 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: branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82941-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82941-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82942-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82942-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-3.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-4.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-5.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-6.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/i386/i386.c branches/gcc-7-branch/gcc/config/i386/i386.h branches/gcc-7-branch/gcc/config/i386/x86-tune.def branches/gcc-7-branch/gcc/testsuite/ChangeLog
[Bug target/82990] Update the default -mzeroupper setting
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82990 --- Comment #10 from speryt at gcc dot gnu.org --- Author: speryt Date: Mon Dec 4 11:40:44 2017 New Revision: 255379 URL: https://gcc.gnu.org/viewcvs?rev=255379&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 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. 2017-12-04 Sebastian Peryt H.J. Lu gcc/ Bakcported from trunk PR target/82941 PR target/82942 PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper): Remove TARGET_AVX512F check from gate condition. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. (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: (host_detect_local_cpu): New define. (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. gcc/testsuite/ Backported from trunk PR target/82941 PR target/82942 PR target/82990 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: Likewise. * gcc.target/i386/pr82942-1.c: Likewise. * gcc.target/i386/pr82942-2.c: Likewise. * gcc.target/i386/pr82990-1.c: Likewise. * 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: branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82941-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82941-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82942-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82942-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-3.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-4.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-5.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-6.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/i386/i386.c branches/gcc-6-branch/gcc/config/i386/i386.h branches/gcc-6-branch/gcc/config/i386/x86-tune.def branches/gcc-6-branch/gcc/testsuite/ChangeLog
[Bug target/82942] Generate vzeroupper with -mavx512f -mno-avx512er -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82942 --- Comment #9 from speryt at gcc dot gnu.org --- Author: speryt Date: Mon Dec 4 11:40:44 2017 New Revision: 255379 URL: https://gcc.gnu.org/viewcvs?rev=255379&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 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. 2017-12-04 Sebastian Peryt H.J. Lu gcc/ Bakcported from trunk PR target/82941 PR target/82942 PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper): Remove TARGET_AVX512F check from gate condition. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. (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: (host_detect_local_cpu): New define. (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. gcc/testsuite/ Backported from trunk PR target/82941 PR target/82942 PR target/82990 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: Likewise. * gcc.target/i386/pr82942-1.c: Likewise. * gcc.target/i386/pr82942-2.c: Likewise. * gcc.target/i386/pr82990-1.c: Likewise. * 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: branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82941-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82941-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82942-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82942-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-3.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-4.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-5.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-6.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/i386/i386.c branches/gcc-6-branch/gcc/config/i386/i386.h branches/gcc-6-branch/gcc/config/i386/x86-tune.def branches/gcc-6-branch/gcc/testsuite/ChangeLog
[Bug target/82941] Missing vzeroupper with -march=skylake-avx512 -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82941 --- Comment #4 from speryt at gcc dot gnu.org --- Author: speryt Date: Mon Dec 4 11:40:44 2017 New Revision: 255379 URL: https://gcc.gnu.org/viewcvs?rev=255379&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 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. 2017-12-04 Sebastian Peryt H.J. Lu gcc/ Bakcported from trunk PR target/82941 PR target/82942 PR target/82990 * config/i386/i386.c (pass_insert_vzeroupper): Remove TARGET_AVX512F check from gate condition. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. (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: (host_detect_local_cpu): New define. (TARGET_EMIT_VZEROUPPER): New. * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. gcc/testsuite/ Backported from trunk PR target/82941 PR target/82942 PR target/82990 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: Likewise. * gcc.target/i386/pr82942-1.c: Likewise. * gcc.target/i386/pr82942-2.c: Likewise. * gcc.target/i386/pr82990-1.c: Likewise. * 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: branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82941-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82941-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82942-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82942-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-2.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-3.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-4.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-5.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-6.c branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr82990-7.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/i386/i386.c branches/gcc-6-branch/gcc/config/i386/i386.h branches/gcc-6-branch/gcc/config/i386/x86-tune.def branches/gcc-6-branch/gcc/testsuite/ChangeLog
[Bug target/83546] -march=silvermont doesn't enable rdrnd by default despite what docs say
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83546 --- Comment #2 from speryt at gcc dot gnu.org --- Author: speryt Date: Wed Jan 17 09:02:13 2018 New Revision: 256777 URL: https://gcc.gnu.org/viewcvs?rev=256777&root=gcc&view=rev Log: Re-enabling of RDRND for Silvermont. 2018-01-15 Sebastian Peryt gcc/ PR target/83546 * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND to PTA_SILVERMONT. 2018-01-15 Sebastian Peryt gcc/testsuite/ PR target/83546 * gcc.target/i386/pr83546.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr83546.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog
[Bug target/82942] Generate vzeroupper with -mavx512f -mno-avx512er -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82942 --- Comment #7 from speryt at gcc dot gnu.org --- Author: speryt Date: Wed Nov 15 12:27:31 2017 New Revision: 254763 URL: https://gcc.gnu.org/viewcvs?rev=254763&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 2017-11-15 Sebastian Peryt gcc/ PR target/82941 PR target/82942 * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition to return true on Xeon and not on Xeon Phi. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. * config/i386/i386.h: (host_detect_local_cpu): New define. 2017-11-15 Sebastian Peryt gcc/testsuite/ PR target/82941 PR target/82942 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: New test. * gcc.target/i386/pr82942-1.c: New test. * gcc.target/i386/pr82942-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr82941-1.c trunk/gcc/testsuite/gcc.target/i386/pr82941-2.c trunk/gcc/testsuite/gcc.target/i386/pr82942-1.c trunk/gcc/testsuite/gcc.target/i386/pr82942-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.h trunk/gcc/testsuite/ChangeLog
[Bug target/82941] Missing vzeroupper with -march=skylake-avx512 -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82941 --- Comment #2 from speryt at gcc dot gnu.org --- Author: speryt Date: Wed Nov 15 12:27:31 2017 New Revision: 254763 URL: https://gcc.gnu.org/viewcvs?rev=254763&root=gcc&view=rev Log: Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. 2017-11-15 Sebastian Peryt gcc/ PR target/82941 PR target/82942 * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition to return true on Xeon and not on Xeon Phi. (ix86_check_avx256_register): Changed to ... (ix86_check_avx_upper_register): ... this. Add extra check for VALID_AVX512F_REG_OR_XI_MODE. (ix86_avx_u128_mode_needed): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_check_avx256_stores): Changed to ... (ix86_check_avx_upper_stores): ... this. Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_after): Changed avx_reg256_found to avx_upper_reg_found. Changed ix86_check_avx256_stores to ix86_check_avx_upper_stores. (ix86_avx_u128_mode_entry): Changed ix86_check_avx256_register to ix86_check_avx_upper_register. (ix86_avx_u128_mode_exit): Ditto. * config/i386/i386.h: (host_detect_local_cpu): New define. 2017-11-15 Sebastian Peryt gcc/testsuite/ PR target/82941 PR target/82942 * gcc.target/i386/pr82941-1.c: New test. * gcc.target/i386/pr82941-2.c: New test. * gcc.target/i386/pr82942-1.c: New test. * gcc.target/i386/pr82942-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr82941-1.c trunk/gcc/testsuite/gcc.target/i386/pr82941-2.c trunk/gcc/testsuite/gcc.target/i386/pr82942-1.c trunk/gcc/testsuite/gcc.target/i386/pr82942-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.h trunk/gcc/testsuite/ChangeLog
[Bug c++/84783] Missing _mm256_permutexvar_epi64() intrinsic for AVX512VL
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84783 --- Comment #4 from speryt at gcc dot gnu.org --- Author: speryt Date: Thu Mar 29 14:51:03 2018 New Revision: 258958 URL: https://gcc.gnu.org/viewcvs?rev=258958&root=gcc&view=rev Log: 2018-03-29 Sebastian Peryt gcc/ChangeLog: PR c++/84783 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64) (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics. gcc/testsuite/ChangeLog: PR c++/84783 * gcc.target/i386/avx512vl-vpermd-1.c (_mm256_permutexvar_epi32): Test new intrinsic. * gcc.target/i386/avx512vl-vpermq-imm-1.c (_mm256_permutex_epi64): Ditto. * gcc.target/i386/avx512vl-vpermq-var-1.c (_mm256_permutexvar_epi64): Ditto. * gcc.target/i386/avx512f-vpermd-2.c: Do not check for AVX512F_LEN. * gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto. * gcc.target/i386/avx512f-vpermq-var-2.c: Ditto. Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/i386/avx512vlintrin.h branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/avx512f-vpermd-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/avx512f-vpermq-imm-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/avx512f-vpermq-var-2.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/avx512vl-vpermd-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/avx512vl-vpermq-imm-1.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/avx512vl-vpermq-var-1.c
[Bug c++/84783] Missing _mm256_permutexvar_epi64() intrinsic for AVX512VL
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84783 Sebastian Peryt changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||speryt at gcc dot gnu.org Resolution|--- |FIXED --- Comment #6 from Sebastian Peryt --- Sorry, forgot to update that.