From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 723B2C0018C for ; Wed, 16 Dec 2020 15:25:00 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C9259233CE for ; Wed, 16 Dec 2020 15:24:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C9259233CE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kpYfi-0005De-HR for qemu-devel@archiver.kernel.org; Wed, 16 Dec 2020 10:24:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39688) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpYcy-0003CR-GB for qemu-devel@nongnu.org; Wed, 16 Dec 2020 10:22:08 -0500 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]:33623) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kpYcq-0005gx-OS for qemu-devel@nongnu.org; Wed, 16 Dec 2020 10:22:08 -0500 Received: by mail-oi1-x231.google.com with SMTP id d203so6686959oia.0 for ; Wed, 16 Dec 2020 07:21:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=aXWm9veIz1PbuRQV/3MNpniXVJe0w/tw/oqyZnnLnFA=; b=TfJ8kNFQrRHaPcZUPLoLypuA8V2cCmkqZCb1P11pwzAVCArQD4d9AURdIvArgVWh5d IKn2AlLfrWrnJOGaQMOGXG/g+093hP8UOtvHCuxoD9rKjoTDMttrdtYYge6UPraj2Isk /374ioSYYBrvLRfQ0sauLi/TiynGMZg4FPpwi1BIU6wh2dCMtfIo0a1B0cpX3JSmUMqT 1XICkpMcWWP1mtaOyINnQ7WOnqR6WUQskXJ2356aD3Cw93pdu9K+22BxO9sVWpIfXZOB t6o7ySf4/qeWH1oKn3lq/zQHxf7IixvNQPQltpH7lN1Ghy8xoub6Y6LGYnsmhkuSeHvo 67KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=aXWm9veIz1PbuRQV/3MNpniXVJe0w/tw/oqyZnnLnFA=; b=W0Awdh78gsOIeT5CeQrBc1oKnHiYTokAWWwXT5Q2plI978rfnyHtFeqZF9zBfyctQM 4Uv/jARJPgRR18m6q/bv3xmLwwBNSqyuGs6UyzKzJQeD1i5AZ8UBJjX3tExvevjNe64A uHpBC2JVUTqLhQYQoBOMyuuysfS7Sn4C/TDXxqgXUptOdpQa/wFC/rb5JKb05BovQ164 NiDDYLfLzei47zsc7uW+IWo590zi1GsVMUbS2jfBrCohdvE0EhJ+jr7KakRaDwEWKH0t YihW7IukyZQq0QcvyO8Ys6lDFXVA1qpbFIUBjYsL8F/AWwBijTS5gYWVOcbiqNP5rZjZ sgGw== X-Gm-Message-State: AOAM530WMsvOmaAYsFzg2yy6DqSRo5y5Qc0j0S7wpvI4fA1S41cOBujM JvuX5L+Rl/beLJq6aLGDgA6WDA== X-Google-Smtp-Source: ABdhPJyTFMq8aGEYpT6IZFIZW6f/p3VpCWs6zTk2B4x4GSt7rUf8pHBH84j0xSA2TH9IeeR20Efr6g== X-Received: by 2002:aca:f3d6:: with SMTP id r205mr2299754oih.152.1608132118541; Wed, 16 Dec 2020 07:21:58 -0800 (PST) Received: from [10.10.121.52] (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id q21sm508877oog.30.2020.12.16.07.21.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 16 Dec 2020 07:21:57 -0800 (PST) Subject: Re: [RFC v2 02/15] target/riscv: rvb: count leading/trailing zeros To: frank.chang@sifive.com, qemu-devel@nongnu.org, qemu-riscv@nongnu.org References: <20201216020150.3157-1-frank.chang@sifive.com> <20201216020150.3157-3-frank.chang@sifive.com> From: Richard Henderson Message-ID: <29339dfc-e9c4-20ee-8c26-63921083571b@linaro.org> Date: Wed, 16 Dec 2020 09:21:55 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20201216020150.3157-3-frank.chang@sifive.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2607:f8b0:4864:20::231; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x231.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bastian Koppelmann , Kito Cheng , Alistair Francis , Palmer Dabbelt , Sagar Karandikar Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" On 12/15/20 8:01 PM, frank.chang@sifive.com wrote: > From: Kito Cheng > > Signed-off-by: Kito Cheng > Signed-off-by: Frank Chang > --- > target/riscv/insn32-64.decode | 4 +++ > target/riscv/insn32.decode | 7 +++- > target/riscv/insn_trans/trans_rvb.c.inc | 47 +++++++++++++++++++++++++ > target/riscv/translate.c | 42 ++++++++++++++++++++++ > 4 files changed, 99 insertions(+), 1 deletion(-) > create mode 100644 target/riscv/insn_trans/trans_rvb.c.inc Reviewed-by: Richard Henderson > +static void gen_ctzw(TCGv ret, TCGv arg1) > +{ > + tcg_gen_ori_i64(ret, arg1, MAKE_64BIT_MASK(32, 32)); > + tcg_gen_ctzi_i64(ret, ret, 32); > +} One nit: use clzi_i64(ret, ret, 64). Most hosts, including x86_64, naturally return the register width for zero. If you use something else, like this, then tcg will generate an extra comparison and conditional move. In this case you know that zero is impossible, because you just set all of the high 32 bits, but that knowledge won't be present in the expansion of ctzi. r~