]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Support RVV FP16 ZVFHMIN intrinsic API
authorPan Li <pan2.li@intel.com>
Sun, 4 Jun 2023 06:15:15 +0000 (14:15 +0800)
committerPan Li <pan2.li@intel.com>
Sun, 4 Jun 2023 13:39:22 +0000 (21:39 +0800)
commit5c9cffa3a4aeeac1e462dbc8a35a5c4986f3381e
treee32d07ce4ea1802429c88317fdce3ef2de4b6b7f
parent1330977166aa8b3035b6314f5d3bac362f77be6b
RISC-V: Support RVV FP16 ZVFHMIN intrinsic API

This patch support the 2 intrinsic API of FP16 ZVFHMIN extension. Aka
SEW=16 for below instructions

vfwcvt.f.f.v
vfncvt.f.f.w

Then users can leverage the instrinsic APIs to perform the conversion
between RVV vector single float point and half float point.

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

* config/riscv/riscv-vector-builtins-types.def
(vfloat32mf2_t): Add vfloat32mf2_t type to vfncvt.f.f.w operations.
(vfloat32m1_t): Likewise.
(vfloat32m2_t): Likewise.
(vfloat32m4_t): Likewise.
(vfloat32m8_t): Likewise.
* config/riscv/riscv-vector-builtins.def: Fix typo in comments.
* config/riscv/vector-iterators.md: Add single to half machine
mode conversion.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/zvfhmin-intrinsic.c: New test.
gcc/config/riscv/riscv-vector-builtins-types.def
gcc/config/riscv/riscv-vector-builtins.def
gcc/config/riscv/vector-iterators.md
gcc/testsuite/gcc.target/riscv/rvv/base/zvfhmin-intrinsic.c [new file with mode: 0644]