]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Support RVV VFMACC rounding mode intrinsic API
authorPan Li <pan2.li@intel.com>
Thu, 3 Aug 2023 14:32:58 +0000 (22:32 +0800)
committerPan Li <pan2.li@intel.com>
Fri, 4 Aug 2023 01:41:24 +0000 (09:41 +0800)
commit51e5a5cefb11d8a7b2216e866abcc225ba16d127
treefe4603f7ddbef543fa5928cc8485e86ecbba9b4d
parentdd03fb9962e4776286d7654df09549c0e712465e
RISC-V: Support RVV VFMACC rounding mode intrinsic API

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 <pan2.li@intel.com>
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.
* config/riscv/riscv-vector-builtins.cc
(function_expander::use_ternop_insn): Add frm operand support.
* config/riscv/vector.md: Add vfmuladd to frm_mode.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/float-point-single-multiply-add.c: New test.
gcc/config/riscv/riscv-vector-builtins-bases.cc
gcc/config/riscv/riscv-vector-builtins-bases.h
gcc/config/riscv/riscv-vector-builtins-functions.def
gcc/config/riscv/riscv-vector-builtins.cc
gcc/config/riscv/vector.md
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-single-multiply-add.c [new file with mode: 0644]