From patchwork Thu Dec 19 13:11:07 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Tocar X-Patchwork-Id: 303538 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id C944D2C012B for ; Fri, 20 Dec 2013 00:11:30 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=Cml1MdozKIwHeZVZ3gD0Bhklif956Sl1hnGor+71XoqgUXxlsL 0GyorgMuImpaNK/BU12GB1RzBsQPz3Ndsu7BqbQQFh++SvfxIvls29dqpLAI5LQ3 hMG92tqfjnVEVlSpfiI83R583s4qObzbqKlUcTgUvaU5vooyO/FQ6J0k8= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=6YrIVwF+zYfoaILMi+VuRnDF/XY=; b=SCq2GGvTmsRXAdQ1S9R9 Bf+uqzkilTNepAWiqq4DwGQTjlFNJuMbIE6XKQqNRCjJvjXowQL/vK95GTGHRvyN RrbKxAr1kM4oTe2C895If0y166s9UKyvdajAufgbk7FDrlHTSHxJIZ03EdxXEZLk fQ4aRMFA8Bm10hbX91kTK5Y= Received: (qmail 6407 invoked by alias); 19 Dec 2013 13:11:22 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 6397 invoked by uid 89); 19 Dec 2013 13:11:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pb0-f46.google.com Received: from mail-pb0-f46.google.com (HELO mail-pb0-f46.google.com) (209.85.160.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 19 Dec 2013 13:11:21 +0000 Received: by mail-pb0-f46.google.com with SMTP id md12so1131614pbc.19 for ; Thu, 19 Dec 2013 05:11:19 -0800 (PST) X-Received: by 10.68.190.228 with SMTP id gt4mr1649571pbc.94.1387458679371; Thu, 19 Dec 2013 05:11:19 -0800 (PST) Received: from msticlxl7.ims.intel.com ([192.55.54.42]) by mx.google.com with ESMTPSA id fk4sm9287451pab.23.2013.12.19.05.11.16 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Dec 2013 05:11:18 -0800 (PST) Date: Thu, 19 Dec 2013 17:11:07 +0400 From: Ilya Tocar To: gcc-patches@gcc.gnu.org, ubizjak@gmail.com Cc: kirill.yukhin@gmail.com Subject: [PATCH] Add -march=bdw support Message-ID: <20131219131107.GA82499@msticlxl7.ims.intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes 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 * config.gcc: Support march=bdw. * config/i386/driver-i386.c (host_detect_local_cpu): Detect broadwell. * 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, +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.