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--