[Bug target/85473] internal compiler error: in emit_move_insn, at expr.c:3722

2018-04-25 Thread speryt at gcc dot gnu.org
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

2018-08-03 Thread speryt at gcc dot gnu.org
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

2018-08-03 Thread speryt at gcc dot gnu.org
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

2017-12-04 Thread speryt at gcc dot gnu.org
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

2017-12-04 Thread speryt at gcc dot gnu.org
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

2017-12-04 Thread speryt at gcc dot gnu.org
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

2017-12-04 Thread speryt at gcc dot gnu.org
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

2017-12-04 Thread speryt at gcc dot gnu.org
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

2017-12-04 Thread speryt at gcc dot gnu.org
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

2018-01-17 Thread speryt at gcc dot gnu.org
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

2017-11-15 Thread speryt at gcc dot gnu.org
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

2017-11-15 Thread speryt at gcc dot gnu.org
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

2018-03-29 Thread speryt at gcc dot gnu.org
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

2018-11-20 Thread speryt at gcc dot gnu.org
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.