Go to file
Ilya Tocar 3dcc8af5cd Add avx512vbmi instructions.
gcc/

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
	OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512vbmi.
	* config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
	* config/i386/avx512vbmiintrin.h: New file.
	* config/i386/avx512vbmivlintrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512VBMI): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512VBMI__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
	(PTA_AVX512VBMI): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512vbmi,
	(ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
	IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
	IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
	IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
	IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
	IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
	IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
	IX86_BUILTIN_VPERMI2VARQI128.
	(bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
	__builtin_ia32_vpmultishiftqb256_mask,
	__builtin_ia32_vpmultishiftqb128_mask,
	__builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
	__builtin_ia32_vpermt2varqi512_maskz,
	__builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
	__builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
	__builtin_ia32_vpermt2varqi256_maskz,
	__builtin_ia32_vpermt2varqi128_mask,
	__builtin_ia32_vpermt2varqi128_maskz,
	__builtin_ia32_vpermi2varqi256_mask,
	__builtin_ia32_vpermi2varqi128_mask.
	(ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
	* config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
	* config/i386/i386.opt: Add mavx512vbmi.
	* config/i386/immintrin.h: Include avx512vbmiintrin.h,
	avx512vbmivlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
	(VI1_AVX512VL): New iterator.
	(<avx512>_permvar<mode><mask_name>): Use it.
	(<avx512>_vpermi2var<mode>3_maskz): Ditto.
	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermi2var<mode>3_mask): Ditto.
	(<avx512>_vpermt2var<mode>3_maskz): Ditto.
	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermt2var<mode>3_mask): Ditto.
	(vpmultishiftqb<mode><mask_name>): Ditto.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mavx512vbmi.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx512vbmi-check.h.
	* gcc.target/i386/avx512vbmi-check.h: Ditto.
	* gcc.target/i386/avx512vbmi-vpermb-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermb-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermi2b-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermb-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
	* gcc.target/i386/i386.exp (check_effective_target_avx512vbmi): New.
	* gcc.target/i386/sse-12.c: Add new options.
	* 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.

From-SVN: r217932
2014-11-21 18:44:37 +03:00
boehm-gc re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
config mt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than overwriting. 2014-11-18 15:12:52 -07:00
contrib Fix patch mangling with --inline option 2014-11-14 12:09:45 +00:00
fixincludes inclhack.def (glibc_c99_inline_4): Add pthread.h to files. 2014-10-21 12:58:26 +02:00
gcc Add avx512vbmi instructions. 2014-11-21 18:44:37 +03:00
gnattools
include * dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags) 2014-11-14 18:18:34 +01:00
INSTALL README: Do not mention CVS. 2014-10-12 15:05:28 +00:00
intl
libada Makefile.in: Add CFLAGS_FOR_TARGET to GNATLIBCFLAGS_FOR_C. 2014-08-12 19:47:09 +00:00
libatomic * cas_n.c (libat_compare_exchange): Add missing cast. 2014-11-13 23:05:51 -07:00
libbacktrace Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
libcc1 Enable libcc1 on Solaris 2014-11-13 10:22:22 +00:00
libcilkrts [PATCH 2/4] OpenMP 4.0 offloading to Intel MIC: liboffloadmic. 2014-11-13 14:03:17 +00:00
libcpp re PR target/63966 (inconsistent operand constraints compiling build libcpp) 2014-11-20 13:10:12 +01:00
libdecnumber Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
libffi re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
libgcc [PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make 2014-11-13 13:28:56 +00:00
libgfortran PR 60324 VLA related fixes to random number generator. 2014-11-16 03:56:54 +02:00
libgo runtime: set library name based on compiler name 2014-11-14 18:02:50 +00:00
libgomp e.53.5.c: Require vect_simd_clones effective target. 2014-11-19 11:30:29 +01:00
libiberty Cast strtol return to unsigned long 2014-11-12 08:24:30 -08:00
libitm re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
libjava re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
libobjc re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
liboffloadmic [PATCH 3/4] OpenMP 4.0 offloading to Intel MIC: libgomp plugin. 2014-11-13 14:05:49 +00:00
libquadmath re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
libsanitizer re PR sanitizer/64013 (libsanitizer fails to build) 2014-11-21 15:03:37 +01:00
libssp re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
libstdc++-v3 re PR c++/63959 (G++ misreports volatile int as trivially copyable) 2014-11-20 16:51:04 -05:00
libvtv re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
lto-plugin [PATCH 4/7] OpenMP 4.0 offloading infrastructure: lto-wrapper. 2014-11-13 13:47:46 +00:00
maintainer-scripts Add svn:executable property for generate_libstdcxx_web_docs. 2014-10-30 11:11:38 +01:00
zlib Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
.dir-locals.el
.gitignore
ABOUT-NLS
ChangeLog MAINTAINERS (Write After Approval): Add myself. 2014-11-21 12:01:32 +00:00
ChangeLog.jit Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
ChangeLog.tree-ssa
compile Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
config-ml.in
config.guess Update config.{sub,guess} from upstream repo 2014-11-15 23:44:29 +00:00
config.rpath
config.sub Update config.{sub,guess} from upstream repo 2014-11-15 23:44:29 +00:00
configure [PATCH 2/4] OpenMP 4.0 offloading to Intel MIC: liboffloadmic. 2014-11-13 14:03:17 +00:00
configure.ac [PATCH 2/4] OpenMP 4.0 offloading to Intel MIC: liboffloadmic. 2014-11-13 14:03:17 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
install-sh Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
libtool-ldflags
libtool.m4 re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14)) 2014-11-11 20:25:18 +00:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS MAINTAINERS (Write After Approval): Add myself. 2014-11-21 12:01:32 +00:00
Makefile.def [PATCH 2/4] OpenMP 4.0 offloading to Intel MIC: liboffloadmic. 2014-11-13 14:03:17 +00:00
Makefile.in [PATCH 2/4] OpenMP 4.0 offloading to Intel MIC: liboffloadmic. 2014-11-13 14:03:17 +00:00
Makefile.tpl cloog.m4: Remove. 2014-11-11 19:54:16 +01:00
missing Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
mkdep
mkinstalldirs Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
move-if-change Update move-if-change from gnulib 2014-11-16 16:12:44 +00:00
README
symlink-tree
ylwrap Update from upstream Automake files. 2014-11-16 14:07:13 +00:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.