From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com [IPv6:2607:f8b0:4864:20::f2b]) by sourceware.org (Postfix) with ESMTPS id 1A842385781D for ; Fri, 29 Apr 2022 11:33:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1A842385781D Received: by mail-qv1-xf2b.google.com with SMTP id kj18so5116983qvb.6 for ; Fri, 29 Apr 2022 04:33:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Legm7zSkwSMRKbYwl0jpqwihn4Z2iW4Z70Vz4On7rJg=; b=2Aqm+SAVLP0pCrio/WohjFrkzIIAErDxe6loF2+30uYrKdi5hOKMxKyKklivzGvJ0V QcwQ/KCQyaL84/no2xz3Pf1crOCZhOjE8L5aieKP3LKfj94za2o4igsxek7FSBUSPtyZ Vz9vRUq/mhOG5Y1Qh5xMZjaWaYuRTUg0JZ4mf1IqAI2JRsZ3HKoNYDl44hGs5JkhMU2K RRH4/lrf8Ur9brl7ffHrUIOZvBaE/s7dfdF01ituXtyWhTr8UO3o34/jBwVBiLlUPg2P EhXqcFcwhkOJCIsN3UvuiybIIPIZo9gtF4h9ZikAz5aCn3+UfNUt7K4rlmTUAzYeNBvC V5Yw== X-Gm-Message-State: AOAM531egevg/+8WKhMUZoObr+qysdj23ki3t1415tXdI+S69loBlVst LQRHuw1wFjRIbzYPr66AMB51emwoygsL4TNl1ieQ5LYvL2J7Mg== X-Google-Smtp-Source: ABdhPJwkejMVcfrJja6mNz+2EvOmUnCvUPKDET6q1kITxZ70+xG/w7fEH0u8lBV83/bJo8zWiIr0ZdYW09x0/tsU7rU= X-Received: by 2002:a05:6214:2aaf:b0:446:77c0:50d5 with SMTP id js15-20020a0562142aaf00b0044677c050d5mr27545230qvb.48.1651232003452; Fri, 29 Apr 2022 04:33:23 -0700 (PDT) MIME-Version: 1.0 From: Uros Bizjak Date: Fri, 29 Apr 2022 13:33:12 +0200 Message-ID: Subject: [PATCH] i386: Optimize double-word negation [PR51954] To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="00000000000002432a05ddc969df" X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2022 11:33:26 -0000 --00000000000002432a05ddc969df Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Introduce peephole2 pattern to convert from: mov %esi, %edx negl %eax adcl $0, %edx negl %edx to: xorl %edx, %edx negl %eax sbbl %esi, %edx This conversion is profitable only when initial move is found. Otherwise, additional move to a temporary together with clearing xor is needed. 2022-04-29 Uro=C5=A1 Bizjak gcc/ChangeLog: PR target/51954 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2. gcc/testsuite/ChangeLog: PR target/51954 * gcc.target/i386/pr51954.c: New test. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Pushed to master. Uros. --00000000000002432a05ddc969df Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2kcv9x00 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm1kIGIvZ2NjL2NvbmZpZy9pMzg2L2kz ODYubWQKaW5kZXggYzc0ZWRkMWFhZWYuLmIzMjFjZGExZjIyIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2kzODYvaTM4Ni5tZAorKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZApAQCAtMTA5Mjks NiArMTA5MjksNTAgQEAgKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm5lZzxkd2k+Ml9kb3VibGV3 b3JkIgogICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSldCiAgICJzcGxpdF9kb3Vi bGVfbW9kZSAoPERXST5tb2RlLCAmb3BlcmFuZHNbMF0sIDIsICZvcGVyYW5kc1swXSwgJm9wZXJh bmRzWzJdKTsiKQogCis7OyBDb252ZXJ0OgorOzsgICBtb3YgJWVzaSwgJWVkeAorOzsgICBuZWds ICVlYXgKKzs7ICAgYWRjbCAkMCwgJWVkeAorOzsgICBuZWdsICVlZHgKKzs7IHRvOgorOzsgICB4 b3JsICVlZHgsICVlZHgKKzs7ICAgbmVnbCAlZWF4Cis7OyAgIHNiYmwgJWVzaSwgJWVkeAorCiso ZGVmaW5lX3BlZXBob2xlMgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTV0k0OCAwICJnZW5lcmFs X3JlZ19vcGVyYW5kIikKKwkobWF0Y2hfb3BlcmFuZDpTV0k0OCAxICJub25pbW1lZGlhdGVfZ3Jf b3BlcmFuZCIpKQorICAgKHBhcmFsbGVsCisgICAgWyhzZXQgKHJlZzpDQ0MgRkxBR1NfUkVHKQor CSAgKG5lOkNDQyAobWF0Y2hfb3BlcmFuZDpTV0k0OCAyICJnZW5lcmFsX3JlZ19vcGVyYW5kIikg KGNvbnN0X2ludCAwKSkpCisgICAgIChzZXQgKG1hdGNoX2R1cCAyKSAobmVnOlNXSTQ4IChtYXRj aF9kdXAgMikpKV0pCisgICAocGFyYWxsZWwKKyAgICBbKHNldCAobWF0Y2hfZHVwIDApCisJICAo cGx1czpTV0k0OCAocGx1czpTV0k0OAorCQkJKGx0dTpTV0k0OCAocmVnOkNDIEZMQUdTX1JFRykg KGNvbnN0X2ludCAwKSkKKwkJCShtYXRjaF9kdXAgMCkpCisJCSAgICAgIChjb25zdF9pbnQgMCkp KQorICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSkKKyAgIChwYXJhbGxlbAorICAg IFsoc2V0IChtYXRjaF9kdXAgMCkKKwkgIChuZWc6U1dJNDggKG1hdGNoX2R1cCAwKSkpCisgICAg IChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldKV0KKyAgIlJFR05PIChvcGVyYW5kc1swXSkg IT0gUkVHTk8gKG9wZXJhbmRzWzJdKQorICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNb MF0sIG9wZXJhbmRzWzFdKQorICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbMl0sIG9w ZXJhbmRzWzFdKSIKKyAgWyhwYXJhbGxlbAorICAgIFsoc2V0IChyZWc6Q0NDIEZMQUdTX1JFRykK KwkgIChuZTpDQ0MgKG1hdGNoX2R1cCAyKSAoY29uc3RfaW50IDApKSkKKyAgICAgKHNldCAobWF0 Y2hfZHVwIDIpIChuZWc6U1dJNDggKG1hdGNoX2R1cCAyKSkpXSkKKyAgIChwYXJhbGxlbAorICAg IFsoc2V0IChtYXRjaF9kdXAgMCkKKwkgIChtaW51czpTV0k0OCAobWludXM6U1dJNDgKKwkJCSAo bWF0Y2hfZHVwIDApCisJCQkgKGx0dTpTV0k0OCAocmVnOkNDIEZMQUdTX1JFRykgKGNvbnN0X2lu dCAwKSkpCisJCSAgICAgICAobWF0Y2hfZHVwIDEpKSkKKyAgICAgKGNsb2JiZXIgKHJlZzpDQyBG TEFHU19SRUcpKV0pXQorICAiaXg4Nl9leHBhbmRfY2xlYXIgKG9wZXJhbmRzWzBdKTsiKQorCiAo ZGVmaW5lX2luc24gIipuZWc8bW9kZT5fMSIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1dJIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPTxyPm0iKQogCShuZWc6U1dJIChtYXRjaF9vcGVyYW5k OlNXSSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIjAiKSkpCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjUxOTU0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9wcjUxOTU0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjVlNzU3ZGUyMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvcHI1MTk1NC5jCkBAIC0wLDAgKzEsMTUgQEAKKy8qIFBSIHRhcmdldC81MTk1NCAqLwor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJhZGMiIH0gfSAqLworCisjaWZkZWYgX194 ODZfNjRfXworI2RlZmluZSBUWVBFIF9faW50MTI4CisjZWxzZQorI2RlZmluZSBUWVBFIGxvbmcg bG9uZworI2VuZGlmCisKK1RZUEUgYmFyIChUWVBFIHgpCit7CisgIHJldHVybiAteDsKK30K --00000000000002432a05ddc969df--