get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2230785/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "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": []
}