From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140047.outbound.protection.outlook.com [40.107.14.47]) by sourceware.org (Postfix) with ESMTPS id B05F53857C7D for ; Tue, 12 Jul 2022 14:38:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B05F53857C7D ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=STMdrvoGUlSWt884wwIyMpw8qrTq6MuCb19+NRrtgsml42ty9pMg1vlZtXDqjb7YzAqyu39HwSVVpOl08dFTLnRiPWVISEirnrb2WFXlmjqEhc7wuVEqq/wAJWeWA+HwanJW0Nr9tdIuUPR3/R7ZTOVbab90JMDfnpv3kpXpbwxLZA2Z6YWSN31uzeI87hcPKlpNE09WMYjLFWalmPVdXFwSOSZ13XdIADIX1bEgkNVldq+LFn/cOmrReDzYSH9ud5owk+MWy95CslejzYsWwejHEQn9j9xYSCmSyRqBSqMP736wsgAcD1qkqA87LsdAspXIUQ+eFnz+tn9eiVW0OA== 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=BcNGpIA9Wms87qG8DbgxcJtPGMfsHWxnAX0UM9EW0lA=; b=JOrbt0XsSaIPmthmcUARpQQioi27p5Kk3Q2IiNG1pLjqHWgOd1WGf8OTWVl0MnjUw+UZ3cJ7jiDk/gOCDMyPiZxEKJnL4i7bi0xXGqmyjoLEPYATIlQVjsMTwx6zQb1LcKGY9my1T3mXyR/HEIFBfZA8xXDxJREaUZHIgLCXQQ9UJQwIXeo9jE0LzoWjA2Z8SPCAd7Z8v90jZotnooCx8+BZZO0Hla/88zuOKlh291r1U5ZTDaUGps2At8zL1ve0ouCd5xtIIJOwqGrBC7LrpXLIwPBc+6b1YPE4t629p5UQfCIWOdZe89HwX/BsS5pelzUiKvOE7vkdBMQ8sYC1+A== 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]) Received: from AM6P194CA0066.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::43) by DBBPR08MB6154.eurprd08.prod.outlook.com (2603:10a6:10:1f4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15; Tue, 12 Jul 2022 14:38:23 +0000 Received: from AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:84:cafe::8b) by AM6P194CA0066.outlook.office365.com (2603:10a6:209:84::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15 via Frontend Transport; Tue, 12 Jul 2022 14:38:23 +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 AM5EUR03FT022.mail.protection.outlook.com (10.152.16.79) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15 via Frontend Transport; Tue, 12 Jul 2022 14:38:23 +0000 Received: ("Tessian outbound 8e3d5168572a:v122"); Tue, 12 Jul 2022 14:38:23 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 74eca9c0c1a24a18 X-CR-MTA-TID: 64aa7808 Received: from 5a532d6e7940.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B86A4A9A-FA3B-436C-A5C8-91E33158551D.1; Tue, 12 Jul 2022 14:38:17 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5a532d6e7940.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 12 Jul 2022 14:38:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=krxNXfNJKoIgYyBGN9V60LF2jRySbLNbUKsc1J0nbHfUWTIImucm4VdyOE8pzTVbOz9GML4vhZRnP0k/tFuqI+K+0tJDZLaPyOMuaM6UPGtMiy+8IacDn7wX95VHH4beIduOgG2dj3CjdKkB1oxgmzSqDiwua8Jo3QtyTyS63lbNax2mAjIZzf8DRdnbPlwMTZYll9NlC3t7YNdqr3LTUWwkL4MVwV8UEtjFXupjn90VFhXtI+m4gmGMpFGwg3oSS1mSoI+kMCjpL8xIWqqbkZbwzm3W4Wg5g81AjeGyw1beCjymKzlpLhuxtxyCXR+nmku3feUeU21JbCTkQLr/Hg== 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=BcNGpIA9Wms87qG8DbgxcJtPGMfsHWxnAX0UM9EW0lA=; b=CyT8fwHErXlVK8vjcQhiR1S/Pg33NmNu1H0NMY8pPvhqwKlYKiVSTRaQdD2D3FaSHuhx7WoI1ZE1YF2s/zq4+880FjOPPQfNTyzbyrIzkg1pfEKwxMaXKTqoLpRfpdWZgUDrP4VMLJrza6CE6Tofs15jTl5sxeHvJJrjgg9HMNMHJAp4o1S102Co/uPNbLzCMxqO8UvD9UmEa1zAk2Fp8QePQjv/SirKWmzXv/CNS6phQm3uSzkqJv8zZkv1T4zu01SPVXe6gyFolaHYn+Dd6PTQv+/Q16QfyxiW3jaonTAtmDhoFKnpAK1//BaxY9yjaxlU5ok+pU1o2NwaKnXU3g== 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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by AM0PR08MB4228.eurprd08.prod.outlook.com (2603:10a6:208:138::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.16; Tue, 12 Jul 2022 14:38:15 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::90e1:2317:2ab:bd1e]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::90e1:2317:2ab:bd1e%9]) with mapi id 15.20.5417.026; Tue, 12 Jul 2022 14:38:15 +0000 Date: Tue, 12 Jul 2022 15:38:15 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org Subject: [PATCH v2 1/2] aarch64: Don't return invalid GIMPLE assign statements Message-ID: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-ClientProxiedBy: LO3P265CA0016.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:bb::21) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 52491f1a-e6a9-4958-bc48-08da64142c47 X-MS-TrafficTypeDiagnostic: AM0PR08MB4228:EE_|AM5EUR03FT022:EE_|DBBPR08MB6154: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: jt11XsRtXyvpIHkCQkZpD0O+mrfJCSr3CQpmmB2j46f2Lz4tZKjXbqrvri6qBaVL0uyLuVjZKP86LwyP39wjite9oe5HaZbXW+HSBatgadqcfKxKzVoa9xYWMCF/2QX5wrKIQN5KLtHHAScX6qCB8+WtmFvRMssaePZ0C7IUcxYPq32jYCf615B+A44ZBtxyth2e7jeTcpr4Fiss2FHfewjIpvqI32xLbz76NuUrjzd8VsMbeHE7DfYUV0r7vp9xgJdbifLJwnb0/gZdHV3+/gRfqbSqmWPFmys2cKgWJDkGg0p7q1TlJ8fKXeQGxueKwnS7QdKy63ZIpefbDngmB2wSPcgZRD304zP2ZyalrIvGimG+v5WldKaFDdzUJt9+wlm5qjuaWUlmprE3EeYDwrxzdEFrAgWyoGB2hXFl3QJAjukGKtJKlGDnzSseDbLQ8mmDKBziJvrSDKixerUIds0DS1qrDPB21XEsHr36p/gHBtEXNX/7zhcaAFWcEKcNV0dZ3tY1uN62tZfDJRJlDF6dW6bT5SERRXB351DzKV5/T5kg9mro8PWLvHyJVSGewgozrnEzP8ZTg/VyJyd++GQMRQRKJC+f77ObvEas1fGaNj8ct8X9yu/xwHb3afg+X4PA4etMZ7LPHmsx4YSX/eIEeB8R7/RFfx7OiY2YFq4ejNLxaoqu9cKfY1wNmvHl2bRVZBAsvEWtyz0HnIEylzzJZPLZgRdC+udERETX0gtsGyzw/DrpsUQe0sgMIke4wFXosFoQ5AloI+ZgI2Y2ec4sxW7XSTYYo7hI4CvS9r6EnMEboscEGP2iuQFRawGNDlm/uw2Y0+hg8KTT3xEXUg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(39860400002)(136003)(346002)(396003)(2906002)(83380400001)(478600001)(86362001)(316002)(6486002)(6506007)(41300700001)(8676002)(8936002)(6512007)(84970400001)(26005)(66476007)(66946007)(66556008)(44832011)(6916009)(38100700002)(5660300002)(186003)(4326008)(3714002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4228 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: AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 53a3aa24-1242-4485-c113-08da64142771 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vYbPuH5Ur4Ji1R9UtDihlm6mNuZrb0Lk51XLCr8ZLsZtuHEoc7oJqj+QeVes8KlKL1hIhnK7carT5ck8e+P/Dru4ulFZhK9/K+7+THchlOxODCyrzmNRLpbXPqeaMsGCVJODWxbvNA+TGD+Hly06iYbyhIIdoY1hEGS8p4MJMPKBfX7sAlqjNKCgeetBO0M+KDMr3M4J9QC1091Z1Bh3c9f7Rhk/FcPxWY7meCxDa89sYiSrghQSWkxJQCOfixbjQK0gNFZxRdnQaxoSvkHZn7M7HY1B5Is9Pgxc+uAG3hjQETawVRr3a3Fxoerg/gMqWbNKoFcGS9PjVRC0dc3UkCITVFsGSNVyXYW/XIFrB/nVEfjAlBRgZc204/KRfLMVMmgkbqOLBQ+l+A3uC4qS3e+0Oh6T5Em27EwIgX845e8EgUW3KfPny/ppejGFRVLfmu2nrQ3f8QWNhmU9mPtaJI638GAU/xSn0T6K5qqXsV1lXD5S4/Lmd+0lduua/0bengGId0d8zGT8N0K2M2xqiyspjI+bj9IqN7Gkvb9GtxalaZOo4HRfjaZUwaDz7fBxrxFi9j224OgE0kFF3CgV8eMTcUpwO6mfDlUf3p+LF05GSZZB+oWUsFq5qOHS1ust52mAB8Sl80BJ+dyZ328NE8rNJCNvpBuU1XdbcKEHM6ze0nVkJt4pMAJ9b3UB8gbBCGJPCjDuUgNAQQb81/ImLftKYsdYUfZOI08qJ9tOZUceLBfIUX3o/WfKSol153JSUQDCaYEDU0jL193ZLQYsuiyzu8cukdqOEkHGY4H6qHZHJRGPPkABLg5cnkG4xelej2zKplMsYa/SFP1RPa3oFU/J+xWK4RbasajKq54fYkTySOA2FaPxnE4YhgKFYK4+ 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:(13230016)(4636009)(376002)(346002)(396003)(136003)(39860400002)(46966006)(36840700001)(40470700004)(8936002)(82310400005)(6916009)(83380400001)(36860700001)(70206006)(41300700001)(478600001)(6486002)(44832011)(4326008)(8676002)(5660300002)(316002)(40460700003)(336012)(81166007)(40480700001)(70586007)(186003)(84970400001)(6512007)(47076005)(107886003)(26005)(86362001)(356005)(82740400003)(6506007)(2906002)(3714002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2022 14:38:23.0743 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 52491f1a-e6a9-4958-bc48-08da64142c47 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: AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6154 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, 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 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-List-Received-Date: Tue, 12 Jul 2022 14:38:27 -0000 aarch64_general_gimple_fold_builtin doesn't check whether the LHS of a function call is null before converting it to an assign statement. To avoid returning an invalid GIMPLE statement in this case, we instead assign the expression result to a new (unused) variable. This change only affects code that: 1) Calls an intrinsic function that has no side effects; 2) Does not use or store the value returned by the intrinsic; 3) Uses parameters that prevent the front-end eliminating the call prior to gimplification. The ICE is unlikely to have occurred in the wild, as it relies on the presence of a redundant intrinsic call. gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE. gcc/testsuite/ChangeLog: * gcc.target/aarch64/advsimd-intrinsics/ignored_return_1.c: New test. --- diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index e0a741ac663188713e21f457affa57217d074783..5753988a9964967c27a03aca5fddb9025fd8ed6e 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -3022,6 +3022,16 @@ aarch64_general_gimple_fold_builtin (unsigned int fcode, gcall *stmt, default: break; } + + /* GIMPLE assign statements (unlike calls) require a non-null lhs. If we + created an assign statement with a null lhs, then fix this by assigning + to a new (and subsequently unused) variable. */ + if (new_stmt && is_gimple_assign (new_stmt) && !gimple_assign_lhs (new_stmt)) + { + tree new_lhs = make_ssa_name (gimple_call_return_type (stmt)); + gimple_assign_set_lhs (new_stmt, new_lhs); + } + return new_stmt; } diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/ignored_return_1.c b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/ignored_return_1.c new file mode 100644 index 0000000000000000000000000000000000000000..345307456b175307f5cb22de5e59cfc6254f2737 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/ignored_return_1.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target { aarch64*-*-* } } } */ + +#include + +int8_t *bar(); + +void foo() { + __builtin_aarch64_ld1v16qi(bar()); +}