From patchwork Mon Apr 12 03:16:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2 via Gcc-patches" X-Patchwork-Id: 1464958 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=v8+oeR/z; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FJYn848F3z9sV5 for ; Mon, 12 Apr 2021 13:17:00 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4C5FE3857012; Mon, 12 Apr 2021 03:16:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4C5FE3857012 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1618197418; bh=laYL6rBxx42nRkiSS9JQs+asWFAdt3Bf5FvwiyB5DPQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=v8+oeR/zlNXP27lsBf0McpIKfRpg/1tGwLNhPKhlisaH2WuNZ8IkEQMJ1iGBIcOpQ gbcB/zi/7kUIbxortRvj7tmqVu4lI0H/ihu0SkNb306/PG7u/E1piRbeEdJC63r3VH k4VQP3aZGssl0r6li6FNcg4lXfgtvefWqUoVyrQo= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by sourceware.org (Postfix) with ESMTPS id D10A23857012 for ; Mon, 12 Apr 2021 03:16:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D10A23857012 IronPort-SDR: Utkis2X5v4ntR9KF05pNTvYuJAozfsA2AgE5fpTXABEagA/nb1aomlV1XJq48UdNxKHbc8mUTN NEskISeNb1KA== X-IronPort-AV: E=McAfee;i="6000,8403,9951"; a="193660757" X-IronPort-AV: E=Sophos;i="5.82,214,1613462400"; d="scan'208,223";a="193660757" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Apr 2021 20:16:53 -0700 IronPort-SDR: caci1JoomCC41TeKIy7XuftsyhFFFaiDiBs31d16Mmu4wUszSOxFTqKpAhlgPYaud0C8T4HTPf IavHA98M56wQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,214,1613462400"; d="scan'208,223";a="449834576" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by FMSMGA003.fm.intel.com with ESMTP; 11 Apr 2021 20:16:53 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Sun, 11 Apr 2021 20:16:53 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Sun, 11 Apr 2021 20:16:52 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Sun, 11 Apr 2021 20:16:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oKI/vVHciicp3XftN4d2R8HYMwTDMRfqxenzPu2o3YLXquwsJwc5WDd8S3C5WIUW2eFVdFzk3oPO+oO3Ru4NYW2iyQZGm3LwShqcur64aabd8SiYiJ2XaJUY+8Rrqk4Vwrod/la9D+EBwuot0/1SDQz/8UdUP7KGgM6iAsC4eJUDGLQHXRXnX0ktobh5df0bwiAkuGtFvI9yY36b6IC530604yxQIiqm9l6dfesjX9FrHkK5gJ+rzXwbxfjQm0DcDtUGN5UABzKbo9D/cQvuKJZogpN90onT6+NfvlfGWMosM3k6pFo9V3LrCuBMyC/eDMh+oGyZ6Y7nu/KX3C+ymQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6Wrt4Kz0ESAj7lROydlwAf+XSkU44YRSANIKJIMadqw=; b=lg+4QqASjhIFggDu9FroQnobqs6xUY4x2jeYz2fYubcawPm/ngQbfoT5wEZDEq/0HsZ6/zlXArAIoAfOCeTCmLtl+0I3FUw2VJumqVZpahyBvikAuiJZp991U/AAaeqjLTiP9hPaTiLcT8uBiYm9xGZq1hWWMfhns4hoJL8M3oYA5mtS6IGMKGOsq8F41o4jKW52sA5QEfer0JNJSEKCeCf8qQAJZLrsN84PiU98Ep0CXnjB2BzOJvHU1eRdtpAAVotM1gFwGZjWCx6Pl9oC37Ow7yy4UkMKBhXeLaizY6DMFUq5B6ga5zmjHkB3IYWIVeyQ0No1h09d46wiWDw3lw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB4008.namprd11.prod.outlook.com (2603:10b6:a03:186::16) by SJ0PR11MB4928.namprd11.prod.outlook.com (2603:10b6:a03:2d2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.21; Mon, 12 Apr 2021 03:16:51 +0000 Received: from BY5PR11MB4008.namprd11.prod.outlook.com ([fe80::69c1:91f2:ee65:cad6]) by BY5PR11MB4008.namprd11.prod.outlook.com ([fe80::69c1:91f2:ee65:cad6%7]) with mapi id 15.20.4020.022; Mon, 12 Apr 2021 03:16:51 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [PATCH] Add rocketlake to gcc. Thread-Topic: [PATCH] Add rocketlake to gcc. Thread-Index: AdcvSdb/NgURY3/TR32U2Ech6Wka4A== Date: Mon, 12 Apr 2021 03:16:51 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [192.102.204.51] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ca6df0bf-5121-4f31-16ed-08d8fd616ab7 x-ms-traffictypediagnostic: SJ0PR11MB4928: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: W+bkPC3WDR2chn0JWHgG5WCQ0G52JuTke5RiiNMVgh+krIWW6tkDJboNvjAZEjUEkuU1GT7j+J9a0EGU5+wOzC3j4TBIpzpif5VeFOTOo17PMvZ96GotOXlTxHXEvRHKhpnWXlNFBwWqTNUhsEzekqtK2D0JtvGsmR1SB7ygP51ebsqYB8olehJO3ZhCDD/QeYHFRc0BIVXdoVlXWKOOZkkbDaO6XLMjpiOxcwyqgnrfBz6Hg++t+h9djFSCe/bpZqCeh2oIN6MZ4BE9t4HwSSSHpY7keRzBpNq9RNn2vUwu0KNT/4cFk3gytVgAtV5Z3YwhtkHFQPbS20/pxa8BWP4vj8k5XzdMBC381Eer7Zh8k739bNcOZ7sNsqW9/uO4j7vjoVf1wYDMe2pywsMZ82gIBA4TyeaRJ1XyZsUSvlYBTrPdBtyu+0z+7nIdJlaSHmBxCmw7eueS7F4qdhu7cpwZgLdZVEGXStkOR4EuC7IDGZ02T0q6dqbHDiuwuZgCblDIaAyXx/wfKoBm84WktDus/Gnjoc9WKDkkBsfPKT5OqPLBtglKfiT7gHX2t1PIh7pkCpA9T9Ia9yUV5/Ovs6E7IFeWz+n94ByfDjx0CQf+zxJYvJSLbMmrsTHnhyNV4Z9qvpCAH2Aj98/0rkgNzI6POjlmtc9rYJdnVuXrt1Ix8bB8ELdP47pfYG8q88tf x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4008.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(366004)(39860400002)(396003)(346002)(376002)(478600001)(33656002)(71200400001)(5660300002)(86362001)(9686003)(99936003)(55016002)(83380400001)(4326008)(6916009)(64756008)(26005)(2906002)(7696005)(66616009)(66446008)(66476007)(66556008)(76116006)(66946007)(316002)(966005)(186003)(6506007)(8676002)(8936002)(52536014)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: qEwq1yVo+4J3bUEFg6UWOWpOsOg1CbPKo60l2LD9YvljuFnhVpSkPV/Ykjbg2O97n5PNvldifr4N4WqXQvlutEnQFJHFjrAgVWT/WDUX/JZBlTcOK4vYmY9fqW7NxbK4RGvuqmcqAkZzLuMnt1soHd/Tx/+otGAYCnxuekjK/M8Y/Hf9djzPUzB/a4r291m/TNglNuJDwhbani9psO0zHKiTCZ8LgFo37ibwVH3azzCHjurY5hSnhOyCnlw5xwsERj+vhoGP4oZpqgvKPdmti3kVstQd9kN8ZfPQS6CDRld+unMSs5Ohpv6EkoAt1DAJnwjp3zJnRQxIpoNGmxgGoSWcb1WU7OOXoGTq//FIVXZY51wluhbyaaAvFp1bwr5PZzms7kVuI4wwIGHmBHeqKuJs024uvbaycxF1IkQcdiZ8WKkW9LaetcyoC3N6IvRnBRiMg/H5ZvVeRGfaL/ylDC/+obACMQAR2Q9QAnNHsDrJk1aGCgTeLY+kzT9ISvUq7Y7riCd+UxcrHEK69ftnB2Kul97L1BvuKSAzMbBmb/2ENwqLv3WxFW9j0QWLnaaaAJZlxJNYJjJ0FqGZt5rZlTjWSB5BvOXMUQDOtx+11GMKoykFTTqtuJCoNBMsXIQ2SqB1VchNS4TpQukJ7mfDWzshiB7mupknMtT3ep9gH0Hnj1cXHiMts/4baIMW92jHfGR4/ljnJ6b6niyFhx9sujoRBr8wHrDcze/u7Un8+O6vcALRu7rOaG8PKWTYfuZk/j1oAERyGip+9okGftkQ92b1+b4xlhm3mWCkvUWkp5NvSQtMfJ9F6SecokTzDPoFULftcvUIlbKc8W3vcXBc2V1Pqr4Ll/7FVeR1BWKRLORZyCe/ffe6LsbVEdaYkrymL0wXofbXTmsWyWeeVb35XaxBQooVK4DS6inhwMJczVMCTjzoI+zBIdL58lzk642figJkPSx3Ydj8R0KaeYaVCRhRPb+jaVtFBCzbOWynjiGVZtUjiNzogQDebt/LFVQFWmyhuY/R6i4gDyDznHTlb/EapPj422Y+/CHD2Mcj1/hD+2YFPUPpgePet6Kb1WGCGI0wjzD7nPLxzECLhJ/B0qOLf/JV4ljQzeN1XbVrkiguYY1CAY54tl4epOd1ax23IVbTdLSNnDyL2G2G0A1XGRV3T961aM/dcIqJMiqzbrS4vsO83xBxS+x0KO/ZvrlWAufahR9POCRIkV/2HOJ/4DuUh+QKuwzHNtYT0tN8IlruQKboBvLFOOWExIaQB0ZXQ0qr8KsN0Na0pSXfjusH20PRMvMFCwsP3X9Db/BatPjQkLGNGsHz89rFklbLb8tM x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4008.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca6df0bf-5121-4f31-16ed-08d8fd616ab7 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2021 03:16:51.6174 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vsKCVOsFYdc0v9WD3GStIRA68nHK/cFraqoEn80sK3CjWF/DUdQ8O4/LOqO2aTR+5p/f4lhGkjEHtjYhN1xZJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4928 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_INVALID, DKIM_SIGNED, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Cui, Lili via Gcc-patches" From: "Li, Pan2 via Gcc-patches" Reply-To: "Cui, Lili" Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" Hi Uros, This patch is about to add Rocket Lake to GCC. Rocket Lake is based on Ice Lake client and minus SGX. For detailed information, please refer to https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html Bootstrap is ok, and no regressions for i386/x86-64 testsuite. OK for master? [PATCH] Add rocketlake to gcc. gcc/ * common/config/i386/cpuinfo.h (get_intel_cpu): Handle rocketlake. * common/config/i386/i386-common.c (processor_names): Add rocketlake. (processor_alias_table): Add rocketlake. * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add INTEL_COREI7_ROCKETLAKE. * config.gcc: Add -march=rocketlake. * config/i386/i386-c.c (ix86_target_macros_internal): Handle rocketlake. * config/i386/i386-options.c (m_ROCKETLAKE) : Define. (processor_cost_table): Add rocketlake cost. * config/i386/i386.h (ix86_size_cost) : Define TARGET_ROCKETLAKE. (processor_type) : Add PROCESSOR_ROCKETLAKE. (PTA_ROCKETLAKE): Ditto. * doc/extend.texi: Add rocketlake. * doc/invoke.texi: Add rocketlake. gcc/testsuite/ * gcc.target/i386/funcspec-56.inc: Handle new march. * g++.target/i386/mv16.C: Handle new march --- gcc/common/config/i386/cpuinfo.h | 10 ++++++++-- gcc/common/config/i386/i386-common.c | 4 ++++ gcc/common/config/i386/i386-cpuinfo.h | 1 + gcc/config.gcc | 2 +- gcc/config/i386/i386-c.c | 7 +++++++ gcc/config/i386/i386-options.c | 5 ++++- gcc/config/i386/i386.h | 3 +++ gcc/doc/extend.texi | 3 +++ gcc/doc/invoke.texi | 8 ++++++++ gcc/testsuite/g++.target/i386/mv16.C | 6 ++++++ gcc/testsuite/gcc.target/i386/funcspec-56.inc | 1 + 11 files changed, 46 insertions(+), 4 deletions(-) diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h index c1ee7a1f8b8..458f41de776 100644 --- a/gcc/common/config/i386/cpuinfo.h +++ b/gcc/common/config/i386/cpuinfo.h @@ -404,14 +404,20 @@ get_intel_cpu (struct __processor_model *cpu_model, case 0xa5: case 0xa6: /* Comet Lake. */ - case 0xa7: - /* Rocket Lake. */ cpu = "skylake"; CHECK___builtin_cpu_is ("corei7"); CHECK___builtin_cpu_is ("skylake"); cpu_model->__cpu_type = INTEL_COREI7; cpu_model->__cpu_subtype = INTEL_COREI7_SKYLAKE; break; + case 0xa7: + /* Rocket Lake. */ + cpu = "rocketlake"; + CHECK___builtin_cpu_is ("corei7"); + CHECK___builtin_cpu_is ("rocketlake"); + cpu_model->__cpu_type = INTEL_COREI7; + cpu_model->__cpu_subtype = INTEL_COREI7_ROCKETLAKE; + break; case 0x55: CHECK___builtin_cpu_is ("corei7"); cpu_model->__cpu_type = INTEL_COREI7; diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index b89183b830e..1e6c1590ac4 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -1743,6 +1743,7 @@ const char *const processor_names[] = "skylake-avx512", "cannonlake", "icelake-client", + "rocketlake", "icelake-server", "cascadelake", "tigerlake", @@ -1845,6 +1846,9 @@ const pta processor_alias_table[] = {"icelake-client", PROCESSOR_ICELAKE_CLIENT, CPU_HASWELL, PTA_ICELAKE_CLIENT, M_CPU_SUBTYPE (INTEL_COREI7_ICELAKE_CLIENT), P_PROC_AVX512F}, + {"rocketlake", PROCESSOR_ROCKETLAKE, CPU_HASWELL, + PTA_ROCKETLAKE, + M_CPU_SUBTYPE (INTEL_COREI7_ROCKETLAKE), P_PROC_AVX512F}, {"icelake-server", PROCESSOR_ICELAKE_SERVER, CPU_HASWELL, PTA_ICELAKE_SERVER, M_CPU_SUBTYPE (INTEL_COREI7_ICELAKE_SERVER), P_PROC_AVX512F}, diff --git a/gcc/common/config/i386/i386-cpuinfo.h b/gcc/common/config/i386/i386-cpuinfo.h index 869115c4b6a..e68dd656046 100644 --- a/gcc/common/config/i386/i386-cpuinfo.h +++ b/gcc/common/config/i386/i386-cpuinfo.h @@ -88,6 +88,7 @@ enum processor_subtypes INTEL_COREI7_SAPPHIRERAPIDS, INTEL_COREI7_ALDERLAKE, AMDFAM19H_ZNVER3, + INTEL_COREI7_ROCKETLAKE, CPU_SUBTYPE_MAX }; diff --git a/gcc/config.gcc b/gcc/config.gcc index 997a9f61a5c..357b0bed067 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -677,7 +677,7 @@ opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \ slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \ silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \ skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \ -sapphirerapids alderlake eden-x2 nano nano-1000 nano-2000 nano-3000 \ +sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \ nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native" # Additional x86 processors supported by --with-cpu=. Each processor diff --git a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c index ed4b098c810..be46d0506ad 100644 --- a/gcc/config/i386/i386-c.c +++ b/gcc/config/i386/i386-c.c @@ -242,6 +242,10 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, def_or_undef (parse_in, "__alderlake"); def_or_undef (parse_in, "__alderlake__"); break; + case PROCESSOR_ROCKETLAKE: + def_or_undef (parse_in, "__rocketlake"); + def_or_undef (parse_in, "__rocketlake__"); + break; /* use PROCESSOR_max to not set/unset the arch macro. */ case PROCESSOR_max: break; @@ -405,6 +409,9 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, case PROCESSOR_ALDERLAKE: def_or_undef (parse_in, "__tune_alderlake__"); break; + case PROCESSOR_ROCKETLAKE: + def_or_undef (parse_in, "__tune_rocketlake__"); + break; case PROCESSOR_INTEL: case PROCESSOR_GENERIC: break; diff --git a/gcc/config/i386/i386-options.c b/gcc/config/i386/i386-options.c index 02e9c97d174..91da2849c49 100644 --- a/gcc/config/i386/i386-options.c +++ b/gcc/config/i386/i386-options.c @@ -126,9 +126,11 @@ along with GCC; see the file COPYING3. If not see #define m_COOPERLAKE (HOST_WIDE_INT_1U<