On Thu, Dec 19, 2013 at 5:11 AM, Ilya Tocar <[email protected]> wrote:
> Hi,
> This patch adds march for broadwell cpu.
> -march=bdw is the same as -march=core-avx2 but with support for rdseed,
> adcx, prefetchw. OK for trunk?
>
> Thanks.
>
> 2013-12-19 Tocar Ilya <[email protected]>
>
> * config.gcc: Support march=bdw.
> * config/i386/driver-i386.c (host_detect_local_cpu): Detect broadwell.
^Capital B.
> * config/i386/i386.c (ix86_option_override_internal): Add bdw.
> * doc/invoke.texi: Document march=bdw.
>
> ---
> gcc/config.gcc | 2 +-
> gcc/config/i386/driver-i386.c | 5 ++++-
> gcc/config/i386/i386.c | 7 +++++++
> gcc/doc/invoke.texi | 5 +++++
> 4 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index 8464d8f..1edbd4d 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -3676,7 +3676,7 @@ case "${target}" in
> | opteron-sse3 | athlon-fx | bdver4 | bdver3 | bdver2
> \
> | bdver1 | btver2 | btver1 | amdfam10 | barcelona \
> | nocona | core2 | corei7 | corei7-avx | core-avx-i \
> - | core-avx2 | atom | slm)
> + | core-avx2 | bdw | atom | slm)
> # OK
> ;;
> *)
> diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c
> index 0b8af3f..6a5c654 100644
> --- a/gcc/config/i386/driver-i386.c
> +++ b/gcc/config/i386/driver-i386.c
> @@ -689,7 +689,10 @@ const char *host_detect_local_cpu (int argc, const char
> **argv)
> if (arch)
> {
> /* This is unknown family 0x6 CPU. */
> - if (has_avx2)
> + if (has_adx)
> + /* Assume Broadwell. */
> + cpu = "bdw";
> + else if (has_avx2)
> /* Assume Haswell. */
> cpu = "core-avx2";
> else if (has_avx)
> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
> index cdd63e5..5f2f13b 100644
> --- a/gcc/config/i386/i386.c
> +++ b/gcc/config/i386/i386.c
> @@ -3136,6 +3136,13 @@ ix86_option_override_internal (bool main_args_p,
> | PTA_RDRND | PTA_F16C | PTA_BMI | PTA_BMI2 | PTA_LZCNT
> | PTA_FMA | PTA_MOVBE | PTA_RTM | PTA_HLE | PTA_FXSR | PTA_XSAVE
> | PTA_XSAVEOPT},
> + {"bdw", PROCESSOR_HASWELL, CPU_COREI7,
> + PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
> + | PTA_SSSE3 | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AVX | PTA_AVX2
> + | PTA_CX16 | PTA_POPCNT | PTA_AES | PTA_PCLMUL | PTA_FSGSBASE
> + | PTA_RDRND | PTA_F16C | PTA_BMI | PTA_BMI2 | PTA_LZCNT
> + | PTA_FMA | PTA_MOVBE | PTA_RTM | PTA_HLE | PTA_FXSR | PTA_XSAVE
> + | PTA_XSAVEOPT | PTA_ADX | PTA_PRFCHW | PTA_RDSEED},
> {"atom", PROCESSOR_ATOM, CPU_ATOM,
> PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
> | PTA_SSSE3 | PTA_CX16 | PTA_MOVBE | PTA_FXSR},
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 782a472..0ba03e9 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -14647,6 +14647,11 @@ Intel Core CPU with 64-bit extensions, MOVBE, MMX,
> SSE, SSE2, SSE3, SSSE3,
> SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA,
> BMI, BMI2 and F16C instruction set support.
>
> +@item bdw
> +Intel Core CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
Just say Intel Broadwell CPU.
> +SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA,
> +BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW instruction set support.
> +
> @item atom
> Intel Atom CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3
> instruction set support.
> --
> 1.8.3.1
>
--
H.J.