From patchwork Mon Nov 29 12:27:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tamar Christina X-Patchwork-Id: 48249 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D96E6387742A for ; Mon, 29 Nov 2021 12:28:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D96E6387742A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1638188892; bh=aNaeQMOVrJRGwE0v/318jsJs1pSLNOeraRZvqvlNVpc=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=dYf7ygcmjPi+Vre+L9c1AowPAZV6dzJ9+2DRyj3CWIrS+jowhdGWEF5EnfH7cFzFe aTk+iCenuLVeipto+Czet1jA45lgwtLqpKDxwKerNjthqJviiebU4u+muvYzBXeDur 2oHqo6vBNld/AqNxES4qJViMbKJfur21VRaM8FkM= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2085.outbound.protection.outlook.com [40.107.22.85]) by sourceware.org (Postfix) with ESMTPS id 36AB03857C6E for ; Mon, 29 Nov 2021 12:27:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 36AB03857C6E Received: from DB6PR07CA0196.eurprd07.prod.outlook.com (2603:10a6:6:42::26) by DB8PR08MB4060.eurprd08.prod.outlook.com (2603:10a6:10:a7::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Mon, 29 Nov 2021 12:27:34 +0000 Received: from DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:42:cafe::67) by DB6PR07CA0196.outlook.office365.com (2603:10a6:6:42::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.9 via Frontend Transport; Mon, 29 Nov 2021 12:27:34 +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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT058.mail.protection.outlook.com (10.152.20.255) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 12:27:34 +0000 Received: ("Tessian outbound 157533e214a9:v110"); Mon, 29 Nov 2021 12:27:34 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d38d06e2d50f6520 X-CR-MTA-TID: 64aa7808 Received: from ea03c6a8d93f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F2F170BD-C14B-4824-88C0-DBDF17112906.1; Mon, 29 Nov 2021 12:27:26 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ea03c6a8d93f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 29 Nov 2021 12:27:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E5oNGcf9jRGDq+6zOvUo3RkZ6gKZ8VW7JxJ1YdT2u5jKCnyLNlGoPUlHH8GdWh5VEKbFumB8gRXQd+vQqyVNzaxacN/DyL4VY9VQNMfLZyMJObE8oEsA/E+rqTe6yQBoYuB3Ca/3ldG1Qumw2Ychor7Bxh8UmFhcg75fSdZgE/+v/rVT061lEOUPfRYXidES+akgZm6tx9kreOoVpa3DjbFfDGErBHbquU12Kc0muK2a8nFdInoJ1ZsKE83eDBCbW9NgCupTQ/M1XdFBitQel/kqJ6CbrMF/33iwgcPY1773H13H9AU8SjJMT/6Uf41Jhhs25Bn6GIjtztMPly912g== 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=aNaeQMOVrJRGwE0v/318jsJs1pSLNOeraRZvqvlNVpc=; b=oLyhjVEPa3+DFLXpMHqrT8fqBwb4bZstaEkOGrY9bWTl2SYmE+MRKnjduSmiki9rjUnsilJpyLzQPfnfaYR2/GzBr80exHs5G3H+S6ZyZ9bdUL0uXcXWfrLvzalDlPSt8xmNZwcZrN0G8384mhGvDcsUx2bJNl9oKzgM90uFeudzhAVYIFRzxHatiqLbj08fG6iIxUpkAx5ucptg0kutH9o9cqY0cSaMwXMqg2e+fVqNz1Za8mcEm9xgMq4dtdRtbWLZPEFl8lOTP+vBq/6IrZygLdUkYetFsgMo3gCPO1JqWHiquhIp4ibWh99Pj1qtgh8c6sJETjafyWd3S/w5RQ== 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 VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR08MB4256.eurprd08.prod.outlook.com (2603:10a6:803:f1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Mon, 29 Nov 2021 12:27:24 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::12a:3d2c:81ff:8fcc]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::12a:3d2c:81ff:8fcc%8]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021 12:27:24 +0000 Date: Mon, 29 Nov 2021 12:27:22 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH]middle-end: move bitmask match.pd pattern and update tests Message-ID: Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: LO2P265CA0334.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a4::34) To VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) MIME-Version: 1.0 Received: from arm.com (217.140.106.55) by LO2P265CA0334.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a4::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 12:27:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05a4d916-b315-42d9-414c-08d9b3339f16 X-MS-TrafficTypeDiagnostic: VI1PR08MB4256:|DB8PR08MB4060: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:3276;OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: cLBY5gKvX1uwU89tMoH30w46cAvEZp0+0SJzhv4nQCC0mANyeKr+jn/dVqKMp8jTfUryYtIDLTfauz2NfsMY/ZDikTTkvvsNabt36xSWs13qd/rw8v0OmUCqMsLzJMx5lZj9kWUqjnvK8otY1RPI4yE7l5QUpxQ0e/DnKCNBKBatNS0S8p8aE2pO81XSMWwMs37IzwHJnGJmtxDnMl8THgW7J9V13wKaPfMFXo8Rtrfsgf0/NWBTtl0MJaoiv9g49IjJY5ZbHkR7AyZeTO5QEIU3R0qbxKAxiwG4uQ1Is+dRI7w3m8zRvNdluMmfG5DBWSxXvGiBHmyYbZyeSE4p/GIRE/M2zXXpwKivCBYPAC7pnPmX8176LWBarniuhH77E7UueFSp8YiAoEss1bGFuuUPWiT+tok1ubq19qk1DtX5UMHTa87sHc1rBR5p8KZBTWkaihNWndZFe4W7PkXKlVXO6S8wm2gf1E0O6kAXtjFgWarEz3UuPUyvMtmZasa4LGPAdf79a0m1m0Rpceuw6nVIJZHF3Fs72yt9gQH8LKSIoRu3jr1IeePB5mmUWfe3qOIPpK+eC/SkZ5Fy4C1fSjLkYh0D1cKx+sxw4ns1GmF/1hRiNgdMHk7m+51hN2aNX1p/SAH0FCM2icnodwP8KunYG0LwWr40PRGCGJ66ztd2ZTomYM+iiC4YpbuAZDLAO6yAVjVKlFSv6Ng8mQFJR8XGwGnVO2uPEug7DzDVCdOmpYj+xu+8ryuTVPE1o9wU3vXZd15qIX+4gAjuWn4PO6mlr+/AA6U7JBViWNKF1I7rLoceNnFx9VAo5yyH+OCQlD4VOGbs25/eyAoyKPAtzzGiXU3lX/j6ljKyo3ISH2jkJ8XgYzfky/I+vM/XbTjc 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:(4636009)(366004)(7696005)(52116002)(956004)(83380400001)(33964004)(2616005)(44144004)(66946007)(86362001)(2906002)(8936002)(8676002)(6916009)(8886007)(44832011)(66556008)(66476007)(84970400001)(316002)(5660300002)(30864003)(235185007)(186003)(38350700002)(4326008)(36756003)(55016003)(38100700002)(26005)(508600001)(4743002)(4216001)(2700100001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4256 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: DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 32dcadba-cd3a-40ec-59b6-08d9b33398f5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kc9zPY34SEs4kayrI2w9kzv4aQ+lFSVjlqlZgy2qwPfdAYWELmaClH2kgnbBcABJ87ahJyg1yEsOdhqf3YBzy32GTAjD2cl74eJdr9wUVhGobQpXRUOxRwwdpRcBGsQNMDlRMG1ThLXBS7Jn4mRUU/MEsIXhkeRMqTLRlU12E/E+0ZiYr18kog4YUANAiU1ND4RX2lrWeRLn5nwb//XJ4KCHsQZduOkjAKGXhuyXlhbS0iOZYN1vWTLsYzC+ehvs9xuGXx+ri2yUaIVzJVcHMJTL8T5vBZg7v6iOzKe/CQaoLD5Vq/+t9btYM2+I599R+BvoKRWJ33pRkPk1htQRJAfM4sRJa+ExlbuO+Rx0RPEcdAFpaPAhWzdWVuAF+ejlM3wH2n7KGwxD4Z8K+8HR1MgK6jiEkUiBrtiVW5NYwb4O6yL/CeyFQS7UmZ/vkL+75dDuVbJp0rZcynO2T0ORy1HRGbLuewixDrbk3MvMl2n9KAROPxqXjjjIMuE1XdmOMcLBi9y9yhO4ufDYZw7BopJZk4RiKQdnzjS4qHPbgYKiq+tVoJZ3AzymE220od/DJnTxNQ84AnXXul/EAqEwYcU+8TW91z2qZ3tAPxg/RHi9SyezE4nzethg9LCpDtKFWUv9ZZ+u5dYgvurKYAX0GCj+KIFD4upUfEbwYYLkUAUfyHpxeTQU/zNNg0ifETwsNZrBP4yflgEajBxPMD8QVg8SzBFXquGOD71J4EQerzN7v7huafEP6gg7L8VMQqrbMMCQqmbV/JjUvRNeRh3KqZnfcf3ylG+pgra6XdQJDGIM7byz7UUoe0HpX2Iq8qdxe3GTIVythRVngOX/c5X2ZJqI8KwQ7WmaY7X76nwsqd5qISEGH9OYJAa8Rydffi3b 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)(36840700001)(46966006)(36860700001)(26005)(508600001)(8936002)(8886007)(186003)(81166007)(2616005)(235185007)(84970400001)(316002)(83380400001)(2906002)(44832011)(956004)(82310400004)(30864003)(356005)(336012)(55016003)(5660300002)(7696005)(4743002)(33964004)(44144004)(4326008)(107886003)(36756003)(70206006)(70586007)(47076005)(8676002)(6916009)(86362001)(4216001)(2700100001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 12:27:34.3285 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 05a4d916-b315-42d9-414c-08d9b3339f16 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: DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4060 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Tamar Christina via Gcc-patches From: Tamar Christina Reply-To: Tamar Christina Cc: nd@arm.com, rguenther@suse.de Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi All, Following the previous bugfix this addresses the cosmetic and test issues. The vector tests are moved to vect and the scalar are left where they are. Bootstrapped Regtested x86_64-pc-linux-gnu and no regressions. Tested with -m32/-mno-sse and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: * match.pd: Move below pattern that rewrites to EQ, NE. * tree.c (bitmask_inv_cst_vector_p): Correct do .. while indentation. gcc/testsuite/ChangeLog: * gcc.dg/bic-bitmask-10.c: Moved to gcc.dg/vect/vect-bic-bitmask-10.c. * gcc.dg/bic-bitmask-11.c: Moved to gcc.dg/vect/vect-bic-bitmask-11.c. * gcc.dg/bic-bitmask-12.c: Moved to gcc.dg/vect/vect-bic-bitmask-12.c. * gcc.dg/bic-bitmask-3.c: Moved to gcc.dg/vect/vect-bic-bitmask-3.c. * gcc.dg/bic-bitmask-23.c: Moved to gcc.dg/vect/vect-bic-bitmask-23.c. * gcc.dg/bic-bitmask-2.c: Moved to gcc.dg/vect/vect-bic-bitmask-2.c. * gcc.dg/bic-bitmask-4.c: Moved to gcc.dg/vect/vect-bic-bitmask-4.c. * gcc.dg/bic-bitmask-5.c: Moved to gcc.dg/vect/vect-bic-bitmask-5.c. * gcc.dg/bic-bitmask-6.c: Moved to gcc.dg/vect/vect-bic-bitmask-6.c. * gcc.dg/bic-bitmask-8.c: Moved to gcc.dg/vect/vect-bic-bitmask-8.c. * gcc.dg/bic-bitmask-9.c: Moved to gcc.dg/vect/vect-bic-bitmask-9.c. --- inline copy of patch -- diff --git a/gcc/match.pd b/gcc/match.pd index e14f97ee1cda805f4e416a236de0d1770e9c933d..10a47e941529fdb25898f421b780a035dd8f8eff 100644 diff --git a/gcc/match.pd b/gcc/match.pd index e14f97ee1cda805f4e416a236de0d1770e9c933d..10a47e941529fdb25898f421b780a035dd8f8eff 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -5213,20 +5213,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (eqcmp (bit_and @1 { wide_int_to_tree (ty, mask - rhs); }) { build_zero_cst (ty); })))))) -/* Transform comparisons of the form (X & Y) CMP 0 to X CMP2 Z - where ~Y + 1 == pow2 and Z = ~Y. */ -(for cst (VECTOR_CST INTEGER_CST) - (for cmp (eq ne) - icmp (le gt) - (simplify - (cmp (bit_and:c@2 @0 cst@1) integer_zerop) - (with { tree csts = bitmask_inv_cst_vector_p (@1); } - (if (csts && (VECTOR_TYPE_P (TREE_TYPE (@1)) || single_use (@2))) - (if (TYPE_UNSIGNED (TREE_TYPE (@1))) - (icmp @0 { csts; }) - (with { tree utype = unsigned_type_for (TREE_TYPE (@1)); } - (icmp (convert:utype @0) { csts; })))))))) - /* -A CMP -B -> B CMP A. */ (for cmp (tcc_comparison) scmp (swapped_tcc_comparison) @@ -5713,6 +5699,20 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) replace if (x == 0) with tem = ~x; if (tem != 0) which is clearly less optimal and which we'll transform again in forwprop. */ +/* Transform comparisons of the form (X & Y) CMP 0 to X CMP2 Z + where ~Y + 1 == pow2 and Z = ~Y. */ +(for cst (VECTOR_CST INTEGER_CST) + (for cmp (eq ne) + icmp (le gt) + (simplify + (cmp (bit_and:c@2 @0 cst@1) integer_zerop) + (with { tree csts = bitmask_inv_cst_vector_p (@1); } + (if (csts && (VECTOR_TYPE_P (TREE_TYPE (@1)) || single_use (@2))) + (if (TYPE_UNSIGNED (TREE_TYPE (@1))) + (icmp @0 { csts; }) + (with { tree utype = unsigned_type_for (TREE_TYPE (@1)); } + (icmp (convert:utype @0) { csts; })))))))) + /* When one argument is a constant, overflow detection can be simplified. Currently restricted to single use so as not to interfere too much with ADD_OVERFLOW detection in tree-ssa-math-opts.c. diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-10.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-10.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-10.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-10.c index 0d0416028ebe5d5d16c03cfec357b3aad31703c7..fe4f677b64dc96862683faf503eb4900a01e7407 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-10.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-10.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -18,7 +18,7 @@ void fun2(int32_t *x, int n) } #define TYPE int32_t -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump {<=\s*.+\{ 255,.+\}} dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967290,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-11.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-11.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-11.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-11.c index 0e589c96290286f02cddc27f33f25f0f7b3bb028..b77f4d42450fe6496d277a4429f0e051f5178781 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-11.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-11.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~255)) != 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump {>\s*.+\{ 255,.+\}} dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967290,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-12.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-12.c similarity index 89% rename from gcc/testsuite/gcc.dg/bic-bitmask-12.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-12.c index 50eb563f3b1a556019a33b4c23c588215268976d..30d36f452014cdb90eeccf6eb7f0a4cd6d8f8234 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-12.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-12.c @@ -1,5 +1,5 @@ /* { dg-do assemble } */ -/* { dg-options "-O3 -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -fdump-tree-dce -w" } */ #include diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-2.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-3.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-2.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-3.c index 59ba9a414ae6455e5b4934861c66150207718b89..58c0b9254badc2aeae01bd181a60830ed3eba44a 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-2.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-3.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~255)) == 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-times {<=\s*.+\{ 255,.+\}} 1 dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967040,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-23.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-23.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-23.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-23.c index b41651b962f12f0926783ce336b427fd6d07831e..67119d32f751fa107b5d4927809e122c1bcbf3ef 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-23.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-23.c @@ -1,5 +1,5 @@ /* { dg-do assemble } */ -/* { dg-options "-O1 -fdump-tree-dce" } */ +/* { dg-additional-options "-O1 -fdump-tree-dce -w" } */ #include diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-3.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-2.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-3.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-2.c index 59ba9a414ae6455e5b4934861c66150207718b89..58c0b9254badc2aeae01bd181a60830ed3eba44a 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~255)) == 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-times {<=\s*.+\{ 255,.+\}} 1 dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967040,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-4.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-4.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-4.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-4.c index 7e0614d458ca80e3abb847108a419e1d183495a2..6e2da41bac127d82a6a83f3e99c6f68b77ac2b42 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-4.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~255)) >= 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-times {=\s*.+\{ 1,.+\}} 1 dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967040,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-5.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-5.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-5.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-5.c index e71b17d12727e943726a163240da4914beb181f1..5ef0f46c0b1709db633d3aa801cd7211baef31ef 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-5.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-5.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~255)) > 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-times {>\s*.+\{ 255,.+\}} 1 dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967040,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-6.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-6.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c index a48a226efc15ca6d56146e8fe7f4e6ff8bfaa632..22e5f885bebea9a141e9ffdd0ea7276a5a9046aa 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-6.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~255)) <= 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-times {<=\s*.+\{ 255,.+\}} 1 dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967040,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-8.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-8.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c index cd06e0ce7be1bca568c76532575fded1e13e979e..edff5428c5455f3b6597f561b53948ad21be05ad 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-8.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~1)) != 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-times {>\s*.+\{ 1,.+\}} 1 dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump-not {&\s*.+\{ 4294967294,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/testsuite/gcc.dg/bic-bitmask-9.c b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c similarity index 86% rename from gcc/testsuite/gcc.dg/bic-bitmask-9.c rename to gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c index 3d88b74787ad4320d34e424fc08f952f9ff00c98..319d80e672f231e4a96d4d22bc68f6b9ea464a74 100644 --- a/gcc/testsuite/gcc.dg/bic-bitmask-9.c +++ b/gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -save-temps -fdump-tree-dce" } */ +/* { dg-additional-options "-O3 -save-temps -fdump-tree-dce -w" } */ #include @@ -17,7 +17,7 @@ void fun2(uint32_t *x, int n) x[i] = (x[i]&(~5)) == 0; } -#include "bic-bitmask.h" +#include "../bic-bitmask.h" /* { dg-final { scan-tree-dump-not {<=\s*.+\{ 4294967289,.+\}} dce7 { target vect_int } } } */ /* { dg-final { scan-tree-dump {&\s*.+\{ 4294967290,.+\}} dce7 { target vect_int } } } */ diff --git a/gcc/tree.c b/gcc/tree.c index 910fb06d6f551947fae235b99a4cd88bd84e3c85..94350f9c73d9b7f9d38c44e297356882faa9f5de 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -10306,22 +10306,24 @@ bitmask_inv_cst_vector_p (tree t) tree ty = unsigned_type_for (TREE_TYPE (cst)); - do { - if (idx > 0) - cst = vector_cst_elt (t, idx); - wide_int icst = wi::to_wide (cst); - wide_int inv = wi::bit_not (icst); - icst = wi::add (1, inv); - if (wi::popcount (icst) != 1) - return NULL_TREE; + do + { + if (idx > 0) + cst = vector_cst_elt (t, idx); + wide_int icst = wi::to_wide (cst); + wide_int inv = wi::bit_not (icst); + icst = wi::add (1, inv); + if (wi::popcount (icst) != 1) + return NULL_TREE; - tree newcst = wide_int_to_tree (ty, inv); + tree newcst = wide_int_to_tree (ty, inv); - if (uniform) - return build_uniform_cst (newtype, newcst); + if (uniform) + return build_uniform_cst (newtype, newcst); - builder.quick_push (newcst); - } while (++idx < nelts); + builder.quick_push (newcst); + } + while (++idx < nelts); return builder.build (); }