diff options
author | Pan Li <pan2.li@intel.com> | 2023-08-02 10:24:39 +0800 |
---|---|---|
committer | Pan Li <pan2.li@intel.com> | 2023-08-02 16:03:47 +0800 |
commit | 21c2815605fb0ec43ea65b1104990cf03248013e (patch) | |
tree | ea985fb5932c7c57c3b4e1438d5e3eebce344f4a /gcc/tree-ssa-phiopt.cc | |
parent | b278d3080ef23835438ec625b9841c6353c72e32 (diff) | |
download | gcc-21c2815605fb0ec43ea65b1104990cf03248013e.zip gcc-21c2815605fb0ec43ea65b1104990cf03248013e.tar.gz gcc-21c2815605fb0ec43ea65b1104990cf03248013e.tar.bz2 |
RISC-V: Support RVV VFWADD rounding mode intrinsic API
This patch would like to support the rounding mode API for the VFWADD
VFSUB and VFRSUB as below samples.
* __riscv_vfwadd_vv_f64m2_rm
* __riscv_vfwadd_vv_f64m2_rm_m
* __riscv_vfwadd_vf_f64m2_rm
* __riscv_vfwadd_vf_f64m2_rm_m
* __riscv_vfwadd_wv_f64m2_rm
* __riscv_vfwadd_wv_f64m2_rm_m
* __riscv_vfwadd_wf_f64m2_rm
* __riscv_vfwadd_wf_f64m2_rm_m
Signed-off-by: Pan Li <pan2.li@intel.com>
gcc/ChangeLog:
* config/riscv/riscv-vector-builtins-bases.cc
(class widen_binop_frm): New class for binop frm.
(BASE): Add vfwadd_frm.
* config/riscv/riscv-vector-builtins-bases.h: New declaration.
* config/riscv/riscv-vector-builtins-functions.def
(vfwadd_frm): New function definition.
* config/riscv/riscv-vector-builtins-shapes.cc
(BASE_NAME_MAX_LEN): New macro.
(struct alu_frm_def): Leverage new base class.
(struct build_frm_base): New build base for frm.
(struct widen_alu_frm_def): New struct for widen alu frm.
(SHAPE): Add widen_alu_frm shape.
* config/riscv/riscv-vector-builtins-shapes.h: New declaration.
* config/riscv/vector.md (frm_mode): Add vfwalu type.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/float-point-widening-add.c: New test.
Diffstat (limited to 'gcc/tree-ssa-phiopt.cc')
0 files changed, 0 insertions, 0 deletions