From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2046.outbound.protection.outlook.com [40.107.20.46]) by sourceware.org (Postfix) with ESMTPS id 923A3385840C for ; Tue, 12 Mar 2024 16:08:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 923A3385840C 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 923A3385840C Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.20.46 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1710259710; cv=pass; b=QLm+zek3GokjhsYril3zyNxzYdeQkusjAi2VISSY1fR1CYlzZgowwg7wUZXFlvU7e+0rg88EZ5u2tYO1SHgHFbx6F5OSmRJcJgabceG1PCLYFjlbBvvztlltgzmF2pWB+SzW3N4kmTraEk8f3TDFL00HLBWjw8DfE1/fR8dif6U= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1710259710; c=relaxed/simple; bh=WjrfgdfLhPdRhR+D/VLL8tn/0caXqWDC3BUqsw1UGyI=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=U+sntpRR9LX/VtAR0x+8dNGeoyQnUnAWRfkO+aA+3Bxn9aFTge54a1OGOtPuD3wniQqA+B4+q40020VyUpArrEmaL0X2fWMDVpT3zYWXmiGBojhtc+hEOuK/gGX/yFjbkkiN1bYJ/RiBNjf09D4Xlt/e7CTtbu31a09bEMYKbso= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=GYb1jL+JtMGGiO/Nh26B5jMi08AefCBtJc8jcuk1rfQTYvfnRZfY1Agrs85IeM0sHnh9Vg7uQZqchFAjhDLE7UonIDDpaJOQZGdM1rcV4EMO28gFAObyVdfaM1GBhQTnp/9VpM7Z2HZidp2I9aRhlvshDRKySquuryQGk4FvwCQK5qHVD/yrtghqSJOywUIUILq5ikGPTn+STnZSOZiF+W+C+s2jyw1wHr5ciYd9VXAnE+NcOjaOPT9JUnMCwTy+f9ZMmGUlSwlTzeBFizrCWmZeY1bJgdOewj/XLxIYaDnmEzSTVQlolgULMTZHjZHXRB3KL27XFjXv6DfJ+ddp5w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=F+1jcSxM9FB0U909Gk7lwkxAVba8wB2oqUHHkKsLBd4=; b=BlQGh8XmEXFnU7RdgZ8OOz8sdO4yaZ2jecJJrkl+YuaG/dmsIHeAiySZF8EzIR1BS8ynbgvG1MaWTkE3Q//Tguemnsa8fvbkDHzYIINFe0Eeyx+1g83GDOCjjGIFHBecAsogvIHHEpOenQ41u3mZnO8DISL9hQJPhHRAsyWBqzp7EunADPgTA8URaJ30UtciDNrp35eUZrh3oo651bBA2PgmPrfnNvvTqgwCmfdM5o0Es6G6zRscNREJlx9ml7phTRhXmJrefGZtSjPIPnPwkWBlH6KbKxwZnHxoAU7/108Fe0Vf+Gp9m+dfl/dp9nGkHYmoy3Vb4zK7txbHG3q2Eg== 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=armh.onmicrosoft.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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F+1jcSxM9FB0U909Gk7lwkxAVba8wB2oqUHHkKsLBd4=; b=lD987bBRgW5wcKHKlRrGXufqAHIAWXHGOSjA3cjm+ZcFpgk71ZS2JsnRNZJbZTAia/6+TA2bIRxJEHmBNRL7l8rFcUabKAtTf49jU/cMvWtJZXZwDP6YPoyvnapW03qUYe4uYxpFi3NA3qGh701BkED/bqABeu+Opi9RTJfLbLA= Received: from DU7P189CA0026.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:552::23) by AS2PR08MB9641.eurprd08.prod.outlook.com (2603:10a6:20b:60a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.35; Tue, 12 Mar 2024 16:08:25 +0000 Received: from DB5PEPF00014B90.eurprd02.prod.outlook.com (2603:10a6:10:552:cafe::c7) by DU7P189CA0026.outlook.office365.com (2603:10a6:10:552::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.36 via Frontend Transport; Tue, 12 Mar 2024 16:08:25 +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=armh.onmicrosoft.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 DB5PEPF00014B90.mail.protection.outlook.com (10.167.8.228) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.12 via Frontend Transport; Tue, 12 Mar 2024 16:08:25 +0000 Received: ("Tessian outbound 3b68a75ac28e:v276"); Tue, 12 Mar 2024 16:08:25 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b093be3bd4c2193b X-CR-MTA-TID: 64aa7808 Received: from e9885cd2ec7d.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BC4A8F8A-2AAA-47B4-A4A1-C30CCCC09402.1; Tue, 12 Mar 2024 16:08:18 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e9885cd2ec7d.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 12 Mar 2024 16:08:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lMlNPhZT5fnRNQjnPWtIWkYK2MHs+ibBu/Ylxkpkyzvv5qBE505XPtlazxUsc8C8izJUd7zGaGL9CNRPVhqtiM52bXj2M93xPkRf/QEtY2zFANgRdLZE5v66TJrMDY51TelX80P54suuYSXz/WZvGl3vPuNwU+MBbBywsbaQfkpIx5dU48T1Hh+zFOh9QwciAbKk1TPA+2CaRa20pMWcrMvtZBczaTVrLIfKZ7eVOawvcHBgeDRgHCOV0PkBD6HFyFTS8pm4sY3UprcOfDXPuP67O0QM2VhjNYuM2xBoZ9tbKqDS6kPMQG0klTnD6gvBrJQ2CcoKUC137gHS8mEXZg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=F+1jcSxM9FB0U909Gk7lwkxAVba8wB2oqUHHkKsLBd4=; b=Fjp6EvpRoSDZYM/MwxuxCJXxXdlMyShkR5JGEhpNjIyIPl7NjYaL/gDdkFz5my/XIj+Y9XFQASruvbKH+4nVZH9crQY8jOgg3FtSLXGEyxq74Juv5gt66lFatPNa9SOfuny1i9YgZTHukQEVUT1GL326OEkKtMcsrlMFftgjUqiUFt9ik2aqaKFPVSxobpav1+c1DTfaAjdr004UftyP7j43ny5cCQIjKCKVkagk6hfCdt70dGMXpXsorqPEYMeBmyn7fGRVsjVWGcGPvS1Lm8GO/PsOxaVNZ1vLi1pFdVNJL4S/aJuHp2K7ksh75advU08qjK1CMOe2v3aOgULCrw== 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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F+1jcSxM9FB0U909Gk7lwkxAVba8wB2oqUHHkKsLBd4=; b=lD987bBRgW5wcKHKlRrGXufqAHIAWXHGOSjA3cjm+ZcFpgk71ZS2JsnRNZJbZTAia/6+TA2bIRxJEHmBNRL7l8rFcUabKAtTf49jU/cMvWtJZXZwDP6YPoyvnapW03qUYe4uYxpFi3NA3qGh701BkED/bqABeu+Opi9RTJfLbLA= 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 AM9PR08MB6179.eurprd08.prod.outlook.com (2603:10a6:20b:2da::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 16:08:15 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::538a:2c05:1871:75e1]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::538a:2c05:1871:75e1%6]) with mapi id 15.20.7362.035; Tue, 12 Mar 2024 16:08:14 +0000 Date: Tue, 12 Mar 2024 16:08:12 +0000 From: Tamar Christina To: gcc-patches@gcc.gnu.org Cc: nd@arm.com, Richard.Earnshaw@arm.com, Marcus.Shawcroft@arm.com, Kyrylo.Tkachov@arm.com, richard.sandiford@arm.com Subject: Summary: [PATCH][committed]AArch64: Do not allow SIMD clones with simdlen 1 [PR113552][GCC 13/12/11 backport] Message-ID: Content-Type: multipart/mixed; boundary="CdRs0GQ7Yh/QaW5x" Content-Disposition: inline X-ClientProxiedBy: LO4P302CA0030.GBRP302.PROD.OUTLOOK.COM (2603:10a6:600:2c1::16) To VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB5325:EE_|AM9PR08MB6179:EE_|DB5PEPF00014B90:EE_|AS2PR08MB9641:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a3f3255-e05e-4ec6-1f9a-08dc42aea5d2 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: d9/5TaCytEfq9P+gpR66L37h5Ws5W4uUtIZRrwDhrGrkBcwIUiDiou0ihtExUulHl/Y4eylSt2803jvYA1GKy3b8A3BziAb46gmMFJ97ANRlqgbjzHJzUh4jFhwXBO8yWoRG6CCFbWdI8ffuZAaTAJXXyekY5JSRmiaOilboEa6sWAVXwFh/E0qneC5S8Twx47aRYFZ/qoXFtpirTpBj1PJaLeOnQYqypisOyGfEY4pPVufp4PnFwJ7yuX/R5g4nr5+EjKAq7Wvis8zv1kmrKFWusdjHMBFamvVeNc6bkez5ybmHR5pM/nm1DHT2BDudPxiA/6EMt69nSvky+G+KR68I6JuqLrLrz8sYVMae0ZyyezT5Og6+EeNa3ay0W9e+bYLotsSIBccnEWI0pIFJcS0oM9XCabT7V5zlNI2in2f/pMiTVs3YiDXPpyJvNPGlgE2KZz/OnNPZFulp67z/JleURF5yrNE3/lwnvPrBsUqZnej3ege0tyVBFLXzvl5BDRc3UjpIncE5B2y9BHS4GJFNcWSE8N87y4pauE8eLk2adDkGIlPTLn+fZMO8nM/inlHjAropdFcV81XjyBxenDESu3vmUtgOH/eg0Fl2KGwbp2rztkX9vzD4kw3Ymq+9 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:(13230031)(376005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6179 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-Transport-CrossTenantHeadersStripped: DB5PEPF00014B90.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2e7b7eb7-9852-48b8-8336-08dc42ae9f74 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: guhZptN0wnwo47gfscMS52q98tbEOBeqkFCq8jpr4BXXbZm9Uk21Kf4OsJeVdyLmjBtankis7G2I5G1G9Kd+tog5oxDHJYJQ7kF6k7qsjk2oZ5H76ufswB0tuQf/DmZAjSbYPjzTNYCKYyVK73SgaypztQ5hH/yaG3uEcxIlkfEDRnnbQymeTUJNB5I43xu9qfe2VgjKzruAFjYW2n6PRBX2rUJlItmJYKBlCkkpVtvzvRDl7bIwa524c/8bvkHW2xT3aPScZWuQcumpirBTOkL0DBIpyA7v0GkkcWzYSxkwvFUHEpR4v4yWpJq6lXsgMILD3ctyeV7whk5ks/pjyRFd0DTvquvMMJL7HgReaZWST+BXhlDgomj2hPetaaPpVVO7dS3QYzuqfpMBbcmttPtbAMwmkmVK3/j3s+CJ2p9++S6DDx0BdgRGAo608rBJvpDl1RrGfGnO6ErIiKvnVHo5Q4rdvC8/lcOj/tOua5YH0FX3uYwdd/7VQOh/3LotpzSeLzTTWYgYEvWEYzYH9GBqgIW3y/TQjMXCVTqphods8YMWXSoZ2EBBeTYns6Xb0lg7gZ+rwBuE3qGQv6m6bKYbaxTlq9qLarKnMGJku41c1gf4yje+POdrt2IS+HHRiniAF45N4cA+wQ+lapZAGLif/UgiLCTwu3eaLCpFsUGHxUo3Nzdw9CQK70NEZ8r6xkRsq/4PkAnBLl6xXDIZSw== 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:(13230031)(82310400014)(36860700004)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 16:08:25.3521 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2a3f3255-e05e-4ec6-1f9a-08dc42aea5d2 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: DB5PEPF00014B90.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9641 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,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 List-Id: --CdRs0GQ7Yh/QaW5x Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi All, This is a backport of g:306713c953d509720dc394c43c0890548bb0ae07. The AArch64 vector PCS does not allow simd calls with simdlen 1, however due to a bug we currently do allow it for num == 0. This causes us to emit a symbol that doesn't exist and we fail to link. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Committed to GCC 13,12,11 branches as previously approved. Thanks, Tamar gcc/ChangeLog: PR tree-optimization/113552 * config/aarch64/aarch64.cc (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1. gcc/testsuite/ChangeLog: PR tree-optimization/113552 * gcc.target/aarch64/pr113552.c: New test. * gcc.target/aarch64/simd_pcs_attribute-3.c: Remove bogus check. --- diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index f546c48ae2d2bad2e34c6b72e5e3e30aba3c3bd6..d19a9c16cc97ae75afd4e29f4339d65d39cfb73a 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -27027,7 +27027,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, bool explicit_p) { tree t, ret_type; - unsigned int elt_bits, count; + unsigned int elt_bits, count = 0; unsigned HOST_WIDE_INT const_simdlen; poly_uint64 vec_bits; @@ -27104,7 +27104,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, vec_bits = (num == 0 ? 64 : 128); clonei->simdlen = exact_div (vec_bits, elt_bits); } - else + else if (maybe_ne (clonei->simdlen, 1U)) { count = 1; vec_bits = clonei->simdlen * elt_bits; diff --git a/gcc/testsuite/gcc.target/aarch64/pr113552.c b/gcc/testsuite/gcc.target/aarch64/pr113552.c new file mode 100644 index 0000000000000000000000000000000000000000..9c96b061ed2b4fcc57e58925277f74d14f79c51f --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr113552.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast -march=armv8-a" } */ + +__attribute__ ((__simd__ ("notinbranch"), const)) +double cos (double); + +void foo (float *a, double *b) +{ + for (int i = 0; i < 12; i+=3) + { + b[i] = cos (5.0 * a[i]); + b[i+1] = cos (5.0 * a[i+1]); + b[i+2] = cos (5.0 * a[i+2]); + } +} + +/* { dg-final { scan-assembler-times {bl\t_ZGVnN2v_cos} 6 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c index 95f6a6803e889c02177ef10972962ed62d2095eb..c6dac6b104c94c9de89ed88dc5a73e185d2be125 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c @@ -18,7 +18,7 @@ double foo(double x) } /* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnM1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnN1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ -- --CdRs0GQ7Yh/QaW5x Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="rb18353.patch" diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index f546c48ae2d2bad2e34c6b72e5e3e30aba3c3bd6..d19a9c16cc97ae75afd4e29f4339d65d39cfb73a 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -27027,7 +27027,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, bool explicit_p) { tree t, ret_type; - unsigned int elt_bits, count; + unsigned int elt_bits, count = 0; unsigned HOST_WIDE_INT const_simdlen; poly_uint64 vec_bits; @@ -27104,7 +27104,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, vec_bits = (num == 0 ? 64 : 128); clonei->simdlen = exact_div (vec_bits, elt_bits); } - else + else if (maybe_ne (clonei->simdlen, 1U)) { count = 1; vec_bits = clonei->simdlen * elt_bits; diff --git a/gcc/testsuite/gcc.target/aarch64/pr113552.c b/gcc/testsuite/gcc.target/aarch64/pr113552.c new file mode 100644 index 0000000000000000000000000000000000000000..9c96b061ed2b4fcc57e58925277f74d14f79c51f --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr113552.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast -march=armv8-a" } */ + +__attribute__ ((__simd__ ("notinbranch"), const)) +double cos (double); + +void foo (float *a, double *b) +{ + for (int i = 0; i < 12; i+=3) + { + b[i] = cos (5.0 * a[i]); + b[i+1] = cos (5.0 * a[i+1]); + b[i+2] = cos (5.0 * a[i+2]); + } +} + +/* { dg-final { scan-assembler-times {bl\t_ZGVnN2v_cos} 6 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c index 95f6a6803e889c02177ef10972962ed62d2095eb..c6dac6b104c94c9de89ed88dc5a73e185d2be125 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c @@ -18,7 +18,7 @@ double foo(double x) } /* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnM1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnN1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ --CdRs0GQ7Yh/QaW5x-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2087.outbound.protection.outlook.com [40.107.21.87]) by sourceware.org (Postfix) with ESMTPS id 62C613858C39 for ; Tue, 9 Apr 2024 12:32:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 62C613858C39 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 62C613858C39 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.21.87 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1712665976; cv=pass; b=fy/Cwc1RA3Qd8xkE5fvnVTrcWUIMXNC9+ZMiONhVCVAOjPRSKphqIYwGu+/wWN6ZOs7dJAA7UmHPnGKYGErX6ZveIS5nUfuMaWhtL9roCIJEK6KQQFlTxpMZg4R2MeF7anUNM6f6jNgUPcQp+/v/yQbNeZLMvrlS3eyFheQ2Uvg= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1712665976; c=relaxed/simple; bh=k1mA3B3ClGfhmWFa0avzy05+cXvWRJMVTz/kf3p54uM=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=ttgKQEd2dH0lM6c1s3ykkKTOp/f+87y8iBkx/9coawC+Qu5sze7jDh5IbieY81gLNHQLUFtn0nyi2CNgX2BPEnDyxqCPOTvJ2CnFSai1Bpw/+4C4KEWUQgYln9HfHR1WQi00AaPJ1QPei7LXNI8rrT5KKQ+Jt2DrNnESjPRwj7U= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=IuGNdtFihaL2oLmuNZZmG7odb99ZVCZTqi1DtBkeI/YI3qIDpvVBbgbfXIDPmfOeOCq+MrAUqfSpBEp+EunOK4PizYC9z5h7J04Yt3daL/CZDLwLWnsk23XbF3nos3xHwUbPnOIzZpw9W0E0fsxvgBiilSZ/7rNcMewZQiGrpVCHKXs1rziGhWCm1PB0wmmDe5H4JXYlr5SB9qWJNbqTjMrKe4DIYdv4oKOVMZOIv/jqG8PuczmmbhjRXqQPhoWd2CKKqXO+85DfEzPPdhx+TXEGvN+7N8gn6vRZ4+gUqfgZJ+QfWDJzwSz6186kKjg89oCCpxl/PNlbRrWz6JN4Kw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=vyau5dLbQw4meED0xmDdiadQtcOdYyTLcGznhFprLk8=; b=L0MKyk6+hks8T3oxrQ9TgQ7UsAQU/x3OFZ1Dro8sz9DfPf1AqfO4ITX+hT0mIWPHhhiFnuFStw04WI+NVpNc4luMnbG6lOJ03AceP7axaVUQrppFyvAz6+b7pA2+cjSQLc16a9dkQuRstNwiwCehB9uiA/TdxEzOM227XhGnwGyz8jp0Vp4KF0jXQCBpWZi5bx1fsgruU2gxF4tZU4Q9kTkSnaDtvr0uds+dk9Bz+AsetOV9AQd+g/T8XRjgkvBctuchfBgOpxjzdMKUqx8VdSjvPFWaCM9B7ph8PDllTqRwZRqUGIopgi5F0ekzpJQkQWoJi+P1hMN/ckfkEvCHvQ== 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=armh.onmicrosoft.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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vyau5dLbQw4meED0xmDdiadQtcOdYyTLcGznhFprLk8=; b=93j4kGrL9yNzZxv784Lmytkjo+S/8a1KOt7S1AR05fwepy6+BCIn4p7YeUwzDH2aAwcjd8bUTMpT5aKQTZFPksBxuifuujZQVoQonkPphpJ+infV363G3Hh1rep1yjzvEIwslztXTM8TOYxM6aQbtHzYIcsFEm5C4Aam2GNc99w= Received: from DB9PR01CA0015.eurprd01.prod.exchangelabs.com (2603:10a6:10:1d8::20) by GV1PR08MB8258.eurprd08.prod.outlook.com (2603:10a6:150:89::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 9 Apr 2024 12:32:46 +0000 Received: from DB1PEPF0003922F.eurprd03.prod.outlook.com (2603:10a6:10:1d8:cafe::86) by DB9PR01CA0015.outlook.office365.com (2603:10a6:10:1d8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.28 via Frontend Transport; Tue, 9 Apr 2024 12:32:46 +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=armh.onmicrosoft.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 DB1PEPF0003922F.mail.protection.outlook.com (10.167.8.102) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 9 Apr 2024 12:32:46 +0000 Received: ("Tessian outbound e26069fc76b9:v300"); Tue, 09 Apr 2024 12:32:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b093be3bd4c2193b X-CR-MTA-TID: 64aa7808 Received: from cfe3afd51f40.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4F4E7A16-100B-43F5-B58A-B5126A8ED19A.1; Tue, 09 Apr 2024 12:32:35 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cfe3afd51f40.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 09 Apr 2024 12:32:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e0BNkQ4D1CKAgwAiUihKiRShuiz2qDT4ubwKBmbR4X6s7nNrvchNG3UXUyyBexvgtmRWP8Au4BCIbr118KmLzEKVvnu1NWCtEv5rAfD4iVDSnAyYBwR+S6D3G3MIumy9R8555yLmB4y5Ea6hwGcQO5LdtSu9x5j9wdJpj51l3gOCjIFmvof3Qaas7kzcNKH+BEdPuGTmiFSCclC1Qh6KJoA1NHi6Gyxzs0Msttcvydax/TuwN8NIZkVxR9HwqKYqjSWgwtXPSlM0pP3rv/81wOiqmmUg6OsVRgujUja1vHn7plEVuT70pHXNwkTb8IHzdFSCxBcW4+T68CBs2vvrAw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vyau5dLbQw4meED0xmDdiadQtcOdYyTLcGznhFprLk8=; b=AAOycNz2Ty3rExzxa2ist9a5mNTkBehYQd9JDc0+355r8FLvWiV+3QUGblT5p7D0W5neIvc9eByjyJyTT9/F28Z/jxRhFmpqXOx2gX28AGOZnT2RwxPgx//QHUX8vqMKgCbsybwBkkFXrv2LPQf4hvX+IVn92psYV8Y5KsDsEk0GybAZhTbnuReXGbLjAthJzc0AlXIGWeMZRlyhMgLBhP7kzRoL7zxOSlfGCImEjWh14a1Ex6KDmmWDlHJaijSmPfqrJ3yKRoHm+bV6GgNgl79wbZHTnnV2nyl3oMalLHE+P6P/jkR4e+iHi6mMspOLKJHqp+1Xym/vCHuOsY4NRg== 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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vyau5dLbQw4meED0xmDdiadQtcOdYyTLcGznhFprLk8=; b=93j4kGrL9yNzZxv784Lmytkjo+S/8a1KOt7S1AR05fwepy6+BCIn4p7YeUwzDH2aAwcjd8bUTMpT5aKQTZFPksBxuifuujZQVoQonkPphpJ+infV363G3Hh1rep1yjzvEIwslztXTM8TOYxM6aQbtHzYIcsFEm5C4Aam2GNc99w= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by GV1PR08MB10720.eurprd08.prod.outlook.com (2603:10a6:150:16d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 9 Apr 2024 12:32:29 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::a0e:800c:c8b2:5ff0]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::a0e:800c:c8b2:5ff0%4]) with mapi id 15.20.7409.053; Tue, 9 Apr 2024 12:32:29 +0000 Date: Tue, 9 Apr 2024 13:32:25 +0100 From: Tamar Christina To: gcc-patches@gcc.gnu.org Cc: nd@arm.com, Richard.Earnshaw@arm.com, Marcus.Shawcroft@arm.com, Kyrylo.Tkachov@arm.com, richard.sandiford@arm.com Subject: [PATCH]AArch64: Do not allow SIMD clones with simdlen 1 [PR113552][GCC 13/12/11 backport] Message-ID: Content-Type: multipart/mixed; boundary="3r5rW3rBAr2D0vc2" Content-Disposition: inline X-ClientProxiedBy: LO4P123CA0589.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:295::17) To VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB5325:EE_|GV1PR08MB10720:EE_|DB1PEPF0003922F:EE_|GV1PR08MB8258:EE_ x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: exo7e/oGAt/zH9XOZ5Sg7UOvQCcFWbnE1as6SJv6sPLtZJbUlXTwRGYesA3+qCVBh+lthJ8Ul8y+6QSFnxKUacvwaXvUn0b9YYC+FS6mAgy569Te2O0tJF8tsLfFhsVGWqrf7Yj6kzTpKfkIU3jl4kQL43LHj4iZsPFuoIu75764enU4frsWSCDEDdBwPQklaJ3Z2WlABxMcMUwn89JdRdbdasGPDujKaINfWNCd8mKnw6FgTJRTvNuzTKgMKahvBg9lVKD4ZUwYGM9q6CGuRyE+RIf5uxajsgbXRnypp9zX5v6V3vk3L9XqzWLaxFjX0pKQWg2UzKye2Ojnl0AgvteiG+/Mld21bu/Mn27TZM6lX1XXyYWaMAvqe/QD66U6zfD9JFl/t/py2iG26fqxnWYLapXe/RYBi9GuAKlu+29f8oJ8dxxvM+rxhoAvJTE8UORDxLUMLajLXqxxpInyJPKAV46Zi7rJzEoOHFrto0hxwDtdY7PEanribWglwrc2aScD6V2B15kzv3lLF2CtQeBDBvPvXnH5o3zm44/65wwptQzbGvBvaa213j54tvjOdkDuUVIFJc3SRp3PWJds8KN0t0bqjacTlXlxpFmwwhMz1Mr7bl4T+H2JWm2smEc7 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:(13230031)(1800799015)(376005)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10720 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF0003922F.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dc0de118-c388-428c-10ab-08dc589128f5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tc/eCBCKI1KRmV24JT99O7wfQMtR6YoNQMQ21xQo+zFztKygqCL35gJmYs4HpmC+xGTOksABKgtVSSvxjMPP0ZQozHonpe/xRX0PawGn8xg1r2YwfCvC++payx4ViDsljG56auCQ9dBhxKsZV3B/CkHFav/fjgUyvW+zfvQP9q7y5i6RxJ0nj9BeVjR34sCu/8cRKg60xWWpyyJfzmgdw+mNfmJbJB54R8GawoouGL+fT8ms7oxSl+mr8J6gVgmATWsczAk4Nyl35Ce5CY0Tb4DXnZWVaRzkKj37EEojD3oic7mNVUCOsRD3bo3S/lxKGwNmILhwQCxa/EnFK8kwvQOrua5uP28fm2axAUGU6trzjdZ7OEzOBrPemcRXrkBJdyU0yzB7+Q0hPalLKT9zSC9xARekVo6TP8oXJriWeLq8aiLjPStKSgPFbo0XgUxTA0zmyBllcu7Y91QYfcACu2d9g6dLOlEk46XL85St8cPHP8GkggTnTvm9ftUBZ/fMk74g88dvvZxGnPmhvE74co8olFjvM7ErB9lcdeE3QUIY5yAQMYX+LBYwsDvQN2SoAvfeLn3urioo/xDW+2APDbDcX0+iGcf44JpVY/VbaBxtYPaXd+pr5Tq7b4JgazXobaK6h/8HGruUYxmxkb7xNKn1Wgz31A0IibHuxDOcpTinY+S7NseMrmdS+U5eVZB1SN0eH3IH6U/jmzVnngL0RA== 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:(13230031)(82310400014)(376005)(36860700004)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2024 12:32:46.0419 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dc0de118-c388-428c-10ab-08dc589128f5 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: DB1PEPF0003922F.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8258 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_MSPIKE_H2,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 List-Id: Message-ID: <20240409123225.FnnD0YaLd0e3JC9gvIYZ-iYusb0rHoHOPodbxmipiJE@z> --3r5rW3rBAr2D0vc2 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi All, This is a backport of g:306713c953d509720dc394c43c0890548bb0ae07. The AArch64 vector PCS does not allow simd calls with simdlen 1, however due to a bug we currently do allow it for num == 0. This causes us to emit a symbol that doesn't exist and we fail to link. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. OK for GCC 13,12,11 branches?. Thanks, Tamar gcc/ChangeLog: PR tree-optimization/113552 * config/aarch64/aarch64.cc (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1. gcc/testsuite/ChangeLog: PR tree-optimization/113552 * gcc.target/aarch64/pr113552.c: New test. * gcc.target/aarch64/simd_pcs_attribute-3.c: Remove bogus check. --- diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index f546c48ae2d2bad2e34c6b72e5e3e30aba3c3bd6..cec614596c5532b6341ab814f700c4ffc737340f 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -27027,7 +27027,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, bool explicit_p) { tree t, ret_type; - unsigned int elt_bits, count; + unsigned int elt_bits, count = 0; unsigned HOST_WIDE_INT const_simdlen; poly_uint64 vec_bits; @@ -27100,8 +27100,17 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, elt_bits = GET_MODE_BITSIZE (SCALAR_TYPE_MODE (base_type)); if (known_eq (clonei->simdlen, 0U)) { - count = 2; - vec_bits = (num == 0 ? 64 : 128); + /* We don't support simdlen == 1. */ + if (known_eq (elt_bits, 64)) + { + count = 1; + vec_bits = 128; + } + else + { + count = 2; + vec_bits = (num == 0 ? 64 : 128); + } clonei->simdlen = exact_div (vec_bits, elt_bits); } else @@ -27121,6 +27130,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, return 0; } } + clonei->vecsize_int = vec_bits; clonei->vecsize_float = vec_bits; return count; diff --git a/gcc/testsuite/gcc.target/aarch64/pr113552.c b/gcc/testsuite/gcc.target/aarch64/pr113552.c new file mode 100644 index 0000000000000000000000000000000000000000..9c96b061ed2b4fcc57e58925277f74d14f79c51f --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr113552.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast -march=armv8-a" } */ + +__attribute__ ((__simd__ ("notinbranch"), const)) +double cos (double); + +void foo (float *a, double *b) +{ + for (int i = 0; i < 12; i+=3) + { + b[i] = cos (5.0 * a[i]); + b[i+1] = cos (5.0 * a[i+1]); + b[i+2] = cos (5.0 * a[i+2]); + } +} + +/* { dg-final { scan-assembler-times {bl\t_ZGVnN2v_cos} 6 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c index 95f6a6803e889c02177ef10972962ed62d2095eb..c6dac6b104c94c9de89ed88dc5a73e185d2be125 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c @@ -18,7 +18,7 @@ double foo(double x) } /* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnM1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnN1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ -- --3r5rW3rBAr2D0vc2 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="rb18353.patch" diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index f546c48ae2d2bad2e34c6b72e5e3e30aba3c3bd6..cec614596c5532b6341ab814f700c4ffc737340f 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -27027,7 +27027,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, bool explicit_p) { tree t, ret_type; - unsigned int elt_bits, count; + unsigned int elt_bits, count = 0; unsigned HOST_WIDE_INT const_simdlen; poly_uint64 vec_bits; @@ -27100,8 +27100,17 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, elt_bits = GET_MODE_BITSIZE (SCALAR_TYPE_MODE (base_type)); if (known_eq (clonei->simdlen, 0U)) { - count = 2; - vec_bits = (num == 0 ? 64 : 128); + /* We don't support simdlen == 1. */ + if (known_eq (elt_bits, 64)) + { + count = 1; + vec_bits = 128; + } + else + { + count = 2; + vec_bits = (num == 0 ? 64 : 128); + } clonei->simdlen = exact_div (vec_bits, elt_bits); } else @@ -27121,6 +27130,7 @@ aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, return 0; } } + clonei->vecsize_int = vec_bits; clonei->vecsize_float = vec_bits; return count; diff --git a/gcc/testsuite/gcc.target/aarch64/pr113552.c b/gcc/testsuite/gcc.target/aarch64/pr113552.c new file mode 100644 index 0000000000000000000000000000000000000000..9c96b061ed2b4fcc57e58925277f74d14f79c51f --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr113552.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast -march=armv8-a" } */ + +__attribute__ ((__simd__ ("notinbranch"), const)) +double cos (double); + +void foo (float *a, double *b) +{ + for (int i = 0; i < 12; i+=3) + { + b[i] = cos (5.0 * a[i]); + b[i+1] = cos (5.0 * a[i+1]); + b[i+2] = cos (5.0 * a[i+2]); + } +} + +/* { dg-final { scan-assembler-times {bl\t_ZGVnN2v_cos} 6 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c index 95f6a6803e889c02177ef10972962ed62d2095eb..c6dac6b104c94c9de89ed88dc5a73e185d2be125 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c @@ -18,7 +18,7 @@ double foo(double x) } /* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnM1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ -/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */ +/* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnN1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ --3r5rW3rBAr2D0vc2--