Go to file
Alexander Ivchenko 3f97cb0b27 i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
(OPTION_MASK_ISA_AVX512CD_SET): Ditto.
(OPTION_MASK_ISA_AVX512PF_SET): Ditto.
(OPTION_MASK_ISA_AVX512ER_SET): Ditto.
(OPTION_MASK_ISA_AVX2_UNSET): Update.
(OPTION_MASK_ISA_AVX512F_UNSET): New.
(OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
(OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
(OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
(ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
OPT_mavx512pf, OPT_mavx512er cases.
* config/i386/constraints.md (v): New constraint.
(Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
* config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
(bit_AVX512CD): New.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
AVX512F, AVX512ER, AVX512PF, AVX512CD features.
* config/i386/i386-c.c (ix86_target_macros_internal):
Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
__AVX512PF__.
* config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
(VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
* config/i386/i386.c (regclass_map, dbx_register_map)
(dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
(gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
(ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
-mavx512pf options.
(ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
PTA_AVX512PF, PTA_AVX512CD.  Handle -mavx512f, -mavx512er, -mavx512cd,
-mavx512pf options.  Fix formatting.
(ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
targets.  Squash EVEX_SSE_REGS if AVX512F is disabled.
(ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
-mavx512cd, -mavx512pf options.
(standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
(print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
(ix86_preferred_output_reload_class): Replace SSE_REGS with
ALL_SSE_REGS.
(ix86_hard_regno_mode_ok): Support 512-bit registers.
(ix86_set_reg_reg_cost): Ditto.
(x86_order_regs_for_local_alloc): Ditto.
(MAX_VECT_LEN): Extend to 64-byte.
(ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
* config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
(TARGET_AVX512ER, TARGET_AVX512CD): New.
(BIGGEST_ALIGNMENT): Extend to 512-bits.
(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
(CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
(VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
(SSE_REG_MODE_P): Support new modes.
(FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
(FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
(reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
(SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
(REG_CLASS_CONTENTS): Add new registers.
(SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
(EXT_REX_SSE_REGNO_P): New.
(HI_REGISTER_NAMES): Add new registers.
* config/i386/i386.md: Define constants for new registers.
(mode): Add new 512-bit modes.
(prefix): Support evex prefix.
(isa): Support avx512f, noavx512f, fma_avx512f.
(ssemodesuffix): Add new 512-bit modes.
(movxi): New.
(*movxi_internal_avx512f): Ditto.
(*movdi_internal): Replace constraint "x" with the new constraint "v".
Support MODE_XI.
(*movsi_internal): Likewise.
(*movdf_internal): Likewise.
(*movsf_internal): Likewise.
(*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
(<code><mode>3): Likewise.
* config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd): New.
* config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
with the new constraint "v".
* config/i386/sse.md (*mov<mode>_internal): Support new registers and
modes.
(<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
with the new constraint "v".
(<sse2>_loaddqu<avxsizesuffix>): Likewise.
(<sse2>_storedqu<avxsizesuffix>): Likewise.
(*<plusminus_insn><mode>3): Likewise.
(<sse>_vm<plusminus_insn><mode>3): Likewise.
(*mul<mode>3): Likewise.
(<sse>_vmmul<mode>3): Likewise.
(<sse>_div<mode>3): Likewise.
(<sse>_vmdiv<mode>3): Likewise.
(<sse>_sqrt<mode>2): Likewise.
(<sse>_vmsqrt<mode>2): Likewise.
(*<code><mode>3_finite): Likewise.
(*<code><mode>3) <smaxmin>: Likewise.
(<sse>_vm<code><mode>3): Likewise.
(*<code><mode>3) <any_logic>: Likewise.
(*fma_fmadd_<mode>): Likewise.
(*fma_fmsub_<mode>): Likewise.
(*fma_fnmadd_<mode>): Likewise.
(*fma_fnmsub_<mode>): Likewise.
(*fma_fmaddsub_<mode>): Likewise.
(*fma_fmsubadd_<mode>): Likewise.
(*fmai_fmadd_<mode>): Likewise.
(*fmai_fmsub_<mode>): Likewise.
(*fmai_fnmadd_<mode>): Likewise.
(*fmai_fnmsub_<mode>): Likewise.
(sse_cvtsi2ss): Likewise.
(sse_cvtsi2ssq): Likewise.
(sse_cvtss2si): Likewise.
(sse_cvtss2si_2): Likewise.
(sse_cvtss2siq): Likewise.
(sse_cvtss2siq_2): Likewise.
(sse_cvttss2si): Likewise.
(sse_cvtss2siq_2): Likewise.
(float<sseintvecmodelower><mode>2): Likewise.
(sse2_cvtsd2si_2): Likewise.
(sse2_cvtsd2siq_2): Likewise.
(*<plusminus_insn><mode>3): Likewise.
(*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
(*<sse4_1_avx2>_mul<mode>3): Likewise.
(ashr<mode>3): Likewise.
(<shift_insn><mode>3): Likewise.
(avx2_<code><mode>3): Likewise.
(*avx2_<code><mode>3): Likewise.
(*andnot<mode>3): Likewise.
(*<code><mode>3) <any_logic>: Likewise.
(abs<mode>2): Likewise.
(avx2_permvar<mode>): Likewise.
(avx2_perm<mode>_1): Likewise.
(*avx_vpermilp<mode>): Likewise.
(avx_vpermilvar<mode>3): Likewise.
(avx2_ashrv<mode>): Likewise.
(avx2_<shift_insn>v<mode>): Likewise.
* doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
-mavx512cd.
* doc/rtl.texi: Document XImode.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r201915
2013-08-22 06:06:03 +00:00
INSTALL
boehm-gc Add ChangeLog entry for r197770 (in boehm-gc). 2013-05-02 21:48:45 +02:00
config Fix whitespace issue 2013-03-27 22:58:04 +01:00
contrib Commit the vtable verification feature. 2013-08-06 20:38:59 -07:00
fixincludes Remove sample result for CDEF_CPLUSPLUS hack 2013-07-07 13:57:21 +00:00
gcc i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New. 2013-08-22 06:06:03 +00:00
gnattools
include floatformat.h (floatformat_ibm_long_double): Delete. 2013-08-20 15:01:41 +09:30
intl
libada configure: Regenerated. 2013-03-27 23:00:53 +01:00
libatomic Avoid non constant memory model uses in libatomic 2013-03-24 00:23:10 +00:00
libbacktrace elf.c (elf_syminfo): Loop over the elf_syminfo_data chain. 2013-07-23 13:17:10 +04:00
libcpp configure.ac: Set need_64bit_hwint for all arm targets. 2013-08-07 13:51:38 +00:00
libdecnumber configure.ac: Add AC_CONFIG_AUX_DIR. 2013-07-09 10:24:39 +00:00
libffi ffi.c (ffi_prep_args_SYSV): Move var declaration before statements. 2013-06-25 09:38:47 +09:30
libgcc re PR gcov-profile/58127 (37 failures in gcc.dg/tree-prof/ for x86_64-apple-darwin10) 2013-08-18 15:50:17 +00:00
libgfortran fpu-387.h (get_fpu_rounding_mode): Read rounding mode from SSE mxcsr register on x86_64. 2013-07-23 11:45:30 +02:00
libgo net: give C.getaddrinfo a hint that we only want SOCK_STREAM answers 2013-08-09 20:51:16 +00:00
libgomp Disable strassen.f90 test for aarch64 tiny memory. 2013-06-28 12:45:57 +00:00
libiberty floatformat.h (floatformat_ibm_long_double): Delete. 2013-08-20 15:01:41 +09:30
libitm revert: configure.tgt: Add -msoft-float to XCFLAGS. 2013-08-14 21:04:07 +00:00
libjava aot-compile.in: Fix typo in option list. 2013-06-27 13:58:20 +00:00
libmudflap re PR tree-optimization/53265 (Warn when undefined behavior implies smaller iteration count) 2013-03-14 10:13:36 +01:00
libobjc class.c: Fix typos. 2013-07-21 15:38:21 +00:00
libquadmath re PR libquadmath/55473 (quadmath.h should have extern "C" for C++ users) 2013-03-07 08:53:10 +01:00
libsanitizer sanitizer_linux.cc (MemoryMappingLayout::Next): Cherry pick upstream r182922. 2013-06-03 15:04:35 +02:00
libssp Revert libquadmath and libssp copyright patches. 2013-02-06 22:03:54 +00:00
libstdc++-v3 regex.h: Executor caller. 2013-08-22 00:58:28 +00:00
libvtv Fix logging to not use /tmp or the current directory... 2013-08-20 13:43:16 -07:00
lto-plugin * configure: Regenerated. 2012-09-14 19:42:24 -04:00
maintainer-scripts crontab: Disable snapshots from gcc-4_6-branch. 2013-04-12 17:07:38 +02:00
zlib 2012-11-16 Matthias Klose <doko@ubuntu.com> 2012-11-16 18:35:05 +00:00
.gitignore * .gitignore: Import from gdb repository. 2013-01-10 10:48:46 -05:00
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog MAINTAINERS: Add myself as RTL optimizers reviewer. 2013-08-20 19:23:24 +00:00
ChangeLog.tree-ssa
MAINTAINERS MAINTAINERS: Add myself as RTL optimizers reviewer. 2013-08-20 19:23:24 +00:00
Makefile.def Commit the vtable verification feature. 2013-08-06 20:38:59 -07:00
Makefile.in Commit the vtable verification feature. 2013-08-06 20:38:59 -07:00
Makefile.tpl Makefile.tpl (BOOT_ADAFLAGS): Remove -gnata. 2013-01-11 11:46:21 +00:00
README
compile
config-ml.in
config.guess config.sub: Merge from config repo. 2013-01-08 22:46:38 +00:00
config.rpath
config.sub * config.sub: Update from config repo. 2013-01-11 13:02:58 +00:00
configure configure.tgt: Simplify, just use VTV_SUPPORTED. 2013-08-09 03:50:55 +00:00
configure.ac configure.tgt: Simplify, just use VTV_SUPPORTED. 2013-08-09 03:50:55 +00:00
depcomp
install-sh
libtool-ldflags
libtool.m4 re PR bootstrap/38607 (AIX error messages about TOC during build) 2012-09-14 19:23:41 -04:00
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
missing
mkdep
mkinstalldirs
move-if-change
symlink-tree
ylwrap

README

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.