From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527636; cv=none; d=zohomail.com; s=zohoarc; b=YPoXkYeMnH7VW1y0uEzmXI7S4lJierM3rDCCOG6B1PuoKssHBe/XofvpleMztTavLjKhDy8zrBRTuK7Y2QikoCcb9WEfMe0tPPl1sT+w72gyDx/8Jl1cdaNoYRG2bauVFOdzRrD/ib9TBZ/iE7xVEkOSi1RbfWivfD6O5Y9kDvw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527636; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GPyqv7yuW0jvs6N62tVXNbDMdQQXDeT3dx47BnKVjt8=; b=acmPj6H5jZGX1ghXeztlzqzgyWtNdLJm04uE20o+hrSWnNNl5/Uvsr4ef5ZJL01LlAgdOGvdDdfWhyEjEWrTCWFQ5laabpaFKvnhWV6W9OjOLCv9qRhGCXdvdI5BS+/EdUe89zR1RVJ0iSZ0S0Vhp9KO1mcPBBDLoeP6+ZgFX+s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17835276366391012.4024095208955; Wed, 8 Jul 2026 09:20:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzT-00011N-3H; Wed, 08 Jul 2026 12:19:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzQ-00010N-7p for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:12 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzO-0006tI-Lx for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:12 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2ca64c3ce5fso11477105ad.3 for ; Wed, 08 Jul 2026 09:19:10 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527549; x=1784132349; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=GPyqv7yuW0jvs6N62tVXNbDMdQQXDeT3dx47BnKVjt8=; b=cqGHtUwGKHTHjHhXw3YfWCPSXh+42VD+FACHGoTG6oqAaNjF0wtkauDM5hgedZMVrq baf+F5zbH+YyaYy54x2HOd9bK6YwgcZmIxnw0X7h/CqC6FJcwveEqB+Mo1Mml3QdVyiK BHk0t5lrDjnL1ggsaZSqIHJKBakU3xx8qK7cI0AJ4/YjcZHFQ/SzbVxQ5BBpXqXq0qSp +hkkKuFpZUdj62ExL+TKikbKEa4KwETAcANAgE/DD8EhhNv1pG5bSDRUG6cm9WvCMVg7 zvQ1FXRf6zoLn7BynfNes8wRaBfPWFnCi8CUYGQCzfeBlSUwgk26vYGipRYFk64XWmpU sf2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527549; x=1784132349; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=GPyqv7yuW0jvs6N62tVXNbDMdQQXDeT3dx47BnKVjt8=; b=G8CDhjHHK4rrh86tKONxqpDWbkcx6ui4k2fBVvqkvMzAUWnwlrEovF+TgqrVAIHztP 7qCX3ZlTuypl6TCrte+gFXuGUpjnFQxTGSBj6CSiwoRavZGAqZZJ7xvDqKFKGUgQxz9K rNEBfD/tbiSVo6qv2ox+q4jyALVb65NC3cTd7uPEjwytdN9FNSJOAM/n8bRwFyjl84Pz CdXMi7l9M7+twnFQDUmzlSr5uErswmYo8PrTzR+1FckD4H51B8NNoSVYFS1Mj+gzmROK xjnkRQ1U2atSE1xihmwK3E7ST1gv3vUQ2iA2Ecwmc8zDFS6notd/tMSHmzd/NGF294Xo T9AA== X-Gm-Message-State: AOJu0YzcncI73JeSWi9DplQ1d+Qt/BLuItT1JeFkmPfX/kc+5tn1SzHy kZfV/pr4eBgnidxa61fi0besYvf4/8h+ni4n4fEossiv9UXBBo1D2ls1WACRuVCE4qLf/Oapee+ jgOxz75gpg/1C95Qo0/KM4gsctFOhQXLOkeNsNq/R/BDXgTaXqG6FGMhxaYClk6p3VghLWqTtEu xNn445oIVQyBwN3IaZJ7bIGqExEqNhy0Yb+0c796s= X-Gm-Gg: AfdE7cmrTK9q1KIqiEjw/TQPQLA0hNYQoAHM5FBdjH7ULeiLweS10daUmcUp7Yu0G1D mdK6WiCVGQANls9NIu9w6CbBovNpiW87MuAD3ys65aXg6uKVZGTkCUS5F1JSDv+jpaH0CLuC5NX hj1rtuNLuYtJW+ikrxQ0zB61IWEJghk8SZ67H8+On+RgapG/ASsHohlh+ZodThfqgDGHR3GeEUB DRtsePpsOJ2baR4ATig46MQ6hHW44dawupr21DF1v3J2m1FR9tIItN4QhsHgU8nfA/CAOoKEg2G YYGbr4k94Cg1tE13uinvncMVwcT1I3SuVroEWlGIfnK66QulB70uPrVDOy7CwvOnnMkxsf6hdaY nYe1LmKIGWbIwtkULlnA7WsdqlluLERCn7NqvLmtKeFR/zsrNYKD4kIT08goCc+RpBIXnu2L742 7BCa4ua0sCOu0ma2mvebGWn4KwO+IF+GSCSsDFJmBQ2zbeUaiyKqFRPHTa/8jK5FOZoV5A94X9M xP6MwHia/oGZu9r X-Received: by 2002:a17:902:e54e:b0:2c9:e86e:aa0a with SMTP id d9443c01a7336-2ccea274c6amr32158255ad.0.1783527549141; Wed, 08 Jul 2026 09:19:09 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou Subject: [PATCH v6 1/9] fpu: Fix biased exponent write in parts_float_to_e5m2 saturate path Date: Thu, 9 Jul 2026 00:18:51 +0800 Message-ID: <20260708161859.1124848-2-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=max.chou@sifive.com; helo=mail-pl1-x629.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527638500158500 Content-Type: text/plain; charset="utf-8" FloatParts64.exp holds an unbiased exponent. Subtract exp_bias to store the unbiased equivalent of the max-normal biased exponent. Fixes: d8be49537658 ("fpu: Add conversion routines for OCP FP8 E5M2") Signed-off-by: Max Chou Reviewed-by: Chao Liu --- fpu/softfloat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index bc244a44ff..e2e53c1d68 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -2435,7 +2435,8 @@ static void parts_float_to_e5m2(FloatParts64 *a, floa= t_status *s, bool saturate) /* Per OCP, conversion in SATURATE mode bounds Inf to MAX. */ if (saturate) { a->cls =3D float_class_normal; - a->exp =3D float8_e5m2_params.exp_max - 1; + a->exp =3D (float8_e5m2_params.exp_max - 1 - + float8_e5m2_params.exp_bias); a->frac =3D MAKE_64BIT_MASK(float8_e5m2_params.frac_shift, float8_e5m2_params.frac_size + 1); } --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527646; cv=none; d=zohomail.com; s=zohoarc; b=feOfjELrIECsnAl51ft7v6oTyuo/oJgKXQfKfZL9scnSZ/n4SiJ3xF325hIziL7Wkz2snWnKgy4zOBSEy/QbjIddPWP6vRndNdNVI5qCa0BjEzdZ/fjg4oWGB4DnImR8iZiVhpyLZyWzG7tx3/HTulakkwytT9SGH9+aWEBl81M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527646; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wOTSrgzdmW81FbSSZ8dvQUirGsFshJAMK+kjjwsYBAg=; b=NNOefjT5s+fh3jNJFvxg/+7R1UlMS6r4GtRUKGUPLm+V3dcyv/E4g7Is/SFIImuwrFiF+1+vr5PRS6HP5Sjj+6id9T/t4S/rak2bU3XDTqLPX3RweH+THg49pGn2MLmnA2TxWaD7K2URmeoWhpUa+xdixtkrNj6kwhTiPrWf/PQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527646592865.7491917982467; Wed, 8 Jul 2026 09:20:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzU-00011u-Pf; Wed, 08 Jul 2026 12:19:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzT-00011Z-Lu for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:15 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzR-0006uh-Lz for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:15 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2c7c61b5292so16977275ad.0 for ; Wed, 08 Jul 2026 09:19:13 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527552; x=1784132352; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wOTSrgzdmW81FbSSZ8dvQUirGsFshJAMK+kjjwsYBAg=; b=GA/tMHgF4Pcv1EIfc8ce7hzA5W8ydLqqPWNj91QmS1QNA/eJneSYm2rjdv0zYQtNZI rTl1hnlZQcBWAabvU5bOPtGtWnAvm25Y72J9vGYfeH0V9bKWmrnMKoRYw3SJmFwbDQpR VrC42fDHNtVeGfAdBUK/XLJ1MJKq+VNEjAlyNs7MJ+adZwelu/qoCMhsEZxyK4nix/wp HD/yVOqREXbL/nmCz87e4JAJSnU7QqrtlWsrfNosVUkq1yZqRZiryvZWZgGmV2RSmS1V JY1Mr0s4pEOgs2RE6snI148MNpyAdndVqHMvevwnhr2mV/tGZwHt9ubecXPjTZOSYMBt DLlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527552; x=1784132352; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=wOTSrgzdmW81FbSSZ8dvQUirGsFshJAMK+kjjwsYBAg=; b=GQqHu9SyqhuE6B2FtCs1mz8mS9EShOJYFs+MTkuVzxu6LuB6jETtcijeM0KejyXIYh X1xjOJ09kU8KL5XprvW6+xw/ymzScW5q/CIkBOq1vwBHs6K2M+rZtx+GS6e6CCwERhbC EGNPwKqfhdcVFCA7zR2zVq9q7+djdv47dsVUsyaEA2KbAc8+zRxEdtCBhQFCnHcevZc0 bOLTI4Zxi7/yJIW04l4tGb0vituv3PzsR6hF9zh2vHZvAikz6Q8AJ/2RExkNgfYJDXe1 ZSCXMCktt4oKZ6H/A5EYqhUSHRVvgEJxt2NecwSY7acMjTyVm9PflrPja1iJbaPDjHWy 5//w== X-Gm-Message-State: AOJu0YxEoVbp+4uwwaZo+lIk74/+8rQqSOTbg2qi6Yc9tKDfXmc6HoEO Y0fp9sWO+3STT6Kp9iBvZvSCFRRalQRElKsdBFSKa5MCIwUcoMs+wYVc4FFVBsfOCl3H483XMdK dsNBwOFkKfVTqyDmrjGqyZBg0NHut80wYU0oleyxp9HZXcZ1Wva/38W0+D8sZhoVnJYf0qWZAfL DX+0uxXY4WJXsueFL76PR7rddPt0X7jdtziJszJjE= X-Gm-Gg: AfdE7cl3FcBxlfYjCfFJlgolMXRiUHuyci11BqVaw5Wd5MrkIYbiDzXETfuiH314J3f eu1fGPbGJwzEso4X3p/6D2Zm7ULmWMJ008ThSM201Q6CWJdmTKn88C5S2ZVdgV3QtdZj7VtxHKO bpzuCkNkW3bF4SOit62q7tuU3ihGBWwip1ml9GVGa9NwA1MorWIFTJ8Ftgs6bDW7oLELpYvDB5p Xuzzwdo29Qla5tSW0FeL7PDsHMAJopLP92woh3rXawcLpCuVohiKLaP469R1V59N+qBUHd8O19C M+iFgowi3cz9Qv1uLWB3S9oA6b+KpFuLHGJ9Lp1HjLmKQaqerb2w/fTyL6Sps6W80g/OH6ul8ES 5iwCx98TX38YPfBjSsibWcuU2mbaIfVh/Igk3gSixGrW+XR8eo3ApZ4zXoB9f4tmGNfNPmsVLqb eudvP1H3KV23K6hvQSwaU4cr/qwvsmev4sn6m37e5ZocaPVIdnZTRessOANS7oZRMjbPUuQZ4KW IgEIyZ/mRPGSVJU X-Received: by 2002:a17:902:ecc4:b0:2c8:1c05:16bb with SMTP id d9443c01a7336-2ccea3488damr31135865ad.24.1783527552282; Wed, 08 Jul 2026 09:19:12 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 2/9] target/riscv: rvv: Fix NOP_UU_B vs2 width Date: Thu, 9 Jul 2026 00:18:52 +0800 Message-ID: <20260708161859.1124848-3-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=max.chou@sifive.com; helo=mail-pl1-x631.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527648564158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Chao Liu Reviewed-by: Alistair Francis Signed-off-by: Max Chou --- target/riscv/tcg/vector_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/tcg/vector_helper.c b/target/riscv/tcg/vector_hel= per.c index e321ca2616..944f176b74 100644 --- a/target/riscv/tcg/vector_helper.c +++ b/target/riscv/tcg/vector_helper.c @@ -5019,7 +5019,7 @@ GEN_VEXT_V_ENV(vfwcvtbf16_f_f_v, 4) =20 /* Narrowing Floating-Point/Integer Type-Convert Instructions */ /* (TD, T2, TX2) */ -#define NOP_UU_B uint8_t, uint16_t, uint32_t +#define NOP_UU_B uint8_t, uint16_t, uint16_t #define NOP_UU_H uint16_t, uint32_t, uint32_t #define NOP_UU_W uint32_t, uint64_t, uint64_t /* vfncvt.xu.f.v vd, vs2, vm # Convert float to unsigned integer. */ --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527588; cv=none; d=zohomail.com; s=zohoarc; b=CRUwslroBc8cWQTeTuuGBDjddAw5gZ6ACGphKLB0aaAdCZxMz0OIL07fGS6Ve1zfovOQOEuqsBgc0OL4EYE3RtIRFl5H/gjS85+dTcLOAA7I8dFg2aVUW2C4OzAdHu3YzTrEr33QSBE6zNsTbprXx0/RxQ59sUDgTC7EErQA14w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527588; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xxHnlMV1JLQeffQVz+3d7Qr7bAg99XcAJ/gdYyuVnYk=; b=ZOFHkmBB3q7gBgaZ7A5j3llhQlZof13EKk5Qd4QqNidY+iTHf7PN1E/aFgNcUkJst7RxhqyA9fWZsiMRWF4QXUtNU8ekhJrZDPVSGUyC3uworAegBxzItBqOdW/fauAlHyV1K5och1nZMT80sXHSIklv05169Mfd6pBinaKH8Y0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527588532231.78939575496224; Wed, 8 Jul 2026 09:19:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzY-00014B-Jw; Wed, 08 Jul 2026 12:19:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzW-00012x-FE for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:18 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzU-0006yB-Ry for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:18 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2ccdb73f0e1so8890915ad.3 for ; Wed, 08 Jul 2026 09:19:16 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527555; x=1784132355; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xxHnlMV1JLQeffQVz+3d7Qr7bAg99XcAJ/gdYyuVnYk=; b=f4HmxCy9f8Cmb4R53cXaCxLxtqZgJPDpwDxpnQvjzDybF7Q0l91VjGuVz5d7utF2U7 +te/9Edvd12YPPm6b0nGwgJFVWUZUVXMIyHLM2kzbQpbGPjLfQKxuqO6COOteCcgHP8e E6j1U8IZ5Eb89j/urzCxWPO14jG5MF7hVnfEeWeMKfdwlOlaacUlGEz30Ucl2sAlSdo1 o2H5iTq0J3ovSJXl3SH+HUAL5YgL3pzEgRtxRSpOPdtJQCYOvptjpbteeAtPjd2G6ZIu vIAaeaj3EJbBXSngfvlTvWe95owiURMtX2QtmweWP3u+G62zQLZWspEc6csKPH/DbL9x dGTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527555; x=1784132355; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=xxHnlMV1JLQeffQVz+3d7Qr7bAg99XcAJ/gdYyuVnYk=; b=YF3L4RGstt31Nxcp/ipjNoyzJRjf8GOc35fvCvRbUJs451LqrU3Slmw6RAVoZLXOgo nXYO7FU+zdvRisXOjE93wHud1SV7wzo2NeUfBHk+mTeHDb7ghjLcN8+uWu6HZUNlFzMs JY58fDN7IoYD4ZfcVbmYTumZcnZs/XKbBk0EAep4d9D53TxJ1xasp+xly8hW9Cm+4D7Q 1xxy3G74LyDJaZ13dT7pB5UxlRT1kowoKFaT0iKpoNtmkXJ3yPGrWFS7LunRg4J2Kp6x G3+ePxVhyvJ8eOqLHu52iPkdLGdXbmqhv1GP34GxqQ2zvQ9vA2my2UEuAJNdNBxXRFUD wLwQ== X-Gm-Message-State: AOJu0YyoBmQTWPMs09hsFgTJAwhUBT42oBIheu7BVMzRbV6RiZyhjS1+ LxN4t7gt67YX/ZmlHTgN7dTeFBRyj81XAEc7GLfNAlTnwV0kQ6FWtXV7ZHl0zsq3JknPXKYJCIN qDNkenIs5RxiV+RqnL+h3iwwYxtBJmniBTvm/iwIMhJ1uaWws2Dt6LpTXWnPozig4vPPcgoRhUS ggl4rWQBQbUC6Bgof7IH8nNXGeuDQnFKO5xJCOpRM= X-Gm-Gg: AfdE7clTk6csjgI37l0DklMZfpsyEvpiN4apMNZ6x02LJqSp1/EWCimvfMYkwyaQSJu soSCY5SHTp/gr+TKAhDH+LgpTHuNEP6ssqHqPXsDVGumpjDhG3pDqr3i6+t/QbSufn2wLxa4GKt LL7MEmXV78MxtReY8d+V/V7Vg0zohz/3mNoI6yk/plUKlUnSxHQiUZ2nMfIASPUqqbFTVXPwgdV KFF8/d1mZ4i4H3yndz5lLZk5HVt5vwTsI6QcubAwew1BSPAdLOlTCCFnXf66aXa7PMwSXYgS21A 71r7MwATHSWOYjLnqSB7FtociBW2MOTvFgEfZCh7nrUhB0Mfk1AqXSgM51u/I+b8AoHpifOz233 RTlxxaVo8l3ZUvY5oB+PHyEm2FvkyLwa60kE0/0NbHeaQH+oLpurKJQj4EIhqh2FREvBtFhkyn6 PA9V8PpAdqWukLSQrkTDTG737VoOf4TAo9vzaP72h/4px3FUsnczUrC7obxcz6GF2T8vDY0PSTT muFt0G5Pqq/1lgV X-Received: by 2002:a17:903:3250:b0:2ca:2079:91cc with SMTP id d9443c01a7336-2ccea371b35mr31671735ad.5.1783527555365; Wed, 08 Jul 2026 09:19:15 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 3/9] target/riscv: Add cfg property for Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:53 +0800 Message-ID: <20260708161859.1124848-4-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=max.chou@sifive.com; helo=mail-pl1-x62e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527590546158500 Content-Type: text/plain; charset="utf-8" According to the ISA spec of Zvfofp8min extension, "The Zvfofp8min extension requires on the Zve32f extension." Reviewed-by: Chao Liu Reviewed-by: Alistair Francis Signed-off-by: Max Chou --- target/riscv/cpu.c | 1 + target/riscv/cpu_cfg_fields.h.inc | 1 + target/riscv/tcg/tcg-cpu.c | 5 +++++ target/riscv/tcg/vector_helper.c | 3 ++- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 5a82e6563b..38c580a22a 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -231,6 +231,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(zvfbfwma, PRIV_VERSION_1_12_0, ext_zvfbfwma), ISA_EXT_DATA_ENTRY(zvfh, PRIV_VERSION_1_12_0, ext_zvfh), ISA_EXT_DATA_ENTRY(zvfhmin, PRIV_VERSION_1_12_0, ext_zvfhmin), + ISA_EXT_DATA_ENTRY(zvfofp8min, PRIV_VERSION_1_12_0, ext_zvfofp8min), ISA_EXT_DATA_ENTRY(zvkb, PRIV_VERSION_1_12_0, ext_zvkb), ISA_EXT_DATA_ENTRY(zvkg, PRIV_VERSION_1_12_0, ext_zvkg), ISA_EXT_DATA_ENTRY(zvkn, PRIV_VERSION_1_12_0, ext_zvkn), diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 9eb47af0a7..af78c19a9d 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -105,6 +105,7 @@ BOOL_FIELD(ext_zvfbfmin) BOOL_FIELD(ext_zvfbfwma) BOOL_FIELD(ext_zvfh) BOOL_FIELD(ext_zvfhmin) +BOOL_FIELD(ext_zvfofp8min) BOOL_FIELD(ext_smaia) BOOL_FIELD(ext_ssaia) BOOL_FIELD(ext_smctr) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 4af5cd9c73..5c3f79fbd5 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -639,6 +639,11 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, = Error **errp) return; } =20 + if (cpu->cfg.ext_zvfofp8min && !cpu->cfg.ext_zve32f) { + error_setg(errp, "Zvfofp8min extension depends on Zve32f extension= "); + return; + } + if (cpu->cfg.ext_zvfh && !cpu->cfg.ext_zfhmin) { error_setg(errp, "Zvfh extensions requires Zfhmin extension"); return; diff --git a/target/riscv/tcg/vector_helper.c b/target/riscv/tcg/vector_hel= per.c index 944f176b74..6b736948ff 100644 --- a/target/riscv/tcg/vector_helper.c +++ b/target/riscv/tcg/vector_helper.c @@ -38,7 +38,8 @@ static target_ulong vtype_reserved(CPURISCVState *env, ta= rget_ulong vtype) int xlen =3D riscv_cpu_xlen(env); target_ulong reserved =3D 0; =20 - if (riscv_cpu_cfg(env)->ext_zvfbfa) { + if (riscv_cpu_cfg(env)->ext_zvfbfa || + riscv_cpu_cfg(env)->ext_zvfofp8min) { reserved =3D vtype & MAKE_64BIT_MASK(R_VTYPE_RESERVED_SHIFT, xlen - 1 - R_VTYPE_RESERVED_SHI= FT); } else { --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527637; cv=none; d=zohomail.com; s=zohoarc; b=CgAuOJ0sfNByw75wckIn8rkDudsA9ZFrIdaMo/7Dyla+3IOxEeg9j3DJwUzQLemakOd5IYm2zPkwUXV7l83aEUtxBKkP21gV5um1dbhJCbqFqTXpIFUrVzAjecXRDEm+pXXM5955n7o6F4IRAmNhBzq6nIU559T9JCsfhdr9wGI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527637; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=562gT512wWfhkRLNgMwPwc9/wP2/605Q6dgoo/Dp1wo=; b=dYTMPpaljneDk9BhNZ95XqSSHadTYRlSALqBgzzXSpNlf8KdLxLPASMjQPibPdzUVpgM++2yALL2sFrbqFftnSPE8nQfKjlX1+BTvggGSX9caSTOlcwYeHRqRKfFcQAVxJut/twdCon44xMAdbRPI+Bzg5IYWFr0YphnPqZtq1M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527637147652.4666720340698; Wed, 8 Jul 2026 09:20:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzb-00014Z-2P; Wed, 08 Jul 2026 12:19:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzZ-00014G-HI for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:21 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzX-0006yj-VY for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:21 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2cca0c5799eso7798395ad.0 for ; Wed, 08 Jul 2026 09:19:19 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527559; x=1784132359; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=562gT512wWfhkRLNgMwPwc9/wP2/605Q6dgoo/Dp1wo=; b=XS2OI+ZGwqr0x6a2pGrgg2zjr7u4Xp0Lux165/iefW5Ntqm3883F8Y/FX6p4SM/Ixr 7B2rvA2Apz8obbakUKsSj5SdNU1J5YOtHtSBhImEIBJfcc+2ZJfVrF51uvWSKZAvWzE8 4WIQcD8kyecsjY6xyiSCjuxP7Ifsrb+6xRadyG9VkSK1mIBqOQyTJEP5DHXqPy7P2SBC nKfCWtXHc9Ka4gSzI5fthT7PyuExvdEPCkcFOy1jRz+XjA8bwzBh2foNIZRvHflF9I0m ea4ONCYpL0FTRo8jf0bEvyxGFYHzWBnqpZrTs11MbryiTd8CsJQ67pQcdNG5I20TwhSU xBnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527559; x=1784132359; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=562gT512wWfhkRLNgMwPwc9/wP2/605Q6dgoo/Dp1wo=; b=A/fC3oB78Sx6/OQoT0l+bJZXnHksj0wFix2pJFvS1fgDXMhtexD2vtEbShQITAEvmz KVKne0MaI8nJzpVI7HAte9OwxN2+IHbXJsoFTbjjTes7NWu2kkIr/ohdXH7br6BnwEB0 reYzk5zSrTqUEUbdWpzoPuXvw1KZmWFl4p9n+AynZwsj4dzN9z5JsBp9yy7tZmjM3qTf bM4YxJM2jxRKEFMmJCbR5+s/b6f4gcIOC6Y9q0PzbjgEmoNxxtIT1CUQ7Rj5Ylw+Wgqh /EP9zEM+WBIjlzU7fzTNzx31iIqut9WjpYzO1nxD4fkxcR5rTjxVfesBpU3lWtoBjxgZ MIlQ== X-Gm-Message-State: AOJu0YxUVWcMp7VBLoET5qkae8wrkqq3Knfpd4wDtjRghHVBNch9zP3e 9NE6gs3RTHxbybt38bugIVvpU2Hu6dbJngy4e4UECXTOCugE+UJK3qo7Rxy9/UMTlRpNIAbIT4L OL+vDpujt3t/s0v4KDYxCJTbGznouhs5ORwSkhxqZrq/rKciScCRcqlsF+me4EIEhKMjyH8yMHG Zt11nTLFNK/MIVPaNRylZnTA1J4R5p8FnlTZa5VUE= X-Gm-Gg: AfdE7clNej4ROufUl9ads/ZrGmkXxYT0ZEH6M+AOLIeRBE/cGpVh4dePwTeE8qQqrdJ eW0bJoS4CVHJzdjpWTUuTNnMFOtZyl4+vcb+ELk8FcAedNUgyFLKxlWh3iz/GcPtIrvS7SAL50q tNdoZMgtpRw7ql9khpTVJMIbWJ2PbPKFgKkivQ8PSs5h/lzGaAzgnKdw/bSABENf4/hetSGkxke VdXeFtPhMdI+gBLqsVZ3WZ2c2olIs/4o05cvYiZpEAFmgRs6mKZAUYDmPBxFdL0ibpywB7ARAhU e08PT3HZaO3CvN8+7nu6qiqrPUTKym0HWBCKs1HAHafNpqho9vLCIIY9V/qoGwilNwe5ZHlh5Xn 3eUe1A3j6nQeSqwuDwnvEM4wiw19NJxzF9qpi5Wr4ebhzJZKJny+wLkZc21QtEhyTIvKRuA35fI ypb8FSx8F9YHc8TdBb4zC9Q+mghoI0a14lSSclgaDEHoBlnTYFdU2TCRhvDiwBqKNrF7TJ710IG ywkFUV7eNTVPK1k X-Received: by 2002:a17:903:11c7:b0:2c9:b48c:fdde with SMTP id d9443c01a7336-2ccea45abeemr35104855ad.26.1783527558477; Wed, 08 Jul 2026 09:19:18 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 4/9] target/riscv: Add implied rules for Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:54 +0800 Message-ID: <20260708161859.1124848-5-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=max.chou@sifive.com; helo=mail-pl1-x631.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527638512158500 Content-Type: text/plain; charset="utf-8" Add implied rules to enable the implied extensions of Zvfofp8min extension recursively. Reviewed-by: Chao Liu Reviewed-by: Alistair Francis Signed-off-by: Max Chou --- target/riscv/cpu.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 38c580a22a..8cd1a5e056 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2668,6 +2668,15 @@ static RISCVCPUImpliedExtsRule ZVFHMIN_IMPLIED =3D { }, }; =20 +static RISCVCPUImpliedExtsRule ZVFOFP8MIN_IMPLIED =3D { + .ext =3D CPU_CFG_OFFSET(ext_zvfofp8min), + .implied_multi_exts =3D { + CPU_CFG_OFFSET(ext_zve32f), + + RISCV_IMPLIED_EXTS_RULE_END + }, +}; + static RISCVCPUImpliedExtsRule ZVKN_IMPLIED =3D { .ext =3D CPU_CFG_OFFSET(ext_zvkn), .implied_multi_exts =3D { @@ -2826,7 +2835,7 @@ RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rule= s[] =3D { &ZKS_IMPLIED, &ZVBB_IMPLIED, &ZVE32F_IMPLIED, &ZVE32X_IMPLIED, &ZVE64D_IMPLIED, &ZVE64F_IMPLIED, &ZVE64X_IMPLIED, &ZVFBFA_IMPLIED, &ZVFBFMIN_IMPLIED, &ZVFBFWMA_IMPLIED, - &ZVFH_IMPLIED, &ZVFHMIN_IMPLIED, &ZVKN_IMPLIED, + &ZVFH_IMPLIED, &ZVFHMIN_IMPLIED, &ZVFOFP8MIN_IMPLIED, &ZVKN_IMPLIED, &ZVKNC_IMPLIED, &ZVKNG_IMPLIED, &ZVKNHB_IMPLIED, &ZVKS_IMPLIED, &ZVKSC_IMPLIED, &ZVKSG_IMPLIED, &SHA_IMPLIED, &SSCFG_IMPLIED, &SUPM_IMPLIED, &SSPM_IMPLIED, &SMCTR_IMPLIED, --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527651; cv=none; d=zohomail.com; s=zohoarc; b=ZyxDu2aLc+mhm4nPPrl3qQlVPuyIF/Q/G4qHbO2V/PtrwrUTYnjLOt1wLZieA7BV1TRQkOmzUWsr0XQo5H4KgHa6Hv0F0Ya5CdNWONCPNRPhMAWhlNRbBSYU+CEJi9HM7Z54Ha+MJ3zlLI/AuXFve3oMWMnTqftiaVKuMPFhsCM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527651; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=h28akbz6f9qvZJ7vZ2QSjhKAHqinsgLeTG+Wx27cvBM=; b=jBkwxFkp76aTGqnpu5d8MptQE55kvQrccsyp48IGYKQpzLULuh92d00q6sjhrG8pHOOLbxPA71eGDth4v2nEU5u8MWR5i4XfQR7sBdrL9HbLr5wmDl7JaxK3zZQQgu01al/dz97nQSudWnnqdvt1SduLzJv26Gk87FmgQjQeM4k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527651303756.1977918003721; Wed, 8 Jul 2026 09:20:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzg-00016W-G6; Wed, 08 Jul 2026 12:19:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUze-00015Y-KA for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:26 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzb-0006zF-4A for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:26 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2cc7e86e7aeso9794415ad.2 for ; Wed, 08 Jul 2026 09:19:22 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527562; x=1784132362; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=h28akbz6f9qvZJ7vZ2QSjhKAHqinsgLeTG+Wx27cvBM=; b=QnsvYvCl22O7clL53e5ZBW7Pw6CvMyGCnnpyN2X0ectztf5kLZPxPQMUIuDhEQAdGE u03U6WwkWoBgMta9KVKpHaUoY+3U0B2g2Y0xkOku+6VmNa8YEGqQyqtpn2quh7RgoS8g +ixlpKqM6zBHeNywxRMco9inO0cTMcnzFQCPyORgU8SVzLfpKxQVCXr6CxMah6cVX9vY HwujWx+rcBmjj60ILnE1AMVOJapsC8RS8HpKgcytTXT6+gfbbLxT8LbmDwwp908gcWmC mBEpIn3otvpb6Bnji08aq60c8vfMPKcArCtj7yTaBZ7BekZWI8OMrHUgbOWZRkCxaBdn dXnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527562; x=1784132362; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=h28akbz6f9qvZJ7vZ2QSjhKAHqinsgLeTG+Wx27cvBM=; b=J9b8ZVSHEjx4ZDU3kg3WBUeRMfOiyOpNZJb4ZhD0GuEYfZlYReOxG9O1r3e/nxMCvO PPpprkYvl7g1svntW3gVRX9ScBPOOV80OD8LA2lnip2oWDn3Kg/UIuK5DfyjQSINY9k5 WHOKceURhcrsWCzOQPgpesmxukUFU5OKgQjTF2Jr1iG0pD0tMOxDFioDhVqn8EUCwgv3 aDRBTL1+PI7VD5/qBl83squR3L34SlyScj0DjpyGpnqmRkDYDDS53fT903yyGJ9z1Qmn v2r5JZosNjqO5uNRWXXETwkIU4OfizRx4JhADc3cr7diqNDZDF/Ix/1B2V7ICQVx80bX S5Gg== X-Gm-Message-State: AOJu0YxMM8+JnnMoZaQV1cuQ6MzNa7gSMNoQli5GFhi3ke37FWzjcVFh fQEMB3Erz/dgHSJwmHfHuc/KBzXyVuclm32+Phh52Zq7scPNXf1nmOT3jLJZe77hfi/QvFH7PKn WzFAZSoRAJ7Aq2M9kmC1KUYEapnULAu6T/ms5usEQLESPjyxq8tmgZ/LHxKheqn+f3u658g+uzm ze8h1Gmju/rOHFFJ3VEEusogw/b37QtIUjEv00bsY= X-Gm-Gg: AfdE7clcbv5KLe0o5Ji3Xap7mL/0i/ggIyWsLt1Jc974FL1MDZD9C7JAlgbnklPaB+r QaD5QwnEIAJopkwhcd9Orm1jHOwTxVJyB/B5yVyWRYrjDdQPwMxWpAB3JOS8i+mqRPy/HEz6fPv bZwc5QokPsfsKJnw8MrPNEUlN+T94HXCd7nb8NXQjXL4hhjDfd7b/vp8PsSFfFqKpAtSf9uV3ga 5X1bakDTCER3+iEFljLdi+FlmwM97rqR2IngqEnkGE0Il1n45Ews6jZSNpfMPEuRpTjFrQko4Ea bBPIQfNa8OoWCPpBlnpFhcfNlgn1Qa0gLDSdK/mGVvLxH0yYFKnZp0M2oNpz/6vFA77/rMRS+bx RW9lJbST1zl581mADJUhSH4t5bevz/TK64ICS2Ssh1HK4YJm1tdEUZ1pUnjU07AWZ4y2PXRiwmC +wYIxJgEKxjnHiBjTggPVhLBxiaybpukcr1vFK5PiNo4wWpcXWeMKFF1krDyQeGX7Jsv51cepxI P1FZv+yr2+AvIBZ X-Received: by 2002:a17:903:947:b0:2ca:d463:27fc with SMTP id d9443c01a7336-2ccea4604fcmr33107215ad.45.1783527561570; Wed, 08 Jul 2026 09:19:21 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 5/9] target/riscv: rvv: Make vfwcvtbf16.f.f.v support OFP8 to BF16 conversion for Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:55 +0800 Message-ID: <20260708161859.1124848-6-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=max.chou@sifive.com; helo=mail-pl1-x631.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527652599158501 Content-Type: text/plain; charset="utf-8" According to the Zvfofp8min extension, the vfwcvtbf16.f.f.v instruction supports OFP8 to BF16 conversion when SEW is 8. And the VTYPE.altfmt field is used to select the OFP8 format. * altfmt =3D 0: OFP8.e4m3 to BF16 * altfmt =3D 1: OFP8.e5m2 to BF16 Reviewed-by: Chao Liu Signed-off-by: Max Chou --- target/riscv/cpu.c | 1 + target/riscv/helper.h | 12 ++ .../riscv/tcg/insn_trans/trans_rvbf16.c.inc | 16 ++- target/riscv/tcg/vector_helper.c | 115 +++++++++++++++++- 4 files changed, 139 insertions(+), 5 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 8cd1a5e056..1cc5f33d63 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1076,6 +1076,7 @@ static void riscv_cpu_reset_hold(Object *obj, ResetTy= pe type) set_default_nan_mode(1, &env->fp_status); /* Default NaN value: sign bit clear, frac msb set */ set_float_default_nan_pattern(0b01000000, &env->fp_status); + set_float_e4m3_nan_is_snan(false, &env->fp_status); env->vill =3D true; =20 #ifndef CONFIG_USER_ONLY diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 542b7c264f..3a2d692f9e 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -1253,6 +1253,18 @@ DEF_HELPER_5(vfwcvtbf16_f_f_v, void, ptr, ptr, ptr, = env, i32) DEF_HELPER_6(vfwmaccbf16_vv, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vfwmaccbf16_vf, void, ptr, ptr, i64, ptr, env, i32) =20 +/* OFP8 functions */ +DEF_HELPER_5(vfwcvtbf16_f_f_v_ofp8e4m3, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfwcvtbf16_f_f_v_ofp8e5m2, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvtbf16_f_f_w_ofp8e4m3, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvtbf16_f_f_w_ofp8e5m2, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvtbf16_sat_f_f_w_ofp8e4m3, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvtbf16_sat_f_f_w_ofp8e5m2, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvt_f_f_q_ofp8e4m3, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvt_f_f_q_ofp8e5m2, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvt_sat_f_f_q_ofp8e4m3, void, ptr, ptr, ptr, env, i32) +DEF_HELPER_5(vfncvt_sat_f_f_q_ofp8e5m2, void, ptr, ptr, ptr, env, i32) + /* Vector crypto functions */ DEF_HELPER_6(vclmul_vv, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vclmul_vx, void, ptr, ptr, tl, ptr, env, i32) diff --git a/target/riscv/tcg/insn_trans/trans_rvbf16.c.inc b/target/riscv/= tcg/insn_trans/trans_rvbf16.c.inc index 066dc364c5..86eb86f615 100644 --- a/target/riscv/tcg/insn_trans/trans_rvbf16.c.inc +++ b/target/riscv/tcg/insn_trans/trans_rvbf16.c.inc @@ -92,11 +92,20 @@ static bool trans_vfncvtbf16_f_f_w(DisasContext *ctx, a= rg_vfncvtbf16_f_f_w *a) static bool trans_vfwcvtbf16_f_f_v(DisasContext *ctx, arg_vfwcvtbf16_f_f_v= *a) { REQUIRE_FPU; - REQUIRE_ZVFBFMIN(ctx); =20 - if (opfv_widen_check(ctx, a) && (ctx->sew =3D=3D MO_16)) { + if (opfv_widen_check(ctx, a) && + ((ctx->sew =3D=3D MO_16 && ctx->cfg_ptr->ext_zvfbfmin) || + (ctx->sew =3D=3D MO_8 && ctx->cfg_ptr->ext_zvfofp8min))) { + gen_helper_gvec_3_ptr *fn; uint32_t data =3D 0; =20 + if (ctx->sew =3D=3D MO_16) { + fn =3D gen_helper_vfwcvtbf16_f_f_v; + } else { + fn =3D ctx->altfmt ? gen_helper_vfwcvtbf16_f_f_v_ofp8e5m2 : + gen_helper_vfwcvtbf16_f_f_v_ofp8e4m3; + } + gen_set_rm_chkfrm(ctx, RISCV_FRM_DYN); =20 data =3D FIELD_DP32(data, VDATA, VM, a->vm); @@ -106,8 +115,7 @@ static bool trans_vfwcvtbf16_f_f_v(DisasContext *ctx, a= rg_vfwcvtbf16_f_f_v *a) tcg_gen_gvec_3_ptr(vreg_ofs(ctx, a->rd), vreg_ofs(ctx, 0), vreg_ofs(ctx, a->rs2), tcg_env, ctx->cfg_ptr->vlenb, - ctx->cfg_ptr->vlenb, data, - gen_helper_vfwcvtbf16_f_f_v); + ctx->cfg_ptr->vlenb, data, fn); finalize_rvv_inst(ctx); return true; } diff --git a/target/riscv/tcg/vector_helper.c b/target/riscv/tcg/vector_hel= per.c index 6b736948ff..306bda7951 100644 --- a/target/riscv/tcg/vector_helper.c +++ b/target/riscv/tcg/vector_helper.c @@ -88,7 +88,7 @@ target_ulong HELPER(vsetvl)(CPURISCVState *env, target_ul= ong s1, =20 switch (vsew) { case MO_8: - ill_altfmt &=3D !(cpu->cfg.ext_zvfbfa); + ill_altfmt &=3D !(cpu->cfg.ext_zvfbfa || cpu->cfg.ext_zvfofp8min); break; case MO_16: ill_altfmt &=3D !(cpu->cfg.ext_zvfbfa); @@ -5071,6 +5071,119 @@ GEN_VEXT_V_ENV(vfncvt_f_f_w_w, 4) RVVCALL(OPFVV1, vfncvtbf16_f_f_w, NOP_UU_H, H2, H4, float32_to_bfloat16) GEN_VEXT_V_ENV(vfncvtbf16_f_f_w, 2) =20 +/* + * Initialize a local float_status for OCP FP8 narrowing conversions with + * RISC-V specific NaN handling: default_nan_pattern =3D 0x70 produces the + * canonical OCP FP8 NaN payload (0x7F) for both E4M3 and E5M2 in default-= NaN + * mode, per the Zvfofp8min specification. + */ +static inline void riscv_ofp8_narrow_status_init(float_status *local, + float_status *s) +{ + *local =3D *s; + local->default_nan_pattern =3D 0x70; +} + +/* + * OCP FP8 Narrowing Conversions (BF16/F32 -> FP8) + * 1. Initialize a local float_status with RISC-V specific NaN handling + * 2. Call the softfloat conversion function with saturation parameter + * 3. Force the canonical NaN to 0x7f for non-saturating overflow. Per + * Zvfofp8min, the canonical NaN for both E4M3 and E5M2 is 0x7f. + * 4. Merge exception flags back to the original status + */ +#define GEN_OCP_FP8_NARROW(NAME, CONVERT_FN, SATURATE, IN_TYPE) \ +static uint8_t NAME(IN_TYPE a, float_status *s) \ +{ \ + float_status local; \ + riscv_ofp8_narrow_status_init(&local, s); \ + uint8_t result =3D CONVERT_FN(a, SATURATE, &local); \ + if (!(SATURATE) && result =3D=3D 0xff) { \ + result =3D 0x7f; \ + } \ + s->float_exception_flags |=3D local.float_exception_flags; \ + return result; \ +} + +/* BF16 -> E4M3/E5M2 conversions */ +GEN_OCP_FP8_NARROW(vfncvt_bf16_to_e4m3, bfloat16_to_float8_e4m3, false, + uint16_t) +GEN_OCP_FP8_NARROW(vfncvt_bf16_to_e5m2, bfloat16_to_float8_e5m2, false, + uint16_t) +GEN_OCP_FP8_NARROW(vfncvt_bf16_to_e4m3_sat, bfloat16_to_float8_e4m3, true, + uint16_t) +GEN_OCP_FP8_NARROW(vfncvt_bf16_to_e5m2_sat, bfloat16_to_float8_e5m2, true, + uint16_t) + +/* F32 -> E4M3/E5M2 conversions */ +GEN_OCP_FP8_NARROW(vfncvt_f32_to_e4m3, float32_to_float8_e4m3, false, uint= 32_t) +GEN_OCP_FP8_NARROW(vfncvt_f32_to_e5m2, float32_to_float8_e5m2, false, uint= 32_t) +GEN_OCP_FP8_NARROW(vfncvt_f32_to_e4m3_sat, float32_to_float8_e4m3, true, + uint32_t) +GEN_OCP_FP8_NARROW(vfncvt_f32_to_e5m2_sat, float32_to_float8_e5m2, true, + uint32_t) + +/* + * OCP FP8 Widening Conversions (FP8 -> BF16) + * According to Zvfofp8min isa specification: "No rounding occurs, and no + * floating-point exception flags are set." + * 1. Copy float_status into a local so exception flags can be discarded + * 2. Call the softfloat conversion function + * 3. Intentionally DISCARD exception flags (not merged back) + */ +#define GEN_OCP_FP8_WIDEN(NAME, CONVERT_FN) \ +static uint16_t NAME(uint8_t a, float_status *s) \ +{ \ + float_status local =3D *s; \ + return CONVERT_FN(a, &local); \ +} + +GEN_OCP_FP8_WIDEN(vfwcvt_e4m3_to_bf16, float8_e4m3_to_bfloat16) +GEN_OCP_FP8_WIDEN(vfwcvt_e5m2_to_bf16, float8_e5m2_to_bfloat16) + +/* vfwcvtbf16.f.f.w vd, vs2, vm # Convert OFP8 to BF16. */ +RVVCALL(OPFVV1, vfwcvtbf16_f_f_v_ofp8e4m3, WOP_UU_B, H2, H1, + vfwcvt_e4m3_to_bf16) +RVVCALL(OPFVV1, vfwcvtbf16_f_f_v_ofp8e5m2, WOP_UU_B, H2, H1, + vfwcvt_e5m2_to_bf16) +GEN_VEXT_V_ENV(vfwcvtbf16_f_f_v_ofp8e4m3, 2) +GEN_VEXT_V_ENV(vfwcvtbf16_f_f_v_ofp8e5m2, 2) + +/* vfncvtbf16.f.f.w vd, vs2, vm # Convert BF16 to OFP8 without saturation.= */ +RVVCALL(OPFVV1, vfncvtbf16_f_f_w_ofp8e4m3, NOP_UU_B, H1, H2, + vfncvt_bf16_to_e4m3) +RVVCALL(OPFVV1, vfncvtbf16_f_f_w_ofp8e5m2, NOP_UU_B, H1, H2, + vfncvt_bf16_to_e5m2) +GEN_VEXT_V_ENV(vfncvtbf16_f_f_w_ofp8e4m3, 1) +GEN_VEXT_V_ENV(vfncvtbf16_f_f_w_ofp8e5m2, 1) + +/* vfncvtbf16.sat.f.f.w vd, vs2, vm # Convert BF16 to OFP8 with saturation= . */ +RVVCALL(OPFVV1, vfncvtbf16_sat_f_f_w_ofp8e4m3, NOP_UU_B, H1, H2, + vfncvt_bf16_to_e4m3_sat) +RVVCALL(OPFVV1, vfncvtbf16_sat_f_f_w_ofp8e5m2, NOP_UU_B, H1, H2, + vfncvt_bf16_to_e5m2_sat) +GEN_VEXT_V_ENV(vfncvtbf16_sat_f_f_w_ofp8e4m3, 1) +GEN_VEXT_V_ENV(vfncvtbf16_sat_f_f_w_ofp8e5m2, 1) + +/* Quad-width narrowing type for FP32 to OFP8 */ +#define QOP_UU_B uint8_t, uint32_t, uint32_t + +/* vfncvt.f.f.q vd, vs2, vm # Convert FP32 to OFP8. */ +RVVCALL(OPFVV1, vfncvt_f_f_q_ofp8e4m3, QOP_UU_B, H1, H4, + vfncvt_f32_to_e4m3) +RVVCALL(OPFVV1, vfncvt_f_f_q_ofp8e5m2, QOP_UU_B, H1, H4, + vfncvt_f32_to_e5m2) +GEN_VEXT_V_ENV(vfncvt_f_f_q_ofp8e4m3, 1) +GEN_VEXT_V_ENV(vfncvt_f_f_q_ofp8e5m2, 1) + +/* vfncvt.sat.f.f.q vd, vs2, vm # Convert FP32 to OFP8 with saturation. */ +RVVCALL(OPFVV1, vfncvt_sat_f_f_q_ofp8e4m3, QOP_UU_B, H1, H4, + vfncvt_f32_to_e4m3_sat) +RVVCALL(OPFVV1, vfncvt_sat_f_f_q_ofp8e5m2, QOP_UU_B, H1, H4, + vfncvt_f32_to_e5m2_sat) +GEN_VEXT_V_ENV(vfncvt_sat_f_f_q_ofp8e4m3, 1) +GEN_VEXT_V_ENV(vfncvt_sat_f_f_q_ofp8e5m2, 1) + /* * Vector Reduction Operations */ --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527600; cv=none; d=zohomail.com; s=zohoarc; b=k8nCUjLt7TqU4wpdKgDOQtoUIUBCdW6MNIz+3wZV4ybXdZtbtDo1LkR7ZN3nTWAKDu4P09gqSw3C088D7/F2T6aKGXCD60r5EKUE6xVhAJg93ody1kVnI1Bw5btd0asl4SLHw1JSidVvH+hbB0Lvez+ZrqeKuOiuWNdTVwsNQF8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527600; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=j8dr4FDMitUA0gEzk3TdSWqsLs8LF2XIAra9aUvAPMY=; b=MempTpG4J80q5O25iQx5uQDWSq/tveewaII1ARmylX5Dw+Jr3JlvyLzoTBE3sPSpVxWBz9wilMY69WOHyGLVaIhGIhXjBrtYTzHTwXj7NvZk+nyj+QKKrp0xf4GuU4r428Sj/A0jBC4KFwIK2Qqa/4O+AJ3z20ofBtlzPAGtevg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527600329485.52127794406977; Wed, 8 Jul 2026 09:20:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzh-00016p-5z; Wed, 08 Jul 2026 12:19:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzf-000163-RX for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:27 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUze-0006zt-8i for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:27 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-381507c9380so688190a91.0 for ; Wed, 08 Jul 2026 09:19:25 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527565; x=1784132365; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=j8dr4FDMitUA0gEzk3TdSWqsLs8LF2XIAra9aUvAPMY=; b=csTIrrIFyCBn4Wab+H6Ju391qkVy4riXBRv1Pbxjvp4oxgJYL/vpPaQQawk2q7X0y6 aVG9WG58SLaCxXhmmyy7U+nJhQNNnaNoV97Etgz1odKRQaueTgc/gKw5mCxM6H+4F6zP sOV+xNCq9GXxGybU+doH0vLBTDCgzBNIJMBNH7gk0saAKSXSwSW09Mdp0Lm3y5LGDmjG l9Q/vnSv9+o6fdI+EgCcGo9XK+a9Ks1DXfwfs4vECLu30uFp5mAZFiQKCpIe+bJh53OE 3uxKxxS6SgE5igVhvoHDwFIH0wkn1vd73XCVqRtjByMaHoWBvmnBL+S1Fn5vsUq4bmJO ceug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527565; x=1784132365; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=j8dr4FDMitUA0gEzk3TdSWqsLs8LF2XIAra9aUvAPMY=; b=V9uI9qohdRHIw0R3PxLfwlUC+avzoG3KhsIiM0SrFvfJtkb5QO+nP1GonRhKBogTaT yt/zhwdBfIXiKVMbG35zkEDj1sknZoys0qFgbjoDZfs3z/gusw6XBLtXeLu72mVc8hU8 NzcZtDFaYg7laZTLXOL/+0adocLvjMEi6/ID0KIVmEzWz6xzdqwiWxbAgTF4dozz+DJU QD19WEQnr2oRl8lROhh5xfvJgfdP6dXxRThbCYnzXEY1kxMtQ0efuVDcH0QXpBLr3y5k jELSvSybxfQOkYGEsHGxjJovWRznn5n8DYj6qB0uSDXZax70G8TDC/DzDTun7UW9bOIL O5Xg== X-Gm-Message-State: AOJu0YzdR8ojgV1349USOAoUPSHz5dznepKj7Evcu5LuL8H0u5bXu3Hw opSNYcOGU+mkgqq2B5HnbuBcbMvvmaxdhppChjP5EUXJ57U2b1lH5kw8ijuRnIWbWWgUWRdKeSn coThJKEzTT0tuV3nx5guzr6ofbthE70CwbcnbEBD0C+FKk/A8OXIUmupXZSRErBIXoDRvelBPXY VrIXZtGqDy3CwpX8MzHAK7QE3bQNLo+LB+2BW/xQY= X-Gm-Gg: AfdE7ck5Aoge9yYQ248H+xzklvJZlQHKNLv1H+3b12I0Bu4LQ6Xmvlx/WKAhEWMsAig B76UOdDVZAA0huExQPOnXls11P2FCmv2HdyqTHiqqtk27ioS8Hxtiinht+/DFslM58MBqwT0eUs qDs1FgOrJ1VRGLdYW0sgr1o5nVZ5PjlV8cquxFDsQ2bmsKZbIyyVBAaoaEvECOODxI3bL/iNE55 N2l8jeNCAla2dis2oPHnGenwuWCLwmdXPqyuja5eTLIIpUHkI9EXk0bf1YgSKOF3g2qdXfzVOOT RRKulReAUl5mrNXaU/5+GBxRLVJb0QewldQPwHX8T+57d8LKJlf1sYwF08cR+E9L5VQlZnPeJk9 ohX6nKI3hqhF2eS536v60zb3KSiRCc43Z8a0HXVRDECWBjlPXFNp4drLnif+AD4FLjnTiZqeuc0 vEOR2MLLW6XrER0No5xZuUUdReefspY3cGLJ2N2ltmOhgOBu/E1iht3vTYN1VmUfc44Q8lNH95b M5KyicgX4hMDZP+ X-Received: by 2002:a17:90a:e183:b0:381:25ce:bcc2 with SMTP id 98e67ed59e1d1-3893fb6b6ebmr3159659a91.6.1783527564581; Wed, 08 Jul 2026 09:19:24 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 6/9] target/riscv: rvv: Make vfncvtbf16.f.f.w support BF16 to OFP8 conversion for Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:56 +0800 Message-ID: <20260708161859.1124848-7-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=max.chou@sifive.com; helo=mail-pj1-x1029.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527602302158500 Content-Type: text/plain; charset="utf-8" According to the Zvfofp8min extension, the vfncvtbf16.f.f.w instruction supports BF16 to OFP8 conversion without saturation when SEW is 8. And the VTYPE.altfmt field is used to select the OFP8 format. * altfmt =3D 0: BF16 to OFP8.e4m3 * altfmt =3D 1: BF16 to OFP8.e5m2 Reviewed-by: Chao Liu Signed-off-by: Max Chou --- target/riscv/tcg/insn_trans/trans_rvbf16.c.inc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/target/riscv/tcg/insn_trans/trans_rvbf16.c.inc b/target/riscv/= tcg/insn_trans/trans_rvbf16.c.inc index 86eb86f615..7e9b0a53a4 100644 --- a/target/riscv/tcg/insn_trans/trans_rvbf16.c.inc +++ b/target/riscv/tcg/insn_trans/trans_rvbf16.c.inc @@ -67,11 +67,20 @@ static bool trans_fcvt_s_bf16(DisasContext *ctx, arg_fc= vt_s_bf16 *a) static bool trans_vfncvtbf16_f_f_w(DisasContext *ctx, arg_vfncvtbf16_f_f_w= *a) { REQUIRE_FPU; - REQUIRE_ZVFBFMIN(ctx); =20 - if (opfv_narrow_check(ctx, a) && (ctx->sew =3D=3D MO_16)) { + if (opfv_narrow_check(ctx, a) && + ((ctx->sew =3D=3D MO_16 && ctx->cfg_ptr->ext_zvfbfmin) || + (ctx->sew =3D=3D MO_8 && ctx->cfg_ptr->ext_zvfofp8min))) { + gen_helper_gvec_3_ptr *fn; uint32_t data =3D 0; =20 + if (ctx->sew =3D=3D MO_16) { + fn =3D gen_helper_vfncvtbf16_f_f_w; + } else { + fn =3D ctx->altfmt ? gen_helper_vfncvtbf16_f_f_w_ofp8e5m2 : + gen_helper_vfncvtbf16_f_f_w_ofp8e4m3; + } + gen_set_rm_chkfrm(ctx, RISCV_FRM_DYN); =20 data =3D FIELD_DP32(data, VDATA, VM, a->vm); @@ -81,8 +90,7 @@ static bool trans_vfncvtbf16_f_f_w(DisasContext *ctx, arg= _vfncvtbf16_f_f_w *a) tcg_gen_gvec_3_ptr(vreg_ofs(ctx, a->rd), vreg_ofs(ctx, 0), vreg_ofs(ctx, a->rs2), tcg_env, ctx->cfg_ptr->vlenb, - ctx->cfg_ptr->vlenb, data, - gen_helper_vfncvtbf16_f_f_w); + ctx->cfg_ptr->vlenb, data, fn); finalize_rvv_inst(ctx); return true; } --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527636; cv=none; d=zohomail.com; s=zohoarc; b=FnjsRw87cpTaPSneBZsStKaaXQnGyenCOaprKVySPivpta3j3x5Q36A5o3ail61Q/7ikrJXVIgDxTAsYDF+c/4BB5j/vv3okJevCA7i4TxB2Gn/sU6i9DA2auJzDiV37R/d6lH/Oabs1sShsjXQ2N89u8k7upJTG/E4MR6hg5gw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527636; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ig97WpfeXz/888YzMr7xwpyDzcUHfi9CfPRuEEEpI08=; b=S/WIJJXn6VNwoaZYZDMRcb64y8wCG+60t1t4oybkLmJ8ZCNxwkMQPbxd6/pWnaFJla5b39JYE9u2vrGVntRz41uTy/cK2ZCAYVtshMrd2qSa61WvrJGM5NPOOTU575OoXTVksCkfkF4wBkS9ZypUheECN6VS4n6k9oPzz/0aB0k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527636445806.6310158852432; Wed, 8 Jul 2026 09:20:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzk-000181-J3; Wed, 08 Jul 2026 12:19:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzi-000179-Ps for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:30 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzh-00073W-7A for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:30 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2caf228a910so6508165ad.2 for ; Wed, 08 Jul 2026 09:19:28 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527568; x=1784132368; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Ig97WpfeXz/888YzMr7xwpyDzcUHfi9CfPRuEEEpI08=; b=XQ7cCFCr0Fsu32VuPi/A5f5rjAesY1ZZdmhlx6mosTlc9OwTQMaglVna5OsMeVMdrZ dSQf8IDUj9oD0KECJrupslbyeKuz9+PuMCGQs+jJ+h4WbXqqN5Ivc8J653uOvRJMeeFq PFA0GBRIx9I8wFEUkEmG2mAehndcSNQhAJJnnfI5xrWe2RSzPqCKtaoF4plZemnnzmuU bI6gviWMNInDUN85Xw4SU9qFCrPok+u6Dsfetdfw6+4aIgGCIuWTX5G0D5ptffz/eSjV 52Y1FMZ8urr5PFtZrqIPw4H2TP/FG2DNwuqzwQJLBMS1wWvl9vM95Cf5j4bEmFkI0jJV yNIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527568; x=1784132368; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Ig97WpfeXz/888YzMr7xwpyDzcUHfi9CfPRuEEEpI08=; b=aCtMJAIJeTjsciD+2gYwcqGpbdCzoI15xQ6fHyIMI5f8sNSfGUFZY5/plsIyH873zx W8Fzn+sQT5YTXzrNQVrDNuLrpdCvAAIuLZLtU1gN/pn8Fi8ikUytogHobbsmYDAOm4Bc 5KLRfw+iXGQrakKAh4UouOXN6tZXJ/gWHyTJ+avJeImg/FjlIXc5+yeKwbckf2Mt3hVW 5VFos3XkOal9Aiv7AEHVFRLn0U8p5EaJGFqo6meLvZNCXvHbblNWcCr046+d2fSAxf6D nVqu3IHmUmCdkM8qoEKKLL81RQmNAkncM2fTBhC9JLKJ59v9eU1Qwy7sVMG9H2d06Vdk Xv8Q== X-Gm-Message-State: AOJu0YxO1tp8oYKFkQiWxtxzqSXeOz0+xssEh/XA/ZBz2kTCpLTTLgyN bN01m47mH0q9M6XDxgmryXPF6k7P5/CPPP28FzJOWP+mK4LnX0EUR60kG6GHPvIVW2hiPIkRkHJ dFDqQpIuySfZ2QMVHZkkhGrGlK988KDsnYiTdvf0MwlaiiSOy037C26+LX/zN6y8MLBiz4lFZBp oLT4qs+8B/2inL/tO9yohA0Qlj6MWKYxZP5p+5K9o= X-Gm-Gg: AfdE7ck9ptbyuStaduAewIUUaBlHMnhwg6IPYa93NqaGTNn4f4ur3mqWnClQfi+LCuC 3Qhp8ULISKvYMgOPoGr4z7BM1KFnPQLiZCNakSmuqqsQbmcF79ELYxDYSVj9+STSTP9ES4YHTVm +HR+wfOzMCQx7/f1/txEnb5Y+YIik5eJpjaGvmmUEoKNEdqetgwxeNYxRVWyP3xDxofihsy7nBf SfuXS2xk9tYr/B1N/LcuLGGIEFmrEUgMXLACas67U4AZ+6Edci+RQNqcdPr/S0dmUAExNP3rVXR 5ABeWfVT1kqx+HAc4cQbkvX3Dc7OS26zxXoeS6AwIVqdX4KHbIT0mYUGi/zWynwjQMCPoB/HlCD vCW8R5hdBv2IuMUHjhJTVy0LRkVuMvrvdAmRrNVI1aBTTxXBiQOsAZFY04yrQbwbInsk8NRElQM Yr21YR+linEL18vAoyxxYfZQygW+MXle4OQNZa3hlw65Qf9PLfvICLvRDKJvZSCiORKPEip+sd2 kHIbC5M92Oz44gT X-Received: by 2002:a17:902:db04:b0:2c9:97a7:3278 with SMTP id d9443c01a7336-2ccea483c06mr32743835ad.41.1783527567651; Wed, 08 Jul 2026 09:19:27 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 7/9] target/riscv: rvv: Add vfncvtbf16.sat.f.f.w instruction for Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:57 +0800 Message-ID: <20260708161859.1124848-8-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=max.chou@sifive.com; helo=mail-pl1-x635.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527638546158500 Content-Type: text/plain; charset="utf-8" The vfncvtbf16.sat.f.f.w instruction converts a vector of 16-bit floating-point numbers to a vector of 8-bit floating-point numbers with saturation. The VTYPE.altfmt field is used to select the format of the 8-bit floating-p= oint numbers. * altfmt =3D 0: BF16 to OFP8.e4m3 * altfmt =3D 1: BF16 to OFP8.e5m2 Reviewed-by: Chao Liu Signed-off-by: Max Chou --- target/riscv/insn32.decode | 3 ++ .../riscv/tcg/insn_trans/trans_rvofp8.c.inc | 42 +++++++++++++++++++ target/riscv/tcg/translate.c | 1 + 3 files changed, 46 insertions(+) create mode 100644 target/riscv/tcg/insn_trans/trans_rvofp8.c.inc diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 21272fdb50..d690dc3bc1 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -973,6 +973,9 @@ vfwcvtbf16_f_f_v 010010 . ..... 01101 001 ..... 101011= 1 @r2_vm vfwmaccbf16_vv 111011 . ..... ..... 001 ..... 1010111 @r_vm vfwmaccbf16_vf 111011 . ..... ..... 101 ..... 1010111 @r_vm =20 +# *** Zvfofp8min Extension *** +vfncvtbf16_sat_f_f_w 010010 . ..... 11111 001 ..... 1010111 @r2_vm + # *** Zvbc vector crypto extension *** vclmul_vv 001100 . ..... ..... 010 ..... 1010111 @r_vm vclmul_vx 001100 . ..... ..... 110 ..... 1010111 @r_vm diff --git a/target/riscv/tcg/insn_trans/trans_rvofp8.c.inc b/target/riscv/= tcg/insn_trans/trans_rvofp8.c.inc new file mode 100644 index 0000000000..d28f92e050 --- /dev/null +++ b/target/riscv/tcg/insn_trans/trans_rvofp8.c.inc @@ -0,0 +1,42 @@ +/* + * RISC-V translation routines for the OFP8 Standard Extensions. + * + * Copyright (C) 2025 SiFive, Inc. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define REQUIRE_ZVFOFP8MIN(ctx) do { \ + if (!ctx->cfg_ptr->ext_zvfofp8min) { \ + return false; \ + } \ +} while (0) + + +static bool trans_vfncvtbf16_sat_f_f_w(DisasContext *ctx, arg_rmr *a) +{ + REQUIRE_FPU; + REQUIRE_ZVFOFP8MIN(ctx); + + if (opfv_narrow_check(ctx, a) && ctx->sew =3D=3D MO_8) { + gen_helper_gvec_3_ptr *fn; + uint32_t data =3D 0; + + fn =3D ctx->altfmt ? gen_helper_vfncvtbf16_sat_f_f_w_ofp8e5m2 : + gen_helper_vfncvtbf16_sat_f_f_w_ofp8e4m3; + + gen_set_rm_chkfrm(ctx, RISCV_FRM_DYN); + + data =3D FIELD_DP32(data, VDATA, VM, a->vm); + data =3D FIELD_DP32(data, VDATA, LMUL, ctx->lmul); + data =3D FIELD_DP32(data, VDATA, VTA, ctx->vta); + data =3D FIELD_DP32(data, VDATA, VMA, ctx->vma); + tcg_gen_gvec_3_ptr(vreg_ofs(ctx, a->rd), vreg_ofs(ctx, 0), + vreg_ofs(ctx, a->rs2), tcg_env, + ctx->cfg_ptr->vlenb, + ctx->cfg_ptr->vlenb, data, fn); + finalize_rvv_inst(ctx); + return true; + } + return false; +} diff --git a/target/riscv/tcg/translate.c b/target/riscv/tcg/translate.c index 9684dbe752..aa96316a38 100644 --- a/target/riscv/tcg/translate.c +++ b/target/riscv/tcg/translate.c @@ -1213,6 +1213,7 @@ static uint32_t opcode_at(DisasContextBase *dcbase, t= arget_ulong pc) #include "insn_trans/trans_privileged.c.inc" #include "insn_trans/trans_svinval.c.inc" #include "insn_trans/trans_rvbf16.c.inc" +#include "insn_trans/trans_rvofp8.c.inc" #include "decode-xthead.c.inc" #include "decode-xmips.c.inc" #include "decode-xlrbr.c.inc" --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527646; cv=none; d=zohomail.com; s=zohoarc; b=YMdiM/c5WKz5cM2uVDB950tNr4NxKNOwrx8L110J7raDtM2JL1HjVNY6yCy7ENLoAWQNW1I3Oa3964euJEJQ8J2KthFWCUj2nk97sktTkWu9BSfPSEsEsfsLC1fbjYnVQn+R9JPkkWSBvtINJDTUBu7ONpHBbvr/tjtCuMmDsI8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527646; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=d1KhmcESwLH150n44WbyB6xyj+p1NFPfgYQqqrbdI3E=; b=K4Cv9/W7fofgJeNYDby0fzpAUuVMqIWyTZcWfOfrmaoDuwXGP/HTqW1bYsuFfENs8RT6Ujs7wzO4ua1QzD5uXFAxA7tjrfR0Hwb0ox2IffK+aF9ahW12l+QebrbJI9RBwCcGkRR1GOrpQNgl8HmhSrRNxqNo3jvTYlKgSyIek4U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783527646630307.209984505693; Wed, 8 Jul 2026 09:20:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzo-00018n-09; Wed, 08 Jul 2026 12:19:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzm-00018M-77 for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:34 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzk-00074b-G3 for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:33 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2cace91f112so9698595ad.0 for ; Wed, 08 Jul 2026 09:19:32 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527571; x=1784132371; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=d1KhmcESwLH150n44WbyB6xyj+p1NFPfgYQqqrbdI3E=; b=GTnS9q/etdkmKXpsePweYXyyW02fY7Odi2E88GNJhwyJFrP6bj70OXlY5iW1pR06gG CZTLQkr1S6m847lr+zOYJus6ikhwCUb+wjVdpyS3g4sGkdq1Uuo0pk95mmAEswWyUlvO zfHFgbSYTPNEGp6a2lVmW63dgoqnsGJjVTD2CrYIxTR6r6i9FtfFoHY4a4svT3b3zxqI FkS1RqlrG3J8Dth1RIMa/KJZYHH/F4WpA5UWNXYHZaI/7aRMI6r1AnQLbpH5zQHFhWPU JGYdqgiMA2ANAqGdcpULNm0MINUNY/3JbZLrGrEAq5xnqXCbZtvHvaYjeywumpxhfTQ9 /JPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527571; x=1784132371; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=d1KhmcESwLH150n44WbyB6xyj+p1NFPfgYQqqrbdI3E=; b=VRNYcjpthIBQyU2dvfvhnIue6y12OXbXM9Ipx9GJl8g4ZxsJDp2gb+fbOnsBse8TzZ 0APGU3WURpywmEsZNJavK/Sm3aRYInBjX7iWjDzuiGYc1CllgvID2Kwgxr/WllXq4HzZ WNOZFtQWzF6gnY0twiyrk3wdaCRx+TplPy5ab5SGkGJfNzOVsBeCHnZZj13jOirH+NKB GGhuuwRndGEc6jWpCOdYLvabR/F7YB8UeOxfv6/XCANBs24hg/+wSMY64OdnCg0bWDhM y2pvIB+sYshE82A4n8asndT5LQ38/GmvXzJGSm98koDwkJdEf6eZzLIgwjsUSvDu+vN/ o4Ww== X-Gm-Message-State: AOJu0YxOgEWEZf3H9XfAg3rE6QnYa27c9K46Txzmp2s8xiCL8yuCOdqk fdOfnu2I7WRFljt5AkD4GWqA8FiSu1AB0iDBt9M8qGsWLas8J71FOPNlboRT/LMFj4a80r99lFg x8umEkbNKLUpT8P41tNQfoGwzubbx50t6ugry0FlDOEsrkv+Zy2tYabV/6D30CH6pd+l5lk5QCJ jRHXHRJ/05WUc92wZt3zwZK/xZA2R9+nuXzpXc1TE= X-Gm-Gg: AfdE7cnOL4Vhy8sdi90I0aGQOqhjZCfm/5orb4HHQ6uDMCc3UVuBoJhWKTI1Dxpo1pK tvKS8cgOIEgPuKVhLE/0t2DfYUCuTQaNjlu11XOtHDl5lR9y5kK2uM4mR8qfDvj8ah+8drQSFbL HedHtauJoJOxFx+sRCDZBpFx/ek0r6JxuMM3wUQyvUUmRLlKj9rwRCA5ljC1/DYPdj9RbQFfBSf ru6kE/c0vaQMjnDks/cKhA9hvnp8Vd0cO9evlJ9vOWLO+c4SNuEDPrNWQkLcKTyEHrzb06a9lNb jdhoLr/OAQHjYI553A/digIM82INb3Wa9TQRkn3w1rerKn8inGyVQsJIOrbtRJ/PrDsudNP1iWT R81B9kdVxvX+Me7ireRAeJOQWcYZ0wFE6wFADOanw1gXKmdYWsC3Ap1PG3Nq5yUArcplrQFJJ2Q KH8HOoBiuntZ3dwSpAUgE4GTZIt6OUhowoKPamlSuasgd8sD8+xAkgSIXX//nJWnrMgiwCR5WAH Xbmxl0mzdxsp4fS X-Received: by 2002:a17:902:f68d:b0:2c9:960c:f73b with SMTP id d9443c01a7336-2ccea4645ddmr32597665ad.24.1783527570688; Wed, 08 Jul 2026 09:19:30 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v6 8/9] target/riscv: rvv: Add vfncvt.f.f.q and vfncvt.sat.f.f.q instructions for Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:58 +0800 Message-ID: <20260708161859.1124848-9-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=max.chou@sifive.com; helo=mail-pl1-x636.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527648679158500 Content-Type: text/plain; charset="utf-8" The vfncvt.f.f.q and vfncvt.sat.f.f.q instructions convert a vector of FP32 elements to a vector of OFP8 elements. The vfncvt.sat.f.f.q instruction converts a vector of FP32 elements to a vector of OFP8 elements with satura= tion. The VTYPE.altfmt field is used to select the OFP8 format. * altfmt =3D 0: FP32 to OFP8.e4m3 * altfmt =3D 1: FP32 to OFP8.e5m2 Reviewed-by: Chao Liu Signed-off-by: Max Chou --- target/riscv/insn32.decode | 2 + .../riscv/tcg/insn_trans/trans_rvofp8.c.inc | 63 +++++++++++++++++++ target/riscv/tcg/insn_trans/trans_rvv.c.inc | 40 ++++++++++++ 3 files changed, 105 insertions(+) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index d690dc3bc1..8a0551abd7 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -974,6 +974,8 @@ vfwmaccbf16_vv 111011 . ..... ..... 001 ..... 101011= 1 @r_vm vfwmaccbf16_vf 111011 . ..... ..... 101 ..... 1010111 @r_vm =20 # *** Zvfofp8min Extension *** +vfncvt_f_f_q 010010 . ..... 11001 001 ..... 1010111 @r2_vm +vfncvt_sat_f_f_q 010010 . ..... 11011 001 ..... 1010111 @r2_vm vfncvtbf16_sat_f_f_w 010010 . ..... 11111 001 ..... 1010111 @r2_vm =20 # *** Zvbc vector crypto extension *** diff --git a/target/riscv/tcg/insn_trans/trans_rvofp8.c.inc b/target/riscv/= tcg/insn_trans/trans_rvofp8.c.inc index d28f92e050..619ee4d773 100644 --- a/target/riscv/tcg/insn_trans/trans_rvofp8.c.inc +++ b/target/riscv/tcg/insn_trans/trans_rvofp8.c.inc @@ -12,6 +12,13 @@ } \ } while (0) =20 +static bool zvfofp8min_narrow_quad_check(DisasContext *s, arg_rmr *a) +{ + return require_rvv(s) && + vext_check_isa_ill(s) && + vext_check_sq(s, a->rd, a->rs2, a->vm) && + (s->sew =3D=3D MO_8); +} =20 static bool trans_vfncvtbf16_sat_f_f_w(DisasContext *ctx, arg_rmr *a) { @@ -40,3 +47,59 @@ static bool trans_vfncvtbf16_sat_f_f_w(DisasContext *ctx= , arg_rmr *a) } return false; } + +static bool trans_vfncvt_f_f_q(DisasContext *ctx, arg_rmr *a) +{ + REQUIRE_FPU; + REQUIRE_ZVFOFP8MIN(ctx); + + if (zvfofp8min_narrow_quad_check(ctx, a)) { + gen_helper_gvec_3_ptr *fn; + uint32_t data =3D 0; + + fn =3D ctx->altfmt ? gen_helper_vfncvt_f_f_q_ofp8e5m2 : + gen_helper_vfncvt_f_f_q_ofp8e4m3; + + gen_set_rm_chkfrm(ctx, RISCV_FRM_DYN); + + data =3D FIELD_DP32(data, VDATA, VM, a->vm); + data =3D FIELD_DP32(data, VDATA, LMUL, ctx->lmul); + data =3D FIELD_DP32(data, VDATA, VTA, ctx->vta); + data =3D FIELD_DP32(data, VDATA, VMA, ctx->vma); + tcg_gen_gvec_3_ptr(vreg_ofs(ctx, a->rd), vreg_ofs(ctx, 0), + vreg_ofs(ctx, a->rs2), tcg_env, + ctx->cfg_ptr->vlenb, + ctx->cfg_ptr->vlenb, data, fn); + finalize_rvv_inst(ctx); + return true; + } + return false; +} + +static bool trans_vfncvt_sat_f_f_q(DisasContext *ctx, arg_rmr *a) +{ + REQUIRE_FPU; + REQUIRE_ZVFOFP8MIN(ctx); + + if (zvfofp8min_narrow_quad_check(ctx, a)) { + gen_helper_gvec_3_ptr *fn; + uint32_t data =3D 0; + + fn =3D ctx->altfmt ? gen_helper_vfncvt_sat_f_f_q_ofp8e5m2 : + gen_helper_vfncvt_sat_f_f_q_ofp8e4m3; + + gen_set_rm_chkfrm(ctx, RISCV_FRM_DYN); + + data =3D FIELD_DP32(data, VDATA, VM, a->vm); + data =3D FIELD_DP32(data, VDATA, LMUL, ctx->lmul); + data =3D FIELD_DP32(data, VDATA, VTA, ctx->vta); + data =3D FIELD_DP32(data, VDATA, VMA, ctx->vma); + tcg_gen_gvec_3_ptr(vreg_ofs(ctx, a->rd), vreg_ofs(ctx, 0), + vreg_ofs(ctx, a->rs2), tcg_env, + ctx->cfg_ptr->vlenb, + ctx->cfg_ptr->vlenb, data, fn); + finalize_rvv_inst(ctx); + return true; + } + return false; +} diff --git a/target/riscv/tcg/insn_trans/trans_rvv.c.inc b/target/riscv/tcg= /insn_trans/trans_rvv.c.inc index 23262b1d03..cccd0f5a25 100644 --- a/target/riscv/tcg/insn_trans/trans_rvv.c.inc +++ b/target/riscv/tcg/insn_trans/trans_rvv.c.inc @@ -621,6 +621,46 @@ static bool vext_check_sds(DisasContext *s, int vd, in= t vs1, int vs2, int vm) require_align(vs1, s->lmul); } =20 +/* + * Common check function for vector narrowing instructions + * of single-width result (SEW) and quad-width source (4*SEW). + * + * Rules to be checked here: + * 1. The largest vector register group used by an instruction + * can not be greater than 8 vector registers + * (Section 31.5.2) + * 2. Quad-width SEW cannot greater than ELEN. + * (Section 31.2) + * 3. Source vector register number is multiples of 4 * LMUL. + * (Section 31.3.4.2) + * 4. Destination vector register number is multiples of LMUL. + * (Section 31.3.4.2) + * 5. Destination vector register group for a masked vector + * instruction cannot overlap the source mask register (v0). + * (Section 31.5.3) + * risc-v unprivileged spec + */ +static bool vext_quad_narrow_check_common(DisasContext *s, int vd, int vs2, + int vm) +{ + return (s->lmul <=3D 1) && + (s->sew < MO_32) && + ((s->sew + 2) <=3D (s->cfg_ptr->elen >> 4)) && + require_align(vs2, s->lmul + 2) && + require_align(vd, s->lmul) && + require_vm(vm, vd); +} + +static bool vext_check_sq(DisasContext *s, int vd, int vs, int vm) +{ + bool ret =3D vext_quad_narrow_check_common(s, vd, vs, vm) && + vext_check_input_eew(s, vs, s->sew + 2, -1, 0, vm); + if (vd !=3D vs) { + ret &=3D require_noover(vd, s->lmul, vs, s->lmul + 2); + } + return ret; +} + /* * Check function for vector reduction instructions. * --=20 2.55.0 From nobody Sun Jul 26 00:20:45 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1783527657; cv=none; d=zohomail.com; s=zohoarc; b=Ryd6ebL2jIvSJ5rsCGpKOUvwAtARhpdFZ3qxZbV2Xjmsoxhv2Aaxuj9cAN2NHDOmIgwLoYNSNtT5gCcSvebiUwLtmvB6ZVGUpLYSIE/nVKi6xA90bIQWT+GCV3hGQ0D+jUBkfxMRFeGG7l5CRv1x45R7g1u8/YJYi+B8TRkoGSE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783527657; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wZERHPamERHB1hw0+7p9a9eq7gJF5zxz97pdFVP6Yy0=; b=TKttKvlVr45kkK8oFVkn2p2a9uhycf78d1fVNovmbW8dQom0Q+61yjsOOKXEY+8vbpabUd5hVlIds+46DG4dCOLcHz8B8EQRM3GbnP3GImChckwI29ehnQtpq5+jJOPQl9De1knQIyZ9F8UhyK7cL3yG1pgk8lWgxDiV3baFc6s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178352765725140.91965311996296; Wed, 8 Jul 2026 09:20:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whUzq-00019t-MM; Wed, 08 Jul 2026 12:19:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whUzo-00019L-Rc for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:36 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whUzn-00074y-Ca for qemu-devel@nongnu.org; Wed, 08 Jul 2026 12:19:36 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2ca64c3ce5fso11483385ad.3 for ; Wed, 08 Jul 2026 09:19:35 -0700 (PDT) Received: from duncan.localdomain (114-35-142-126.hinet-ip.hinet.net. [114.35.142.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb56fsm30789265ad.15.2026.07.08.09.19.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 09:19:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1783527574; x=1784132374; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wZERHPamERHB1hw0+7p9a9eq7gJF5zxz97pdFVP6Yy0=; b=L9xr1NSd8RxWSn2oYBx/qW/nAz1+O1OXZJvvCWJIfi63dfIiw9l+1ebGVjOdwTTznD DIAjgnL8bbXjq+fCjV69FgiH8qiMXkxOIPs293BDM+/ylnytWoysT6qzhJ2qw4XCjHOb 6bdJin5pvlyfdYt5byKR4Sqsk80QTjx9cCdPDXT0T00oDGwbxJEiauHjqiFnAvDSvchV vRZpdz5y52n7J7lgbA6Ip/NctZp1xAL+H1RJD6iAeZdW+x8gBgyXn5d0f709yhZAnANh H2NOP10CUSp3e7yCGBhkqRiUkrYpL1D+L7V4eW171rtt5Gix43TqRcDHJWVBVHt3nEpn f+sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783527574; x=1784132374; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=wZERHPamERHB1hw0+7p9a9eq7gJF5zxz97pdFVP6Yy0=; b=KVbVl0SR0ypcl9xO9paPfHduJEk60ii32hWOkxix+rYp3wTeQKe/G7rGUzaBuWz5dU dPQC/voE06GNKPiE6mymaPIIh4uZ+6cPnROyvvkrqKL2jraeVFe6XjwtGJ/ZciWNlpt2 jykeljEGRkMtcNJKOHQEazpau2jRjBvXfv6KlZBRdiOr5we+gFuhvQK5ITpuzfIo6dUz VnbuS/WSuH6fTNVgtKq18rvxcV3mp4CiXBinkACem/PqZN3HbrF1PUBCQJW8bJ1vUbWx yCu/52o9dKrMi/eQswMlKTehZSyIB59KAcXY1EniskXH5wCnPd4Zpk/MiLaKm2dcixl3 acyQ== X-Gm-Message-State: AOJu0YzvQU0lsQUJ6UC9SBMgXxxeFtF+AFhhps0Gwl99UF0s4B0ZLmta H8eJoggIKOpfawttg+t5BPKHxaF3kvjMQMWhw6Q++VW3wC8vHFG2HQhr4oJkvNqKjCnLMOMShfk SoL5ia2Ypnsj7WuivonUHELye1jqnFK3veap8kZt1SaMWER8844nbxP8qS86eTETMa0DksIJdHW SciU7tNwiY19ZcX8mEWfHGL+QBwSBuBFIqbsDSTRk= X-Gm-Gg: AfdE7cn9Ej0xaOgq/IlTZd4R0HN1SfBL6sh5+gjhPbTUhsA2GapAfeW/8zM2DEQum7G BepzscS1qQd+vZXC3CrtRwk0DmvVR3xw8lxmeUIzvpiun7tEq+Iphu9xZoJwuLWNeGEX/11jD6u p2iZ2B29wr/T41k7+9UNwR5obMwJYnKm0v9yWluqzBkK7jZ+XgV1gOm3gVEwOkLPNgDLX5PkuIu ps/CP3HqC1v2eiEUisY9anyjCaWSe0eoy3b28VNdqhchFML4cplygTui1QNG/YLHcYQhUOStxf9 E0+MUNsP0U1wLqCqwhzWj3LhCOXTKwXcG9D6xFt2U+Zlqz3I1rlsW8bAiyjX5PX/RCw+z2Q2xg9 7j22ja/U9xr+Axwi+JeSk8e75Lh/NX9ffHcb8a6SdnioBRIu7MC4Ibcak2lc0gow5NTCd7VHQWT y2iRUh3mPki57Txu4Nbu92mA8Mxx2bG9OXFzJ433HHNVi9sinDvNJ+0kQc2ab51F1uNrOUIzfqp yxcjEhYTAh6bjXv X-Received: by 2002:a17:902:fc8d:b0:2ca:73aa:b48f with SMTP id d9443c01a7336-2ccea485246mr33357415ad.35.1783527573525; Wed, 08 Jul 2026 09:19:33 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Aurelien Jarno , Peter Maydell , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou Subject: [PATCH v6 9/9] disas/riscv: Add support of Zvfofp8min extension Date: Thu, 9 Jul 2026 00:18:59 +0800 Message-ID: <20260708161859.1124848-10-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260708161859.1124848-1-max.chou@sifive.com> References: <20260708161859.1124848-1-max.chou@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=max.chou@sifive.com; helo=mail-pl1-x629.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1783527658298158502 Content-Type: text/plain; charset="utf-8" This patch adds support to disassemble Zvfofp8min instructions. Reviewed-by: Chao Liu Signed-off-by: Max Chou --- disas/riscv.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/disas/riscv.c b/disas/riscv.c index 7f1b262773..bcda21fb62 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -990,6 +990,9 @@ typedef enum { rv_op_cbo_flush =3D 958, rv_op_cbo_zero =3D 959, rv_op_mnret =3D 960, + rv_op_vfncvtbf16_sat_f_f_w =3D 961, + rv_op_vfncvt_f_f_q =3D 962, + rv_op_vfncvt_sat_f_f_q =3D 963, } rv_op; =20 /* register names */ @@ -2260,11 +2263,14 @@ const rv_opcode_data rvi_opcode_data[] =3D { rv_op_sspush, 0 }, { "c.sspopchk", rv_codec_cmop_ss, rv_fmt_rs1, NULL, rv_op_sspopchk, rv_op_sspopchk, 0 }, - { "cbo.inval", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "cbo.clean", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "cbo.flush", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "cbo.zero", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "mnret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "cbo.inval", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, + { "cbo.clean", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, + { "cbo.flush", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, + { "cbo.zero", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, + { "mnret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "vfncvtbf16.sat.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, = 0 }, + { "vfncvt.f.f.q", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, + { "vfncvt.sat.f.f.q", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, }; =20 /* CSR names */ @@ -3660,7 +3666,10 @@ static void decode_inst_opcode(rv_decode *dec, rv_is= a isa) case 21: op =3D rv_op_vfncvt_rod_f_f_w; break; case 22: op =3D rv_op_vfncvt_rtz_xu_f_w; break; case 23: op =3D rv_op_vfncvt_rtz_x_f_w; break; + case 25: op =3D rv_op_vfncvt_f_f_q; break; + case 27: op =3D rv_op_vfncvt_sat_f_f_q; break; case 29: op =3D rv_op_vfncvtbf16_f_f_w; break; + case 31: op =3D rv_op_vfncvtbf16_sat_f_f_w; break; } break; case 19: --=20 2.55.0