]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/riscv/riscv-vector-builtins-bases.h
RISC-V: Support RVV VFREDUSUM.VS rounding mode intrinsic API
authorPan Li <pan2.li@intel.com>
Thu, 17 Aug 2023 03:03:39 +0000 (11:03 +0800)
committerPan Li <pan2.li@intel.com>
Thu, 17 Aug 2023 07:35:37 +0000 (15:35 +0800)
commit3d903a26d7b6b4e32ad9f1f8c6fb5adf766c7cc7
tree470ed6a3239441ccbc9a0e1e3228058e24d3f15d
parent20e1db413ee8bb4d5233d97484e19e4e1d85f4ac
RISC-V: Support RVV VFREDUSUM.VS rounding mode intrinsic API

This patch would like to support the rounding mode API for the
VFREDUSUM.VS as the below samples.

* __riscv_vfredusum_vs_f32m1_f32m1_rm
* __riscv_vfredusum_vs_f32m1_f32m1_rm_m

Signed-off-by: Pan Li <pan2.li@intel.com>
gcc/ChangeLog:

* config/riscv/riscv-vector-builtins-bases.cc
(class freducop): Add frm_op_type template arg.
(vfredusum_frm_obj): New declaration.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def
(vfredusum_frm): New intrinsic function def.
* config/riscv/riscv-vector-builtins-shapes.cc
(struct reduc_alu_frm_def): New class for frm shape.
(SHAPE): New declaration.
* config/riscv/riscv-vector-builtins-shapes.h: Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/float-point-redusum.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-shapes.cc
gcc/config/riscv/riscv-vector-builtins-shapes.h
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-redusum.c [new file with mode: 0644]