From nobody Mon May 25 13:48:44 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=1777270197; cv=none; d=zohomail.com; s=zohoarc; b=ixM87lVkxEqeTNYFfm/WQGvz2V6aB62vWSKwQJAMcyhBL8u+r3hLwnfi2C6k3OvZHD3rAwKaMIc68CwWswCkyXTIlsqyf5WRh86bJi9vwp6us/wjNEgeKBzwmcv0idLeYpzGThBW02y3npTsUOp9qIIx+Rutyip1Qbsn3gBxVOE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270197; 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=2QzmSXQzvIocyTUqrSl/Yo2kZKcCTxCeTL1AZ3pifw8=; b=iIYGxFCno7ZZnMMEyjXf3w+FFTSu7M/6s5YlyK813zlZmRyYEun3/mPq7JbzdfJ7VqzUcChT+JHa2EVRLzWiOPaVtxjzOohpN9C+17IUeNldinOYLj2zDIDgdu3/OGnknmoltAsrx28MqKxo6MWS6FdBwmHg/C2L7nQnaQ3bOD4= 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 1777270197493544.7665632687556; Sun, 26 Apr 2026 23:09:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAB-0005KT-4M; Mon, 27 Apr 2026 02:09:47 -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 1wHFA8-0005Fl-9B for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:44 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFA6-0000mM-Md for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:44 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-35fbca04006so4855517a91.1 for ; Sun, 26 Apr 2026 23:09:42 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270181; x=1777874981; 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; bh=2QzmSXQzvIocyTUqrSl/Yo2kZKcCTxCeTL1AZ3pifw8=; b=N++eiavMUnoPacwWTcnAelfL+UsztEoi8uCf+Alo6gjcMbQiiD/g5/Cup+FpZt2T0j bI4jXaXvzER0PDK2IWn3SRDeHUtbWj/gG1i5d3FqE8iEExRqd46mbE626Q/wCL4fSuPi cyMfCSiOOAWzM12OWB7OENNRKy7prWPXpQWSrvBuuyqsJLuQx8idKGs0CtjwztmJZaCL I75WsDeJMiD4lQZC1lgiZjZmREfxv4/9Q88yk3QabvTvt//bNovUimtLApLZs7BEL8A+ J1FfqamDjDJD2jp4rAoy1A15JDZQtSL6WL7pxc+QKL7KzqwTj2mjUAstGtlcFqEYM1qO XU5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270181; x=1777874981; 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; bh=2QzmSXQzvIocyTUqrSl/Yo2kZKcCTxCeTL1AZ3pifw8=; b=bP35leApJo7UkcX6QZ4uW9iVsc8wCqcirYLZRVnqzo8lL3Ke4lx0IAZPZqElkEx/8Q 30h7za69utrvZ+ZSqlV8+5NtOiCheKG5ysBUydbK2jdawoFfsqN8c3LO5wqmvBLq0kp8 dAQze+bn5hbn/DhJ2DVpy69Yht/c9Q8v59bYS5vh3LnvCEtu6bSI0Y0bbi9V3q/UpLRE SpoOE6R5aWJyxYY9TEOEpJIKzQOxUIEb4pb+SMq8rsnmmFADAVRnyyUwVyQjPIS4c2DV 0T9B8Gh0vJaTQQA/V8jX8AtSvCQ0vIeQ40+QQ4YEJlCRcyU3dSXPIhETri2UDP5d39tW 2iag== X-Gm-Message-State: AOJu0YxHIGAKH5Gvaw/oYLRxmqVsIa+9FdGrhk4e6fOfsLNP/AS6rW5a fxiypGVRncUIboxvspgJAWYmItvDO/z4XyxJv35JnSf+g14qyQKHWdcNkQMULHgE4TuObtvKajd acaJ4Je0woVXoQEQAyOIEioU+RazEoBXvkI42xLJ5pZj7BTOeMEWYnN3Cl4e/d+Cm0VbR2E1Yk7 7YoNFCVImRNhXNlnBDDxjKDDQf6Ox1aPS7aru/IVE= X-Gm-Gg: AeBDieuwBpPq0VT+9d6y4XG12UQnKmm7YDRQhsUzUCPtKxgWIieBXJq8ZLKeWyrznxB x+I9eyF1GhskTCt4VoYMPAUvaXXPkTBdL0SOzVPSRV21akQF0VbvU1c6YaZEPX0GKwGwufXcrMr mjGczevhtaLKhm2Yf+01PyA9WcJCuefDBDMV8BbHZtOKQ198QptvQBCXpFrbQqAe+HRjdggNkX7 M9LSb3V762DHWf2sWRdUqrbfuv4cN6FU0+Q29mBpFVxplpmjsmodsBvU9KqXA3CdWHKFg9JXAPi YZyvDSnXFkP4xZ8NKbb4Vf/2kApcH1XEI+cCfZYE7HI8mB7JF2V+eHwieUq3BiMjJMMkg1PIob2 SSF5DEw4WpZPof1udV44/UGiXpzQRi0NzvidJ4y9j1P4mktJSico8fBX0tYn3VBmYb8r6sM/2OR TIEhzBm+L7MVeTeyBg+zSQWShqTiKaPYq/Z32rcodYvQdF5KrD7y/eGMvscYGTfpN8cBpGcDLDt vUuO+1XP9e7SEuZqltalpe6XnHuoJaueYkiyw== X-Received: by 2002:a17:90b:3f47:b0:35b:a7be:ae47 with SMTP id 98e67ed59e1d1-3614048ee93mr46474407a91.21.1777270181116; Sun, 26 Apr 2026 23:09:41 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 1/9] target/riscv: rvv: Fix NOP_UU_B vs2 width Date: Mon, 27 Apr 2026 14:09:20 +0800 Message-ID: <20260427060928.2322570-2-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::1036; envelope-from=max.chou@sifive.com; helo=mail-pj1-x1036.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: 1777270200380154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Chao Liu Reviewed-by: Alistair Francis Signed-off-by: Max Chou --- target/riscv/vector_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 538168efc9..60e2d42301 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -4973,7 +4973,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.52.0 From nobody Mon May 25 13:48:44 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=1777270244; cv=none; d=zohomail.com; s=zohoarc; b=lz/nK1Yxh4kquNISUeNQRMZvew3Zy3NU5qX1qpp0cVjdKCqeKv0fsSyQj7haYFGNG1XPlQTkiVaVVIFAy0XYXgT1YUaZmYw2cdHEuMjeqblROLMCm6c1SDqfbWs5gbMDsWK+biorxFIoX/9xzzfzxIrArEUtnuieAQ5EAd9J02c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270244; 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=up4bWLNmkEPnVy8RL9+169lx2FD5CzITGBtONeIsssc=; b=gYbwkejwETEnxuXIbytMx7hZebdRIq3OUZEbsBivyS/7qEKEg9t24BkY97Sv8pddbNEsvqeg6RS098nM1EeG8jjL9yYNqMTUITko1YWmf+eIjR+KRQfLHVwcD+q5I9jzjd1+99exoHUqgxhStFy3XH0l33hsK7t6CS5RmiaD+E4= 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 1777270244347983.6359333619779; Sun, 26 Apr 2026 23:10:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAI-0005NY-Ln; Mon, 27 Apr 2026 02:09:54 -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 1wHFAB-0005L9-F3 for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:47 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFA9-0000p6-41 for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:46 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-35fc0d7c310so6304180a91.1 for ; Sun, 26 Apr 2026 23:09:44 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270184; x=1777874984; 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; bh=up4bWLNmkEPnVy8RL9+169lx2FD5CzITGBtONeIsssc=; b=eZHfyCnrxHIyEyWTO9eR2UPWV3wlUYkH6asfhleRNkifziUXOrQUdi0rdbX7+xKLw2 LsZYOEIwkYxdd0zTT/swcROd5FtFJ1QCLgh1AZvgZ0/fEtdOgrg5wrQY4ym29NBpcJF/ 7BtL0mfGKrav5wbE8CwUizMMuurYlVFHpFDwv+VG6Wowk/a+XUcxsyRSqnYmIfmfovQj 0VaW1HOm5hIDZH83aAvGXNtW/2llF14sbke3q74Qjrzjb+jo6I66hKfaVTdqGGaeqIQQ fJ8cK7ISW4d9qL9swIehYipYCeG0kyGpwzaoAwYG3g/HDBGkuGQ3LR2zE83wCfeYuCQp lToQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270184; x=1777874984; 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; bh=up4bWLNmkEPnVy8RL9+169lx2FD5CzITGBtONeIsssc=; b=WRyeabVMWmLNaajWx8jA5qovPa4Tzvb5vIFYQEPai/kojF5r420672+v5wZSuAdJOX gAIZTv3iDumPAMKd1sGRTaIYd95drt8oLSBkd48tRYAe4CJTSJnt9zwSrUQg/PpP/Vfi r+e1e3ZrE3NwSWGEEO5xZiJ1aiq94fuFmco+L59euFffoDO1hFqeivi+/xJF6T2UHiBc KhU5nrv+q0Qgff0ssozMxDj4CkKeKVSjE1InTnBn31aoiD/jhQdGZi+1MBpGA1cYK9Ih dTCIzi25+KLh7dW4va6G8khngZLwhb4tyXQSfLPYeT/OS2wq1EEl67SWUDChZsEjTvi5 f+/g== X-Gm-Message-State: AOJu0YwY1vbT719j8Hcl+iF0O/K6NZtQ4nWeB33g3Hy30nxAtkSe0koh n1qiWm8WVqH7L/F15UuAM67ipifx5ZiVjesFbEXKm49vlkr52GqKMducvPsd9m4A4AmuinzjIUZ txfLk7ZfLo/m3NNZ/p2mP6FFECFuxoxxjFJv64GwUP7kvGirnLeVEDJABE3Ciit+wI8XaqQRaly VXSQQTYos/5rkZicId78JWmMEqRFziwu22qNLX8vU= X-Gm-Gg: AeBDietLAPWxBNwjGaEH6vXeeaP2eVf6AJVigIAGbgaNrbF7Wd3ehXl8MbycYkCxKPL +F0LgDeicHmhr+xFkpMHPsyPRqnbcbZxEvZayxT/29MKqrqn7y/4ZKx75P494LskwPoi7xwbd7l TD6wxMGEceCexIuF9iUqbz0wCYqeIMI3OQgJyEKdK9Wbs2ts8pLe50HL0ftKsbHLXSWN9rjGG2Y 1Pp1VAodBqlJ+fR5dva2sZhtyfIVCdX0HgAP6Jv4W4qoNRke/+JxuhZdlKoFSLj5QaSp1MF3AYG W1qozU5ucD5anFz8Cjk6QcjuGBXLoFt74BQ8mk5x/bfq5RZJoLtUpPIKV7aYGGH3AprWeOCaLWA AGIrImYaFfZsp09DYJsGQEtjkhCp13+A6/ONw7M32kabDIg1vhfWyOqEjqWaVPo3szTlYjm+nvt OhqqHVAKqKybUSb4RbCMCNSXQsq6GFS7s5mDle+nH/ZXuuvFqQXRKYSchz3MsGPAUZQA6zEA0O7 pmyMTUAYHyHF3M5KG0750nC+laNQRpSDQuKsQ== X-Received: by 2002:a17:90b:380c:b0:35f:b5df:448 with SMTP id 98e67ed59e1d1-3614049ed12mr43312761a91.24.1777270183650; Sun, 26 Apr 2026 23:09:43 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 2/9] target/riscv: Add cfg property for Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:21 +0800 Message-ID: <20260427060928.2322570-3-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::102c; envelope-from=max.chou@sifive.com; helo=mail-pj1-x102c.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: 1777270246573154100 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/vector_helper.c | 3 ++- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index ce15a17c37..855c6bd4a9 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -194,6 +194,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 734fa079f2..f9cd79bae0 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 f3f7808895..40e7c72976 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -710,6 +710,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/vector_helper.c b/target/riscv/vector_helper.c index 60e2d42301..73437c1d20 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/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.52.0 From nobody Mon May 25 13:48:44 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=1777270296; cv=none; d=zohomail.com; s=zohoarc; b=PWiPvh9nftIS8WovE77Z+vC6ce9TxEZNiJWn/uLgRxU3cDCRMwxNYfxpRRb8xR3f8yamFOgZyyihXP3Bn51c1o07P+26xY1vOIjVQh+a87yx7MkISRds7PTHOvcO95epCt1I3oXbN+1G6zzXHoevFadP+so5NHRW2NLu0Xi1JhQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270296; 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=26PwWc6Uw9wIukcpyprTDSpNWWjqEPtct/PbwQK4uCs=; b=G0F6YvVJoL3R7bXuugaeJbwg/FhUAusHKhkRDs57FxqW3tSIhlhcSeQtO/r72NNxCg5JoOujfuMYcRcgYlsUJJCe/ZFN6oCxcMKsOFSaadU4Pxp6yhtLOXX8+wRj2CVPgfdzkxQssYEk+3LwbMP2l/m3l09kxTrdjkZsXpFLufg= 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 1777270296746997.072225542855; Sun, 26 Apr 2026 23:11:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAR-0005YR-BA; Mon, 27 Apr 2026 02:10:03 -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 1wHFAE-0005Qk-L6 for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:52 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFAB-0000qK-Tb for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:50 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-358ed696623so4327923a91.0 for ; Sun, 26 Apr 2026 23:09:47 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270186; x=1777874986; 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; bh=26PwWc6Uw9wIukcpyprTDSpNWWjqEPtct/PbwQK4uCs=; b=T8xx0fTYvjNRryl387Mr3+AjHD2Pu0yX1cwgJGuptsnrBt9cQrkkRXCQi+o1rVaW5L p1FqLqiqyk85PMKCFtvBlC9AkSKMIuh5WUUtlB7iy3ATkD2c6rigqXehYs2tUbgoTnJo WDtAOjkZxG19hFpZDJdUMeK2LkQ7vXLvsWvysz+w9HwdcEhtTitRPpN7qcHJ35LNC99k q19K0gKUoFl8WASP5DgcPG5D/KLqZ0iL/H51QKdkL2uHONGRI43sYoZjgif3RTjrTf/U DWJdpHr9m3qx8Ea73f6YM07AxSoJErNvWBWQWK8L+AStj1XnBLVYax9CLyMW6EBEhCs+ Hn6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270186; x=1777874986; 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; bh=26PwWc6Uw9wIukcpyprTDSpNWWjqEPtct/PbwQK4uCs=; b=MmloVkL+F1X5Pm2k8Bq+ShJvGCmHLmCncJyc9LGh920AjO7PX4miRtczNNdENP1bH/ AsSHAqADgbIxcY/Y6mlH9nac4d8bxsFmXfr2k4RBkdHgTYA3w4k+iqg7a5ffNpiSl70R gHDYcDleYGtNSDnrVwDAmvndlzRu5WImMBk6gGXehOnSwZgCahFrvFUulEfyqI6zrKbR jrU6ob64/PKCTHZEL2Mnu39ZjMRvshBqgeYd7wFtAp2wurngqUZyr7FwUZ1sz+vffcOq ZzcIct6pVM7SnmSil+xQmuogWM9dRhCqkUt2uIelib0HPHqQNUrV3N3lfk1TbhLl1kuE 0Mgw== X-Gm-Message-State: AOJu0Yyw3mVKWyd+vCZyeBcnQujFtpyHBE4pHNpB/ogxkyWbYP9Zn2hK xmySJxdDghW2UI5jlCfT+dRTnFusYvLVzVdryY7PMMtuGupeRvtMai++XmC6jtGK1dYKczwCSzw QNJk7d0ZcU1VyrIYU38sfFBnCwNfTWFK1G2N+vokmrskpjOevXO1Pci1kLOe+m9CGLuEvMQA5Qi UPA6x470XXQu1hDoyR0dbRqiR7Pfp56Gy7d15maQM= X-Gm-Gg: AeBDiet62Z+6bB2h8vYGeq1bOXWhywdl9oJ8GB2eVi3BajfvVz8X5mi5cL1q5G1Ij6u dOJ5Gd/HVot0x6IYKDqusmSC45KVQOoNDgWtBYttFKrIPv4QPAUMXvd75mzlmEgDYXHIQ1nrM0Y dsBn6X3c3g37Ff6tOgo8Gdq1j2rpQ0wjFYEHNRZ9xthnQDYmBRmBMj9GSKNDbTW+V+aZN3OXkjY ry3iC++BfGFWnbYWamAw1NAujQ4nXd/PZkisNba+WBkPEYDVq4M9gXLD/9iJuEybzzag7vSGEbZ eyRUrZYjpaj7kBXBtV8ewh1E9dXArI2LJA77sgepMTj+Gu16PQoQNpdnGOL0/SWTvGQOzO4mbZo JDN5u9CF3NmomOPT+bYWwlocPYj/6at62OX3UYhqQqA4sMUertzF++qGoWfL/+82pAddBPJ2SRm CZLYGVQ6xF/gnPy9CmNdjGQX5d5KO84hvDILgPuLRT8WqlXZb6TNtnv0LIshHrR3eVWGwqvWGQb gvGUFwQvwdIP7ogke+4r0A3bzmCQnaOWhMA8Q== X-Received: by 2002:a17:90b:4e85:b0:35f:bf23:bd78 with SMTP id 98e67ed59e1d1-36140461d2dmr42140242a91.16.1777270186156; Sun, 26 Apr 2026 23:09:46 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 3/9] target/riscv: Add implied rules for Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:22 +0800 Message-ID: <20260427060928.2322570-4-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::1035; envelope-from=max.chou@sifive.com; helo=mail-pj1-x1035.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: 1777270298126158500 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 | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 855c6bd4a9..3746c79b01 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2512,6 +2512,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 { @@ -2649,8 +2658,8 @@ 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, - &ZVKNC_IMPLIED, &ZVKNG_IMPLIED, &ZVKNHB_IMPLIED, + &ZVFH_IMPLIED, &ZVFHMIN_IMPLIED, &ZVFOFP8MIN_IMPLIED, + &ZVKN_IMPLIED, &ZVKNC_IMPLIED, &ZVKNG_IMPLIED, &ZVKNHB_IMPLIED, &ZVKS_IMPLIED, &ZVKSC_IMPLIED, &ZVKSG_IMPLIED, &SSCFG_IMPLIED, &SUPM_IMPLIED, &SSPM_IMPLIED, &SMCTR_IMPLIED, &SSCTR_IMPLIED, NULL --=20 2.52.0 From nobody Mon May 25 13:48:44 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=1777270265; cv=none; d=zohomail.com; s=zohoarc; b=LHGsG75zNZ41fdKDZ31O1aHUq7RVQR8mOJGZlneOFoCOFA5RXNOl/D2Jgkczor+2Y3HAhjMvsU2evSiagU3U6GR9PZIDsydBkkrEJYs/qWlSx7H2sBOly2jNyZazIuC0VOO9qgj+XmFUsq5CCC2B5L8UR4ULZj41ajgL6IIq9Fc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270265; 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=KX+3SOCuQUbPEu/VIUduN2Znq88BG6/CnPypiQ0pEP4=; b=JPVZjV4JZzOmvfJLNvU7rhPU7LFOt2eO9Wf2l7v6B/tHdlHUFAo8OjVvfkbxec3qK+ZG+2ZMjhocjqromHv6vdv5jgZNVMv0AMtQR0Ft54n0iZrm9M8kLadKQvxHVToc7Iyyi3UL/3fdj6HsyfvW6VImwDVHCPE8Nt4tH4imLD4= 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 1777270265526871.0854076943274; Sun, 26 Apr 2026 23:11:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAU-0005lY-FN; Mon, 27 Apr 2026 02:10:06 -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 1wHFAG-0005SO-QT for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:54 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFAE-0000sW-MX for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:52 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-35d95017a68so6455440a91.3 for ; Sun, 26 Apr 2026 23:09:50 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270189; x=1777874989; 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; bh=KX+3SOCuQUbPEu/VIUduN2Znq88BG6/CnPypiQ0pEP4=; b=MGosBwi2+Ke20sKONBrS16Q4ogfJPu0FROmJnXFdcnbgaWqcg0KT3N8GtqCNzn9qGf 3hIkZ9LkuI6plbSnPi02KNBaE4fyfQ+M6MXAl8IKpPTCWtJ7Lk9iqF91oKx0v96aKPhW gD/2EYYxIr8b4rrIrp/GdqRBxOT4AqOHBYE24pGR4VE1xTdgU2OJlobgYz6FzgD/9IQX ogj58GMgkuzxVeQ4G6NpmH6wighUYOXwEyAeSEPigDMtn/Dzp+qh9WsO0PzrrI0uEI8j umWPhvDu4KC6PekSnjU+gwDCkTwmJFxQhuUm0LtGeFdJ30rabWY8krofLYhCn+M22pLS vFsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270189; x=1777874989; 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; bh=KX+3SOCuQUbPEu/VIUduN2Znq88BG6/CnPypiQ0pEP4=; b=f+7yZMBoxVRXmEexnlu/GuY0JoGvwM5WKutrVfLARZlh8x1v8yfWuMjhuo//3+cNDo 2dLKnFM9gqdxovGt88PjTV3H7sHan4mW49Ac3U7XiAhC01X8TRZF38m0Q8Orv5RvH/d4 as62wZEq8ail3cQDjluCG52sNYwN/4zvYvb6ost35X7OE39ldFig6/VwbeNqY8jv19KU a2/qZJprlCCS/BUHxUthcg9BS2lFuXQt6MZjvYpSkws8S+FlZofhPwKyDj9Rkb20m4EU +fXu0zWo0i8CywYUXoTV78q1d0pj28PBt8aGTGXCSLCdXniLJgKsJlPdSxvDMGBlbFZF mW8Q== X-Gm-Message-State: AOJu0Yzfp3NWahZ03T8+oG9lc1TT/YMdoCuZ6bhNXy+n/R2PjO0femiu FuPUIaC8GJv0nbQuvcqCmHAvnHrqG4jltxwX5c7J4WkWfcRqqKX4f6kbmGkY1V5G7EPeF745j8E ooPocoGBuePTg1tCjE9mylp/x10qamoOYIpOwATL/uNhEWb6+pPX/7eeSp3DMBYK/SpBak/X6o+ wA/hxTASZm2nL+NDIXwgpC06ozXJYLSHlepfP7Epo= X-Gm-Gg: AeBDievgw3FIJsOy14ROtsna6UqfTlkAs0+feJKh+VEWnRvXM0lOgWm2Qky0zbSA+pM 4t47fhT0NeWrunlnqYHtO/l6tFTs0S+4wqG7eh3iqO5ZKTOlnGU//rOpvn9NmeADq1OuzACKJvN e45TqSCgL2PW5IJNxKC6Cc3wTH7bS5TYnQlckSqnNhReLYsWLFeDW+bpOAkFmFBSpkcozWmjfJ6 QKAd9JMFVSXgKIIr0Gis83s7UZzELJziyFygVT9T8Te0zZn3yTrZBdCjYPqJ5Jl2pYAKaD6CavG t5UavHkDy2aotkgP3gFlME8IvZrVTO6qFoJ5CsKgqYFlRIhZzL57/I+YAh3ahxDI/sTGmDrHQ8z K934rPpIiBUZAQmJr+HW2cjXOqWhK0qa2/e5f4SBZuLYmSeLLOj/J+Ty2F9vFP636XOWDaoO7pW sCCWee0UakAMsQisQzcRWYQs00uVGynGKot3ZcKgNEO4fz2bo0Px+XAMSJFB5DE7U4U2GrmxneT 7rkklpP/uvjgcjTG2rA7lHKFy0VxQztYt0yGA== X-Received: by 2002:a17:90b:3882:b0:361:3224:2f5f with SMTP id 98e67ed59e1d1-3614049c8a4mr46151622a91.22.1777270188700; Sun, 26 Apr 2026 23:09:48 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 4/9] target/riscv: rvv: Make vfwcvtbf16.f.f.v support OFP8 to BF16 conversion for Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:23 +0800 Message-ID: <20260427060928.2322570-5-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::1036; envelope-from=max.chou@sifive.com; helo=mail-pj1-x1036.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=ham 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: 1777270266823154100 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/helper.h | 12 +++ target/riscv/insn_trans/trans_rvbf16.c.inc | 16 +++- target/riscv/vector_helper.c | 99 +++++++++++++++++++++- 3 files changed, 122 insertions(+), 5 deletions(-) diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 54d2331966..508314e154 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -1249,6 +1249,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/insn_trans/trans_rvbf16.c.inc b/target/riscv/insn= _trans/trans_rvbf16.c.inc index 066dc364c5..86eb86f615 100644 --- a/target/riscv/insn_trans/trans_rvbf16.c.inc +++ b/target/riscv/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/vector_helper.c b/target/riscv/vector_helper.c index 73437c1d20..e7925f387b 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -89,7 +89,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); @@ -5025,6 +5025,103 @@ 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 +/* + * 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. 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 =3D *s; \ + local.default_nan_pattern =3D 0x70; \ + local.default_nan_mode =3D true; \ + uint8_t result =3D CONVERT_FN(a, SATURATE, &local); \ + 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. Initialize a local float_status with no_signaling_nans=3Dtrue + * 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; \ + local.no_signaling_nans =3D true; \ + 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.52.0 From nobody Mon May 25 13:48:44 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=1777270305; cv=none; d=zohomail.com; s=zohoarc; b=gFBtY5MFVF2zTR/+tLlyvFVFh9M66B0YnzT1zo1LNk0i7gTES2Vufkyc3fZiNCx0924E+tPNP7i3ZeWC465fCdHva+7zLM66r6MqpFSl52WOaoFSY4j8SKO4INZQQ5H9uBqQxZrx4z+cUSj/DT+/2dG8oZyKqKF5aOKi3Q88JLE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270305; 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=zkL3jPcMswiVx/VRRzQf1eV73SetidZ9/3wOAro8ohA=; b=N+xI8w65UOMbdQ3Q7fpDXxIWnbqy2lWx1bBYJ8I+bZyJnU71UiEGD/g+R9iGA8gmYPb+CHtsmNgDKlO5aPbJ6ocNiB5hKCDLCAl4J0+NmrNrNYSJ60zTlrAu0QK8fn0xr+1bh7NZ7JctndBfA7hbcUrt4tjBhwQHQrRjasIWyOs= 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 1777270305292372.8817672680908; Sun, 26 Apr 2026 23:11:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAW-0005ti-8t; Mon, 27 Apr 2026 02:10:08 -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 1wHFAJ-0005UV-4s for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:55 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFAG-0000t0-RZ for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:54 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-35dac556bb2so5532001a91.1 for ; Sun, 26 Apr 2026 23:09:52 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270191; x=1777874991; 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; bh=zkL3jPcMswiVx/VRRzQf1eV73SetidZ9/3wOAro8ohA=; b=NwztRuMvz7YSeu28w6Uf2lcPAo0mOyaCfgZ2B30PnVkE8AOlthLOB6BE0N3ZfIbG3X 8o4i+FcxYbp2akK37ueZIUDQN6xD4oE7tHwg48unsk0pzDYdbuItbGDUFDvBTdB30+2i ysnbncjyPsudy0/IPImkRgkZDMSC2UPIs75N8muyhUzt5y53NUm3Se5IEUUKPeeDaQ6X Lsxl/imBGvC3g76btIEzRMUMev2SQRvyuzPxDVEnMBuIyMLT2kOOXV1+HWZrNoBO+910 Ln21zm1LUv7bGKQSl1vkMIc3c8ToFABRWn1vCGs/18IHNqtWiA+jE1g2suIy2BI0JJbk V7zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270191; x=1777874991; 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; bh=zkL3jPcMswiVx/VRRzQf1eV73SetidZ9/3wOAro8ohA=; b=GUt62L6XFjXlirRSPIgRMNXTHlDyFgQ+zRnpAz4emGz+0cw5c0qXRHE3obT9b5DAdl iyTnI8Q8LjRupvrGGgzIduiPa7ESEWxIYTWD+A1CqJCCOweKRcRcnvDvknpnAB4Ej3vW mjXieqIgJqiuCzgAKB5CivYW3EBPKq6eVtqyVext2ip8CljPZfAKFy2juFhiMjPip77e pOm2XqOFMFlqOwe48gLLcKakAFStrCAc2d39NdB5w6uPjEyf6p0OdJQQQczzl1oQ86x6 vgL8XXMsuAGwVP/8uB/ynvXvawREH7Nw8quUHW6jpg5WrrgrBo484Llr6Eo9DHmq1CaR WQzg== X-Gm-Message-State: AOJu0YwCW8DEJT9Oydo1mKkJEBZ8jQFt+2q5yBnn4pfBnqpSoOyHGJZT AhlbgDZcV1mpmsr6GurWQvjF3+gGr8uPAenCHrCwuzxEqx02Vhw1zPb9t3TT9CnCpb2E/bG+LFR xd4zDOGgNIAove9Hy19SFWzjQMiJFIFjkrW2neuWOHXD9hqakfy0ArUZns/9QmA5PSHqTRLTmZp 51/fmJ7X4dJ/ZotDiJJBM402Px2F3qtgyAPhFr6WA= X-Gm-Gg: AeBDiesj3GXqYjBZkR8DDDDILIS6x9TOs8zIftL69Mhy9WMQYGamda9zqYyQHjRY01z cYl/1B9EqSGb8Leze0iYVM17YdyiMTF3ZmDVEd3cjV2QJ8PBFzncd4LU18OJLnK9rHOeqj7DXyz 9O887Q0WFyNA8FY6F6gJiJLF0R8tq0IEyT9HygKf4E3LS47Qrl9aOsdNuTTi3AP+aGqqlRVi+Lq OQ6YK8chT0ZscS/vgK/wyxJeaQX7uq47o/6YFaVZSL+e3REW7iaug61zpg7Umn9BRhm0IopJcK7 IU0qX+VU6F0zSTR0ruhCDhCdsGvhiUyUO0175k3J8kctzeNIuYHzcjup7oyDhtUtA2S6NrU4Pkj sJt++X5l7iTIyye3IOviu9hdpJu5xacl69i/4/PhsptGSvHHTwAD+XyM3ah1bqIh+ZyQScEb9XI /SNjFpq/Sdj4/kyssazPVoEK1oMlvLRUiN6k2oqUuZEdWZHO2TXpDryc+NI1FStRRGXYRBYiYwh s94uanedSywnJOwEELgxtoTU6R9bFwjdaupLA== X-Received: by 2002:a17:90a:c10f:b0:35e:d012:5a39 with SMTP id 98e67ed59e1d1-361404650eemr40252315a91.14.1777270191320; Sun, 26 Apr 2026 23:09:51 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 5/9] target/riscv: rvv: Make vfncvtbf16.f.f.w support BF16 to OFP8 conversion for Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:24 +0800 Message-ID: <20260427060928.2322570-6-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::102c; envelope-from=max.chou@sifive.com; helo=mail-pj1-x102c.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: 1777270306120158500 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/insn_trans/trans_rvbf16.c.inc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/target/riscv/insn_trans/trans_rvbf16.c.inc b/target/riscv/insn= _trans/trans_rvbf16.c.inc index 86eb86f615..7e9b0a53a4 100644 --- a/target/riscv/insn_trans/trans_rvbf16.c.inc +++ b/target/riscv/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.52.0 From nobody Mon May 25 13:48:44 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=1777270300; cv=none; d=zohomail.com; s=zohoarc; b=lD7efzDknur2g6iFog1/c0mwZ8vcsbKj8RnRbf704A1bIr5KxisxaGjWJw16u17aMpHCcVR88OR/YPIPwKXwnQezIrgTbs9gsI+C4NWWxcefZ5rCmtyuDp9ELZC0QMgDXq4HXRCzOjQgXCDBMrW116Ki1zZtliD6c7CdWN6a2J8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270300; 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=WkmRPpZi05j+i+tKq5//n/+335dDi6qLXvoGPu5RWTU=; b=KYSAupiJwEnrVnuRN+lMtwHNfRKhuXcK6MoQfMKOBrKDESisrHxsM7uNeBQzw+j8eCePipKkUR7+ZqadbBPHvs0auVnzu0pNk/9BuOgwVLEj9uqlxaBbct2gkGTwQxTvSVHHU82mB8wPlcNNEPL+zFaixErauUEnc6tjlyyN7WE= 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 1777270300834812.0213773318621; Sun, 26 Apr 2026 23:11:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAX-00061c-Bc; Mon, 27 Apr 2026 02:10:09 -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 1wHFAL-0005XS-9K for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:59 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFAJ-0000tb-FM for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:56 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-358ed696623so4327965a91.0 for ; Sun, 26 Apr 2026 23:09:55 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270194; x=1777874994; 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; bh=WkmRPpZi05j+i+tKq5//n/+335dDi6qLXvoGPu5RWTU=; b=JaldVvF9RRV4kM+xD4v94CnfSbRWYgImu9adG+K2hnXTIN9uLnv5iJCaiKhmfpZncA A3fblxNK0B4XvzhM/cZCbiekZEdxAB8r7kPcrWR3dp7PIZnWngS1VdnK55tr/n6Ex8Rb SyvnVXjBcF/tLT3V606YQcGGguYp0caTixY7OS/U8Y42z8Ni6sKHMkwjPKqRR1gRVjUr 4kOYMxIqJifDJ5U3XfqC1WWL6tll4b3Yo3WNo8xwcYXgtdsZd9n7mkiBW4hD/9wSXMgG 1cDR/q937btEesmKW3+5qYBo/0wdRutxhtyaLWyT0abPOqNhvA2XG0tjqYZDQWv5g540 JQvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270194; x=1777874994; 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; bh=WkmRPpZi05j+i+tKq5//n/+335dDi6qLXvoGPu5RWTU=; b=fXfD0oVdXuRnWocjjFS5O69hwaDLBvkFMkiZo2NgxHqc57CBjzhFnTB+kwKwfecLC2 dtbawm6oR/pehEPjOu2hipSg+9EgDvnIQusY+jZVDO7hAG8S5PUt0k9ai4s6j/nkjV4i iEj8scft8MJFg3c3EdEyDx5kccFJWOWewPlNnWeUc0aftwSZDjk/zDHYnAjW1LHejvwk s0RkKh3afC+jknS5BhLhB5wMQhvRTzkRwwcnVQsYIKL8QbntriYLgPj29zkBz3MobDbj UeebIRVQ7rgA7RO7y1ab9quNChaVnA1CK+ZWXjjdRyx9Tq9iwDGsZPGrXduLvh7XCc0L izQQ== X-Gm-Message-State: AOJu0YxzOU1fZoIcSVe88qF8BDuBvHRKIsbJkU5ZwbdHP09YM+tyP7an bBO9DKbiHtMNvlIRGgCQx41b1r3ZJ6XJ5oF/Y++/9ONgpmyG9GRvluoC/6qqJVKdevXXxf+Td+r 1uZhNrsKSmZ+1oy3fM3qco+I2j5BFj6BaACGGFjxyJpNbg7CTI629qn1/Ui0vlIrq8UUr92xrwM U3Kk/eD3+t1jQvjSKU9hntC7AJ/4eGF7ILDpvO5HY= X-Gm-Gg: AeBDievh3KXZZ5Xsbd8ZjAJ33xDKlCqkP9FAiz2add8yNnWEblPVIRS/ztYI+biJSUY QTjS38ukmG6NF1r8Vj4OxhlAb/ARoIndH4BbrIeZqMqYjTxpCBCAS6DIq2Ob/UwHAhpKZhtBoK6 rfw7lPGtwKhSknE6q6kAdGpWl7dtUKt+4NwPEuHA3DGWK/dtZrKfC0u138G18AtudycP+SRVNTl TwgLuVL7Vdi/yL2nRB5L0ZKiIwzKJ27dSprsXspxZv9OUommniLLfThqJn0VMU4sGpjqpHylyCo q+NQvwQOXP0/q+x8/3RHQ0pILuO+KIYdSwe2EPX6IP+Lnlru7QzJWkipF6zIAHi56kozR1D8C8X OhRge9dYTi+AkDUkt6btlE6nYmRBVQghVo67c61aZrSqCh5Ba/JC2Yf1cNR/eI/zxpbQPY4DOEp nLehpqFpDkRDKp+5RHbzU6EVjzcPWnX2uKBtAdNJVO0PIwXiXleOHt+QG55k9jFPNKnbh+9nXMA NTVpKqXcRtVLHA1zXoSgsWzlVODb8VW60gTew== X-Received: by 2002:a17:90b:4a0a:b0:35e:58d3:3284 with SMTP id 98e67ed59e1d1-361403e083bmr41767194a91.9.1777270193852; Sun, 26 Apr 2026 23:09:53 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 6/9] target/riscv: rvv: Add vfncvtbf16.sat.f.f.w instruction for Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:25 +0800 Message-ID: <20260427060928.2322570-7-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::102b; envelope-from=max.chou@sifive.com; helo=mail-pj1-x102b.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: 1777270301399154100 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 ++ target/riscv/insn_trans/trans_rvofp8.c.inc | 42 ++++++++++++++++++++++ target/riscv/translate.c | 1 + 3 files changed, 46 insertions(+) create mode 100644 target/riscv/insn_trans/trans_rvofp8.c.inc diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 6e35c4b1e6..49201c0c20 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/insn_trans/trans_rvofp8.c.inc b/target/riscv/insn= _trans/trans_rvofp8.c.inc new file mode 100644 index 0000000000..d28f92e050 --- /dev/null +++ b/target/riscv/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/translate.c b/target/riscv/translate.c index 81087e0a5d..88d6efbc80 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1220,6 +1220,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.52.0 From nobody Mon May 25 13:48:44 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=1777270311; cv=none; d=zohomail.com; s=zohoarc; b=DoXC2mPiJdOCg/mKxfhKBIHNEe/f+pGcatqgP9aBlh2+SrfHPA/bmzAYgYyS3jtl7ZjS/hTzwT9cVe7dKoVUXL8HaK2I+RqW+QrSXGPXQyy9Nu8osMS5XlUOFsYAPZ/y/XBlHrCuv2n174IxcEIUB9NU3yiJk8yNqny1y5YuSMc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270311; 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=KjxNDWU2If9xYg8JD6znMLYB0brDZHBk2au51ORrAp4=; b=Y2IhEFTBtOjJ/KowUwNUY+ceum2qr8DH/Q+8LCbKikfrDryUSckHgN7lp3+5dr4bl/jZ4LjBl83yQPSqELMMxQEUwNQQZ85jIi+HiqCq8AHZtBhm1/ab+TyFIkYJtG33vww1OLHV9RhPOVAuXGDGeW0tMRjo9xfyHDXiJ3Z1Hmk= 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 1777270311601205.226101370356; Sun, 26 Apr 2026 23:11:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAZ-00069a-7a; Mon, 27 Apr 2026 02:10:11 -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 1wHFAO-0005Xt-17 for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:10:00 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFAM-0000u7-3j for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:09:59 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-35dac556bb2so5532044a91.1 for ; Sun, 26 Apr 2026 23:09:57 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270196; x=1777874996; 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; bh=KjxNDWU2If9xYg8JD6znMLYB0brDZHBk2au51ORrAp4=; b=GQiKW7N5MKcJISOQwG1GWDoHRBFTA/SgechQChyLcJyTbm22gZ0J5qzTyqvurPg9ol k4+2EyJF2uses0vZIF4uy3KjawAj6772B7hFvlx6Q352IT7ssTEWXMqIBDPzX0SDB8mV Jeys4utO1WE9rA1CxrVseg4njyOMcTVy+99qlqDthV8xgQOF8OlMD4qQte6yoB7b8HOq uKhuGP3kpqUDMzyAt6NqELjhHmHhEept2j9U0kP3phfaUXlvZtOVhYj/pec3AQewmTGg lFYHDZ+jabVOu67FKITDzTJXTSbeVRpdWBusDfTM5QJMJfykU/2RRvL3bpU2gWSgFxmZ 2wXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270196; x=1777874996; 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; bh=KjxNDWU2If9xYg8JD6znMLYB0brDZHBk2au51ORrAp4=; b=aWkibyW67/p0e9HqNl9B47IAGtTCUIQRs5juIRCos8CgM3h2gZrMDRPuUaXgJ4FSqS jTTNXWF+s20yD4PPOPVsA1M+LL1fvqfGn8IuqTkbcWUmgEFTQsso/YDhadkY7fWUMTkG z/KGgj8rarQE1CUAqY6J6Te5RGCCeyLKhyk/KB3CRi4e8Pf3wIMosYC4/vjG09RQEi8w KSecCSh2awcYOHsm3ofRhL5/1lFHYrkecupPre07i0yp9K4h7ht28xSPbTtMHdslTiCZ zv3W8jlOB51EII1s6Wnn3Gno3JhtGSGiNjYiSCBICvimLP8+uJUptxjUySVTzXwRh+9Y rRzQ== X-Gm-Message-State: AOJu0YwmY982l3JuOuINuqGApB3PBsaGehZ2AwlWzq3q4T9w/YPmcC16 +jk9Si/tXDweaMu3dWnz7PQTNIpjXbdky6HgI2sDkoTN8lsmoAjANzjtQ0AsvK222P9uUsSszhV QRJsJ8YFBvALPniMxSxGYwH+eOIk/tvAvpmdDd23k0GdtbfHwssSLNYug2L+UNC45Il3F9NELor BstaFpE0na1SsKE3wuUoAZHhg9/r04hlK+FiXSjkA= X-Gm-Gg: AeBDieuzFo1lYcq1OK3CfRrIpggb4MkxSGgpcoy6PP+6ZcxGxviT6E8SXJMAgvrRjot dHGNYH7VauNUSL7PkXozSB+IsBoU21cwV7tgV3DNp+JZpzemkyDmZF39ePe3Wmy/xNXboHOd8vt 9lQkxIiwP4ISP4m8RZXDyIb6G+8dBrWO7fJyDtLHSSM+EyqkE74KHEBKCU6JFDm+BUTlj5qZiF7 7UsaYB5RHJnlnQjXN2rAw0+o7Ue+pm8ohN8Wm5+Bu8aGVw4X/Q9mTwu0jM8/0oqwkLlkNpwijmM hSdomjo3mqg5mvdFjJez5UPFwg5vZDWD3cBfVPNCebZyLC+J+aAScM1NGPPRmIehcBziG4frc7j I3LHTXX0jivAnE10+yEHHALLncqrqaRb/+TuXfWKWN/dqjSfXu7/f9E7nZ305JoeUiMjUqdg2GL E6gjB9iFotXgkICNpF1AQCdS19ISJbiVEo77C4KgPmynpf9j0kMbdx4Xi+Ye20CH89Fk7FyPnuS PyBx0OG8KgA41mw3olwXwLXZcLTheSGMghlAA== X-Received: by 2002:a17:90b:524c:b0:354:a57c:65db with SMTP id 98e67ed59e1d1-3614047a5d4mr44450750a91.20.1777270196398; Sun, 26 Apr 2026 23:09:56 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 7/9] target/riscv: rvv: Add vfncvt.f.f.q and vfncvt.sat.f.f.q instructions for Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:26 +0800 Message-ID: <20260427060928.2322570-8-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::102b; envelope-from=max.chou@sifive.com; helo=mail-pj1-x102b.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=ham 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: 1777270312236158500 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.fq 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 + target/riscv/insn_trans/trans_rvofp8.c.inc | 63 ++++++++++++++++++++++ target/riscv/insn_trans/trans_rvv.c.inc | 39 ++++++++++++++ 3 files changed, 104 insertions(+) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 49201c0c20..f2b413c7d4 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/insn_trans/trans_rvofp8.c.inc b/target/riscv/insn= _trans/trans_rvofp8.c.inc index d28f92e050..619ee4d773 100644 --- a/target/riscv/insn_trans/trans_rvofp8.c.inc +++ b/target/riscv/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/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 5b72926b3c..2108a0fd4c 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -621,6 +621,45 @@ 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); + 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.52.0 From nobody Mon May 25 13:48:44 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=1777270292; cv=none; d=zohomail.com; s=zohoarc; b=UNnsGdD6vNhDQRWPovTLTMiNUOCzGwy7Izrjm3/5tGTL4/nAFNhzZQ/tkZecE1pnVt71UPvrugbUkHD52FbWiScfYu2Mma2G4Y/oSqUMvNTTLNNudJVk55dlVfM92+4Xan1BGGcAKhPO+XzewETxg4AYTw0rzOTmrZtYcyCLvA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270292; 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=Db4BIQG1gAcG9d057Bda1sVlVDq6zFiMCktQi3Fpjs4=; b=Kv/hETGwv8l+JV3TdMx7gywWgWGDjKJA7P01Vw8Br4btXCsziWr7ukMqDmZ9tpa8wP+64/yY19zEo1HuqMyE/N59eXXuaR+KN8THHqRGtYVbRVEIzlXpdqFcEHuRazofxklvYiwzVPhhQDKrO/0WUFgKu4pp36Du9mbKCVD6hnw= 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 1777270292930515.3050223709198; Sun, 26 Apr 2026 23:11:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAX-00062Q-G8; Mon, 27 Apr 2026 02:10:09 -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 1wHFAQ-0005Yx-0L for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:10:03 -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 1wHFAO-0000uW-Ev for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:10:01 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-35d90833cacso6047035a91.2 for ; Sun, 26 Apr 2026 23:09:59 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:09:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270199; x=1777874999; 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; bh=Db4BIQG1gAcG9d057Bda1sVlVDq6zFiMCktQi3Fpjs4=; b=Z/Vmm4ZWBYJQWc52zdRS58oU7jvgKTEgPaK5TnmwC0zYhOn1ubzrIXRDIqZHEfbc9G /sLuYkm21xzBXYLXWjuQabTvovgFCLaYKh5kQEdK9XFdf33Sbyq6GziJfeCy96yTu3Tp Phbs3vFsNdWq77F36GlNyvlq1Lzab7u/WyvJjGvCAHhaQ2K7ab0r3owvUHkIHLQmYhIc CdtTpnK7UNzWsg7oK0l18w7pAxlPkEjJw90/nQzjlxa4WMvnNyYS8VAXbJsh36cphs7C oucr3jWvJI2ox2Z0wHFY726zkXV1HEwBSlMjDcisqFz2/FrM4wnkXDCxosyFJRHKZlZp j6sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270199; x=1777874999; 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; bh=Db4BIQG1gAcG9d057Bda1sVlVDq6zFiMCktQi3Fpjs4=; b=AKmocE3NKZmqjf9vbWSdGHwtkypiY0crUPO+rlXtuydeWInvQNl6iMDS4vwFYYeAnI 7KEUt+5lWxFEr+YvA3l4VPKoSnHJAq5wl3baDHaZEStMb+RIOgnlwgLCshKrsAjtcuoc aoLbfsSxahRrW43x/7FHkPYNtbSojEkM6PfSYs4yH+HZ3+8GhFb4acFOYnu6IQTyY+nD hIpFLRlo6ukFBN5Xgz9Z2sb76Rh+nV1gQ0cDHbIuGsRVraMgrZ6wucrdI+I36DZ/MKGH 2oWsOTV5Dr/uZau0g45ftClkpfILusjvE7FOavz1GnGqHOAUuJuHvoyl0WtximQQ58wu /ElA== X-Gm-Message-State: AOJu0Yw6UjanK90FByxtIOHF4mMBJurbgh90EkIhzUuAtjZBsFLDICnk ZLFGvtMJcCabSZ+yTt6bYR6p3FLgo9I+LNPjie1xFCZeBqMuyvo2fNHHA9JGN+oD0x+Q6IwH8HI Dozi+2ELkhbKh4aZA07Qb8qsYHYi7WM9m5mal4vjzCr0Y3M7UyEkscxPswhkknfZwdTQVK9kgyB NA2AHgrNCoh/AVCLIRMMDEnMP1lhu3HZfNqKeGYbI= X-Gm-Gg: AeBDietwhQtegn9G0WOMRCnAOsqy4xEg+TPhY/CROwhVIEmVq4WkU3XENwkWKuiYYoP p6rLnGM+qwMiM0MSyffdmO9X2+j8FTdEIFC6eUTlMVfQDY65tXbpqWVYtbtvwwd2SVxWWNpXZRP /2COvphFm87HgY1SFDiO8rQUrI/SgZw6NwgLSylysaXpgCyeu9Utlx851nCHxj2YqtZMzTQj2Vb AJJNu2SePP7XnBX2jA+cHvFI1ci962djh7FBuqcsFAckgnEUnW6rEBkqooa8Pk9/eaiFIyC2k8y OOulX3DIV17Uubvvd3JYF7BFcNgsoB4mfVPGNLrGjLlb2XHKTXquB/8VC3Wzq+/BMIJ2SmuH2VK NuTSzMvDjgi0H7yo89MNu2CTZsNBIHSJgwZT3mCGSGK1u8ZlI+uYDnXk/fWYdsTFW4IaXxUqRqQ pjHsIstuE70oVfAUw1Tcu+cd+1XDaKtNdX3UMPC5KINpfsYBHb4ZmYYCsKf+KZH2Zzc6j8RQoF0 L3PFZevLSaWfRPY2XGHCEYL+1dPkvfGq6//5ClDdLaXOlFa X-Received: by 2002:a17:90b:3cc3:b0:35f:b69d:7292 with SMTP id 98e67ed59e1d1-3614046c8b0mr42643351a91.15.1777270198901; Sun, 26 Apr 2026 23:09:58 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou , Alistair Francis Subject: [PATCH v5 8/9] target/riscv: Expose Zvfofp8min property Date: Mon, 27 Apr 2026 14:09:27 +0800 Message-ID: <20260427060928.2322570-9-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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: 1777270295122154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Chao Liu Signed-off-by: Max Chou --- target/riscv/cpu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 3746c79b01..4bd7075427 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1273,6 +1273,7 @@ const RISCVCPUMultiExtConfig riscv_cpu_extensions[] = =3D { MULTI_EXT_CFG_BOOL("zvfbfwma", ext_zvfbfwma, false), MULTI_EXT_CFG_BOOL("zvfh", ext_zvfh, false), MULTI_EXT_CFG_BOOL("zvfhmin", ext_zvfhmin, false), + MULTI_EXT_CFG_BOOL("zvfofp8min", ext_zvfofp8min, false), MULTI_EXT_CFG_BOOL("sstc", ext_sstc, true), MULTI_EXT_CFG_BOOL("ssnpm", ext_ssnpm, false), MULTI_EXT_CFG_BOOL("sspm", ext_sspm, false), --=20 2.52.0 From nobody Mon May 25 13:48:44 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=1777270320; cv=none; d=zohomail.com; s=zohoarc; b=QOZ9xkGUNgG8B6qi+NSwKnFpBWBHG9ppo2jzw28vKIJPKRgHb28UrUUeDZnpAtSHn7RPpghKz3/PWoVv27lwXMLKima9C8aIbrxU8L8rZ7cSn0E+7ru+o6ncJxkF3/Jsm4GvwGVnu/w75iG5FT7nlZv/4M7H2Gk/DzxycoadJy0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777270320; 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=TBcVT+obBYS91zplWsOFxFkEBOsc1m6WJh1ih9s8+dw=; b=NmRQ0ntHJaJf5pFsYQ8h2o92SwFQML2PoMshxFaDVDKl/O4+qpK8IxC49E9FyzAEtBALwlkByqbiQPcfQJdvkXQTaOP7UiPjnQ28KRQRduwuMKLOFWRrE/tRwnApc2ECA26aH3CWirlkBRR20R9Q5WQYgVSqun846vTu0qJILEg= 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 1777270320286452.14728495617794; Sun, 26 Apr 2026 23:12:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wHFAX-00060B-7d; Mon, 27 Apr 2026 02:10:09 -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 1wHFAU-0005kz-2v for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:10:06 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wHFAR-0000v9-1a for qemu-devel@nongnu.org; Mon, 27 Apr 2026 02:10:05 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-35da9692ec3so8365184a91.1 for ; Sun, 26 Apr 2026 23:10:02 -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 98e67ed59e1d1-361410bac6dsm30290710a91.14.2026.04.26.23.09.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 23:10:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777270201; x=1777875001; 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; bh=TBcVT+obBYS91zplWsOFxFkEBOsc1m6WJh1ih9s8+dw=; b=iyGDXtmGNRTx/gw6lI2o8XHOKykPLRUQdTTbvQ53xR0Xjt7zZdTR4hjLM/j2PJahcS s1gk7vyoHSyYlkjEzNF2GiwRfuPrgiE0IyOJ07GIrv5MMxwzW4BETB9D5co2AmIG7Hpm PbxA0anzT3l4Ohn7+gdQQnlTqXLaTbM9HAakJAQDPhbuwWynlxA+tXcI4atR7bAI92bJ VSP23+++DdInsDuxfozKL/tptAbtos2O4ZN2Bkr2UqOH03lm0s6JxWB3WLdYAg1CiKEs ZWtBJY4rcX5gKyMgXmnWm+4tv4RWCS2BInQGDjZDHixv/UqK1WLD/SNsPEzKk73UGakQ OrvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777270201; x=1777875001; 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; bh=TBcVT+obBYS91zplWsOFxFkEBOsc1m6WJh1ih9s8+dw=; b=htTOEt4HVRjgUpuhETv1awYvP1ObBUgC5vb480Wt6G/XdtNJHtciwBZ+OMUyCC97kr oubw1MxXBqGZTHmvT5aHQDz3wStCbK60f726qey2GWI+6eZ1V4hZT8hHMdENda8Ppu/9 9O1NXGe/9IK5MFkodbr7s7vgOuXUWdZu78KOsjUH7jy4YnonqbkHRsDGVyc2oI/tax/V Bxx8w/lajwhe/dtbjzhrwjMj6AZPFN9fF4Nlxn/uCVcn8PRW8ICjAZqUvDlnw6BVHsIS /Ow/4u/YgV27F418uDsZFtAaRdQaALZlvyM1vGNeoKLwDGSxH/qFBD3kRGQPjdVjPCxr tuYg== X-Gm-Message-State: AOJu0Yy8nwpUfKd7j4S1xLq/kzyrBN4/kIev4XmFaID8hFSA3Zt3ANqz qecrup9Rv60cuABf8RU3iiQ/T0uJM8snZUnRAsfbvVp0sV0sc7pRjr2UgnD8bRLuTr2GK49Ra3p /YX2+n/Cvu+lHE9x1EzyGo5W+eNFCPq11wHupRknx6TNaDOLS+P2MCt9R2yQxQ5kVzJ+/EFf8B5 B5FaG9jr5+b68jOpVnYQq5XuMrawOlouhsIFO0AXk= X-Gm-Gg: AeBDietGAoVQUiSSN+C223W5OeX5+641KWR66+e0dyyTZUiCXahfg0FzgbxVVgWsrRZ wlmFFubBNU4gpXxBCMMcm/JzVEQJZwPcmo+XMKDju2nzBkpik57jrwRvpxCqktgKBThQcmLMVtD YWLybDYJ+PpS1nuDIczRuYsKzL0p7I4BJlniTPsU3Tl3SR//zA7Vck9z/VCM5G8s4MCRI62xoGP RvVP8O9bxR2/PGd3M59e0UoGOn6cTeWh7Q4IUE+E5NTwtx3nW3k2yq47Q3cHsQ96SSprHTgzQvs kl4uE5gpmE+IRynFAB8KbHieLRiSRH5oNy07dCLJknOIM81fv0fzQ6cOszPtGfLAq1ke3v5x+NE 3hewdGKjY2qwGfJ03o6ZcrJVKG4+/ij3SaSUuGIwsjG4fDEsroBKEGZmgfpmwTU6iCaVey/zUsl OQOx8Xj6ywB/uaVZ1u6ZxE+DLcugBiXgSOS6EYAmuG5imMr2HbnLwgFOZo9G3kij2IlDha8vvku CAOl8YUMH/+5a2BzHxe9IkrKs5jcJHviqtjxA== X-Received: by 2002:a17:90b:4b87:b0:35b:9b77:d7c with SMTP id 98e67ed59e1d1-36140469b55mr43668382a91.14.1777270201239; Sun, 26 Apr 2026 23:10:01 -0700 (PDT) From: Max Chou To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Daniel Henrique Barboza , Weiwei Li , Liu Zhiwei , Chao Liu , Max Chou Subject: [PATCH v5 9/9] disas/riscv: Add support of Zvfofp8min extension Date: Mon, 27 Apr 2026 14:09:28 +0800 Message-ID: <20260427060928.2322570-10-max.chou@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260427060928.2322570-1-max.chou@sifive.com> References: <20260427060928.2322570-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::1031; envelope-from=max.chou@sifive.com; helo=mail-pj1-x1031.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: 1777270322193158501 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 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/disas/riscv.c b/disas/riscv.c index d416a4d6b3..8a169deba0 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -985,6 +985,9 @@ typedef enum { rv_op_ssamoswap_d =3D 953, rv_op_c_sspush =3D 954, rv_op_c_sspopchk =3D 955, + rv_op_vfncvtbf16_sat_f_f_w =3D 956, + rv_op_vfncvt_f_f_q =3D 957, + rv_op_vfncvt_sat_f_f_q =3D 958, } rv_op; =20 /* register names */ @@ -2255,6 +2258,9 @@ 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 }, + { "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 */ @@ -3631,7 +3637,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.52.0