From patchwork Fri Jan 10 17:21:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 104509 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7C68F385701E for ; Fri, 10 Jan 2025 17:24:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7C68F385701E Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=RrbnCsJU X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:2613::601]) by sourceware.org (Postfix) with ESMTPS id 14645385AC19 for ; Fri, 10 Jan 2025 17:21:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 14645385AC19 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 14645385AC19 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2613::601 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1736529717; cv=pass; b=qMXzQ3n/+F0sZDK2JQjwahUmne+El6jDj2GuAngySY7Sc1/KiDcU+aiNf5/JZwWPr9ZmokjXfya0kyFmIuIEBRxGjc4xkqkOmoiTTmbfo4I7c8Tv1haMnT486FmZTw1HgzphY89+oX6Ti8LY80emTfZfIU8De+iyTD4ezjHjrg8= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1736529717; c=relaxed/simple; bh=VObOXL3HQkzb8NSKPssHYtNY7slpaZ1v0Wt3lakKy88=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=cbTA2lS07Dk61G+pUWzG4AEuTSJu7ESaqNtxtqv6lEeIwarL5UU7kzqfdtRKAqKxsCKWCw7eWHeVIzrpM1ewUCIpYQcPgIgYR+t2ehB1hRtEXV7nLXhW/vQWOdkTl1qd+Q/bE2p/JiZbSEhjOt3PmyE5rPzJpnRovgGuxxNe8kw= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JkPvpsOueyl1Gk+ePS7cOlv1THPYZLSdhyv1x9/TlCGRfJleqwObT7p2dF9T53JfeU4XZ14l0ONGWARbi/fRXTDFXJ5TuipxJKrqhpbF6qxIIWwaL/1uLSVAAVPsT8rBzicwWUylIKlmbgqi0Dq1XswVnMgAQr8vO8ouqFzPjBd8DLIOyIJUyXHNRmZp9EsIGSHgpUq6urzhjbsOLq2U/Ogga4n+m/PlWYZrr49G7ehA4D01YtyazH6lWBrWiVTgbRo8gdI48h9g4jq/kYV0mcaVZB/C7yWa0OMHCFQle4qfUq6tqMtU+KSim8yd+R3nCoWXG2g+TIMykVK98y8Cxg== 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=cBibfgjed9NcpjBGzWnBz7TvxZcUXl02hm0mLX+7VFg=; b=MQM0f8rP4o3ERGmbDslgqZBPHHeHZjZhNlIsxyylv21UzDOOgYTxFbVIt72K1KGpC6Ezg30UrUOFNXlyXDxPzOiH5jxAplLTd2QEbKJg2F3tHXUNPukSfXSEFAs3Z7ayISefFbjE3j5ls7PUHF1faZ4QXm5J1NXx2uqYYWRHB666+aPI723Afl4itrzEOczcX+NNYbanSi73GO2BLiC+GCTi0hlH7aNFb8H4L4ZDVGUHbx3hs3oFEQ6YEqnj2Jq2OzaYitNlzUkJq8I3yWncvOGTLqX90pqfhYcmIPSMF3Tl+dn5d+zhUcdRvnv4ZUTz90XUYGQ9d3pMsg1hekXAHw== 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=cBibfgjed9NcpjBGzWnBz7TvxZcUXl02hm0mLX+7VFg=; b=RrbnCsJUIEVpeKMPB3UI2lCY4GWOuut8wI2pekknZ2Nhf8vazBK+9ZvfrBuTt1ouFrXUe8eFad2M5pNnV3Ym3XjE0K7a+1TRFKiVsbtz1YWLrg84Uo3894cs+KiVM/arMldOzBjPctvQxxiYhp+9/l8EoLkuPiiP9nWCmF2sTcs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DU0PR08MB8255.eurprd08.prod.outlook.com (2603:10a6:10:411::9) by PA4PR08MB7457.eurprd08.prod.outlook.com (2603:10a6:102:2a4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.14; Fri, 10 Jan 2025 17:21:50 +0000 Received: from DU0PR08MB8255.eurprd08.prod.outlook.com ([fe80::cbc8:c020:6a1b:d27a]) by DU0PR08MB8255.eurprd08.prod.outlook.com ([fe80::cbc8:c020:6a1b:d27a%3]) with mapi id 15.20.8335.011; Fri, 10 Jan 2025 17:21:50 +0000 Date: Fri, 10 Jan 2025 17:21:48 +0000 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org Cc: Richard Sandiford , Kyrylo Tkachov Subject: [PATCH 01/11] aarch64: Improve mcpu/march conflict check Message-ID: References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO6P123CA0005.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:338::10) To DU0PR08MB8255.eurprd08.prod.outlook.com (2603:10a6:10:411::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR08MB8255:EE_|PA4PR08MB7457:EE_ X-MS-Office365-Filtering-Correlation-Id: 445dd834-bcb4-4ae0-c454-08dd319b4518 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: ktEl7UvXWZGIlpOqevVuRg7McHSr3NdyzIr/N5FtrW1ZiLPeSu3z6KdjPqj9+S+VeT0hmKCHrmkJo0q0kpswK9SHDIlAyz53T5dvU4pWhqfgCAuLL1q6t3RJY02KxsSBfzeLc9sE/BA9H2yV7uiG8LuBFPTIY4KR88L7TQ91HuUQkmLaRGdT0GB4vunQuWshZIc6lJCIbyDFZLleFwBKgJfSNt5MPN6J/fn70I19nCe3zFHcjNtNzYfcSBFPQeYjjVWQdLrJ+jeunk+Pxewqbj8M/zXfo60L8m9z9iE9/6V+syL4JLhiAt0AEbt0foRHrVr09e19RLUAKOBym7LPrzu3WQx2EN8AqD1trLPCmGKxKofShTMzx4aRnAVZeJnlHEYIYgckMg4LpUm/Po1MoDREGKn2TPomga1JFJizLjiWzyqcanuYX1fSELg71T1yVaocTxb1qVuSZuPe9UYcS75CfSOQSNkIwG39N0CirrKYAo4sE0EvEkbqHUEZOtb8oKPhUB32VJbwx++7p3nidQQpsKAcugZIwcrwdBXPLf/9GtgrBGAq/oJV933mEvCbrf36WcwiIrbJhheAPPy5NHf72cXb8dj+gW1wkGlBzWxVQEiFRg86AiKhJoHdTiRVIRuPrxoLVsIYrJWuUrmlUGhu16MlQv5UpCd0e1DA5KsA4UHWQZTK5yQhC9vs5AgFvA4hDwZP+3EqI9uhU+YPoVrulUmc+d6TQjhPMX70JOQyFYq4b9TeSEbuU1uIuS+OqS4sTJa/7i/M75Wyu4PmJh4755u8wtSn2X7WCrzVBIyGz/AITRr2eyzGAs8gH61CvLhn/6c9N9zmZViD9ztyHdjFiCiDIbziMaFSbqbk0QKzdgrGG8Ic2fC0Q0TgSRhV2mpOk5ZshRiPegBEXy4RDmYlUNVrkLnsmWLNcDzWVkQr+Y6/+QoImVdOVGZdyyeQ0bjhHBRgZpGTKuZ78BRZ6SKhnwfhMPhiRO0ckbJRambcDwYNuT5d25TV+27A8ZeG/PGyZn5Wjcgw/8/Kk8zJoQHIyXxadkV9Pj+YpYYZ9XKymqYdGuRXPoe+nOub9rtsatuiho0YYrLhEhARDmpd5oAdJTMo6NEtttpNURKXRd1nA+Be/a3egyKqu4Z+lirDcKnOR0iCfwWLXP2cmkx63R07mkH8qi57FYyBFrPb7pnrRSfXXc0eaHYmkYeru31NS/IHVskydH9Xx92Bil1B3Jie+nj4N6ZEA/4pj9OgwWBLcMb+iBDkchft/EWAijzaCKkcJoGffhrnZWMnTGXTpSvu+UO8JzL2r5iDaFDD7sUXnotjNI+johd3JL+zSf7wY4LCxrGNHPim3H9VxV/n0g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR08MB8255.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e/oMScfz3LF8PSDpBd/hWZnBjXGKvnXoxzuUiFSy0AqWMrED+dJ788jRX2J0eBxndxCRuTQG14Mt47AEc0WuMz4OF65IWrnhTUt2sSj6b/X/SzjG5Zk6Jo9afTHMVu1o3YGblb61eD/1JCFUnQyWNczD6VfhA5AWuvVsHYQfU7Yzp+jOuA7BH75FeqsuCeSZplMRyODkGsdSKk/G2zIwGlKHPzBgktUaTJ16mM7VxX239lzZwniAytn6uRVOvCSdIxG8jnIhPWOzv4lSjk2UOlZFGIpFIVE8Rfh131IQyYSmH96BgSNgjtcaZ3Na5yfpy/yK8TEiOzeEqqbeyAZAMHZbE4Z1kqNOfmrLUsDWQJdUyxDJJylOxjT9Dah6CyhhSUH4Yqx0c0u74c6oUlnr7tVuyjhtH08MNLR6XphZVzohY69N/GShb2EwF2+KAqH79ZIi4PAlhbccQTE64jHCW7dwCOG3EeLJJB0cQ+s3d2A130jJC66JGOpuFPsFrBiFWfatY/+mhna/8tFdwAPMEsAD8avJWK5jsVs3sVUE/ZDDDIiOHWCzn7fveSo4raNwFXdr4O2r+hQrbpHvzgKs8iRc0mCx131bTS8dvgCu6pAbnIaP4dUVfZFS6HOgybSzQ+MyRXmHw7OvkdYrsuyVzAt3jmugu8IGlNwq7Sqr5+zw34Yd63aTJWZiC5ZjeZm5ScIJ6BM0aPwhdSQU+E4sq8uYygpgHjw8dhBot6h2VJwsjcIV3zbymt71tkLFvWxzBm1X2whsyoYg6ONNncJ2o+IYwTzB2pRGmVZX+q3NLfMyxpb4R/MSblD0fIZv76ENgDbSis3vPLKN0cNJxBOq8UeCTT1vj6l+EAL3469UGg/3mSKFz8i4ryTnNj0CREaElrh3PFrifLgp9S10ZDXur4oby6WykCvtbOrgljh5o/Z+usd8UsGeYvNMacwNFnuytXqrCJJGBO7NlsJGudAP8/RacxjplXe46JYQnsfBZiv2gGqqqi4BTO+NLICKyLpZFmESgqaDzDotlQ6jNMUdzJCM39m0TMndDnRoR2vhzCbz/Z37KOTGLMcWgQUvWEjaiK3jPpVw1KUsmn4++GTSPi+WNC7mhsXlKc02fnf7kWDenZKl9uhbtL3HWCTlGyV/B8GlKqR25rfFZCy6W24FyufQhJvl0aKiaPeHrROdAJd5Tx6yRr/gyhJIEQ3fsEJHU2J5Uy5whRvKPbVsINnnWIvU0EY2oFrOR9njrcrIY+sXSJmEYzTO1kytdYNmGQLhWNn1/zL6HQHPQxYxlkmUen4a1v7ih4entloEiZATtdTghs5XQDCDJG+pF0PCbiOBPPyb0DAfs4rSRbYd+uUjgNhB28XXQeCa90+Ss3LFQzYdnR8donJ2rTvS/rP9Dd/MeMAJcnzdik303tty+PVu6mphU7VMoalti8ghZ03z4jNoggk4huMNpWttTSxGvkgofhhEZgd41VfUY/lVMJfWzp4oJTZ9EzkVjtG4PAxgVH8iQXbKK1rLM1OwtvAW67GepnHEFYF1a2pkVL2YM85cHgZx1Q3HDoBFwG0jwW5OG4GVs2gT9fr34dfF5ayviY2+vDbPuEwlB0bchl+TzMreiQ== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 445dd834-bcb4-4ae0-c454-08dd319b4518 X-MS-Exchange-CrossTenant-AuthSource: DU0PR08MB8255.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2025 17:21:50.6350 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MEcwvGqWVeqj0lawpGkrCu5jGsQ/A/RvaAJbEOs3L+u7x8CCBTaXPSw8xNZHlK37/oVkXW0JiTsloUkcO6Bf7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7457 X-Spam-Status: No, score=-11.5 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 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~patchwork=sourceware.org@gcc.gnu.org Features from a cpu or base architecture that were explicitly disabled by a +nofeat option were being incorrectly added back in before checking for conflicts between -mcpu and -march options. This patch instead compares the returned feature masks directly. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_override_options): Compare returned feature masks directly. gcc/testsuite/ChangeLog: * gcc.target/aarch64/target_attr_crypto_ice_1.c: Prune warning. * gcc.target/aarch64/target_attr_crypto_ice_2.c: Ditto. diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index ad31e9d255c05dda00c7c2b4755ccec33ae2c83d..330a04c147a97bcd99d6819290d7f82ff5066a44 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -19282,13 +19282,10 @@ aarch64_override_options (void) cpu features would end up disabling an achitecture feature. In otherwords the cpu features need to be a strict superset of the arch features and if so prefer the -march ISA flags. */ - auto full_arch_flags = arch->flags | arch_isa; - auto full_cpu_flags = cpu->flags | cpu_isa; - if (~full_cpu_flags & full_arch_flags) + if (~cpu_isa & arch_isa) { std::string ext_diff - = aarch64_get_extension_string_for_isa_flags (full_arch_flags, - full_cpu_flags); + = aarch64_get_extension_string_for_isa_flags (arch_isa, cpu_isa); warning (0, "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch " "and resulted in options %qs being added", aarch64_cpu_string, diff --git a/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c b/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c index 3b354c0611092b1fb66e4a9c2098a9806c749825..f13e5e2560cd43aab570ab5d240e4cf1975d2f12 100644 --- a/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c +++ b/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mcpu=thunderx+nofp -march=armv8-a" } */ +/* { dg-prune-output "warning: switch .* conflicts" } */ #include "arm_neon.h" diff --git a/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_2.c b/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_2.c index d0a62b83351b671d157ec0de083d681394056d79..ab2549228a7fa06aa26592e02d0d2055f6b990ed 100644 --- a/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_2.c +++ b/gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mcpu=thunderx+nofp -march=armv8-a" } */ +/* { dg-prune-output "warning: switch .* conflicts" } */ /* Make sure that we don't ICE when dealing with vector parameters in a simd-tagged function within a non-simd translation unit. */