gcc/libgcc
Andrew Senkevich 79fc8ffe6c Enable AVX-512 VPOPCNTD/VPOPCNTQ instructions.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
	OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
	* config.gcc: Add avx512vpopcntdqintrin.h.
	* config/i386/avx512vpopcntdqintrin.h: New.
	* config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
	* config/i386/i386-builtin-types.def: Add new types.
	* config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
	__builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
	__builtin_ia32_vpopcountq_v8di_mask): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512VPOPCNTDQ__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
	(PTA_AVX512VPOPCNTDQ): Define.
	* config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
	TARGET_AVX512VPOPCNTDQ_P): Define.
	* config/i386/i386.opt: Add mavx512vpopcntdq.
	* config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
	* config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.

libgcc/
	* config/i386/cpuinfo.h (processor_features): Add
	FEATURE_AVX512VPOPCNTDQ.
	* config/i386/cpuinfo.c (get_available_features): Habdle new
	feature.

gcc/testsuite/
	* g++.dg/other/i386-2.C: Add -mavx512vpopcntdq.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/sse-12.c: Ditto.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* gcc.target/i386/builtin_target.c: Handle new option.
	* gcc.target/i386/funcspec-56.inc: Test new attributes.
	* gcc.target/i386/avx512vpopcntdq-vpopcntd.c: New test.
	* gcc.target/i386/avx512vpopcntdq-vpopcntq.c: Ditto.

From-SVN: r244263
2017-01-10 12:55:41 +00:00
..
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00