From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) by sourceware.org (Postfix) with ESMTPS id BE23F38A9090 for ; Mon, 11 Sep 2023 16:43:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BE23F38A9090 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-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-27405bafa2eso977734a91.2 for ; Mon, 11 Sep 2023 09:43:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694450634; x=1695055434; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=gxtQ3kkM8NX1RJz7EZw/fCKoAvoTSxwcOO1zwI126E4=; b=eDe8nUwKEKPd9n3QO3fxLKdaGMXQ2bTWkgwBfkWsx20gCjXSkP5sWvLqPqarjPLZqd uAH+anG7JZwcuR9hM7PPnVe0zr6T1j4pmT9OvT2uYfqp8ZDeN/HpGf8ow6Vmfyiq88S2 8RBRgSvqpchZqKbgtcHmH0admgGyZ+6MrU9cD9CY0RrJueDCTFiva31CrGmEYxvD0PjX KYxHf85mO26ggZjACqboBDOO5fJuIow7d0pv4zTgVvvCYoOKBOgPZzXJs6M2a0tgnS0E Ozs5STqFhMMtOX3N0eNaIrT9appgT/tzcKjEhwP/gtTIyImXJWmXB8pZbFDow+DrgQvL 8DOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694450634; x=1695055434; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gxtQ3kkM8NX1RJz7EZw/fCKoAvoTSxwcOO1zwI126E4=; b=X3O7jL6OK8KNbb20VS8TSkhKTI0rELtbu0jij0MS/QwzoV+roBDzOagWJEXXgd35oj NMLNteUAgVSIX5xcV1kuh00Sg2ztbRadr+MGW+oezlDwUIqJgxP+7cBqnfT/m3jfJjKY 3WU1Ej3Cx20hGRcZ0gUpbgLMLN2x/VWAJlta8klgQsQ8T/s+AHzjADyxy/Ob4O1wxs5S 8ytbXuCHT92ecdWsUTAwxJD8YexsO1xwgDRfaLt9R08aQkneyXLU4fPK9natOQ1s61GW A/cijVUcJukJATtx21mCxlLvxx/nr/6pFIGFUscGGu8ReU4a3N896PC3hPwYxaXkZ+Eg yuoA== X-Gm-Message-State: AOJu0Yz/3HFOCnW+O745dg0aVEw41SpZSC7YAxBjUkCimZgz6bUGM3Xf Fw0NEfCbUcxOgBrDZdge3LXqhyMhs69N+7RVjdnpeDXbM6Q= X-Google-Smtp-Source: AGHT+IFTtiY7nV0b2NpTMeVyQ5BbNcRLK829ngXW8cAnOmIVw1Bcu87V3gdB+gyhTgEiQ6wXlx5rUdHxMzlsUlmxvqQ= X-Received: by 2002:a17:90b:3808:b0:273:e689:8df3 with SMTP id mq8-20020a17090b380800b00273e6898df3mr5773967pjb.6.1694450634520; Mon, 11 Sep 2023 09:43:54 -0700 (PDT) MIME-Version: 1.0 From: Jivan Hakobyan Date: Mon, 11 Sep 2023 20:43:38 +0400 Message-ID: Subject: RISC-V: Replace not + bitwise_imm with li + bitwise_not To: GCC Patches Content-Type: multipart/mixed; boundary="000000000000291219060518080d" X-Spam-Status: No, score=-8.3 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 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: --000000000000291219060518080d Content-Type: multipart/alternative; boundary="000000000000291217060518080b" --000000000000291217060518080b Content-Type: text/plain; charset="UTF-8" In the case when we have C code like this int foo (int a) { return 100 & ~a; } GCC generates the following instruction sequence foo: not a0,a0 andi a0,a0,100 ret This patch replaces that with this sequence foo: li a5,100 andn a0,a5,a0 ret The profitability comes from an out-of-order processor being able to issue the "li a5, 100" at any time after it's fetched while "not a0, a0" has to wait until any prior setter of a0 has reached completion. gcc/ChangeLog: * config/riscv/bitmanip.md (*_not_const): New split pattern. gcc/testsuite/ChangeLog: * gcc.target/riscv/zbb-andn-orn-01.c: New test. * gcc.target/riscv/zbb-andn-orn-02.c: Likewise. -- With the best regards Jivan Hakobyan --000000000000291217060518080b-- --000000000000291219060518080d Content-Type: text/x-patch; charset="US-ASCII"; name="bitwise_not.diff" Content-Disposition: attachment; filename="bitwise_not.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lmf1ngfe0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvYml0bWFuaXAubWQgYi9n Y2MvY29uZmlnL3Jpc2N2L2JpdG1hbmlwLm1kCmluZGV4IDdiNTU1MjhlZTQ5 Li4yMDliMGFmYjExOCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9i aXRtYW5pcC5tZAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L2JpdG1hbmlwLm1k CkBAIC0yMTUsNiArMjE1LDE3IEBAIChkZWZpbmVfaW5zbiAiKjxvcHRhYj5f bm90PG1vZGU+IgogICBbKHNldF9hdHRyICJ0eXBlIiAiYml0bWFuaXAiKQog ICAgKHNldF9hdHRyICJtb2RlIiAiPFg6TU9ERT4iKV0pCiAKKyhkZWZpbmVf aW5zbl9hbmRfc3BsaXQgIio8b3B0YWI+X25vdF9jb25zdDxtb2RlPiIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6WCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQorICAgICAgIChiaXRtYW5pcF9iaXR3aXNlOlggKG5vdDpYIChtYXRj aF9vcGVyYW5kOlggMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKyAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6WCAyICJjb25zdF9hcml0aF9vcGVy YW5kIiAiSSIpKSkKKyAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6WCAzICI9 JnIiKSldCisgICJUQVJHRVRfWkJCIHx8IFRBUkdFVF9aQktCIgorICAiIyIK KyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsoc2V0IChtYXRjaF9kdXAg MykgKG1hdGNoX2R1cCAyKSkKKyAgIChzZXQgKG1hdGNoX2R1cCAwKSAoYml0 bWFuaXBfYml0d2lzZTpYIChub3Q6WCAobWF0Y2hfZHVwIDEpKSAobWF0Y2hf ZHVwIDMpKSldKQorCiA7OyAnKGEgPj0gMCkgPyBiIDogMCcgaXMgZW1pdHRl ZCBicmFuY2hsZXNzIChmcm9tIGlmLWNvbnZlcnNpb24pLiAgV2l0aG91dCBh CiA7OyBiaXQgb2YgZXh0cmEgaGVscCBmb3IgY29tYmluZSAoaS5lLiwgdGhl IGJlbG93IHNwbGl0KSwgd2UgZW5kIHVwIGVtaXR0aW5nCiA7OyBub3Qvc3Jh aS9hbmQgaW5zdGVhZCBvZiBjb21iaW5pbmcgdGhlIG5vdCBpbnRvIGFuIGFu ZG4uCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvemJiLWFuZG4tb3JuLTAxLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemJiLWFuZG4tb3JuLTAxLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUxYzMzODg1OTEzCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3piYi1h bmRuLW9ybi0wMS5jCkBAIC0wLDAgKzEsMTcgQEAKKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2NfemJi IC1tYWJpPWxwNjQiIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0q IH0geyAiLU8wIiAiLWciIH0gfSAqLworCitpbnQgZm9vMShpbnQgcnMxKQor eworcmV0dXJuIDEwMCAmIH5yczE7Cit9CisKK2ludCBmb28yKGludCByczEp Cit7CityZXR1cm4gMTAwIHwgfnJzMTsKK30KKworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJhbmRuXHQiIDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIm9yblx0IiAxIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJs aVx0IiAyIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3piYi1hbmRuLW9ybi0wMi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3piYi1hbmRuLW9ybi0wMi5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNTE5NTBjZGI3ZAot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi96YmItYW5kbi1vcm4tMDIuYwpAQCAtMCwwICsxLDE3IEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnYzMmdjX3piYiAtbWFiaT1pbHAzMiIgfSAqLworLyogeyBkZy1za2lwLWlm ICIiIHsgKi0qLSogfSB7ICItTzAiICItZyIgfSB9ICovCisKK2ludCBmb28x KGludCByczEpCit7CityZXR1cm4gMTAwICYgfnJzMTsKK30KKworaW50IGZv bzIoaW50IHJzMSkKK3sKK3JldHVybiAxMDAgfCB+cnMxOworfQorCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImFuZG5cdCIgMSB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi b3JuXHQiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgImxpXHQiIDIgfSB9ICovCg== --000000000000291219060518080d--