From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by sourceware.org (Postfix) with ESMTPS id 12E573858D37 for ; Tue, 27 Dec 2022 23:32:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 12E573858D37 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-pl1-x636.google.com with SMTP id 20so1104277plo.3 for ; Tue, 27 Dec 2022 15:32:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=d9YWPgP7pz9s3Ju8NFb4dnatCAuyLEIoOwVBHlAV9GY=; b=UYWSIf5l3jLm7a5vqlEZhWPPKmPmHGrv2fgZ94NHqFK0p2SG9F9h9ZvMrN27VAb04w /Y4jD5X4pGPNX9Yz6l9D15x87zq2eMzyCjdW4LLQJngYiRvlG0JDxZzAD2wBayIXGlhe 3Vi3k9ckAqq1ydV08KKx0mCX+K52RVfuL8jMw/lGGB7MuYVRX0Y0FyuvtP0ZomQ0fMcH XBMFU/tZ5o17EqI0kkS0IoA245JSWvqCrUCrFTtWPEq6OHWbjQpqpdNFsF/kNXFz96H3 3Hu35+P/17krPENr1Q4jcaSY6gvw5A+6ErlpL1Pr++XP6WGB7F7GccqMmQnlwUK/wcpT AxtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=d9YWPgP7pz9s3Ju8NFb4dnatCAuyLEIoOwVBHlAV9GY=; b=P/ui7Y9i9baZCB58jBG2pq4TPv1KIpS0LjqXm2SECRpph2eYng0cNmL8wyo9yE2oG0 ZN7Xg82Pxqr5nkCDS89PPqLC/VhWt7JHf6N0xVXZJJaPdGAwUuLbgK6dEkC1R9e9R86A dsK9RvUCroadhPl/43/toRZYpFMJASCVr0opCbPLx75CsoICDrNf4FoRT1B9xYDDbFNW KelhDpyYAT/A7800qNyrnyPTDnOwgoNuoXaEIgRMXrOGq/CWMA/kdtVKQilUsRA+1vG6 q7wPSVTY1I1xvzyVD+ry/1De9ZHe2rZNQ8GWd/SmO2V6iZYL+j8D/jHMDIJjpYWOTrgU cpPQ== X-Gm-Message-State: AFqh2kq2r8dEGwzs2EPZHksu8fDVSlO/7jXwa+TRY2veqaY/RrCYc90W MvHqxKpsBg0JMewGEzGmLrM= X-Google-Smtp-Source: AMrXdXtvQv7LmIxYHTetdGY9xPjL3turu1qQrA4F8jqCYKrvv0oHsOQjXYqEL9cNeJcku+sorrlKQg== X-Received: by 2002:a17:902:f08a:b0:189:efe8:1e with SMTP id p10-20020a170902f08a00b00189efe8001emr22997929pla.68.1672183926914; Tue, 27 Dec 2022 15:32:06 -0800 (PST) Received: from ?IPV6:2601:681:8600:13d0::f0a? ([2601:681:8600:13d0::f0a]) by smtp.gmail.com with ESMTPSA id h10-20020a170902680a00b00186ff402508sm2528452plk.281.2022.12.27.15.32.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 27 Dec 2022 15:32:06 -0800 (PST) Content-Type: multipart/mixed; boundary="------------9YkAq0Im9y3Hhjdtf5aYSuaI" Message-ID: <578012d0-0e2f-8663-3ff3-0362f7de9d6b@gmail.com> Date: Tue, 27 Dec 2022 16:32:04 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH v2] RISC-V: Produce better code with complex constants [PR95632] [PR106602] Content-Language: en-US To: Raphael Moreira Zinsly , gcc-patches@gcc.gnu.org Cc: jlaw@ventanamicro.com, jakub@redhat.com, palmer@dabbelt.com, philipp.tomsich@vrull.eu References: <20221209182510.43515-1-rzinsly@ventanamicro.com> From: Jeff Law In-Reply-To: <20221209182510.43515-1-rzinsly@ventanamicro.com> X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,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: This is a multi-part message in MIME format. --------------9YkAq0Im9y3Hhjdtf5aYSuaI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 12/9/22 11:25, Raphael Moreira Zinsly wrote: > Changes since v1: > - Fixed formatting issues. > - Added a name to the define_insn_and_split pattern. > - Set the target on the 'dg-do compile' in pr106602.c. > - Removed the rv32 restriction in pr95632.c. > > -- >8 -- > > Due to RISC-V limitations on operations with big constants combine > is failing to match such operations and is not being able to > produce optimal code as it keeps splitting them. By pretending we > can do those operations we can get more opportunities for > simplification of surrounding instructions. > > 2022-12-06 Raphael Moreira Zinsly > Jeff Law > > gcc/Changelog: > PR target/95632 > PR target/106602 > * config/riscv/riscv.md: New pattern to simulate complex > const_int loads. > > gcc/testsuite/ChangeLog: > * gcc.target/riscv/pr95632.c: New test. > * gcc.target/riscv/pr106602.c: New test. Here's the final version of the patch that addresses these two BZs. This version tightens slightly the condition for the new pattern so that it doesn't match two special cases. In particular, we avoid certain constants which are used in define_splits where the constant load feeds a logical AND which can ultimately be implemented via a pair of shifts. Those cases are 3->2 splits on the trunk. If we allowed those constants in the new pattern, then we'd need to support 2->2 splits in combine.c which is a non-starter. Bootstrapped and regression tested on riscv64-linux-gnu. I also compared resultant assembly code with/without this change for all the source files in the compiler natively to look for further regressions. Committed to the trunk, Jeff --------------9YkAq0Im9y3Hhjdtf5aYSuaI Content-Type: text/plain; charset=UTF-8; name="P" Content-Disposition: attachment; filename="P" Content-Transfer-Encoding: base64 Y29tbWl0IDJlODg2ZWVmN2YyYjVhYWRiMDAxNzFhZjg2OGYwODk1YjY0N2MzYTQKQXV0aG9y OiBSYXBoYWVsIE1vcmVpcmEgWmluc2x5IDxyemluc2x5QHZlbnRhbmFtaWNyby5jb20+CkRh dGU6ICAgVHVlIERlYyAyNyAxODoyOToyNSAyMDIyIC0wNTAwCgogICAgUklTQy1WOiBQcm9k dWNlIGJldHRlciBjb2RlIHdpdGggY29tcGxleCBjb25zdGFudHMgW1BSOTU2MzJdIFtQUjEw NjYwMl0KICAgIAogICAgZ2NjL0NoYW5nZWxvZzoKICAgICAgICAgICAgUFIgdGFyZ2V0Lzk1 NjMyCiAgICAgICAgICAgIFBSIHRhcmdldC8xMDY2MDIKICAgICAgICAgICAgKiBjb25maWcv cmlzY3YvcmlzY3YubWQ6IE5ldyBwYXR0ZXJuIHRvIHNpbXVsYXRlIGNvbXBsZXgKICAgICAg ICAgICAgY29uc3RfaW50IGxvYWRzLgogICAgCiAgICBnY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZzoKICAgICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByOTU2MzIuYzogTmV3IHRlc3Qu CiAgICAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwNjYwMi5jOiBOZXcgdGVzdC4K CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi5tZAppbmRleCBhOGJiMzMxZjI1Yy4uMDIwODMzYjkyMDYgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YubWQKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi5tZApAQCAtMTY3MCw2ICsxNjcwLDIzIEBAIChkZWZpbmVfc3BsaXQKIAkJICAgICAg TUFYX01BQ0hJTkVfTU9ERSwgJm9wZXJhbmRzWzNdLCBUUlVFKTsKIH0pCiAKKzs7IFByZXRl bmQgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBsb2FkIGNvbXBsZXggY29uc3RfaW50IGluIG9y ZGVyIHRvIGdldAorOzsgYmV0dGVyIGNvZGUgZ2VuZXJhdGlvbiBhcm91bmQgdGhlbS4KKzs7 Cis7OyBCdXQgYXZvaWQgY29uc3RhbnRzIHRoYXQgYXJlIHNwZWNpYWwgY2FzZWQgZWxzZXdo ZXJlLgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm12Y29uc3RfaW50ZXJuYWwiCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOkdQUiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorICAg ICAgICAobWF0Y2hfb3BlcmFuZDpHUFIgMSAic3BsaXR0YWJsZV9jb25zdF9pbnRfb3BlcmFu ZCIgImkiKSldCisgICIhKHAybTFfc2hpZnRfb3BlcmFuZCAob3BlcmFuZHNbMV0pIHx8IGhp Z2hfbWFza19zaGlmdF9vcGVyYW5kIChvcGVyYW5kc1sxXSkpIgorICAiIyIKKyAgIiYmIDEi CisgIFsoY29uc3RfaW50IDApXQoreworICByaXNjdl9tb3ZlX2ludGVnZXIgKG9wZXJhbmRz WzBdLCBvcGVyYW5kc1swXSwgSU5UVkFMIChvcGVyYW5kc1sxXSksCisgICAgICAgICAgICAg ICAgICAgICAgPE1PREU+bW9kZSwgVFJVRSk7CisgIERPTkU7Cit9KQorCiA7OyA2NC1iaXQg aW50ZWdlciBtb3ZlcwogCiAoZGVmaW5lX2V4cGFuZCAibW92ZGkiCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDY2MDIuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwNjYwMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi44MjViMWExNDNiNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwNjYwMi5jCkBAIC0wLDAgKzEsMTQgQEAK Ky8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHJpc2N2NjQqLSotKiB9IH0gfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKwordW5zaWduZWQgbG9uZworZm9vMiAodW5z aWduZWQgbG9uZyBhKQoreworICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpKHVuc2lnbmVkIGlu dCkgYSA8PCA2OworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg InNsbGlcdCIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAic3JsaVx0IiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCAiXHRsaVx0IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg ImFkZGlcdCIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJh bmRcdCIgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcHI5NTYzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByOTU2MzIu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjg2NWMyZjJlOTcK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHI5 NTYzMi5jCkBAIC0wLDAgKzEsMTUgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworCit1bnNpZ25lZCBzaG9ydAorZm9vICh1bnNpZ25l ZCBzaG9ydCBjcmMpCit7CisgIGNyYyBePSAweDQwMDI7CisgIGNyYyA+Pj0gMTsKKyAgY3Jj IHw9IDB4ODAwMDsKKworICByZXR1cm4gY3JjOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgInNybGlcdCIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3QgInNsbGlcdCIgfSB9ICovCg== --------------9YkAq0Im9y3Hhjdtf5aYSuaI--