i386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW

Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
AVX512F.

gcc/

	PR target/87572
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
	Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
	OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

gcc/testsuite/

	PR target/87572
	* gcc.target/i386/pr87572.c: New test.

From-SVN: r265150
This commit is contained in:
H.J. Lu 2018-10-14 20:30:02 +00:00 committed by H.J. Lu
parent fc7367ea77
commit 190667ae25
4 changed files with 29 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2018-10-14 H.J. Lu <hongjiu.lu@intel.com>
PR target/87572
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
OPTION_MASK_ISA_AVX5124VNNIW_UNSET.
2018-10-13 Eric Botcazou <ebotcazou@adacore.com>
* dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.

View File

@ -194,8 +194,12 @@ along with GCC; see the file COPYING3. If not see
(OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX512CD_UNSET \
| OPTION_MASK_ISA_AVX512PF_UNSET | OPTION_MASK_ISA_AVX512ER_UNSET \
| OPTION_MASK_ISA_AVX512DQ_UNSET | OPTION_MASK_ISA_AVX512BW_UNSET \
| OPTION_MASK_ISA_AVX512VL_UNSET | OPTION_MASK_ISA_AVX512VBMI2_UNSET \
| OPTION_MASK_ISA_AVX512VNNI_UNSET | OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET \
| OPTION_MASK_ISA_AVX512VL_UNSET | OPTION_MASK_ISA_AVX512IFMA_UNSET \
| OPTION_MASK_ISA_AVX5124FMAPS_UNSET \
| OPTION_MASK_ISA_AVX5124VNNIW_UNSET \
| OPTION_MASK_ISA_AVX512VBMI2_UNSET \
| OPTION_MASK_ISA_AVX512VNNI_UNSET \
| OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET \
| OPTION_MASK_ISA_AVX512BITALG_UNSET)
#define OPTION_MASK_ISA_AVX512CD_UNSET OPTION_MASK_ISA_AVX512CD
#define OPTION_MASK_ISA_AVX512PF_UNSET OPTION_MASK_ISA_AVX512PF

View File

@ -1,3 +1,8 @@
2018-10-14 H.J. Lu <hongjiu.lu@intel.com>
PR target/87572
* gcc.target/i386/pr87572.c: New test.
2018-10-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/83146

View File

@ -0,0 +1,10 @@
/* PR target/82483 */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512ifma -mno-sse2 -w -Wno-psabi" } */
typedef long long __m512i __attribute__((__vector_size__(64)));
__m512i
foo (__m512i c, __m512i d, __m512i e, int b)
{
return __builtin_ia32_vpmadd52huq512_maskz (c, d, e, b); /* { dg-error "incompatible types" } */
}