diff options
author | Pan Li <pan2.li@intel.com> | 2023-06-29 09:25:36 +0800 |
---|---|---|
committer | Pan Li <pan2.li@intel.com> | 2023-06-29 12:13:26 +0800 |
commit | e714af12e3bee0032d8d226f87d92c9bc46f0269 (patch) | |
tree | f8d9658620876e02e5bb2c7e65caf31f52315526 /gcc/ada/gcc-interface/decl.cc | |
parent | 4d1e97f5838b0b6c12d256883e24a8cb3258a134 (diff) | |
download | gcc-e714af12e3bee0032d8d226f87d92c9bc46f0269.zip gcc-e714af12e3bee0032d8d226f87d92c9bc46f0269.tar.gz gcc-e714af12e3bee0032d8d226f87d92c9bc46f0269.tar.bz2 |
RISC-V: Support vfadd static rounding mode by mode switching
This patch would like to support the vfadd static round mode similar to
the fixed-point. Then the related fsrm instructions will be inserted
correlatively.
Please *NOTE* this PATCH doesn't cover anything about FRM dynamic mode,
it will be implemented in the underlying PATCH(s).
Signed-off-by: Pan Li <pan2.li@intel.com>
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_emit_mode_set): Add emit for FRM.
(riscv_mode_needed): Likewise.
(riscv_entity_mode_after): Likewise.
(riscv_mode_after): Likewise.
(riscv_mode_entry): Likewise.
(riscv_mode_exit): Likewise.
* config/riscv/riscv.h (NUM_MODES_FOR_MODE_SWITCHING): Add number
for FRM.
* config/riscv/riscv.md: Add FRM register.
* config/riscv/vector-iterators.md: Add FRM type.
* config/riscv/vector.md (frm_mode): Define new attr for FRM mode.
(fsrm): Define new insn for fsrm instruction.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/float-point-frm-insert-1.c: New test.
* gcc.target/riscv/rvv/base/float-point-frm-insert-2.c: New test.
* gcc.target/riscv/rvv/base/float-point-frm-insert-3.c: New test.
* gcc.target/riscv/rvv/base/float-point-frm-insert-4.c: New test.
* gcc.target/riscv/rvv/base/float-point-frm-insert-5.c: New test.
Diffstat (limited to 'gcc/ada/gcc-interface/decl.cc')
0 files changed, 0 insertions, 0 deletions