From patchwork Mon Apr 26 10:15:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Coplan X-Patchwork-Id: 1470240 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=GR8uq48s; dkim-atps=neutral Received: from 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 RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FTLQC4j2kz9sxS for ; Mon, 26 Apr 2021 20:16:01 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 807ED3851C21; Mon, 26 Apr 2021 10:15:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 807ED3851C21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1619432158; bh=qQTglYorLixl0BkhYdh5DJK8Rewh2yw1gQFRQYfTDUg=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=GR8uq48sagZRGPnuhnfmHQfzSYneJzefY7wz4L5DPtJ33+cnyvE59nIPut7HEaOQf Cr9C7K1J/eCQsUCo/ipf04JhOrweh6dJvfcUF6Y3RWpSnkSnPaNelYVUNMssieTai8 DKTtrYl9Akn8jffBKFwSoYzIZ6N3CuQ+Eqr0qHqY= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130087.outbound.protection.outlook.com [40.107.13.87]) by sourceware.org (Postfix) with ESMTPS id 06919385803F for ; Mon, 26 Apr 2021 10:15:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 06919385803F Received: from AM7PR04CA0005.eurprd04.prod.outlook.com (2603:10a6:20b:110::15) by AS8PR08MB6663.eurprd08.prod.outlook.com (2603:10a6:20b:39b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Mon, 26 Apr 2021 10:15:50 +0000 Received: from AM5EUR03FT044.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:110:cafe::b4) by AM7PR04CA0005.outlook.office365.com (2603:10a6:20b:110::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20 via Frontend Transport; Mon, 26 Apr 2021 10:15:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT044.mail.protection.outlook.com (10.152.17.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Mon, 26 Apr 2021 10:15:49 +0000 Received: ("Tessian outbound b610e7b4d771:v90"); Mon, 26 Apr 2021 10:15:49 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c40795eeadfd1009 X-CR-MTA-TID: 64aa7808 Received: from 17f1f581c7c2.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A34148C6-7601-4C36-8F80-07FBBE1A2916.1; Mon, 26 Apr 2021 10:15:38 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 17f1f581c7c2.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 26 Apr 2021 10:15:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZAy12VMlEch01RfLk+5alEZ4O62VfUCqxUxPMc7U9cmuBLhj0mdNxCQY4hpXx5AcnFQosQFLTTZVROG76YoF/4DbS5S9/x0BA75rcsSs9Xky47IqwJ4ZY9liOWJo38Htax3svLVZ8xMRACM+JSHQiIQYPKEPmQHobBrmgjX3Yk3MsZPiUs8OwpofHqfOcc0dZ2S1oEse7zdB8hFTpO82bKSU8GamQWhhhzDFZHUMO293FMCmGV+ALXqICcuZes7+WxTsDeS93W52Nv5JGUoR2fVc4NkqpmgXXV14ytJvxz82fbfZGunAi6vZm64240jO58gZFYsBmj91xOBQw9qt7A== 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-SenderADCheck; bh=qQTglYorLixl0BkhYdh5DJK8Rewh2yw1gQFRQYfTDUg=; b=FZogYtEBcx8Hz/UIyAu1wQZwW8fr7tQFeCqGQ1ZDs5BmPqTKlpxI4TjGmPtkoX5Rhy0/OKtsukNcy2H6lPcszhroNZomI4Xj49Byc6pp5R4fmqmvT5hKJBcw+vP4xvljI4UHchXQo916oa35rDpM2V8YHvgYCbujNzMYRRwidulOzFHE/5wZPZCJVt8+L+0e+HYtt/Kt5j20lLkeVO4sOSuHe5pRgzScAv5Iw3bxiFN7jAzZWRNHPUBBqtDYiyyg3IvGoXxEe7nW57wnRuWbQwEuiUBSUjwB6wVMXkjf4bADdg/0jbe4H+g8j7jllEGIjsHWjFWOgvohrggAnJDkaA== 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 Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB4029.eurprd08.prod.outlook.com (2603:10a6:803:ec::14) by VI1PR0801MB1822.eurprd08.prod.outlook.com (2603:10a6:800:5c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Mon, 26 Apr 2021 10:15:27 +0000 Received: from VI1PR08MB4029.eurprd08.prod.outlook.com ([fe80::ac8b:6d36:f378:8f5f]) by VI1PR08MB4029.eurprd08.prod.outlook.com ([fe80::ac8b:6d36:f378:8f5f%7]) with mapi id 15.20.4065.027; Mon, 26 Apr 2021 10:15:27 +0000 Date: Mon, 26 Apr 2021 11:15:25 +0100 To: gcc-patches@gcc.gnu.org Subject: [PATCH] arm: Fix wrong code with MVE V2DImode loads and stores [PR99960] Message-ID: <20210426101524.a6atjl3hyo2fpvyq@arm.com> Content-Disposition: inline User-Agent: NeoMutt/20171215 X-Originating-IP: [217.140.106.54] X-ClientProxiedBy: LO4P123CA0444.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a9::17) To VI1PR08MB4029.eurprd08.prod.outlook.com (2603:10a6:803:ec::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from arm.com (217.140.106.54) by LO4P123CA0444.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.25 via Frontend Transport; Mon, 26 Apr 2021 10:15:26 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 55776aca-8531-43bc-8e51-08d9089c440b X-MS-TrafficTypeDiagnostic: VI1PR0801MB1822:|AS8PR08MB6663: X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: y/B4CNiml6J2Whp3nvdce/1tLFlQgaySSp0rhpkMDf8dBASstS1M+HJaeRDOETGkb73FlOYJLYNnRxHIM/yRF3MT3hqYgkUh9JpkD+rpMzGliCSXLhJgkE/44bZaabJRCeQIXoyUKSSjXBoJaOBXAI2y8lWoLbh6r3ocF/uuIu8VSANzK+0+EG3+2VctEOKGN7qdiQ+JC8778k1mVeE1pDoi6ROQlrkTwEUeOpGzSzqUMNIvajto6J0nDEhEH4Y+Cy9uTSwGQDEr8wdMPwqjiuhNcBHml5ZUIh3kxSwiHW51HTz6zK7hntOvb4U5daN68oMdiprD6Xw/bpaDY3CO6VDpryknRkwFRHzLEVrl7aJntmtNK8poa0Cih/0rF4RxWkDD2GqR3OvioDb071LjREa5SHPK64ZWiawjUfNm3e7eg5soAM56zAOlVnXi9xb3VrOm3FR38ttSpGeM5kTqzNqqjCtuAvw2aTc1GAAp11dvZyaCP6JnOWUABbwVskryyZnhqsOGilx1SVMwmPqqobk0s8MygrPz/v64yT4UQxwF3masQn/Kkof2UKRsSVEArHw2uM94bYJui80XprwvkPt38l2Do+A8BwYAldECLzVrpbSuXEp/EclFJ2UUdFHsCQ89Md6q0cUlTHK29ORozVGuDvtwP+9XZx8/uFDUTkyhsG5GEtHB2hOrbrq9cO2i X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB4029.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(136003)(366004)(376002)(39860400002)(5660300002)(54906003)(66616009)(956004)(21480400003)(1076003)(66476007)(66556008)(33964004)(66946007)(44832011)(478600001)(2616005)(6916009)(55016002)(16526019)(235185007)(44144004)(8936002)(8676002)(8886007)(83380400001)(38100700002)(52116002)(38350700002)(316002)(36756003)(26005)(186003)(4326008)(2906002)(7696005)(86362001)(2700100001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?mOusf0ggmq7OpGgeo6X8YIKL21SFcX?= =?utf-8?q?KuFbqaHH+RDDjzQirtyM8baNeTr5J8XDpTaQerct+DNvxAogECtmNdYGjl8AmuSVT?= =?utf-8?q?1hCrni2lUCUwI9KRrh6vQFZAT3qUaBnv3BzPCBTlMaogEOpJ3gDyBRAsWN8ELkcHD?= =?utf-8?q?gK7Xbxf7u3CI9vwBb3gcoJeITuZWo/XzR3KZkUfPP7xNF7nt298aOIstZHxCWmguE?= =?utf-8?q?aRv5IRb277XvW3a3idPJy6JHwdL6dZE5u1V4L0OFeoFCcIG+/7GzMz1RvhRufzLJ0?= =?utf-8?q?qM2lgCiiVlLjdOo3YPJuiPfwoZhtkp6YC+Uy1g+cwgKxquU9hPQutedhydvUvdjzt?= =?utf-8?q?4nhYlUKlMy6HGxLdOm6WkslJ45NeGyAELg1PsinL0hpaP4OHSj916gWBDtaQ/Bmz3?= =?utf-8?q?2EIoL8XGYec9ySDDO1YuF3VhN/F5AykNG/I6mhGP4od7t975Att1Sj1GwG/UqwHwm?= =?utf-8?q?lJCegnZ1GIvZTWAk/2UPKDdcFOCf4ZBPjBzSr/5diq7D3RdI2y74SADiZnzYBL/J0?= =?utf-8?q?TwNJmldfQ0YGIJEBy3O+XkX0DfURcPRNnGRJJmHNL8pbeUKMBg7CmFAhixsi2LrFN?= =?utf-8?q?C4dLQMYNB9OjC8qCFpBf2XL5mdhwNppdo/NWIhT9QAs0tWyg2PhB6rQMeOJN8QuJm?= =?utf-8?q?jvLOMQSEfaDyzaPrgHXng4fd8fvQtpDDDTI0PN0IZtppt4H3X0ZPp5+kpmIl+1ylw?= =?utf-8?q?60px9KhWVqH22HONGAzmP+GO1w4GxCYQQ9SvKNpH2rTz/Yp11x0HuVTw6M0D1kDB2?= =?utf-8?q?Ye4qjwNvPwvmOxEord0mI7OI+AkFZLwcvwoIDn189O7E5tNpdy7EbJGHpYsulMOU3?= =?utf-8?q?HAu6Wc4GYHfSey+5yl08T39Sve54GmDi6DRY1MbjuJJAT3Kmjc1ZVtw1S1EdjUJMl?= =?utf-8?q?WX62WIPHNkuTNi3RkENlgpl8K081LdBFv8is0rJxENBlkkqPkV1YwM/wHENgUg5me?= =?utf-8?q?wiNRf2LMSRLrIpZKZ967ZcYpsHNQkjvBAE6ITbWCe/4xQGFRS0QxWlI/lZphfyHdw?= =?utf-8?q?FyuxOyNa3pj9vVv1m/Lnr2JSfTIahsLh+Q+s13923r9sKDsq3g33s+yM0GyCpJ8s9?= =?utf-8?q?4KOzgrxJg43iBBBGeYvePVlfdZ0lBc9rYVlc5PiNYiEc3g8mK1Ad9Ai7rwHD2+GbM?= =?utf-8?q?45LlzEcvYm4KKakMMRp+PhKNV34GB+OQFsrTqVJK0bAcpi8WFh09s9N2KREX+G6Ni?= =?utf-8?q?g8IEZhUabRk5p5Bl0QtyieSIDyXuokwLIIPhugpR/cU2AgGYjGnw3W5Y0EYMdGngg?= =?utf-8?q?vZcszQ12VbOhPA?= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1822 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT044.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 38688de7-6aa4-475a-80f7-08d9089c367f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: R6HwFwN4jv3Yj+PBNMbppirWlTnt74rELjJj1W8df5Vi3iyzf0UeD0NLw+0sguS0g6L1Uc0TL/nRO4sNLahFQ56KDz/WsXWnG3CHm6+8/RpD1ztMMNMtoEWzlPlGUtEvrv0z4CeqCjuCCsr/hsSHNTHo6gGxs+kO/dTOrNyy3LX2tqvcureHZaSz52ngKtB0qWA+c3cqkWYpRSxTmS18hz/706aPlSS1XeYcCiJfbqhojxnR4McpqQfeIbCOsaTmt6Hc//uJ3fkSl0jpWjYX7DHaIxQRKyTvlr0JfHYUO1OMCG6ZW2K+moUv4lqLY8l0d5+GPIOUCgKY+yLgglJJdECAsQOA9bOC/L4CAGE5VcTQo6GU1QfMwpCM32O8zmUSqVuMT/azi20McWswS6dB9SJb0a4pPRyfwYZ7XdDxPWPnMiIg0GhnMgXOP+oSpdQYY42hkcXrLWAtKPap0pg8rPNUVbuXC0or2dtt9uGFnSAWT3NAu5w+Hw8wHvPY7duyEe5+zfRqJHSsZfcWrJc8Rs51ZjTS9vWtPosfbuhvuQ7C9lTI75gwbzQs6Pn/AqfmV5dQ6fFO78+XNcoHDks68rjxtA2XD+lJ9L0ms9kwkpSGNCFZsKepYz+Zroyjt5U5jShNDPi4BOuwrC7wIB+IQwYYSxmIpHPz35chWEiWpU3b1dKQXkHIQ06urg2XOkaUfjyUXGMnD+kLLmf9EFDo+A== 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:(4636009)(39860400002)(376002)(136003)(346002)(396003)(36840700001)(46966006)(55016002)(82310400003)(1076003)(478600001)(36860700001)(316002)(186003)(47076005)(54906003)(26005)(5660300002)(34020700004)(83380400001)(36756003)(235185007)(16526019)(4326008)(8676002)(21480400003)(82740400003)(336012)(7696005)(86362001)(956004)(2616005)(8936002)(8886007)(70206006)(66616009)(6916009)(356005)(44832011)(44144004)(70586007)(81166007)(2906002)(33964004)(2700100001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2021 10:15:49.8394 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 55776aca-8531-43bc-8e51-08d9089c440b 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: AM5EUR03FT044.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6663 X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alex Coplan via Gcc-patches From: Alex Coplan Reply-To: Alex Coplan Cc: Richard Earnshaw , Ramana Radhakrishnan Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" Hi, As the PR shows, we currently miscompile V2DImode loads and stores for MVE. We're currently using 64-bit loads/stores, but need to be using 128-bit vector loads and stores. Some intrinsics tests were checking that we (incorrectly) used the 64-bit loads/stores: these have been updated. Regression tested an arm-eabi cross configured --with-arch=armv8.1-m.main+mve --with-float=hard. The patch has the following effect on the testsuite: FAIL->PASS: c-c++-common/torture/vector-compare-1.c -O0 execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -O0 execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -O1 execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -O2 execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -O3 -g execution test FAIL->PASS: gcc.c-torture/execute/pr92618.c -Os execution test FAIL->PASS: gcc.dg/compat/vector-1 c_compat_x_tst.o-c_compat_y_tst.o execute FAIL->PASS: gcc.dg/torture/pr52407.c -O0 execution test FAIL->PASS: gcc.dg/torture/pr52407.c -O1 execution test FAIL->PASS: gcc.dg/torture/pr52407.c -O2 execution test FAIL->PASS: gcc.dg/torture/pr52407.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test FAIL->PASS: gcc.dg/torture/pr52407.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test FAIL->PASS: gcc.dg/torture/pr52407.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL->PASS: gcc.dg/torture/pr52407.c -O3 -g execution test FAIL->PASS: gcc.dg/torture/pr52407.c -Os execution test FAIL->PASS: gcc.dg/torture/pr57748-1.c -O0 execution test FAIL->PASS: gcc.dg/torture/pr57748-2.c -O0 execution test FAIL->PASS: gcc.dg/torture/pr57748-3.c -O0 execution test FAIL->PASS: gcc.dg/torture/pr57748-4.c -O0 execution test FAIL->PASS: gcc.dg/torture/pr58041.c -O0 execution test FAIL->PASS: gcc.dg/torture/pr58041.c -O1 execution test FAIL->PASS: gcc.dg/torture/pr58041.c -O2 execution test FAIL->PASS: gcc.dg/torture/pr58041.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test FAIL->PASS: gcc.dg/torture/pr58041.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test FAIL->PASS: gcc.dg/torture/pr58041.c -O3 -g execution test FAIL->PASS: gcc.dg/torture/pr58041.c -Os execution test FAIL->PASS: gcc.dg/torture/pr61346.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL->PASS: gcc.dg/torture/pr61346.c -O3 -g execution test FAIL->PASS: gcc.dg/torture/vshuf-v2df.c -O2 execution test FAIL->PASS: gcc.dg/torture/vshuf-v2di.c -O2 execution test Bootstrap and regtest on arm-linux-gnueabihf in progress. OK for trunk and eventual backports to 11 and 10 branches if regstrap looks good? Thanks, Alex gcc/ChangeLog: PR target/99960 * config/arm/mve.md (*mve_mov): Simplify output code. Use vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores. gcc/testsuite/ChangeLog: PR target/99960 * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c: Update now that we're (correctly) using full 128-bit vector loads/stores. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vuninitializedq_int.c: Likewise. * gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c: Likewise. diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md index 7467d5f4d57..5c11885fb73 100644 --- a/gcc/config/arm/mve.md +++ b/gcc/config/arm/mve.md @@ -41,44 +41,19 @@ (define_insn "*mve_mov" if (which_alternative == 4 || which_alternative == 7) { - rtx ops[2]; - int regno = (which_alternative == 7) - ? REGNO (operands[1]) : REGNO (operands[0]); - - ops[0] = operands[0]; - ops[1] = operands[1]; - if (mode == V2DFmode || mode == V2DImode) - { - if (which_alternative == 7) - { - ops[1] = gen_rtx_REG (DImode, regno); - output_asm_insn ("vstr.64\t%P1, %E0",ops); - } - else - { - ops[0] = gen_rtx_REG (DImode, regno); - output_asm_insn ("vldr.64\t%P0, %E1",ops); - } - } - else if (mode == TImode) + if (mode == V2DFmode || mode == V2DImode || mode == TImode) { if (which_alternative == 7) - output_asm_insn ("vstr.64\t%q1, %E0",ops); + output_asm_insn ("vstrw.32\t%q1, %E0", operands); else - output_asm_insn ("vldr.64\t%q0, %E1",ops); + output_asm_insn ("vldrw.u32\t%q0, %E1",operands); } else { if (which_alternative == 7) - { - ops[1] = gen_rtx_REG (TImode, regno); - output_asm_insn ("vstr.\t%q1, %E0",ops); - } + output_asm_insn ("vstr.\t%q1, %E0", operands); else - { - ops[0] = gen_rtx_REG (TImode, regno); - output_asm_insn ("vldr.\t%q0, %E1",ops); - } + output_asm_insn ("vldr.\t%q0, %E1", operands); } return ""; } diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c index 7420d0198e7..a9b1f81b62d 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c @@ -11,6 +11,6 @@ foo (uint64x2_t * addr) } /* { dg-final { scan-assembler "vldrd.64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */ -/* { dg-final { scan-assembler-times "vldr.64" 1 } } */ -/* { dg-final { scan-assembler-times "vstr.64" 1 } } */ +/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */ +/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */ /* { dg-final { scan-assembler-not "__ARM_undef" } } */ diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c index ebe5b2fd70c..e32a06695ae 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c @@ -11,6 +11,6 @@ foo (uint64x2_t * addr) } /* { dg-final { scan-assembler "vldrd.64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */ -/* { dg-final { scan-assembler-times "vldr.64" 1 } } */ -/* { dg-final { scan-assembler-times "vstr.64" 1 } } */ +/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */ +/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */ /* { dg-final { scan-assembler-not "__ARM_undef" } } */ diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c index 231a24a1e55..bb06cf88e32 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c @@ -10,6 +10,6 @@ int64x2_t foo (uint64x2_t * addr, mve_pred16_t p) /* { dg-final { scan-assembler "vpst" } } */ /* { dg-final { scan-assembler "vldrdt.u64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */ -/* { dg-final { scan-assembler-times "vldr.64" 1 } } */ -/* { dg-final { scan-assembler-times "vstr.64" 1 } } */ +/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */ +/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */ /* { dg-final { scan-assembler-not "__ARM_undef" } } */ diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c index b8d9b5c1391..558115d49ef 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c @@ -10,6 +10,6 @@ uint64x2_t foo (uint64x2_t * addr, mve_pred16_t p) /* { dg-final { scan-assembler "vpst" } } */ /* { dg-final { scan-assembler "vldrdt.u64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */ -/* { dg-final { scan-assembler-times "vldr.64" 1 } } */ -/* { dg-final { scan-assembler-times "vstr.64" 1 } } */ +/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */ +/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */ /* { dg-final { scan-assembler-not "__ARM_undef" } } */ diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c index bf6692fe573..cc5e6358bee 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c @@ -27,6 +27,5 @@ foo () /* { dg-final { scan-assembler-times "vstrb.8" 2 } } */ /* { dg-final { scan-assembler-times "vstrh.16" 2 } } */ -/* { dg-final { scan-assembler-times "vstrw.32" 2 } } */ -/* { dg-final { scan-assembler-times "vstr.64" 2 } } */ +/* { dg-final { scan-assembler-times "vstrw.32" 4 } } */ /* { dg-final { scan-assembler-not "__ARM_undef" } } */ diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c index 4f66a07ac29..bfeb52b4dd6 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c @@ -28,6 +28,5 @@ foo () /* { dg-final { scan-assembler-times "vstrb.8" 2 } } */ /* { dg-final { scan-assembler-times "vstrh.16" 2 } } */ -/* { dg-final { scan-assembler-times "vstrw.32" 2 } } */ -/* { dg-final { scan-assembler-times "vstr.64" 2 } } */ +/* { dg-final { scan-assembler-times "vstrw.32" 4 } } */ /* { dg-final { scan-assembler-not "__ARM_undef" } } */