From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id 0F5213858D20 for ; Thu, 10 Aug 2023 12:39:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0F5213858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691671157; x=1723207157; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=/VBnJWLLep8h0fHYh15ooWScO288iKcfLguCra6Lpw8=; b=EDMFqGxWGA4YnfKQi0tMurSShYXa6VwkTbyrpR7HNQ/WrCjUfYX1gI3r 4x1DBHT7lbVcFPmmfzpCRC9eVK4H2/R30IVspjA60G5ldSe2wI20s5tqI tMxWftfAxEJ8O/IrDuUdHPqHAsT8ercKQ8rKbxNxRKfsDaNAR7SoXwmOl 2SWrUj5/a9FaDwp+eY0LflGt5gpmXMtlkQrZCRRnLr61vrL7oQVa/508j qAVtdd1+u0t1GHfDgQzlkW/9D9UDYwVx63fIgmbLI/A+cYvMoFnXIuyO/ XoXLoobw3+bWHxQtuGyI03MQcCa5AfL14eZuM50R9qmOZ5XhS0BhLTyRR g==; X-IronPort-AV: E=McAfee;i="6600,9927,10797"; a="361522198" X-IronPort-AV: E=Sophos;i="6.01,162,1684825200"; d="scan'208,217";a="361522198" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Aug 2023 05:39:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.01,202,1684825200"; d="scan'208,217";a="875700799" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga001.fm.intel.com with ESMTP; 10 Aug 2023 05:39:18 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 10 Aug 2023 05:39:15 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 10 Aug 2023 05:39:14 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Thu, 10 Aug 2023 05:39:14 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Thu, 10 Aug 2023 05:39:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RWelHgfh/KT7XfRIzRtYxadUHiAv87zvnmGYiSH56UV/vYgKoayaLRUsFRFjj+lphwzWx8O5uAMQreGFs+MlDe4Y5lLUW0vmIw8ouGqbFg8HHHleeaXkxErrQSDmkWcnDJlIVKKK3Kb5OXI+leOGy/VUdi0j513Yb25Rnaz+YSHRA8BZEpg08EWbw3NlGLv6QxoUiYS3YsQwjFmpSxNF9KNRks6adkvVEQHUdWQ4JKUDUwXBwXITH7IdpszCL0izjotShAwqhtIoL6RvhqsfM/Fj6EhaEgZU0X1WuM5oFdZWTZ0r7TisEumUMi19DAEzbkqarFu7V+AbDTFBicZzbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wRSxpRLzTs6M2lKKVvhXb5gZFxYrMl83sAUfty4rT9M=; b=GSbAKQEriIsHlXw80ivXYSEQ4RZKQ8jb04TyreX4TJPJFo3zTALyWuRTMjkI1FH5EK2Wzp7bFbZG3mLVKNQay3jt4Qsrdbxtdq5KfIPlYF0jBBy48JL9dwL9Hcq2z62LCAMPkf6wqBWkSMPdVhf0J5Z+3KUGpd3VH48He6W7ceWsznmo2jjYYFYTEzL6QqZalf7acFNDxDSzs/6d+Crr4uN6GwhN9VAB+LzMjVqnrUWwAReet/O+UJdtacdekMVWj5w9VD1S2k8zZX8TE/0L/b3SEl4GGlGs+bU0dEd9BtPilPz4GmJeXirzdrx7idsVaYF3ZGtvpw1YULiTYFW4FA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by CY5PR11MB6161.namprd11.prod.outlook.com (2603:10b6:930:2a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.30; Thu, 10 Aug 2023 12:39:11 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::6ff9:5a3d:4981:3476]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::6ff9:5a3d:4981:3476%4]) with mapi id 15.20.6652.029; Thu, 10 Aug 2023 12:39:11 +0000 From: "Li, Pan2" To: "juzhe.zhong@rivai.ai" , gcc-patches CC: jeffreyalaw , "Wang, Yanzhang" , kito.cheng Subject: RE: [PATCH v1] RISC-V: Support RVV VFMACC rounding mode intrinsic API Thread-Topic: [PATCH v1] RISC-V: Support RVV VFMACC rounding mode intrinsic API Thread-Index: AQHZy0jpljeYxOwuS0C/s3hdgFoCw6/jdesZgAACyXA= Date: Thu, 10 Aug 2023 12:39:10 +0000 Message-ID: References: <20230810050940.3694097-1-pan2.li@intel.com> <6BE1716166B7D9BF+202308102026476700816@rivai.ai> In-Reply-To: <6BE1716166B7D9BF+202308102026476700816@rivai.ai> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|CY5PR11MB6161:EE_ x-ms-office365-filtering-correlation-id: 80f28fd1-9d0d-4c0c-717f-08db999ecc05 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EbFMr2GTds4LYJVo58Kn8AZ+tv1YCgKFC7P9ROGl8l+8VvVMLpaj/l1NjIKU3O39mJuahPO6pYYjfB1l4UvcGaH5fZH9p1CFB7A7OBTyymPzPCs9RwhcVCWiIZDb0w44MIpfix/TFVFAil4GlQsUNx6xHLi2gl7BXwdokZyoF4ouSZU7eBfiPg2F0YtCdUDMoIfCiNXtoswMdH4R81aw8YzQTo/owMm/YhzjcVwamJRXWV7iKYE4E9SAcyh2jhn0n4HzSHnPCu+8lB1Z83zc8Ji3XuNoj0ceObqiKCHeN31Cm7o9kxyFAmskQ+BukXVSGFuqmwnBpSteSCxyKcIpYQG2OXH2GRHTucR76G7TcEJy8Pj3MXqqpkX41Po20DqQD3ACUVT1MDLCcfcdfjuMl2X5ofQZQHdhUyOMBruWnBG/lk13qXLzx+KOBCrf97zukdVw3hR5zw7nIybgQ9A27z5HvE10vIGi04R3ffTuaNKu6Lh9Yo1KXoAG+yMNSgIPnTGxxDW5maNqpVKvuw7vLqP2qYIG5ICec/KEs0WsIRxiW2ytD68fAi709QwYyRFiI3NUxxjCz2BoWdvwFrUwrmdDaSmngfhbuT7gT413Vlo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(396003)(346002)(366004)(376002)(39860400002)(451199021)(186006)(1800799006)(26005)(5660300002)(53546011)(6506007)(8936002)(8676002)(41300700001)(33656002)(2906002)(122000001)(38100700002)(38070700005)(86362001)(82960400001)(55016003)(52536014)(66946007)(66556008)(66476007)(66446008)(64756008)(76116006)(4326008)(9686003)(54906003)(110136005)(71200400001)(478600001)(7696005)(84970400001)(316002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?GfPtesEQ4yY+Cl+dP5QV12THa8m7mir9XXlPFrQ97heJkzklhbpSiJl5nXlb?= =?us-ascii?Q?Zv5WeAIBj8iPhwR+YnZHwsYZhWb906s46XRxknEqRk/jZrW9FoVzajzcWZc3?= =?us-ascii?Q?Lma1nKgxvwf72QVhdhyydQ2X7HhTu8yGu4xAPzm1vI4sfZ+n1aIiIpBpQf6j?= =?us-ascii?Q?lKNetJZyVkIgmssCO6hjtpLQBnNct+9fFwv+Vv2WqTwFX5/rjNgwTbPai2xe?= =?us-ascii?Q?Ya5TSvlbxBtwt8xZrO9KCCs6TkPKvsocBu3mKJSycwCKXY9O6hUwVeSD7zxf?= =?us-ascii?Q?uzMVSvA2tFE6potA3DpcposGQ1ZgwVHeOzoei65kXXTTD0+fmix0zkpygii1?= =?us-ascii?Q?s78KKK6pMviZ6UA9WH4ADLnbTCz+5W+nciBUlZ1R3/e824iVpTyZdrbHdDa8?= =?us-ascii?Q?RpBi2OuFhDBp1ftlAQl3cK6WRQLGhmd1tnd/vnmytKNBzFm0LLwEv4KleU53?= =?us-ascii?Q?udQm4c/Fb0EEHy/4cIKyRKPLXhuo1dVZGjyWuDyICAAcQnyT/MiPas3T0/Lz?= =?us-ascii?Q?y16yQEU2Sv9jmVcD+OoTaF8wmatKZ9l0GtCbE3uhaMnVhQSA/7TT5iaja1Ya?= =?us-ascii?Q?akr3SjIzwM581qBoVxXlUtUF1EPfmHZjnKXWnuL8KnyDC30mLJ+LkRWE5gPO?= =?us-ascii?Q?ViQVJL0+Hp4egMM54m9GaBQIkGSVhvADjLkgyk/8zvB84vJcmd6NBejwoJ8u?= =?us-ascii?Q?hyYPRJX0fYCy/2WiXiEgl2rpgR8veDhjPIrGi93h077one6k9iwIBJc/IdXu?= =?us-ascii?Q?bW7mUlwBcXFiuW6ViYjh+pG7rcKyPw8Ep9VlztsiD2LjM/4XoEvrjYEMfRNw?= =?us-ascii?Q?KzzFKbqssQRsEZ1A1oJLLf3spt3wYm+AQrmYuOfQyFfZG3XFWaYhfNyWYS38?= =?us-ascii?Q?BRyMxCBdNWW63GmR1kzKiFqn81A42MARzY3Owd5hRtK0cLrfq2YIhG7F5yV0?= =?us-ascii?Q?8t6+dXG30a1QiI1EhG6jafzma+c3iZWXgnUemwsklkUTc5T5V3Pme1XPNNfq?= =?us-ascii?Q?sdRMCQLgdYeJwl0N9qAF+BVezMxuAvt6GoguHFdpxKZyMc3faRBPgQMD2+0B?= =?us-ascii?Q?CN33kfhGLmpN/zcjgm2txjor3vsTK8Mk2aD37YhzCNfMWXaVDN2oOLvSUUHj?= =?us-ascii?Q?7Q5zdGEfYHSIatBWxy29OxcmVfCfsv+KgPl75v+Ihyqtm+jnEmkU1HiQKL2c?= =?us-ascii?Q?AIDcq/yF7Icyiw+Uu+9DEpuDyNup2OyFuTdFcibKtLrMynpHoLxkmmNGSbzK?= =?us-ascii?Q?qZYT/Pfp45y/86nIX3SB/TbKAWNHrKF9hgG6OUqzIZ+dXk8Ckrff4RBvGRoK?= =?us-ascii?Q?NMtMlcIoxfH3ftrT7GGo5r+Rh8VHhp7/jezWusfW4Z3TjSUu7wiAdtlC3VA/?= =?us-ascii?Q?2q6p4QD2llXMbDZxAVfohnkrkCETa9ck4cguoxjFHsNUjQfoMcwQUoVfjS9P?= =?us-ascii?Q?H2BA2OQtk/07pEIhkMlSoPrBM7Ii45zSUAI3sxhmnhzFV9ZZBKP6ozT+/GQf?= =?us-ascii?Q?eSnNgy9OdCEWxZGKJ0qcF6Zd8+MygL4E9nGeT4ZwCjugQjUAl+bi2ia/ZgSy?= =?us-ascii?Q?T55V/LvVtl0A9I9gRtw=3D?= Content-Type: multipart/alternative; boundary="_000_MW5PR11MB5908008B80ECD63FF6383C9BA913AMW5PR11MB5908namp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80f28fd1-9d0d-4c0c-717f-08db999ecc05 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2023 12:39:10.9783 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EDErS9VojO1E5IfTVo00pp02TtXHnE85MZYn8xv53kbeXJ7WaMvVUBSxwjOmhtPRwvfWKQAMRQDoWeCzd0jmCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6161 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,KAM_SHORT,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_000_MW5PR11MB5908008B80ECD63FF6383C9BA913AMW5PR11MB5908namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Committed, thanks Juzhe. Pan From: juzhe.zhong@rivai.ai Sent: Thursday, August 10, 2023 8:27 PM To: Li, Pan2 ; gcc-patches Cc: jeffreyalaw ; Li, Pan2 ; Wang= , Yanzhang ; kito.cheng Subject: Re: [PATCH v1] RISC-V: Support RVV VFMACC rounding mode intrinsic = API LGTM. ________________________________ juzhe.zhong@rivai.ai From: pan2.li Date: 2023-08-10 13:09 To: gcc-patches CC: juzhe.zhong; jeffreyalaw; pan2.li; yanzhang.wang; kito.cheng Subject: [PATCH v1] RISC-V: Support RVV VFMACC rounding mode intrinsic API From: Pan Li > This patch would like to support the rounding mode API for the VFMACC for the below samples. * __riscv_vfmacc_vv_f32m1_rm * __riscv_vfmacc_vv_f32m1_rm_m * __riscv_vfmacc_vf_f32m1_rm * __riscv_vfmacc_vf_f32m1_rm_m Signed-off-by: Pan Li > gcc/ChangeLog: * config/riscv/riscv-vector-builtins-bases.cc (class vfmacc_frm): New class for vfmacc frm. (vfmacc_frm_obj): New declaration. (BASE): Ditto. * config/riscv/riscv-vector-builtins-bases.h: Ditto. * config/riscv/riscv-vector-builtins-functions.def (vfmacc_frm): New function definition. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/float-point-single-macc.c: New test. --- .../riscv/riscv-vector-builtins-bases.cc | 25 ++++++++++ .../riscv/riscv-vector-builtins-bases.h | 1 + .../riscv/riscv-vector-builtins-functions.def | 3 ++ .../riscv/rvv/base/float-point-macc.c | 47 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/float-point-macc= .c diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.cc b/gcc/config/r= iscv/riscv-vector-builtins-bases.cc index afe3735f5ee..1695d77e8bd 100644 --- a/gcc/config/riscv/riscv-vector-builtins-bases.cc +++ b/gcc/config/riscv/riscv-vector-builtins-bases.cc @@ -356,6 +356,29 @@ public: } }; +/* Implements below instructions for frm + - vfmacc +*/ +class vfmacc_frm : public function_base +{ +public: + bool has_rounding_mode_operand_p () const override { return true; } + + bool has_merge_operand_p () const override { return false; } + + rtx expand (function_expander &e) const override + { + if (e.op_info->op =3D=3D OP_TYPE_vf) + return e.use_ternop_insn (true, + code_for_pred_mul_scalar (PLUS, + e.vector_mode ())); + if (e.op_info->op =3D=3D OP_TYPE_vv) + return e.use_ternop_insn (true, + code_for_pred_mul (PLUS, e.vector_mode ())); + gcc_unreachable (); + } +}; + /* Implements vrsub. */ class vrsub : public function_base { @@ -2116,6 +2139,7 @@ static CONSTEXPR const reverse_binop_frm
vfrdiv_= frm_obj; static CONSTEXPR const widen_binop vfwmul_obj; static CONSTEXPR const widen_binop_frm vfwmul_frm_obj; static CONSTEXPR const vfmacc vfmacc_obj; +static CONSTEXPR const vfmacc_frm vfmacc_frm_obj; static CONSTEXPR const vfnmsac vfnmsac_obj; static CONSTEXPR const vfmadd vfmadd_obj; static CONSTEXPR const vfnmsub vfnmsub_obj; @@ -2351,6 +2375,7 @@ BASE (vfrdiv_frm) BASE (vfwmul) BASE (vfwmul_frm) BASE (vfmacc) +BASE (vfmacc_frm) BASE (vfnmsac) BASE (vfmadd) BASE (vfnmsub) diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.h b/gcc/config/ri= scv/riscv-vector-builtins-bases.h index 2d2b52a312c..67d18412b4c 100644 --- a/gcc/config/riscv/riscv-vector-builtins-bases.h +++ b/gcc/config/riscv/riscv-vector-builtins-bases.h @@ -160,6 +160,7 @@ extern const function_base *const vfrdiv_frm; extern const function_base *const vfwmul; extern const function_base *const vfwmul_frm; extern const function_base *const vfmacc; +extern const function_base *const vfmacc_frm; extern const function_base *const vfnmsac; extern const function_base *const vfmadd; extern const function_base *const vfnmsub; diff --git a/gcc/config/riscv/riscv-vector-builtins-functions.def b/gcc/con= fig/riscv/riscv-vector-builtins-functions.def index d43b33ded17..92ecf8a9065 100644 --- a/gcc/config/riscv/riscv-vector-builtins-functions.def +++ b/gcc/config/riscv/riscv-vector-builtins-functions.def @@ -349,6 +349,9 @@ DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvfv_ops) DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvvv_ops) DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvfv_ops) +DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvvv_ops) +DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvfv_ops) + // 13.7. Vector Widening Floating-Point Fused Multiply-Add Instructions DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwvv_ops) DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwfv_ops) diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/float-point-macc.c b/g= cc/testsuite/gcc.target/riscv/rvv/base/float-point-macc.c new file mode 100644 index 00000000000..df29f4d240f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/float-point-macc.c @@ -0,0 +1,47 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gcv -mabi=3Dlp64 -O3 -Wno-psabi" } */ + +#include "riscv_vector.h" + +typedef float float32_t; + +vfloat32m1_t +test_riscv_vfmacc_vv_f32m1_rm (vfloat32m1_t vd, vfloat32m1_t op1, + vfloat32m1_t op2, size_t vl) { + return __riscv_vfmacc_vv_f32m1_rm (vd, op1, op2, 0, vl); +} + +vfloat32m1_t +test_vfmacc_vv_f32m1_rm_m (vbool32_t mask, vfloat32m1_t vd, vfloat32m1_t o= p1, + vfloat32m1_t op2, size_t vl) { + return __riscv_vfmacc_vv_f32m1_rm_m (mask, vd, op1, op2, 1, vl); +} + +vfloat32m1_t +test_vfmacc_vf_f32m1_rm (vfloat32m1_t vd, float32_t op1, vfloat32m1_t op2, + size_t vl) { + return __riscv_vfmacc_vf_f32m1_rm (vd, op1, op2, 2, vl); +} + +vfloat32m1_t +test_vfmacc_vf_f32m1_rm_m (vfloat32m1_t vd, vbool32_t mask, float32_t op1, + vfloat32m1_t op2, size_t vl) { + return __riscv_vfmacc_vf_f32m1_rm_m (mask, vd, op1, op2, 3, vl); +} + +vfloat32m1_t +test_riscv_vfmacc_vv_f32m1 (vfloat32m1_t vd, vfloat32m1_t op1, vfloat32m1_= t op2, + size_t vl) { + return __riscv_vfmacc_vv_f32m1 (vd, op1, op2, vl); +} + +vfloat32m1_t +test_vfmacc_vv_f32m1_m (vbool32_t mask, vfloat32m1_t vd, vfloat32m1_t op1, + vfloat32m1_t op2, size_t vl) { + return __riscv_vfmacc_vv_f32m1_m (mask, vd, op1, op2, vl); +} + +/* { dg-final { scan-assembler-times {vfmacc\.v[vf]\s+v[0-9]+,\s*[fav]+[0-= 9]+,\s*v[0-9]+} 6 } } */ +/* { dg-final { scan-assembler-times {frrm\s+[axs][0-9]+} 4 } } */ +/* { dg-final { scan-assembler-times {fsrm\s+[axs][0-9]+} 4 } } */ +/* { dg-final { scan-assembler-times {fsrmi\s+[01234]} 4 } } */ -- 2.34.1 --_000_MW5PR11MB5908008B80ECD63FF6383C9BA913AMW5PR11MB5908namp_--