From patchwork Wed Jun 3 08:51:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Souradipto Das X-Patchwork-Id: 136361 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A86B74BA2E1C for ; Wed, 3 Jun 2026 08:57:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A86B74BA2E1C Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=szGNbOJa X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by sourceware.org (Postfix) with ESMTPS id D7AD94BA2E0B for ; Wed, 3 Jun 2026 08:54:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D7AD94BA2E0B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D7AD94BA2E0B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::62e ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780476864; cv=none; b=UIpTDCVEJ+7uZqd4Fi4SEeUMDNsGJmOgWX7uZFqmoV+mhT3K1eo4lJScGXaf40HDZLK/cFUFJFJB79RUUNBkksONTNImCWhRBZoK0jtlz9GOiHkZgaBqd/cD85p1PynMjRBZT95Tg9k4OQnvbLglIpA0pVq34gYqi1yI+qCRGcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780476864; c=relaxed/simple; bh=oTvaSKB/f3wlkv17gByDCV3yRKokPWSoJVTN+v2Qp7s=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=OscIQmvJYpv0MAvJr9DPWKX+M/kLN2SVbRPVnAupNLd55kvpGngWYwSiVbYEo5QOD+2NZPP6mrsmpRKCTOC7Z+8r1Yr/1pO+2VzvLMkUoyeRbwPig6G5ANH1eAMUCdBsR3Yqzlq/s4L+/LpRcdbCcCdEeStE0gbJHWDHPFZKsNI= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=szGNbOJa DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D7AD94BA2E0B Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2c0c379e8ffso23966935ad.3 for ; Wed, 03 Jun 2026 01:54:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780476863; x=1781081663; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kw4Q+RkZAVzpgWproyx8HvJb0WggU/IiUqSQh7nSYCQ=; b=szGNbOJaCJNu/JKwHeXxle52IP78kVcnn07C/bPWVGzxdfo6QXgqwQycLx47nYZLV2 UwF8agwutnuxXw/ZGDLJAahenrxJHHThjtON+zqeruKpr3X5pSNQPqetgjN9nUYXotIE EC+qY8PDJf5to/Sl9IFSZIuwc/i5GmfRtzCBK+1Jl7qhJIaBraOremkiLvgknfmDj1bh 48KSB8CWJTtyKORe0G8iT0Sr1mknZmM1sO57GgJD9gqFkgfSdgg9Km815Lzxz8XHlkF3 Cy+L4vjEukrtVOSR0Eg2cJdshtXiIIGkI+GBaha7R5Dg1hLQVonbCSOe/08PPrp1vDtC +t6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780476863; x=1781081663; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kw4Q+RkZAVzpgWproyx8HvJb0WggU/IiUqSQh7nSYCQ=; b=jYGuYaCEqXXXXe5Iy6/2I41bV0yqV/7zK4/gbDTgdmyP9+mnmsN6wZTsGyo3Ny3ZdS DflQPR7Kk5lnmwYEr/gnfMt8x/xOk6GLpEaQ0v3xXMQmgw9etCR3U6JQbQOo9jOFelvh IddQbXd3CgN37luuPaml//tJ+D7yWiaQJR5t4fvp5pEaphC7HSzLuhVK8pEdrl2G2COU jb2+JuIFm+ZB/Si168CUoHiiWgdigJ9bzyd6ebneaZUcCnzT6ehWIoWyG59UYuSYeYSi Bl3l2Evq9sNnPYYurSTwIK6yyha4uVR2WNGyqk7Gzw0nuJGCvgTSlv0CgNlQ6NBiIDe8 nEiQ== X-Gm-Message-State: AOJu0YxvRfdpGaOVXrClo7GuN7BzBzhxzvsDkE2ZQ1HHMYPsHqHyxuIT OjXS3ALpJxN+1MLs1HciTMSo8VWfUiY7GHmsb6xMRKK4VCfV/DdlhOVfvI+Gzw== X-Gm-Gg: Acq92OFN+v24blGSRMsjfO7omSDPALCpDxi1guXlH/4nt0zMutkdgwr8Khkk7FqpnMA LMlAXts5qeLkYlpJz67JMOZfD99M8ULNeIZTfbCjjLiJIr35hmsneSVSZqEUbffKGlfD18glT/n WoNYWT3Vt2ftVyHUDmlJqffIA2E1bprGJw3B4XWGb1V1lkayhRpmjXTic6sc0e89/u4HXK11VG3 LwFTtLaZMm3N+cwoVUxxjYBSRQuG3jT5Fgz2HTQsgj5S/dv5f/v0zb4PT6vdSXaZs/0olqAsEQn 4hrLDKN9QnvcjIw0NliR3i+iRxBE84c5DpJV4+S6KeaP0m9j67IQqtpX/WFsCt629ijnIuuYfYm s5HCqws30BdO3xFEKIpUGKdIXyVSO62MJD9cFNesNsjKcWzi3Uz9Iy5e5UYp5kO7gyxa8yB6fD/ Tt09uQYxaXDPjTznH/AYDgrzcDPAxkd6eeAbZ9SL9FV3cBQ03H2c8zcdrz4YInLnyhqfd3X3nxX Ks= X-Received: by 2002:a17:903:1b64:b0:2c1:13b5:6c24 with SMTP id d9443c01a7336-2c163d85f20mr24404465ad.20.1780476862838; Wed, 03 Jun 2026 01:54:22 -0700 (PDT) Received: from souradipto-das-Latitude-3460.. ([2405:201:8011:1c:e37a:5be2:3347:daa8]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c16649ca4dsm17533045ad.76.2026.06.03.01.54.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 01:54:22 -0700 (PDT) From: Souradipto Das To: gcc-patches@gcc.gnu.org Cc: andrew.pinski@oss.qualcomm.com, Souradipto Das Subject: [PATCH v2 1/2] tree-optimization: Add bitop reduction simplifications against zero Date: Wed, 3 Jun 2026 14:21:07 +0530 Message-ID: <20260603085303.7353-2-souradiptodas6@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260603085303.7353-1-souradiptodas6@gmail.com> References: <20260603085303.7353-1-souradiptodas6@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This patch introduces a simplification rule in match.pd to reduce bitwise expressions against zero. Specifically, it simplifies patterns where a variable checked against zero is combined via bitwise AND/OR with a compounded bitwise OR check against zero. PR tree-optimization/125442 gcc/ChangeLog: * match.pd: Add simplification rules for (a == 0) | ((a | b) == 0) -> (a == 0) and (a != 0) & ((a | b) != 0) -> (a != 0). --- gcc/match.pd | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gcc/match.pd b/gcc/match.pd index 8a2de136e..4a2f9a784 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -6660,6 +6660,15 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (simplify (bitop (neeql @0 @1) (neeqr (bit_ior @0 @1) integer_zerop)) { constant_boolean_node (bitop == BIT_IOR_EXPR, type); })) + +/* (a == 0) | ((a | b) == 0) -> (a == 0) -- PR125442 + (a != 0) & ((a | b) != 0) -> (a != 0) -- PR125442 */ + +(for bitop (bit_and bit_ior) + neeq (ne eq) +(simplify + (bitop:c (neeq@2 @0 integer_zerop) (neeq (bit_ior:c @0 @1) integer_zerop)) + @2)) #endif /* These was part of minmax phiopt. */