From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:260e::601]) by sourceware.org (Postfix) with ESMTPS id 3801F3858D26 for ; Thu, 27 Jun 2024 15:00:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3801F3858D26 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 3801F3858D26 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:260e::601 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1719500461; cv=pass; b=TqFiIGzXgKDecp8KC+gAoCMFuEZrDaqC1PUr3Pxseyk9ZdH8Dd6Q5WBNrLiWj3KLXxti+Vk5Uy7XMLOBfd9Cz63x+/ujMITE6z29NfWAa/YDtjJ19DnDh8izaDhj3IWWGkvwKQ5KgCoafCCtRIw6M4VmwplNBsTObVlClMIgrIM= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1719500461; c=relaxed/simple; bh=ptH5pNQMvaUbj/bZhxdaKzO7o19EZJCvpjC8ShQBTyw=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=aMwKNYY/oEZ4jLSUmWiP+6ijS0GpNXut+os78mGUHRiX51o5XySo9SU8SB4mO1oK7G0bAMCouRJEes4LKuT/DgN+Uk/M0zYWkW/8IKD+4chYisFKJTsmdvigmUvrxU/1njMfrsrFzsAbLfeDhtXlX3Fn5dIHzI3Q6o83WxjpbRQ= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=K4tjldkYxItx7dcJLU9RlxB71RbBzlgIVvtBylw9540q+w9J6jLztoY37uVzDM8gbbNd2PE4cM3PBNbyGirdrE/+Zf4aHlP4Xfs8gObQobnxQ78UDbGw4G9/4oyHLrnpnVj1VujETGvz/jZ6uZbX1cKZCTX7gFhlKVZmQzDuuCMuHk63ggt/8iSLU0g0P0mlx2OkncvDjHSsG0DjXkHTyX6+WqdiIxxj2T1KElzJkrh9Umros/Y1osQZ8TcSZadHCI+krkJ6sEZO0fO4tOYnJYhvSKoRHcwiIYRqyMvUmRqkhmiR7370TA+ObI1YW/y1S6bHNI5XaIbWzfi0bskAGw== 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=ptH5pNQMvaUbj/bZhxdaKzO7o19EZJCvpjC8ShQBTyw=; b=jGrO5y4Ouy50uuMta6gyuLeN7DOXLQqCVSO7LQQu73Tq8QwYFTBlyzdRjdKHjtf1q6NHYz+7BKESJcH80yEUZN6EkL7uzUDKRSzmSFOYMnnTKh+uKXMaWV52x5ty+hEsrJYIf+Xd6+LH9DNn1EXfT19lLc/Ft6VXkmxKcWvCKRVtZbrv4myH8PeypExF1iuccfad0WYLK4iRIz+wMfJPNa0Di8SDsTgC7b5eJglu5G4NOrIpI7VLUspRMFmkQ4iD3vxO+22NkAQDXiPCnssjcW9EnhbEhE6gDSMlU04FPJYkiTsq4EcrVEEDIeca6aqYJeiIpzGFpZ5DCz4C45Sfjw== 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=ptH5pNQMvaUbj/bZhxdaKzO7o19EZJCvpjC8ShQBTyw=; b=cuj/wcNP0Hksffa5y6OMenTDESbi6ydFTKpA/GiiOegAlHn80bbTMnDIXt692vQznNQcEpn2BF9lszdc3C8ECJ4mBL1/Yi9PwQy8tkm5GyQeq3wQ/r0mK5Vw9IEj0hYCNt3FVVkpRDawDoC5vJDt/FDKZtqinq4fQMBcmnqT9pY= Received: from DU2P251CA0023.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::35) by DB8PR08MB5306.eurprd08.prod.outlook.com (2603:10a6:10:117::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Thu, 27 Jun 2024 15:00:54 +0000 Received: from DU2PEPF00028CFF.eurprd03.prod.outlook.com (2603:10a6:10:230:cafe::1e) by DU2P251CA0023.outlook.office365.com (2603:10a6:10:230::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.22 via Frontend Transport; Thu, 27 Jun 2024 15:00:54 +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 DU2PEPF00028CFF.mail.protection.outlook.com (10.167.242.183) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7677.15 via Frontend Transport; Thu, 27 Jun 2024 15:00:53 +0000 Received: ("Tessian outbound 74e6406985af:v357"); Thu, 27 Jun 2024 15:00:53 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d8c7a2f134d7f603 X-CR-MTA-TID: 64aa7808 Received: from 5a60dcc06fbe.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F634B420-31DD-4211-B8ED-B58DA6B1E550.1; Thu, 27 Jun 2024 15:00:47 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5a60dcc06fbe.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 27 Jun 2024 15:00:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eI4dpcEyfHDAjXsStOUl4h/1MOWwUI4cV1MpGrWP97k4g1AAF7HIq2mHbhdDEzACqGIrmkKIx6r+WJZqpODZJMzGvYq/QSlpKO+/b7ry0XRLp+FBTT6tUcepNPGXceXk8Wg7pYC7fUPNPcwDcH2t1gaUM70Gk/R72FrzaEp00gjGzrZuH4nik+d6sU3ghGIp524QcjAzd48KXqJWR/ks/OBPHVL/WNdLEwpaQ/bKIrH2sTHSnImvA0wjzSF9jGxGUqBAPvlQZ5HoBuRD7yMem/EeO4vMBZSYN6vmtJ4EmYmJRCdUDsEZ8e9YkXHn+ODJOLgzV4f2sRUTKp102Ezp9w== 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=ptH5pNQMvaUbj/bZhxdaKzO7o19EZJCvpjC8ShQBTyw=; b=Wjb3w3PppEb8WpCVrqyCGzgPJdXdbIi6xw9soFziyyhByK/mPVuBuP80Bq1eWnqfO1Fj6alFLGKHoHM1whlImfkeaDpdwFKLlgs0uD7qeMEvZcKTCf0jsN2JB7nmeSaxEP3VbaWIuA+bO6yCIaHyeLoHq/1U1HCmjXpx4g8dUVsaEco2Y+z2tg6u81gpX3n9/ncs59cP0qxB8FgEqX47KS/jXhL0+dXIg0z7xONiNmDmlqpYqLOAg4qTObHXu0lP/elt1hHt4iyCdcikSb5izlQFjqEgSh6tHkXSEAG0u2WRyv4OsQpwtVT8WdhOXavAwHLaR6r15JLtK/kOKsadKQ== 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=ptH5pNQMvaUbj/bZhxdaKzO7o19EZJCvpjC8ShQBTyw=; b=cuj/wcNP0Hksffa5y6OMenTDESbi6ydFTKpA/GiiOegAlHn80bbTMnDIXt692vQznNQcEpn2BF9lszdc3C8ECJ4mBL1/Yi9PwQy8tkm5GyQeq3wQ/r0mK5Vw9IEj0hYCNt3FVVkpRDawDoC5vJDt/FDKZtqinq4fQMBcmnqT9pY= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by AS2PR08MB10376.eurprd08.prod.outlook.com (2603:10a6:20b:545::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Thu, 27 Jun 2024 15:00:44 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::b366:6358:236e:352d]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::b366:6358:236e:352d%4]) with mapi id 15.20.7698.025; Thu, 27 Jun 2024 15:00:44 +0000 From: Wilco Dijkstra To: Richard Earnshaw , Richard Sandiford CC: GCC Patches Subject: [BACKPORT] AArch64: Fix strict-align cpymem/setmem [PR103100] Thread-Topic: [BACKPORT] AArch64: Fix strict-align cpymem/setmem [PR103100] Thread-Index: AQHayKLIhTJCaaDHfkeN3/QhGpJ22w== Date: Thu, 27 Jun 2024 15:00:44 +0000 Message-ID: References: <9d14aa1a-91fb-cc6a-cc75-fb6c4447d7a2@arm.com> <4ab151ac-2741-4d1a-b1cc-a911328376db@foss.arm.com> In-Reply-To: <4ab151ac-2741-4d1a-b1cc-a911328376db@foss.arm.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|AS2PR08MB10376:EE_|DU2PEPF00028CFF:EE_|DB8PR08MB5306:EE_ X-MS-Office365-Filtering-Correlation-Id: e6636dd3-6d4f-4b4a-6310-08dc96b9f12d x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?Q?fM2wj63sqb1qlYtQGRHpUApneB5zijfYQaEGEGB4eAjyht4H4HxC12vADO?= =?iso-8859-1?Q?wyFsAHDNDURCZA6Ao2dOumk+Glq193fmLzx3OmjKLm1paswvEL7EkXSYM9?= =?iso-8859-1?Q?RtJkrHAdM3tqfvRTOtOMfkKj/UHoKDjLW9LPB1JDpleiOkk7Cef94kCLlq?= =?iso-8859-1?Q?LdynuRQi0ScKHM6tt50w3zGepPQL2UlFPfUui1nZmU/QnQQsJj8FnxeAUj?= =?iso-8859-1?Q?hohAQesGH9/d4VNuqpR1h4qpLB71tdXIdsfDLAEs/I4vflsVRr4f/cC6qG?= =?iso-8859-1?Q?s8OT/JfdDERvyI6+m84wxFQncsLpij/QNL3CckcuH6Zb6mNPr/hpvxgV24?= =?iso-8859-1?Q?i3+C/Jtv57Y5iOdoU0wf0bIqqGkosu8q9iCGmnHQmBj2ZdIBpWItEQn2uU?= =?iso-8859-1?Q?j3kt8mOujAVoJx6Yed/Prk43CWnEMuFwORe6g3RoAd6EFVjadOY2ULcUql?= =?iso-8859-1?Q?FUsI83O9fWRBtV483k6Ib+i572KPH+O+6HqjL1fYZgrym7E/ANstpBSqR+?= =?iso-8859-1?Q?JB4e9HzHAWsev9NPejEVrJNiQp98HXM0qMNSjwCa4QU1eXoAvny/j18ZiN?= =?iso-8859-1?Q?8Gr3yV8l8kSaNVAy0wRmFjzROUDfqyFKvhe30bPsb49dUZTLR083S0yTLr?= =?iso-8859-1?Q?ap3/JdBHzRKzHDwzYdXnqMYJ1AUWpkn7itnFpOlNBj4+vDZm3EofzraYd/?= =?iso-8859-1?Q?H0RsSpDRTOvtnvIEQb3e88b55z2TUH/i+3J91buYqFJz8/vyRGA2PaMP5J?= =?iso-8859-1?Q?WlStjYW3MMmiM24tpMIPgCTOIJm+Pizm310OYsyS4bXrs5ljUutHgGjFQL?= =?iso-8859-1?Q?TP0QoDIjuF22I8lcIPimQZCaSAjWqcQIl+kBGo9Oyt+xUsmA9YYt8bLh7o?= =?iso-8859-1?Q?l7T4zn+TNICLYDkSIp32t+AtixEv3RU9DDahJEGQiKPCspqhBWmFDEyO2g?= =?iso-8859-1?Q?OeWEabPXPpBMTrLzXuMbBXhl+dGcXf4uf8bwGjFgi+9gnf99Ev1ca8aKLr?= =?iso-8859-1?Q?G9QxzeIfJ6rtFHoxZB09u0Ouq5wAaSldgqylzX9ANYvC4uGNIgp8MbnUcW?= =?iso-8859-1?Q?taNI719iqvIFJg4iN6Ph/YyjYHJffbA0SQ1hLoTz1QU2FBWlArWHrJRBPW?= =?iso-8859-1?Q?MCI1rc2eUz1o9ixpwqM0iJP/xjjPotGmmrkt/We0GlnQ93ElhnQ9sAnY6y?= =?iso-8859-1?Q?7hhWD2jDJ56P9I8/OZW2Jl9goSQ3Px/KAus824Yt9bI9MGqSJ3DIL5DUaO?= =?iso-8859-1?Q?rvdcS/a3aQnrsEmcjPqFnIFrlUB6ujAvt0OIh9FWaXleAQ1XTnKZUuqJG8?= =?iso-8859-1?Q?ONpVZkPALJfhsA0fsRhtY6JbHKJyAiTIgzwF6LQGnzquAuG1+0gkHvw1dm?= =?iso-8859-1?Q?eMeIqnKZcudhZScCaqd+sjoLjGC24eqfM6iEiKgFF+5djDgi/wFJOHF2PG?= =?iso-8859-1?Q?INZV6/jrEpzhmy2VUCY3f9mmjHDHZuwMu6//FA=3D=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAWPR08MB8982.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10376 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: DU2PEPF00028CFF.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 28cee2b3-f7f3-4be0-6f12-08dc96b9eb5b X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|35042699022; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?T44AB6jCSI3MgWIPnZL/ahnzsVYpUhe4bRSeZ+pjiWorfx0h9nC5zAbZvW?= =?iso-8859-1?Q?z53HSEukqx4DpcrBr3hNb0iUuCohA8QcB7tbQu1bkzrry20NWhsOFL90Yg?= =?iso-8859-1?Q?fU22y+FixlFvEZlpdaBanR1CXLBjWQhzfB9eikPVE5yu1SgcgC2YjTgItI?= =?iso-8859-1?Q?T0MnOWz8N5FlQuyhtXMsjJOohJl4lhcZd/jY71rFMsETOh1qNV39S4wDx5?= =?iso-8859-1?Q?n0ExxLDufTKZQE2cY9BpyXvIVCL+NW3w68aLaC5JH6e3GcTwVa9a5p6too?= =?iso-8859-1?Q?a4bDmMN8DUGjgE/tZLnfSvXWycghsjf8xFCJU/ja9ihRXZh5PW1swxJfT/?= =?iso-8859-1?Q?GRd4t4R00FUWtuHLhi4rbTPFFpl2ymqhZloRxFxfNcbdrRkHLCJjBDOVRq?= =?iso-8859-1?Q?8AeXm/YOaB0d0AFsSGqLG+97GwnWAO+JOQRR+uJxmI0eT0IX6cu/vnIgBi?= =?iso-8859-1?Q?myr5TD0dBgFrPu8UqBS2YRYMH07kuxlAem5neAfzORDsEGDYntl7EP3NK2?= =?iso-8859-1?Q?Dct0AK7phB2z7n7YQU6GaGYxrPI3O9LkKJuc/CNCk6cx9FVpfkoj1HBt7Q?= =?iso-8859-1?Q?QttDfSBOtzxa5OmPJQfNtFDcbaksOIEUY9nQ4ZiJMc8JCU+M/Iv41lMUUv?= =?iso-8859-1?Q?uQ/gebOTkcEN2DlY+5oVtWjXd+Tmsui7VpKRvqx8KJ8QMHd0g6n2ofFiw4?= =?iso-8859-1?Q?HetixfsoWj69Wa5UlbVqY4uIzx5b3kFBblmzVBkATEUtomGUCcwzxmmvCc?= =?iso-8859-1?Q?3Z+2ueme0WcVNMFQhIVWWZx/CbFRSH2syhyX8uoPfurps+kqPovJWUFNnQ?= =?iso-8859-1?Q?fGOHn/uDPLL1xwLlXoVZ6KOumj//eGClXs0DXCHqRmTGZ34vVu5InWb2Ry?= =?iso-8859-1?Q?ymrweXwW5JUkC/HWnsotFtlOw5JXOFiOOWi0GEq6GeF4otfV/gksNlQG3x?= =?iso-8859-1?Q?KkF88caaPimtl0zkCwcBYADyB5gbtHWlV8RwxDfy2nrokOh+BCbg9ggQK3?= =?iso-8859-1?Q?1Lk+U0vdDyZYZ5CK8chZjavLRQCWYwVJHmi/SkGX85B80F60WLBT258vYc?= =?iso-8859-1?Q?egSuf2ffRBbIVOkRJuSm2rB0QMbv1MEKT4EF4SyLAjAbb+X9t6UhJ4kmcT?= =?iso-8859-1?Q?ggXjWHOkbbE8fo10m93oplhFYTsMclK5zkopXZRGW/JKI9/cq/mrVODLOU?= =?iso-8859-1?Q?r7qodlqd1NefXB2rgyU0anqk0XENlnwTt8aqF6d6CQPyoq5Q0OPdo4upvs?= =?iso-8859-1?Q?s2eoqB3vhOLM2qfZM+bVJ+DU7CxyJlakOnFGs+n6fSAsBSiRNYnKP+NmNk?= =?iso-8859-1?Q?3bvwojXydbPiL17Z4FJ9KkrIUOP6ahk90ND8owPhFWRRG6ybVcP1/aF9jM?= =?iso-8859-1?Q?spAMgZcA3SwuW/A4VtjS6L1h+SlVt0Mjh7ZSKEWdIBBtwrB2M5Z1/JS6u3?= =?iso-8859-1?Q?ij7NBsz7iKcbP7mD5t2Tfd5lLRnSuUJW0zBfu4N4qKzkH+yY5HEGw34yCO?= =?iso-8859-1?Q?6eZy6GUWsdodGctzalE5GJ?= 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)(36860700013)(376014)(1800799024)(82310400026)(35042699022);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2024 15:00:53.9011 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e6636dd3-6d4f-4b4a-6310-08dc96b9f12d 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: DU2PEPF00028CFF.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5306 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,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: =0A= OK to backport to GCC13 (it applies cleanly and regress/bootstrap passes)?= =0A= =0A= Cheers,=0A= Wilco=0A= =0A= On 29/11/2023 18:09, Richard Sandiford wrote:=0A= > Wilco Dijkstra writes:=0A= >> v2: Use UINTVAL, rename max_mops_size.=0A= >>=0A= >> The cpymemdi/setmemdi implementation doesn't fully support strict alignm= ent.=0A= >> Block the expansion if the alignment is less than 16 with STRICT_ALIGNME= NT.=0A= >> Clean up the condition when to use MOPS.=0A= >>=0A= >> Passes regress/bootstrap, OK for commit?=0A= >>=0A= >> gcc/ChangeLog/=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 PR target/103100=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 * config/aarch64/aarch64.md (cpymemdi): Remov= e pattern condition.=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 (setmemdi): Likewise.=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 * config/aarch64/aarch64.cc (aarch64_expand_c= pymem): Support=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 strict-align.=A0 Cleanup condition for using = MOPS.=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 (aarch64_expand_setmem): Likewise.=0A= >>=0A= >> ---=0A= >>=0A= >> diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.= cc=0A= >> index dd6874d13a75f20d10a244578afc355b25c73da2..8a12894d6b80de1031d6e7d0= 2dca680c57bce136 100644=0A= >> --- a/gcc/config/aarch64/aarch64.cc=0A= >> +++ b/gcc/config/aarch64/aarch64.cc=0A= >> @@ -25261,27 +25261,23 @@ aarch64_expand_cpymem (rtx *operands)=0A= >>=A0=A0=A0=A0 int mode_bits;=0A= >>=A0=A0=A0=A0 rtx dst =3D operands[0];=0A= >>=A0=A0=A0=A0 rtx src =3D operands[1];=0A= >> +=A0 unsigned align =3D UINTVAL (operands[3]);=0A= >>=A0=A0=A0=A0 rtx base;=0A= >>=A0=A0=A0=A0 machine_mode cur_mode =3D BLKmode;=0A= >> +=A0 bool size_p =3D optimize_function_for_size_p (cfun);=0A= >>=0A= >> -=A0 /* Variable-sized memcpy can go through the MOPS expansion if avail= able.=A0 */=0A= >> -=A0 if (!CONST_INT_P (operands[2]))=0A= >> +=A0 /* Variable-sized or strict-align copies may use the MOPS expansion= .=A0 */=0A= >> +=A0 if (!CONST_INT_P (operands[2]) || (STRICT_ALIGNMENT && align < 16))= =0A= >>=A0=A0=A0=A0=A0=A0 return aarch64_expand_cpymem_mops (operands);=0A= >>=0A= >> -=A0 unsigned HOST_WIDE_INT size =3D INTVAL (operands[2]);=0A= >> -=0A= >> -=A0 /* Try to inline up to 256 bytes or use the MOPS threshold if avail= able.=A0 */=0A= >> -=A0 unsigned HOST_WIDE_INT max_copy_size=0A= >> -=A0=A0=A0 =3D TARGET_MOPS ? aarch64_mops_memcpy_size_threshold : 256;= =0A= >> +=A0 unsigned HOST_WIDE_INT size =3D UINTVAL (operands[2]);=0A= >>=0A= >> -=A0 bool size_p =3D optimize_function_for_size_p (cfun);=0A= >> +=A0 /* Try to inline up to 256 bytes.=A0 */=0A= >> +=A0 unsigned max_copy_size =3D 256;=0A= >> +=A0 unsigned mops_threshold =3D aarch64_mops_memcpy_size_threshold;=0A= >>=0A= >> -=A0 /* Large constant-sized cpymem should go through MOPS when possible= .=0A= >> -=A0=A0=A0=A0 It should be a win even for size optimization in the gener= al case.=0A= >> -=A0=A0=A0=A0 For speed optimization the choice between MOPS and the SIM= D sequence=0A= >> -=A0=A0=A0=A0 depends on the size of the copy, rather than number of ins= tructions,=0A= >> -=A0=A0=A0=A0 alignment etc.=A0 */=0A= >> -=A0 if (size > max_copy_size)=0A= >> +=A0 /* Large copies use MOPS when available or a library call.=A0 */=0A= >> +=A0 if (size > max_copy_size || (TARGET_MOPS && size > mops_threshold))= =0A= >>=A0=A0=A0=A0=A0=A0 return aarch64_expand_cpymem_mops (operands);=0A= >=0A= > It feels a little unintuitive to be calling aarch64_expand_cpymem_mops=0A= > for !TARGET_MOPS, but that's pre-existing, and I can see there are=0A= > arguments both ways.=0A= >=0A= > Although !TARGET_SIMD is a niche interest on current trunk, it becomes=0A= > important for streaming-compatible mode.=A0 So we might want to look=0A= > again at the different handling of !TARGET_SIMD in this function (where= =0A= > we lower the copy size but not the threshold) and aarch64_expand_setmem= =0A= > (where we bail out early).=A0 That's not something for this patch though,= =0A= > just mentioning it.=0A= >=0A= > The patch is OK with me, but please give Richard E a day to object.=0A= =0A= This is fine by me.=0A= =0A= R.=0A= =0A= >=0A= > Thanks,=0A= > Richard=0A= >=0A= >>=0A= >>=A0=A0=A0=A0 int copy_bits =3D 256;=0A= >> @@ -25445,12 +25441,13 @@ aarch64_expand_setmem (rtx *operands)=0A= >>=A0=A0=A0=A0 unsigned HOST_WIDE_INT len;=0A= >>=A0=A0=A0=A0 rtx dst =3D operands[0];=0A= >>=A0=A0=A0=A0 rtx val =3D operands[2], src;=0A= >> +=A0 unsigned align =3D UINTVAL (operands[3]);=0A= >>=A0=A0=A0=A0 rtx base;=0A= >>=A0=A0=A0=A0 machine_mode cur_mode =3D BLKmode, next_mode;=0A= >>=0A= >> -=A0 /* If we don't have SIMD registers or the size is variable use the = MOPS=0A= >> -=A0=A0=A0=A0 inlined sequence if possible.=A0 */=0A= >> -=A0 if (!CONST_INT_P (operands[1]) || !TARGET_SIMD)=0A= >> +=A0 /* Variable-sized or strict-align memset may use the MOPS expansion= .=A0 */=0A= >> +=A0 if (!CONST_INT_P (operands[1]) || !TARGET_SIMD=0A= >> +=A0=A0=A0=A0=A0 || (STRICT_ALIGNMENT && align < 16))=0A= >>=A0=A0=A0=A0=A0=A0 return aarch64_expand_setmem_mops (operands);=0A= >>=0A= >>=A0=A0=A0=A0 bool size_p =3D optimize_function_for_size_p (cfun);=0A= >> @@ -25458,10 +25455,13 @@ aarch64_expand_setmem (rtx *operands)=0A= >>=A0=A0=A0=A0 /* Default the maximum to 256-bytes when considering only li= bcall vs=0A= >>=A0=A0=A0=A0=A0=A0=A0 SIMD broadcast sequence.=A0 */=0A= >>=A0=A0=A0=A0 unsigned max_set_size =3D 256;=0A= >> +=A0 unsigned mops_threshold =3D aarch64_mops_memset_size_threshold;=0A= >>=0A= >> -=A0 len =3D INTVAL (operands[1]);=0A= >> -=A0 if (len > max_set_size && !TARGET_MOPS)=0A= >> -=A0=A0=A0 return false;=0A= >> +=A0 len =3D UINTVAL (operands[1]);=0A= >> +=0A= >> +=A0 /* Large memset uses MOPS when available or a library call.=A0 */= =0A= >> +=A0 if (len > max_set_size || (TARGET_MOPS && len > mops_threshold))=0A= >> +=A0=A0=A0 return aarch64_expand_setmem_mops (operands);=0A= >>=0A= >>=A0=A0=A0=A0 int cst_val =3D !!(CONST_INT_P (val) && (INTVAL (val) !=3D 0= ));=0A= >>=A0=A0=A0=A0 /* The MOPS sequence takes:=0A= >> @@ -25474,12 +25474,6 @@ aarch64_expand_setmem (rtx *operands)=0A= >>=A0=A0=A0=A0=A0=A0=A0 the arguments + 1 for the call.=A0 */=0A= >>=A0=A0=A0=A0 unsigned libcall_cost =3D 4;=0A= >>=0A= >> -=A0 /* Upper bound check.=A0 For large constant-sized setmem use the MO= PS sequence=0A= >> -=A0=A0=A0=A0 when available.=A0 */=0A= >> -=A0 if (TARGET_MOPS=0A= >> -=A0=A0=A0=A0=A0 && len >=3D (unsigned HOST_WIDE_INT) aarch64_mops_memse= t_size_threshold)=0A= >> -=A0=A0=A0 return aarch64_expand_setmem_mops (operands);=0A= >> -=0A= >>=A0=A0=A0=A0 /* Attempt a sequence with a vector broadcast followed by st= ores.=0A= >>=A0=A0=A0=A0=A0=A0=A0 Count the number of operations involved to see if i= t's worth it=0A= >>=A0=A0=A0=A0=A0=A0=A0 against the alternatives.=A0 A simple counter simd_= ops on the=0A= >> @@ -25521,10 +25515,8 @@ aarch64_expand_setmem (rtx *operands)=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0 simd_ops++;=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0 n -=3D mode_bits;=0A= >>=0A= >> -=A0=A0=A0=A0=A0 /* Do certain trailing copies as overlapping if it's go= ing to be=0A= >> -=A0=A0=A0=A0=A0=A0=A0 cheaper.=A0 i.e. less instructions to do so.=A0 F= or instance doing a 15=0A= >> -=A0=A0=A0=A0=A0=A0=A0 byte copy it's more efficient to do two overlappi= ng 8 byte copies than=0A= >> -=A0=A0=A0=A0=A0=A0=A0 8 + 4 + 2 + 1.=A0 Only do this when -mstrict-alig= n is not supplied.=A0 */=0A= >> +=A0=A0=A0=A0=A0 /* Emit trailing writes using overlapping unaligned acc= esses=0A= >> +=A0=A0=A0=A0=A0=A0 (when !STRICT_ALIGNMENT) - this is smaller and faste= r.=A0 */=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0 if (n > 0 && n < copy_limit / 2 && !STRICT_ALIGN= MENT)=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0 {=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 next_mode =3D smallest_mode_for_size (n= , MODE_INT);=0A= >> diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.= md=0A= >> index 6d0f072a9dd6d094e8764a513222a9129d8296fa..96508a2580876d1fdbdfa6c6= 7d1a3d02608c1d24 100644=0A= >> --- a/gcc/config/aarch64/aarch64.md=0A= >> +++ b/gcc/config/aarch64/aarch64.md=0A= >> @@ -1627,7 +1627,7 @@ (define_expand "cpymemdi"=0A= >>=A0=A0=A0=A0=A0 (match_operand:BLK 1 "memory_operand")=0A= >>=A0=A0=A0=A0=A0 (match_operand:DI 2 "general_operand")=0A= >>=A0=A0=A0=A0=A0 (match_operand:DI 3 "immediate_operand")]=0A= >> -=A0=A0 "!STRICT_ALIGNMENT || TARGET_MOPS"=0A= >> +=A0=A0 ""=0A= >>=A0=A0 {=0A= >>=A0=A0=A0=A0 if (aarch64_expand_cpymem (operands))=0A= >>=A0=A0=A0=A0=A0=A0 DONE;=0A= >> @@ -1724,7 +1724,7 @@ (define_expand "setmemdi"=0A= >>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (match_operand:QI=A0 2 "nonmemory_operand"= )) ;; Value=0A= >>=A0=A0=A0=A0=A0 (use (match_operand:DI=A0 1 "general_operand")) ;; Length= =0A= >>=A0=A0=A0=A0=A0 (match_operand=A0=A0=A0=A0=A0=A0=A0=A0=A0 3 "immediate_op= erand")] ;; Align=0A= >> - "TARGET_SIMD || TARGET_MOPS"=0A= >> + ""=0A= >>=A0=A0=A0 {=0A= >>=A0=A0=A0=A0 if (aarch64_expand_setmem (operands))=0A= >>=A0=A0=A0=A0=A0=A0 DONE;=