X86_64: Enable support for next generation AMD Zen3 CPU.
authorVenkataramanan Kumar <Venkataramanan.Kumar@amd.com>
Sat, 5 Dec 2020 05:42:15 +0000 (11:12 +0530)
committerVenkataramanan Kumar <Venkataramanan.Kumar@amd.com>
Sat, 5 Dec 2020 05:49:35 +0000 (11:19 +0530)
commit3e2ae3ee285a57455d5a23bd352a68c289130186
tree4204651ca4dfc0fc778b852ce18853b9c20df143
parent625e002396f7d0108f845bfba6a6f4f4fcadad05
X86_64: Enable support for next generation AMD Zen3 CPU.

2020-12-03  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
    Sharavan Kumar  <Shravan.Kumar@amd.com>

gcc/ChangeLog:

* common/config/i386/cpuinfo.h (get_amd_cpu) recognize znver3.
* common/config/i386/i386-common.c (processor_names): Add
znver3.
(processor_alias_table): Add znver3 and AMDFAM19H entry.
* common/config/i386/i386-cpuinfo.h (processor_types): Add
AMDFAM19H.
(processor_subtypes): AMDFAM19H_ZNVER3.
* config.gcc (i[34567]86-*-linux* | ...): Likewise.
* config/i386/driver-i386.c: (host_detect_local_cpu): Let
-march=native recognize znver3 processors.
* config/i386/i386-c.c (ix86_target_macros_internal): Add
znver3.
* config/i386/i386-options.c (m_znver3): New definition.
(m_ZNVER): Include m_znver3.
(processor_cost_table): Add znver3.
* config/i386/i386.c (ix86_reassociation_width): Likewise.
* config/i386/i386.h (TARGET_znver3): New definition.
(enum processor_type): Add PROCESSOR_ZNVER3.
* config/i386/i386.md (define_attr "cpu"): Add znver3.
* config/i386/x86-tune-sched.c: (ix86_issue_rate): Likewise.
(ix86_adjust_cost): Likewise.
* config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS:
Likewise.
* config/i386/znver1.md: Add new reservations for znver3.
* doc/extend.texi: Add details about znver3.
* doc/invoke.texi: Likewise.

gcc/testsuite/ChangeLog:

* gcc.target/i386/funcspec-56.inc: Handle new march.
* g++.target/i386/mv29.C: New file.
17 files changed:
gcc/common/config/i386/cpuinfo.h
gcc/common/config/i386/i386-common.c
gcc/common/config/i386/i386-cpuinfo.h
gcc/config.gcc
gcc/config/i386/driver-i386.c
gcc/config/i386/i386-c.c
gcc/config/i386/i386-options.c
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/x86-tune-sched.c
gcc/config/i386/x86-tune.def
gcc/config/i386/znver1.md
gcc/doc/extend.texi
gcc/doc/invoke.texi
gcc/testsuite/g++.target/i386/mv29.C [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/funcspec-56.inc