From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id 3CDCA3858D37 for ; Thu, 20 Apr 2023 20:12:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3CDCA3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-63b57c49c4cso1336859b3a.3 for ; Thu, 20 Apr 2023 13:12:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682021519; x=1684613519; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=7gwiOUIknzbv8pxRRKGqH8Zrmw5pj++11K4qXaZJpJ4=; b=naT0MjVkZx/lFrqTb3/LCDL/wsaEkPw/XTTMS6A5rAd8uHbLdke0Fhuz8FxzK28036 A1g48JzNY9Dkh7uqvpv21xnCT2QOTEVyScxmPKaa7rj7ePrG384RUScTrDfsOu4qWPOh YAR5KHn45SkWKMoJ3igJNF9TNcG/mpKjoqG4Dt2LNE8x/gEmMk+03qVdSVHvKbRy8+ps jwMEzHcX3cIt/YqmmsrPrVWqh5m9mkb7EprscA+VckAdbmZbbEqSsBtDTqEfxjGdOv5D hm1T0m7crnEflg7cB5LhNCsyDLzpMZHsiIK2yo+QBaKYPX4PQfHcyBxmrniy9S8c27sN B3DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682021519; x=1684613519; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=7gwiOUIknzbv8pxRRKGqH8Zrmw5pj++11K4qXaZJpJ4=; b=Ryb7cVi7vcx3P9na/KPg/0QOTByXvB2sb88U98VDdlnce317N50WXpivAhVpNTgGMs Jq1ChVD+3w8Nw3VpI3ctnBWI4PQLLH3WDDNGlXacv9fOibK/K49j85NxWj0j/oe1ZNT4 SDYm4wPYUf6UOiBLrrjDx2nQb5FqGBiwk/cM1Qtq0QMdgMhLdpdCKWbxiA9O6qjI5wXR +/SY5/5p1zmLRChJ7rt1n3t5++83+RpwI0k8q23FJLHa64JGeObLTNKwSSWL7Gj1V2zZ MfNTpjOEmOKjf2VzNaVDL/RABPZCWwdJ7gU1VIantPfEK5F/cJpMEkc25Zghn9VzMXLg ObgQ== X-Gm-Message-State: AAQBX9csm/YWL91NyYreP9DAg9IwkIIDGw3TYBzPgQtZfOJf4L7LjG5C QRjHBWaj8WSUUwamN5oRb48gw70lJlQTqM27WMlwM6xT7H11SQ== X-Google-Smtp-Source: AKy350a02MrxEtPLLHKMTtH2boF3BU5k7kIpQuu2WrNqLrOv0ClBFxUssmoTMhL7I1E5ZLOSfSqtJhCgOw7wT+vO4B8= X-Received: by 2002:a17:902:e849:b0:1a9:3a8c:d590 with SMTP id t9-20020a170902e84900b001a93a8cd590mr2117178plg.16.1682021518521; Thu, 20 Apr 2023 13:11:58 -0700 (PDT) MIME-Version: 1.0 From: Jivan Hakobyan Date: Fri, 21 Apr 2023 00:11:42 +0400 Message-ID: Subject: RISC-V: avoid splitting small constants in bcrli_nottwobits patterns To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="0000000000001e104e05f9ca27b8" X-Spam-Status: No, score=-7.2 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,HTML_MESSAGE,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000001e104e05f9ca27b8 Content-Type: multipart/alternative; boundary="0000000000001e104c05f9ca27b6" --0000000000001e104c05f9ca27b6 Content-Type: text/plain; charset="UTF-8" Hi all. I have noticed that in the case when we try to clear two bits through a small constant, and ZBS is enabled then GCC split it into two "andi" instructions. For example for the following C code: int foo(int a) { return a & ~ 0x101; } GCC generates the following: foo: andi a0,a0,-2 andi a0,a0,-257 ret but should be this one: foo: andi a0,a0,-258 ret This patch solves the mentioned issue. -- With the best regards Jivan Hakobyan --0000000000001e104c05f9ca27b6-- --0000000000001e104e05f9ca27b8 Content-Type: text/x-patch; charset="US-ASCII"; name="and_nottwobits.patch" Content-Disposition: attachment; filename="and_nottwobits.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lgpij8or0 UklTQy1WOiBhdm9pZCBzcGxpdHRpbmcgc21hbGwgY29uc3RhbnQgaW4gKmJj bHJpPG1vZGU+X25vdHR3b2JpdHMKICAgICAgICBhbmQgKmJjbHJpZGlzaV9u b3R0d29iaXQgcGF0dGVybnMKCmdjYy8KICAgICAgICAqIGNvbmZpZy9yaXNj di9iaXRtYW5pcC5tZCBVcGRhdGVkIHByZWRpY2F0cyBvZgogICAgICAgIGJj bHJpPG1vZGU+X25vdHR3b2JpdHMgYW5kIGJjbHJpZGlzaV9ub3R0d29iaXRz IHBhdHRlcm5zCiAgICAgICAgKiBjb25maWcvcmlzY3YvcHJlZGljYXRlcy5t ZCAobm90X3VpbW1fZXh0cmFfYml0X29yX25vdHR3b2JpdHMpOgogICAgICAg IEFkanVzdCBwcmVkaWNhdGUgdG8gYXZvaWQgc3BsaXR0aW5nIGFyaXRoIGNv bnN0YW50cwogICAgICAgICogY29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQg KGNvbnN0X25vdHR3b2JpdHNfbm90X2FyaXRoX29wZXJhbmQpOgogICAgICAg IE5ldyBwcmVkaWNhdGUKCmdjYy90ZXN0c3VpdGUKICAgICAgICAqIGdjYy50 YXJnZXQvcmlzY3YvemJzLWJjbHJpLW5vdHR3b2JpdHMuYzogTmV3IHRlc3Qu CgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9iaXRtYW5pcC5tZCBi L2djYy9jb25maWcvcmlzY3YvYml0bWFuaXAubWQKaW5kZXggMzg4ZWY2NjI4 MjAuLmYzZDI5YTQ2NmU3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2 L2JpdG1hbmlwLm1kCisrKyBiL2djYy9jb25maWcvcmlzY3YvYml0bWFuaXAu bWQKQEAgLTUwNyw3ICs1MDcsNyBAQAogKGRlZmluZV9pbnNuX2FuZF9zcGxp dCAiKmJjbHJpPG1vZGU+X25vdHR3b2JpdHMiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlggMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoYW5kOlgg KG1hdGNoX29wZXJhbmQ6WCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCi0J ICAgICAgIChtYXRjaF9vcGVyYW5kOlggMiAiY29uc3Rfbm90dHdvYml0c19v cGVyYW5kIiAiaSIpKSldCisJICAgICAgIChtYXRjaF9vcGVyYW5kOlggMiAi Y29uc3Rfbm90dHdvYml0c19ub3RfYXJpdGhfb3BlcmFuZCIgImkiKSkpXQog ICAiVEFSR0VUX1pCUyAmJiAhcGFyYWRveGljYWxfc3VicmVnX3AgKG9wZXJh bmRzWzFdKSIKICAgIiMiCiAgICImJiByZWxvYWRfY29tcGxldGVkIgpAQCAt NTI2LDcgKzUyNiw3IEBACiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYmNs cmlkaXNpX25vdHR3b2JpdHMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAJKGFuZDpESSAobWF0Y2hf b3BlcmFuZDpESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCi0JCShtYXRj aF9vcGVyYW5kOkRJIDIgImNvbnN0X25vdHR3b2JpdHNfb3BlcmFuZCIgImki KSkpXQorCQkobWF0Y2hfb3BlcmFuZDpESSAyICJjb25zdF9ub3R0d29iaXRz X25vdF9hcml0aF9vcGVyYW5kIiAiaSIpKSldCiAgICJUQVJHRVRfNjRCSVQg JiYgVEFSR0VUX1pCUwogICAgJiYgY2x6X2h3aSAoflVJTlRWQUwgKG9wZXJh bmRzWzJdKSkgPiAzMyIKICAgIiMiCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L3Jpc2N2L3ByZWRpY2F0ZXMubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3ByZWRp Y2F0ZXMubWQKaW5kZXggODY1NGRiYzU5NDMuLmU1YWRmMDZmYTI1IDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQKKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kCkBAIC0zNjYsNiArMzY2 LDExIEBACiAgIChhbmQgKG1hdGNoX2NvZGUgImNvbnN0X2ludCIpCiAgICAg ICAgKG1hdGNoX3Rlc3QgInBvcGNvdW50X2h3aSAoflVJTlRWQUwgKG9wKSkg PT0gMiIpKSkKIAorKGRlZmluZV9wcmVkaWNhdGUgImNvbnN0X25vdHR3b2Jp dHNfbm90X2FyaXRoX29wZXJhbmQiCisgIChhbmQgKG1hdGNoX2NvZGUgImNv bnN0X2ludCIpCisgICAgICAgKGFuZCAobm90IChtYXRjaF9vcGVyYW5kIDAg ImFyaXRoX29wZXJhbmQiKSkKKwkgICAgKG1hdGNoX29wZXJhbmQgMCAiY29u c3Rfbm90dHdvYml0c19vcGVyYW5kIikpKSkKKwogOzsgQSBDT05TVF9JTlQg b3BlcmFuZCB0aGF0IGNvbnNpc3RzIG9mIGEgc2luZ2xlIHJ1biBvZiAzMiBj b25zZWN1dGl2ZQogOzsgc2V0IGJpdHMuCiAoZGVmaW5lX3ByZWRpY2F0ZSAi Y29uc2VjdXRpdmVfYml0czMyX29wZXJhbmQiCkBAIC00MTEsNCArNDE2LDQg QEAKIChkZWZpbmVfcHJlZGljYXRlICJub3RfdWltbV9leHRyYV9iaXRfb3Jf bm90dHdvYml0cyIKICAgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikK ICAgICAgICAoaW9yIChtYXRjaF9vcGVyYW5kIDAgIm5vdF91aW1tX2V4dHJh X2JpdF9vcGVyYW5kIikKLQkgICAgKG1hdGNoX29wZXJhbmQgMCAiY29uc3Rf bm90dHdvYml0c19vcGVyYW5kIikpKSkKKwkgICAgKG1hdGNoX29wZXJhbmQg MCAiY29uc3Rfbm90dHdvYml0c19ub3RfYXJpdGhfb3BlcmFuZCIpKSkpCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemJz LWJjbHJpLW5vdHR3b2JpdHMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi96YnMtYmNscmktbm90dHdvYml0cy5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YTU4ZTBhMTE4NQotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96 YnMtYmNscmktbm90dHdvYml0cy5jCkBAIC0wLDAgKzEsMTQgQEAKKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2NfemJzIC1tYWJpPWxwNjQiIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAi IiB7ICotKi0qIH0geyAiLU8wIiAiLU9nIiB9IH0gKi8KKworaW50IGFuZF90 d29fYml0KGludCBpZHgpIHsKKyAgICByZXR1cm4gaWR4ICYgfjM7Cit9CisK K2ludCBhbmRfYmNscl90d29fYml0KGludCBpZHgpIHsKKyAgICByZXR1cm4g aWR4ICYgfigweDQwMDEpOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgIlx0YW5kaVx0IiAyIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcdGJjbHJpXHQiIDEgfSB9 ICovCg== --0000000000001e104e05f9ca27b8--