From patchwork Fri Jul 26 09:21:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tamar Christina X-Patchwork-Id: 1965229 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=MYF1deqq; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=MYF1deqq; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WVj3b5MPTz1yY5 for ; Fri, 26 Jul 2024 19:23:23 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F2A3B3870C25 for ; Fri, 26 Jul 2024 09:23:21 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20600.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::600]) by sourceware.org (Postfix) with ESMTPS id 2D3733870C2B; Fri, 26 Jul 2024 09:22:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2D3733870C2B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2D3733870C2B Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:7e1a::600 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721985730; cv=pass; b=arNFWk1sfbi7M47Jgd7dj72Wud7bVi5OlPffoJFFsHcnIf0wB+96l/XIJ0tAcBCan14g31j/1FqDfXfRDbadFTqWuj47YZCNeSWcyYj1sw+Ll22jPnMSa5UHF8Hkea0ZM8PUjblZyhvZDpzUit3WynU3G0aKt0wCpfe0Lo6bvsk= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721985730; c=relaxed/simple; bh=rNIQ6v+AnHX5IK4z63WDXM5ew1JHCHxHLU7Ckhs7Oo0=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=YGKgb2lDdeRiDVQNOI8dStsm9vHt4KzwJnkSL4w/ZFjOoa4b5Ylo1RecU73v2HvTVrgFT4+fSBhiWvh7O24V608TyNIu7f3auuxXDsJSN/scgTBetJ2uiZccZGym+yQzi6TQFzSMyQgoK5DliiFK7h//MxI3bhpalJsDShhTOC8= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=FEg+c/KIDe/PX3heAHE54obj/1SR2bBT6eD7GITXTgtvmbjmvw00zrfYNei7YM/Bp1wwf+2NYek6F5YEFRBHXUv0dLxKVPbx1bSf16X1+6RufWlZCYcX5hhLGiDGDWVQf67ipleFENCUSmmdcPnKFiaYpqctTUdejWnvXqPA0wJ/6i+i2a478FQAbxi47kfTlM58/tDzBmNzJAE/Oui8uqj2LvMq0afkVje7q6lOIDP9wmD7zQ7NbsxSajOgGbA6t0SjncJtitQr/DLJidv1ELVYcPp0p6LDCWJdt25cGpNamw5gEuWz7J2kRXOZiCTxjRibmgtBsL+Nn6l/KcV46A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IVdduSOeJSwx0il4SFwQtymHd7xHu186KK+xKt13iQ8=; b=wwZipG4SWpSXLQivDEzHlx6jvHcnu16r8I3RNSc4sv7yBAdgr3bK/rRDiCOu1WaW+Bo2K8TBVqzNHKW9W2zMt79t7NXRAx+4LIPXbISvMEcu53d93wkKXPe8NwZAvS33dJrQyedqjY+X9y7TZTi6LNd7V7fti1beFeXvj4A2zWDDeHA8wpaudHWLi2A89GTR6VZxB4n+7DbMnljlJeNvoYzAMDNEb4iWabW1ANGDXbpH7BOWiJMyY3Ur5N0JJmf0RfhH7OdwxH3uq2/j4SnwkFl81MqlanaieJjxcJ2HpcsaqtAm1D+lIAbAYswkksFIC36PQjszOsTUNcv/rBlrrQ== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IVdduSOeJSwx0il4SFwQtymHd7xHu186KK+xKt13iQ8=; b=MYF1deqqJrdy8+T8jvPo252L8CZKAFfty7yU4YUkPHxU8p7iuRS7z2DfveItjef1PkmBVy1PJvUb6MWxRc8T8wNLQdyD9h+OY0tH8FqtLuUALzi5NGDcbwnDk+FmpbUZQ16IBpI7iHkQJcfsa63JUFchV6W8rSUKzpUCWRVcWiU= Received: from DU2PR04CA0041.eurprd04.prod.outlook.com (2603:10a6:10:234::16) by AS2PR08MB9643.eurprd08.prod.outlook.com (2603:10a6:20b:608::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Fri, 26 Jul 2024 09:22:01 +0000 Received: from DB1PEPF000509FB.eurprd03.prod.outlook.com (2603:10a6:10:234:cafe::9a) by DU2PR04CA0041.outlook.office365.com (2603:10a6:10:234::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29 via Frontend Transport; Fri, 26 Jul 2024 09:22:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB1PEPF000509FB.mail.protection.outlook.com (10.167.242.37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7784.11 via Frontend Transport; Fri, 26 Jul 2024 09:22:01 +0000 Received: ("Tessian outbound ca5638866b89:v365"); Fri, 26 Jul 2024 09:22:01 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4ea847f0bde57dfb X-CR-MTA-TID: 64aa7808 Received: from Le2d67451cf63.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F838D617-B654-42F0-AC1C-AB5F34E47662.1; Fri, 26 Jul 2024 09:21:50 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Le2d67451cf63.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 26 Jul 2024 09:21:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xjJsz0PGyoZq9bh0WzdZkeibdYIwfOMyq62WkVvIdbe3q5Wbtsl0nTTo0UB2JGb20Zkm644l2oE2f4CEGvm/avSAvLHBZzI4PNXgS/9JhXO9v2VmpUZ4T5VJD590eByvJPP56JvITvxp22hYk2e5UKFH1O6Z3doT3Z2BUxCTB/fSqLSNnLd72vftuSf4wmDaXiENobQY9EGopkvNgyePzml9Z+Jncf+kT1Y+0IFv4/DjjnhHlKY/vIt7xPvqvdSkEJiib/xeTSAPVwuacsy6IdwUVCZhMvBEZwRpHiDGz0a/RDwLthZvGSEf61BM9IgJu2ROr0590t1FhQS2ZGpZdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IVdduSOeJSwx0il4SFwQtymHd7xHu186KK+xKt13iQ8=; b=D5uCGCn8AZsidwHhK1GnAwXHDTzOZT94MjFKfdGmTPro2jB/QPVgcgWaMIjJ0fYe3zc22UzMIC8f8+9Z3sy0vWQsonbt03EPDN43VJidDCjM7Vc4gCYO9bfNWKRtFlJcjT3w4AF0gxC+MWe/5EfibNLmiNru7y9adcVpbDWbVxNwL3oBg0YYfZrg60ThyZK0+3J9/7r27N6O5pCvBxdzsxtHoq+NLqwBC6IGivICG4nCjQm3a1TbCEFke+Rwoj/iyW1WeCdsHP35qMRQRJGQacQNAbuzM+1Rl+psYXmedGvfsiEQVgaikAXWZwhrZJK3ZOGov4vv+ow8XSdQmceI4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IVdduSOeJSwx0il4SFwQtymHd7xHu186KK+xKt13iQ8=; b=MYF1deqqJrdy8+T8jvPo252L8CZKAFfty7yU4YUkPHxU8p7iuRS7z2DfveItjef1PkmBVy1PJvUb6MWxRc8T8wNLQdyD9h+OY0tH8FqtLuUALzi5NGDcbwnDk+FmpbUZQ16IBpI7iHkQJcfsa63JUFchV6W8rSUKzpUCWRVcWiU= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by GV1PR08MB8571.eurprd08.prod.outlook.com (2603:10a6:150:83::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Fri, 26 Jul 2024 09:21:44 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::89dc:c731:362b:7c69]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::89dc:c731:362b:7c69%6]) with mapi id 15.20.7784.020; Fri, 26 Jul 2024 09:21:44 +0000 Date: Fri, 26 Jul 2024 10:21:41 +0100 From: Tamar Christina To: gcc-patches@gcc.gnu.org Cc: nd@arm.com, Richard.Earnshaw@arm.com, Marcus.Shawcroft@arm.com, ktkachov@gcc.gnu.org, richard.sandiford@arm.com Subject: [PATCH 7/8]AArch64: Add Cortex-X925 core definition and cost model Message-ID: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO2P265CA0416.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::20) To VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB5325:EE_|GV1PR08MB8571:EE_|DB1PEPF000509FB:EE_|AS2PR08MB9643:EE_ X-MS-Office365-Filtering-Correlation-Id: 09b6fc21-1f16-4c8c-6a82-08dcad546844 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info-Original: ePixiLfYfGL/9FbOzfBU1uQ8QCFabPG7Sbtw3lJK1zcWnrFeV8/D4b8QYJpVTTnGJLu1tlQSsRFQ3CFBkrhXdMKqJomcrOX8vuLBYfCDyM+TmJ2Ta4GFDKSuYRXAU1H8lsUZd5vknefT7mR5AzS386OeHUcA9ix3XzlBmnk2pwvJYxz5lZPu9NAnqLMycQBvszBQPsMYwTilkRFvN9me8P6RITwDRark2HR73njUuqzxpiXR7k8RaoNXdnBxJIYMPr4JSQ6FLFryb6L053gRiE6//utzT3ATOf3jDGhUJ4KeAFHdOQKl8Ssor5wADoTgoz2UBwmUdKK05QsyXv8R6KR3tvgarI9d4GmhVRzO0yHPXfLVnI+zQ7IzFGTcApBUDoYUOffJp7lDFHymlY6MiipodD9Onq0fHKMy0GEPzEeLpQSnod9grbmfTRatEoO3zT/pKL5RCdBxNMTA0nkxkOvMDe7Epk+kEbhTaRJC5Io/GY47g/Y3D9FrbmxuV6eOn0wl+5eqVcqEZJVCy5AC5ZFHo70CJ34a8+gzSGp8B6R+lb2lJ/MNrcCaR6vpD0gadYI8KO3g8O6Yv29bwk/HOgWXG1WYiW5pKj9u7HyQT14n96AnPuLYXoadAvpzrF8fbBXp6fmaR2t4uEjYgJgjWL/XM5vGd9oNQh/xGQaNWXx3jJLL5gHp8b2FxOTQV5YfTs8piZQ+3GKOk+9azJTAi9ep52zwYjxUiSgYVxmmMIb7FkicjCG7LFwCEPTL+7H0pX8xmdRcoOhoaT00IaCMyDeZXtBxMKIHkHRHQxUuOTEJKelEZRi+kT+mgVr1P+pY+mfyNFB/5g0wydxoOdY0vU+sTFGCvv9dfb3pF1XbLbm1D9wjJNKcFIyvJ3Jxcm8+ko3YPYp+gYwb9Wp9J36xp9DHIZDi2tNjBEg3tGFacfz8SBJy0VoKh9pU4w/1QbeIxXp0CDngdJWcbefJuz0Z5cwpfUTO5fEDPtje4SxlAPXlAtrz9Xqwjc2tmbdH2WHQ1u9IXiA98Sd7mVJm7att9PBhKgOHB1Vramij5CQYAdrejWeat9uCG0+cTd2Ndnn/N+6bsoEBaHdL40ja6lrfS6SSJ+anHOo4faxq4alsp9pqFKOCcCd7+1GE5wy8dE0BCXbcnEi3NT4DD1FzM1h6YPlVWWklsnjak7bfTAqEohw0IgVUvr/mdprz7WJCXH143MLblwAwZA4o6Ss68mqxOlwcP7si3GCu9qIdlFaFBTjL/RvRdA/vmeav3LaOf81NdyTcFpRJ5fGCLWcQPHzEkFFONxMRPVmiHCQEfYlLXEY= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8571 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:803:13e::17]; domain=VI1PR08MB5325.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509FB.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 79dfd1eb-75d0-4de3-b0ec-08dcad545df8 X-Microsoft-Antispam: BCL:0; ARA:13230040|34020700016|36860700013|35042699022|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?BfGGwwWqFjgyTCLWZ4BEob+aY+mGaT0?= =?utf-8?q?N1hs/5iJ9d+naso6rWKtBauAtfCCCDtO0h/FqyL81apWdkLaB5SYLAa6DzmxP/UcC?= =?utf-8?q?+jz0U28FHX+dFAZzldBFKuk+xhaC3c/5+PGDVp8m/EHYc8vbPYRKmfYC5twp4Eugy?= =?utf-8?q?7gChk/6uH7nDKx/P9xfRMaCciDhvc3JhmbAFmlGYQZWS0r9x9y2nhVP6+VxYPwyik?= =?utf-8?q?AU/3Ufk6CXX7l3P686Z2cr67/40mbNXgMBaPIa1wskLE8UtzylnatNp++SsreFJJW?= =?utf-8?q?rTXIo7Gs06rSajGp47MJ0Q3NHXwpAop3OJwSuOkIYmx/aU0+2XV9NY49z4bpjBXNS?= =?utf-8?q?wzu2PpjMRg5R2FmMZzj1RsgWRrmx7TJL7x9Ei2rKJnyiPyVWO9oxI/sEUmIrMi4Q2?= =?utf-8?q?F4/XBwGyxl7JV7b4AGqGgZGvtrrVQkuAG1344vfYK/Afgxqa5bCzfxuj7g0/kaFSk?= =?utf-8?q?jlMwog8HxU7HMIkZjKBqEPKNdLX/+gtw0SXbaJPKG9jRDQgh/6TNmp6U5BxLFDpvA?= =?utf-8?q?FkByxX+6U3R9FWQhQfAx5INvWQsZts8UhxFdqs0eKE/W5RGIaaRK4xy/yZAucF0Hb?= =?utf-8?q?y9O2eHjpjwvFPLO8tXQuQ4jy2JNFbOHntNxmrDIbyRSoQVkhzqvdDDuHrq7RzyV9S?= =?utf-8?q?UIcWGluju7kk/osA8pyfTFK/DMfjLJWm+pMgh8WS21uXLh7W4Tg+6+UfHqRJvyqfF?= =?utf-8?q?D8eMVDEF5JvSAYwqz2Qz15lT0jWzrRKOBoUSct6i4ZCXDL4waSipcrZ3N1hyyJzCR?= =?utf-8?q?wEOvziHRTq0MhjYvmirDTuO54VymlalG6s9XZ0p9NJgiTZd0eeSFqOfna3nGrgSuH?= =?utf-8?q?NDC2+IvA8cjwNEYNzs+Wcp3xQk/gWLgBQxd8FyxQRZCTJfJ0Mg4MJjZsMf6TSSNLi?= =?utf-8?q?BXZGD6MvCc3OaQ0sYaS1/xegcLvcAS8eD0mAup/1McAvgcP5xc9aHsBur8EZBS63A?= =?utf-8?q?FQOEVB6oKRfB9CYbzftOYi4Qu2pVNX31ZEJdLv2Nu7rFohklDk4UYQM9L1kWACQpz?= =?utf-8?q?d11njKJTUdyrxlH7MgKsHhYOEoD5GOKRvi3GZZlwZ067DptG75AogzqnK+KTa29Yg?= =?utf-8?q?IbFFtJ4tuG+YerqU6uIBB+P9TNhDKufs2Qn41TQcvgtgcQ2sIe1fByXzGhrDuZ6xJ?= =?utf-8?q?T4tEkfnkSJ0AcW+3+AOo21jqFSCuGTB+Dz1m3FyctMlTPtFufrlFhFbOS7wJHsGN0?= =?utf-8?q?OgRl7X9kgT6S3a7tp8yHyIxB1AtsEQZv9ndnuMbdjDVJ05wYBJUkfg2VJ+uWgHICp?= =?utf-8?q?zmGJobuNJbKf5kRofSKU1foxH+2wQhFXRvx0WYe+Y59P8YMai5eTuyugOLTAf58Gd?= =?utf-8?q?SzpTP+1ZrAS3u9zxOI3/eBdziWWPPFJLcg=3D=3D?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230040)(34020700016)(36860700013)(35042699022)(1800799024)(376014)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2024 09:22:01.6533 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 09b6fc21-1f16-4c8c-6a82-08dcad546844 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FB.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9643 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Hi All, This adds a cost model and core definition for Cortex-X925. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: * config/aarch64/aarch64-cores.def (cortex-x925): New. * config/aarch64/aarch64-tune.md: Regenerate. * config/aarch64/tuning_models/cortexx925.h: New file. * config/aarch64/aarch64.cc: Use it. * doc/invoke.texi: Document it. --- -- diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def index d70176e86271a65a3610786064432099cd1e75ee..131dbd731a7026c3e02182ae27f6567f9cb719b2 100644 --- a/gcc/config/aarch64/aarch64-cores.def +++ b/gcc/config/aarch64/aarch64-cores.def @@ -190,6 +190,7 @@ AARCH64_CORE("cortex-x2", cortexx2, cortexa57, V9A, (SVE2_BITPERM, MEMTAG, I8M AARCH64_CORE("cortex-x3", cortexx3, cortexa57, V9A, (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversev2, 0x41, 0xd4e, -1) AARCH64_CORE("cortex-x4", cortexx4, cortexa57, V9_2A, (SVE2_BITPERM, MEMTAG, PROFILE), neoversev3, 0x41, 0xd81, -1) +AARCH64_CORE("cortex-x925", cortexx925, cortexa57, V9_2A, (SVE2_BITPERM, MEMTAG, PROFILE), cortexx925, 0x41, 0xd85, -1) AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x41, 0xd49, -1) AARCH64_CORE("cobalt-100", cobalt100, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x6d, 0xd49, -1) diff --git a/gcc/config/aarch64/aarch64-tune.md b/gcc/config/aarch64/aarch64-tune.md index d71c631b01c767633cc1e9c362ac51533a87c53f..4fce0c507f6c0605f8846abe03d7d77641395c5b 100644 --- a/gcc/config/aarch64/aarch64-tune.md +++ b/gcc/config/aarch64/aarch64-tune.md @@ -1,5 +1,5 @@ ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" - "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88,thunderxt88p1,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,oryon1,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexa725,cortexx2,cortexx3,cortexx4,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,demeter,generic,generic_armv8_a,generic_armv9_a" + "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88,thunderxt88p1,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,oryon1,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexa725,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,demeter,generic,generic_armv8_a,generic_armv9_a" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 8f4abe4d560a6b5b83667946ee3a2178cfec270a..eafa377cb095f49408d8a926fb49ce13e2155ba2 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -395,6 +395,7 @@ static const struct aarch64_flag_desc aarch64_tuning_flags[] = #include "tuning_models/cortexa57.h" #include "tuning_models/cortexa72.h" #include "tuning_models/cortexa73.h" +#include "tuning_models/cortexx925.h" #include "tuning_models/exynosm1.h" #include "tuning_models/thunderxt88.h" #include "tuning_models/thunderx.h" diff --git a/gcc/config/aarch64/tuning_models/cortexx925.h b/gcc/config/aarch64/tuning_models/cortexx925.h new file mode 100644 index 0000000000000000000000000000000000000000..fb95e87526985b02410d54a5a3ec8539c1b0ba6d --- /dev/null +++ b/gcc/config/aarch64/tuning_models/cortexx925.h @@ -0,0 +1,246 @@ +/* Tuning model description for AArch64 architecture. + Copyright (C) 2009-2024 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + +#ifndef GCC_AARCH64_H_CORTEXX925 +#define GCC_AARCH64_H_CORTEXX925 + +#include "generic.h" + +static const struct cpu_addrcost_table cortexx925_addrcost_table = +{ + { + 1, /* hi */ + 0, /* si */ + 0, /* di */ + 1, /* ti */ + }, + 0, /* pre_modify */ + 0, /* post_modify */ + 2, /* post_modify_ld3_st3 */ + 2, /* post_modify_ld4_st4 */ + 0, /* register_offset */ + 0, /* register_sextend */ + 0, /* register_zextend */ + 0 /* imm_offset */ +}; + +static const struct cpu_regmove_cost cortexx925_regmove_cost = +{ + 3, /* GP2GP */ + /* Spilling to int<->fp instead of memory is recommended so set + realistic costs compared to memmov_cost. */ + 5, /* GP2FP */ + 4, /* FP2GP */ + 4 /* FP2FP */ +}; + +static const advsimd_vec_cost cortexx925_advsimd_vector_cost = +{ + 2, /* int_stmt_cost */ + 2, /* fp_stmt_cost */ + 2, /* ld2_st2_permute_cost */ + 2, /* ld3_st3_permute_cost */ + 3, /* ld4_st4_permute_cost */ + 2, /* permute_cost */ + 4, /* reduc_i8_cost */ + 4, /* reduc_i16_cost */ + 2, /* reduc_i32_cost */ + 2, /* reduc_i64_cost */ + 6, /* reduc_f16_cost */ + 4, /* reduc_f32_cost */ + 2, /* reduc_f64_cost */ + 2, /* store_elt_extra_cost */ + /* This value is just inherited from the Cortex-A57 table. */ + 8, /* vec_to_scalar_cost */ + /* This depends very much on what the scalar value is and + where it comes from. E.g. some constants take two dependent + instructions or a load, while others might be moved from a GPR. + 4 seems to be a reasonable compromise in practice. */ + 4, /* scalar_to_vec_cost */ + 4, /* align_load_cost */ + 4, /* unalign_load_cost */ + /* Although stores have a latency of 2 and compete for the + vector pipes, in practice it's better not to model that. */ + 1, /* unalign_store_cost */ + 1 /* store_cost */ +}; + +static const sve_vec_cost cortexx925_sve_vector_cost = +{ + { + 2, /* int_stmt_cost */ + 2, /* fp_stmt_cost */ + 2, /* ld2_st2_permute_cost */ + 3, /* ld3_st3_permute_cost */ + 3, /* ld4_st4_permute_cost */ + 2, /* permute_cost */ + /* Theoretically, a reduction involving 15 scalar ADDs could + complete in ~4 cycles and would have a cost of 15. [SU]ADDV + completes in 9 cycles, so give it a cost of 15 + 5. */ + 20, /* reduc_i8_cost */ + /* Likewise for 7 scalar ADDs (~3 cycles) vs. 8: 7 + 5. */ + 12, /* reduc_i16_cost */ + /* Likewise for 3 scalar ADDs (~2 cycles) vs. 6: 3 + 4. */ + 7, /* reduc_i32_cost */ + /* Likewise for 1 scalar ADDs (~1 cycles) vs. 2: 1 + 1. */ + 2, /* reduc_i64_cost */ + /* Theoretically, a reduction involving 7 scalar FADDs could + complete in ~6 cycles and would have a cost of 7. FADDV + completes in 8 cycles, so give it a cost of 7 + 2. */ + 9, /* reduc_f16_cost */ + /* Likewise for 3 scalar FADDs (~4 cycles) vs. 6: 3 + 2. */ + 5, /* reduc_f32_cost */ + /* Likewise for 1 scalar FADD (~2 cycles) vs. 4: 1 + 2. */ + 3, /* reduc_f64_cost */ + 2, /* store_elt_extra_cost */ + /* This value is just inherited from the Cortex-A57 table. */ + 8, /* vec_to_scalar_cost */ + /* See the comment above the Advanced SIMD versions. */ + 4, /* scalar_to_vec_cost */ + 4, /* align_load_cost */ + 4, /* unalign_load_cost */ + /* Although stores have a latency of 2 and compete for the + vector pipes, in practice it's better not to model that. */ + 1, /* unalign_store_cost */ + 1 /* store_cost */ + }, + 3, /* clast_cost */ + 10, /* fadda_f16_cost */ + 6, /* fadda_f32_cost */ + 4, /* fadda_f64_cost */ + /* A strided Advanced SIMD x64 load would take two parallel FP loads + (8 cycles) plus an insertion (2 cycles). Assume a 64-bit SVE gather + is 1 cycle more. The Advanced SIMD version is costed as 2 scalar loads + (cost 8) and a vec_construct (cost 4). Add a full vector operation + (cost 2) to that, to avoid the difference being lost in rounding. + + There is no easy comparison between a strided Advanced SIMD x32 load + and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector + operation more than a 64-bit gather. */ + 14, /* gather_load_x32_cost */ + 12, /* gather_load_x64_cost */ + 1 /* scatter_store_elt_cost */ +}; + +static const aarch64_scalar_vec_issue_info cortexx925_scalar_issue_info = +{ + 4, /* loads_stores_per_cycle */ + 2, /* stores_per_cycle */ + 8, /* general_ops_per_cycle */ + 0, /* fp_simd_load_general_ops */ + 1 /* fp_simd_store_general_ops */ +}; + +static const aarch64_advsimd_vec_issue_info cortexx925_advsimd_issue_info = +{ + { + 0, /* loads_stores_per_cycle */ + 1, /* stores_per_cycle */ + 6, /* general_ops_per_cycle */ + 0, /* fp_simd_load_general_ops */ + 1 /* fp_simd_store_general_ops */ + }, + 2, /* ld2_st2_general_ops */ + 2, /* ld3_st3_general_ops */ + 3 /* ld4_st4_general_ops */ +}; + +static const aarch64_sve_vec_issue_info cortexx925_sve_issue_info = +{ + { + { + 0, /* loads_stores_per_cycle */ + 1, /* stores_per_cycle */ + 6, /* general_ops_per_cycle */ + 0, /* fp_simd_load_general_ops */ + 1 /* fp_simd_store_general_ops */ + }, + 2, /* ld2_st2_general_ops */ + 2, /* ld3_st3_general_ops */ + 3 /* ld4_st4_general_ops */ + }, + 2, /* pred_ops_per_cycle */ + 1, /* while_pred_ops */ + 0, /* int_cmp_pred_ops */ + 0, /* fp_cmp_pred_ops */ + 1, /* gather_scatter_pair_general_ops */ + 1 /* gather_scatter_pair_pred_ops */ +}; + +static const aarch64_vec_issue_info cortexx925_vec_issue_info = +{ + &cortexx925_scalar_issue_info, + &cortexx925_advsimd_issue_info, + &cortexx925_sve_issue_info +}; + +/* Cortexx925 costs for vector insn classes. */ +static const struct cpu_vector_cost cortexx925_vector_cost = +{ + 1, /* scalar_int_stmt_cost */ + 2, /* scalar_fp_stmt_cost */ + 4, /* scalar_load_cost */ + 1, /* scalar_store_cost */ + 1, /* cond_taken_branch_cost */ + 1, /* cond_not_taken_branch_cost */ + &cortexx925_advsimd_vector_cost, /* advsimd */ + &cortexx925_sve_vector_cost, /* sve */ + &cortexx925_vec_issue_info /* issue_info */ +}; + +static const struct tune_params cortexx925_tunings = +{ + &cortexa76_extra_costs, + &cortexx925_addrcost_table, + &cortexx925_regmove_cost, + &cortexx925_vector_cost, + &generic_branch_cost, + &generic_approx_modes, + SVE_128, /* sve_width */ + { 4, /* load_int. */ + 2, /* store_int. */ + 6, /* load_fp. */ + 1, /* store_fp. */ + 6, /* load_pred. */ + 2 /* store_pred. */ + }, /* memmov_cost. */ + 10, /* issue_rate */ + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ + "32:16", /* function_align. */ + "4", /* jump_align. */ + "32:16", /* loop_align. */ + 4, /* int_reassoc_width. */ + 6, /* fp_reassoc_width. */ + 4, /* fma_reassoc_width. */ + 3, /* vec_reassoc_width. */ + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ + (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND + | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS + | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS + | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT + | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW), /* tune_flags. */ + &generic_prefetch_tune, + AARCH64_LDP_STP_POLICY_ALWAYS, /* ldp_policy_model. */ + AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model. */ +}; + +#endif /* GCC_AARCH64_H_CORTEXX925. */ \ No newline at end of file diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 13a3b75aa22da99422bce1fecc17174f97e811a1..f15f66d6fa2fae2bbf8e9a73a2039fcf62c6c0f6 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -21525,7 +21525,7 @@ performance of the code. Permissible values for this option are: @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1}, @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace}, @samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{neoverse-n3}, -@samp{cortex-a725}, +@samp{cortex-a725}, @samp{cortex-x925}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}