From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) by sourceware.org (Postfix) with ESMTPS id 454A93893679 for ; Sun, 13 Nov 2022 00:24:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 454A93893679 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-x634.google.com with SMTP id p12so7156003plq.4 for ; Sat, 12 Nov 2022 16:24:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding: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=j1E5vtQbRydsR0kTI+qIuTpbwjxifXLmnPTu8P3u2Ss=; b=dvy+IsmnX4w0StIKsrOPAlSnP5k0dIxOG9AMipz2e8HK6gZvoxeGjrTHiAKeXilJCi xuJxLeXbe0DFlIg+09WByOP2yx71IDozETvqIgnv3P/pAQ5F1MCp/tDrJwCtSH9Qzfsb Pw4o7sTw1IgPNQNLmPjNaRqXyf3AoXTmnpsLMFT3ZNs/lPXjAmUwVKXswzHNCU4ZYT3G JSKaL3Gppraq/kjJYGPZ8QW85lTFx0Sl8dcmqGjbfP++ljZxsxdbU7DRmSKfXob74bA0 0hFuKMySUdooAtIHOrJJ52CG4ISPM5cK+N3Bm1w8uQJvY7bPy4j2nWmtFeKpL99GMY/b pwiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding: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=j1E5vtQbRydsR0kTI+qIuTpbwjxifXLmnPTu8P3u2Ss=; b=ZTJAVyes6p2cnRMhu306LGV5XHvWTzLHDy8WD1m4nMG8kt2Yn0iu4k32dfHXSfikYX 6MXiB2BHtGHrys0h7FIHs4d4pSy7bticbo/9DUuN+qSoURv9VyKxSgpPgPUtOzzhM0fc mC0MyaJPigluM1NbpThtdDO2ZSc8V46s/owfhfmsLxLkkyJl+AQ6rWu1JX9dN2FMm0rE btxS6yCnqkW5D2YmHxt3MJiaWM+zKjJM4xX0T4mZvBjyZYO4x3q8E1qGINwm1nJkgW8J DyDQxfHYE6sdRCzGfBhWu3ONUOHQzv3ZQSvYaI4mOkOyBs16/FnwgrZyyDfcUDcg34dJ H/WQ== X-Gm-Message-State: ANoB5plW3Dzfs2URXxrba4K4s8Q34b+QtGqql+TOQIlOwUHwJDo/HQTA iTkwH8QfTOn6r+tHzaPzlXs= X-Google-Smtp-Source: AA0mqf7754F8ByKHv1JI0RkDe+Go24ZsnrXbMmAOeP2MZdvY6MKklGGROeYNuBKAGLsP5LoiQZgR2Q== X-Received: by 2002:a17:902:c651:b0:187:3bc8:fc56 with SMTP id s17-20020a170902c65100b001873bc8fc56mr8020685pls.83.1668299049126; Sat, 12 Nov 2022 16:24:09 -0800 (PST) Received: from ?IPV6:2601:681:8600:13d0::f0a? ([2601:681:8600:13d0::f0a]) by smtp.gmail.com with ESMTPSA id u7-20020a17090a410700b002135e8074b1sm6901440pjf.55.2022.11.12.16.24.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 12 Nov 2022 16:24:08 -0800 (PST) Message-ID: <2b5a37c6-e7bc-6f65-eb40-326dba810253@gmail.com> Date: Sat, 12 Nov 2022 17:24:06 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [PATCH] RISC-V: optimize '(a >= 0) ? b : 0' to srai + andn, if compiling for Zbb Content-Language: en-US To: Philipp Tomsich , gcc-patches@gcc.gnu.org Cc: Jeff Law , Palmer Dabbelt , Kito Cheng , Vineet Gupta , Christoph Muellner References: <20221108195456.2701279-1-philipp.tomsich@vrull.eu> From: Jeff Law In-Reply-To: <20221108195456.2701279-1-philipp.tomsich@vrull.eu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,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: On 11/8/22 12:54, Philipp Tomsich wrote: > If-conversion is turning '(a >= 0) ? b : 0' into a branchless sequence > not a5,a0 > srai a5,a5,63 > and a0,a1,a5 > missing the opportunity to combine the NOT and AND into an ANDN. > > This adds a define_split to help the combiner reassociate the NOT with > the AND. > > > gcc/ChangeLog: > > * config/riscv/bitmanip.md: New define_split. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/zbb-srai-andn.c: New test. OK. FWIW, combine can be pretty sneaky in manipulating the result of a scc style insn.    I've seen a port with pages and pages of special patterns to match what simplify_if_then_else would do. Jeff