gcc/libgcc
Hongtao Liu 4f0e90fae9 Enable support for bfloat16 which will be in Future Cooper Lake.
There are 3 instructions for AVX512BF16: VCVTNE2PS2BF16, VCVTNEPS2BF16 and
DPBF16PS instructions, which are Vector Neural Network Instructions
supporting:
    
- VCVTNE2PS2BF16: Convert Two Packed Single Data to One Packed BF16 Data.
- VCVTNEPS2BF16: Convert Packed Single Data to Packed BF16 Data.
- VDPBF16PS: Dot Product of BF16 Pairs Accumulated into Packed Single Precision.

2019-05-07  Wei Xiao  <wei3.xiao@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
	OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
	(OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
	(ix86_handle_option): Handle -mavx512bf16.
	* config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
	to extra_headers.
	* config/i386/avx512bf16vlintrin.h: New.
	* config/i386/avx512bf16intrin.h: New.
	* config/i386/cpuid.h (bit_AVX512BF16): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
	* config/i386/i386-builtin-types.def: Add new types.
	* config/i386/i386-builtin.def: Add new builtins.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512BF16__.
	* config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
	(ix86_option_override_internal): Handle BF16.
	(ix86_valid_target_attribute_inner_p): Ditto.
	* config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
	* config/i386/i386-builtin.c (enum processor_features): Add
	F_AVX512BF16.
	(static const _isa_names_table isa_names_table): Ditto.
	* config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
	(PTA_AVX512BF16): Ditto.
	* config/i386/i386.opt: Add -mavx512bf16.
	* config/i386/immintrin.h: Include avx512bf16intrin.h
	and avx512bf16vlintrin.h.
	* config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
	avx512f_cvtneps2bf16_<mode><mask_name>,
	avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
	* config/i386/subst.md (mask_half): Add new subst.
	* doc/invoke.texi: Document -mavx512bf16.

2019-05-07  Wei Xiao  <wei3.xiao@intel.com>

	* gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c: New test.
	* gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c: New test.
	* gcc.target/i386/avx512bf16-vdpbf16ps-1.c: New test.
	* gcc.target/i386/avx512bf16vl-vcvtne2ps2bf16-1.c: New test.
	* gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1.c: New test.
	* gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c: New test.
	* gcc.target/i386/builtin_target.c: Handle avx512bf16.
	* gcc.target/i386/sse-12.c: Add -mavx512bf16.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* g++.dg/other/i386-2.C: Ditto.
	* g++.dg/other/i386-3.C: Ditto.

2019-05-07  Hongtao Liu  <hongtao.liu@intel.com>

	* config/i386/cpuinfo.c (get_available_features): Detect BF16.
	* config/i386/cpuinfo.h (enum processor_features): Add
	FEATURE_AVX512BF16.

From-SVN: r271006
2019-05-08 10:21:40 +00:00
..
config Enable support for bfloat16 which will be in Future Cooper Lake. 2019-05-08 10:21:40 +00:00
soft-fp Update soft-fp from glibc. 2018-11-08 16:26:28 +00:00
ChangeLog Enable support for bfloat16 which will be in Future Cooper Lake. 2019-05-08 10:21:40 +00:00
config.host GCN libgcc. 2019-01-17 12:29:13 +00:00
config.in re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace) 2018-02-28 09:59:15 +01:00
configure Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
configure.ac Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
crtstuff.c Update copyright years. 2019-01-01 13:31:55 +01:00
dfp-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
dfp-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
divmod.c Update copyright years. 2019-01-01 13:31:55 +01:00
empty.mk
emutls.c Update copyright years. 2019-01-01 13:31:55 +01:00
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c Update copyright years. 2019-01-01 13:31:55 +01:00
find-symver.awk Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
fp-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
gbl-ctors.h Update copyright years. 2019-01-01 13:31:55 +01:00
gcov.h Update copyright years. 2019-01-01 13:31:55 +01:00
gen-fixed.sh
generic-morestack-thread.c PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
generic-morestack.c PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
generic-morestack.h Update copyright years. 2019-01-01 13:31:55 +01:00
gstdint.h
gthr-posix.h PR c/88546 - Copy attribute unusable for weakrefs 2019-01-04 17:57:30 -07:00
gthr-single.h Update copyright years. 2019-01-01 13:31:55 +01:00
gthr.h Update copyright years. 2019-01-01 13:31:55 +01:00
libgcc2.c extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcc2.h extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcc-std.ver.in Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-driver-system.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-driver.c Update error message prefix in libgcov profiling. 2019-01-18 11:31:45 +00:00
libgcov-interface.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-merge.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-profiler.c Bump version of __gcov_indirect_call_profiler function as there was ABI change. 2019-01-18 11:32:53 +00:00
libgcov-util.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov.h Bump version of __gcov_indirect_call_profiler function as there was ABI change. 2019-01-18 11:32:53 +00:00
Makefile.in Bump version of __gcov_indirect_call_profiler function as there was ABI change. 2019-01-18 11:32:53 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh Update copyright years. 2019-01-01 13:31:55 +01:00
mkmap-flat.awk Update copyright years. 2019-01-01 13:31:55 +01:00
mkmap-symver.awk PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
offloadstuff.c Update copyright years. 2019-01-01 13:31:55 +01:00
shared-object.mk
siditi-object.mk
static-object.mk
sync.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivhi3.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmod.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmodhi4.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmodsi4.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-arm-common.inc Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-c.c re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
unwind-compat.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-compat.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2.c unwind-dw2.c (_Unwind_GetGR): Compare regno instead of index to DWARF_ZERO_REG. 2019-02-19 17:10:00 +01:00
unwind-dw2.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-generic.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-pe.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-seh.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-sjlj.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind.inc Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_end_preinit.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_end.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_start_preinit.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_start.c Update copyright years. 2019-01-01 13:31:55 +01:00