Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2230785/?format=api
{ "id": 2230785, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2230785/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260430041056.2722022-1-andrew.pinski@oss.qualcomm.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.1/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260430041056.2722022-1-andrew.pinski@oss.qualcomm.com>", "date": "2026-04-30T04:10:56", "name": "match: Simplify patterns for `a != b` implies a or b is non-zero", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "af4b83163489f960bc8343041b337a94d7b01a53", "submitter": { "id": 91428, "url": "http://patchwork.ozlabs.org/api/1.1/people/91428/?format=api", "name": "Andrew Pinski", "email": "andrew.pinski@oss.qualcomm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260430041056.2722022-1-andrew.pinski@oss.qualcomm.com/mbox/", "series": [ { "id": 502182, "url": "http://patchwork.ozlabs.org/api/1.1/series/502182/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=502182", "date": "2026-04-30T04:10:56", "name": "match: Simplify patterns for `a != b` implies a or b is non-zero", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502182/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2230785/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2230785/checks/", "tags": {}, "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=kDqlLziN;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=H3kFkeLI;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=kDqlLziN;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=H3kFkeLI", "sourceware.org; dmarc=none (p=none dis=none)\n header.from=oss.qualcomm.com", "sourceware.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=205.220.180.131" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5gj50N2Fz1yGq\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 14:11:37 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 1077E4BB1C14\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 04:11:35 +0000 (GMT)", "from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n by sourceware.org (Postfix) with ESMTPS id E7DAB4BB3BE9\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 04:11:06 +0000 (GMT)", "from pps.filterd (m0279871.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63TNvTX93733909\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 04:11:06 GMT", "from mail-pl1-f199.google.com (mail-pl1-f199.google.com\n [209.85.214.199])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4duv3x8qjj-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 04:11:06 +0000 (GMT)", "by mail-pl1-f199.google.com with SMTP id\n d9443c01a7336-2b2e8bba2e6so5708145ad.1\n for <gcc-patches@gcc.gnu.org>; Wed, 29 Apr 2026 21:11:05 -0700 (PDT)", "from xeond2.wrightpinski.org ([98.97.39.154])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b988772e9csm37116995ad.9.2026.04.29.21.11.02\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 29 Apr 2026 21:11:02 -0700 (PDT)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 1077E4BB1C14", "OpenDKIM Filter v2.11.0 sourceware.org E7DAB4BB3BE9" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org E7DAB4BB3BE9", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org E7DAB4BB3BE9", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777522267; cv=none;\n b=lRbtfU4kZP+sS5hHTlQn0qVXUFOJwhPP1DlOmheasBDJ2lUCuA112ljprjkfUDdRRw0G/VgoQ7bGJc4Tch7O200H7DHeiWB6S1PlDo4ODRee0GsXIBs/1qEWDwkXHIczNtDZwPcLi7TcIeFJIn3uBOGQN36CUziWjDctiWuMBDk=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777522267; c=relaxed/simple;\n bh=oDWNS+jcisTyajj+VhE5H+prCq1X1zrl5jwp8HZFvQM=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=jfIRs1lch3MxhS/EmbpLOvv2BOkuEsL+JLi6glrY55H5PlLBKpNWO8O36ecA7tvZNMkyZUHqwAYJTEFJ3ieCqyWD+uOBprKuRK8c0xNfIp79Pqku1o6ZXDNa5VdD+o3PP31FK3geCxCsD5el9EEFguJUAcPQawUanbEQPL3JSkQ=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:date:from:message-id:mime-version\n :subject:to; s=qcppdkim1; bh=mvukag+oGlCm7dBUjzjJz8DLEeAPkPyTZ9K\n o5EcHwWQ=; b=kDqlLziN9scAAHDCXu58cFsGLCyGleEiPvo9iDtVPQfME6ZSwUf\n 09hn3GrD+4392NaNpRHX/pDmHxN1Wgjwvp44vRZ1wA58Xu0Zr57+s3q2etpwvCSf\n IDfkDuv/aY59N+tLpkZbRIEyg7UGiohcqtRcveeqcWRTbyoG2q8jsH0ejEFhZDBr\n QkA3KU8sO91EN+3wg9TEcyUKSzjDtdvFt/sYxfvlT04JtpK3wCVceD4+0+qHjskF\n H2X9EupkaYxKPaPJNFMKGM5yZZIEJO9vzFK5Q5G9n7icoCzA0VudHu4qErr+ZR2l\n PCrncfh2fjXftUDC//akCluUlm0IgRGDWQw==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1777522264; x=1778127064; darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=mvukag+oGlCm7dBUjzjJz8DLEeAPkPyTZ9Ko5EcHwWQ=;\n b=H3kFkeLIC06UBr++X3su23gqcrFw7xsapvJfUfCri2If5yteDmDiGPtPa4cUuSG4x9\n UdMR/Y2J9DHcyJuwL2ScnQl6+2HQACNInWi0D/QIRCcbdQZ8k7e7e/PkQReFirgDiWBn\n 8JiuuM+g2rJy7BfjUey/bbQRfHfkF0JIbjkkA2JVOL2L7KlSg9rIE28Pirm1PI6e2plU\n aBlCJcQuH1oKuWBkHX+STwIFkqoilinpxFFcf94AjHsK1/IWz8jOQz7zxlOrEiZXJkdt\n 4VddNlYVqOKqdN4Mk2iPThA/lXJ3UX9l5bYilF5tiFQh2A+r7/nVHqTQS/V1hr//hmlL\n mW3g==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777522264; x=1778127064;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=mvukag+oGlCm7dBUjzjJz8DLEeAPkPyTZ9Ko5EcHwWQ=;\n b=McoGHa4IUStfhxxmeF1AT2nT7Rtyo8f4dRQVtUeIa/O5b+kArbjuKJnBnI8sAIeQ/x\n wI+EsDx4Z1iY1NCuyjYpB/wf5o6NTJXLvkzWemDQdko1FsRq3fXAppbo8XlNwgNk5rEZ\n XwxZdUPZGL8HeTiMa7yFDIV509SijRtgsXsBIdX/SlKBSKZxaZu5sw+04gOqTCNzgUbF\n i/maBhV1hFJi4AqHX5nJUpS1iX+KNIPHLS4toyRO6PiXxwVH6lA9A6za41NNbEYpqmGc\n PVx1qmE0QuYDvQ4jBMpIu92hQ8RRkEB+IK8uhWnRWm1wJBX8gRPS/tFxK166eOChrWuL\n eXgA==", "X-Gm-Message-State": "AOJu0Yz57lcW07ndYI5wLFLLBI5LhZ1VmxUc1eWjz6oIkkoxmuqhYEQl\n V5NbvDF+dtPmEQ5vXHMg0v0vxZ347jAzWNutsX/GOgdjz6n0pfSUPjW89Dgd6Gu69QhDXj48GyU\n Vvh4aStHRJoPwdp3EVSUG+ufE775M8WNPs1zx69x2U6aZ4VTuMfSD2k+2becGmAIHdkfU", "X-Gm-Gg": "AeBDiesGEA/9NoTGqCqBaxWZeBa/dMypMnezISDe1/91MRfA6lncWpkmdkmQlibh/fL\n JEAUl3XqwH+EUlTXNx2IVcxTX4M88o0ntbAA9iRAUELD1u9TJSBlSrl+tLFuz35Gb9XndfhcUTQ\n cM8r9HH1v9JXhl8sDJpuq3+mqnAwkO6ljAEY+OJptnN6cNnK75k8hNG0we9emiq6qZdFLvshlFs\n q15trg1fjYpCXWs/mulwGQRdcF5hsOKiHZWaqMrUZtLRJr88ZIBV63FIcdVfET9ZkrJOSB25mox\n VBqbX6CUPLu4XS8RGvHulLSRYS+4M3C1ZJ97VDNv9xRB22MntUlaGvtft0pJiJGIwOV1Y0lVB2v\n FxPxAR3hYmbZ3FEnwdZpBOtB6lqL3QZDGfE96bCj5NLSRa4QKqjr3+HjHBNA=", "X-Received": [ "by 2002:a17:903:3b8f:b0:2b4:59d4:9a with SMTP id\n d9443c01a7336-2b9a230b352mr14099355ad.2.1777522263763;\n Wed, 29 Apr 2026 21:11:03 -0700 (PDT)", "by 2002:a17:903:3b8f:b0:2b4:59d4:9a with SMTP id\n d9443c01a7336-2b9a230b352mr14099085ad.2.1777522263287;\n Wed, 29 Apr 2026 21:11:03 -0700 (PDT)" ], "From": "Andrew Pinski <andrew.pinski@oss.qualcomm.com>", "To": "gcc-patches@gcc.gnu.org", "Cc": "Andrew Pinski <andrew.pinski@oss.qualcomm.com>", "Subject": "[PATCH] match: Simplify patterns for `a != b` implies a or b is\n non-zero", "Date": "Wed, 29 Apr 2026 21:10:56 -0700", "Message-ID": "<20260430041056.2722022-1-andrew.pinski@oss.qualcomm.com>", "X-Mailer": "git-send-email 2.43.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDMwMDAzOSBTYWx0ZWRfX8vxNb4yiMAPS\n LG3CvkC2Dx+TRDgcT1V2SSI4C62dn2Im8dGeMjutJFCvVYAOw4Do4wbQoVknEMU3yHCpTiO5YW/\n 1IL4StQMs2atfWKFRB9pzMa6hjzUOMVXYTSR7pEZXidXC1gCk2ovRgYWM8ncTllEp84oiiAGZzW\n WM7mnoHbMWPqtkNBFcQ/VJXhyJtpefIsMylNp/R4Nx9CuNL1czQo5IJEFeQa+4PaxgQb5yvfOmi\n QZcq1+mIQWc5hqR4nwthrvZT8VSrwEV7BsDBCpEVV+kBnUGqKQTENS051gHmBtZne31eCuruK6X\n HimXr8I6Ec+qbuKhGqoa2KXAb79GD8GyHBB28suV3Azwp5sUq904XnyFT5gZG6DBRUnDlp5aQEK\n KsxfGw9KkiV/4ddxP9fjHo7RVIMPAyxC/VY95qXzdXuEGsGYvLEsBifzNo7yMgjZGan17jlhE9L\n tre/VO4KCbyG/4EqmUA==", "X-Authority-Analysis": "v=2.4 cv=Oc2oyBTY c=1 sm=1 tr=0 ts=69f2d65a cx=c_pps\n a=JL+w9abYAAE89/QcEU+0QA==:117 a=PeT0JO4ISAhwW8zcdsH4sA==:17\n a=aYUD3ZXR9-_u2nEV:21 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22\n a=EUspDBNiAAAA:8 a=cQI928NZy9K7dY8Q7gwA:9 a=324X-CrmTo6CU4MGRt3R:22", "X-Proofpoint-GUID": "D-oZVArevRGJ-GqSZ6Ngz-A3S6ezQMo6", "X-Proofpoint-ORIG-GUID": "D-oZVArevRGJ-GqSZ6Ngz-A3S6ezQMo6", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-30_01,2026-04-28_01,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n clxscore=1015 spamscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0\n impostorscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 adultscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300039", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "This simplified the patterns by using a for loop. Also noticed\nthat the `:c` on the inner ne/eq is not needed as it will match\nthe same canonicalization as the inner bit_ior too so removes that too.\n\nThis removes a little more 300 lines from the generated gimple-match*.cc files too.\n\nBootstrapped and tested on x86_64-linux-gnu.\n\ngcc/ChangeLog:\n\n\t* match.pd (`(a !=/== b) &\\| ((a|b) ==/!= 0)`):\n\tSimplify patterns using for loop and remove the `:c`\n\ton the inner ne/eq.\n\nSigned-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>\n---\n gcc/match.pd | 40 ++++++++++++++++++++--------------------\n 1 file changed, 20 insertions(+), 20 deletions(-)", "diff": "diff --git a/gcc/match.pd b/gcc/match.pd\nindex df960a0cf29..62c43b31117 100644\n--- a/gcc/match.pd\n+++ b/gcc/match.pd\n@@ -7068,29 +7068,29 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)\n #if GIMPLE\n /* Given two integers a and b:\n (a != b) & ((a|b) != 0) -> (a != b)\n- (a != b) | ((a|b) != 0) -> ((a|b) != 0)\n- (a == b) & ((a|b) == 0) -> ((a|b) == 0)\n (a == b) | ((a|b) == 0) -> (a == b)\n+\n+ (a == b) & ((a|b) == 0) -> ((a|b) == 0)\n+ (a != b) | ((a|b) != 0) -> ((a|b) != 0)\n+\n (a != b) & ((a|b) == 0) -> false\n (a == b) | ((a|b) != 0) -> true */\n-(simplify\n- (bit_and:c (ne:c @0 @1) (ne (bit_ior @0 @1) integer_zerop))\n- (ne @0 @1))\n-(simplify\n- (bit_ior:c (ne:c @0 @1) (ne (bit_ior@2 @0 @1) integer_zerop@3))\n- (ne @2 @3))\n-(simplify\n- (bit_and:c (eq:c @0 @1) (eq (bit_ior@2 @0 @1) integer_zerop@3))\n- (eq @2 @3))\n-(simplify\n- (bit_ior:c (eq:c @0 @1) (eq (bit_ior @0 @1) integer_zerop))\n- (eq @0 @1))\n-(simplify\n- (bit_and:c (ne:c @0 @1) (eq (bit_ior @0 @1) integer_zerop))\n- { constant_boolean_node (false, type); })\n-(simplify\n- (bit_ior:c (eq:c @0 @1) (ne (bit_ior @0 @1) integer_zerop))\n- { constant_boolean_node (true, type); })\n+(for bitop (bit_and bit_ior)\n+ neeq (ne eq)\n+ (simplify\n+ (bitop:c (neeq @0 @1) (neeq (bit_ior @0 @1) integer_zerop))\n+ (neeq @0 @1)))\n+(for bitop (bit_and bit_ior)\n+ neeq (eq ne)\n+ (simplify\n+ (bitop:c (neeq @0 @1) (neeq (bit_ior@2 @0 @1) integer_zerop@3))\n+ (neeq @2 @3)))\n+(for bitop (bit_and bit_ior)\n+ neeql (ne eq)\n+ neeqr (eq ne)\n+ (simplify\n+ (bitop (neeql @0 @1) (neeqr (bit_ior @0 @1) integer_zerop))\n+ { constant_boolean_node (bitop==BIT_AND_EXPR, type); }))\n #endif\n \n /* These was part of minmax phiopt. */\n", "prefixes": [] }