aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorRobin Dapp <rdapp@ventanamicro.com>2023-06-20 13:07:23 +0200
committerRobin Dapp <rdapp@ventanamicro.com>2023-06-27 23:29:34 +0200
commita9b40612baf2f936ac1d211fbc0b3e46404cefa7 (patch)
treec2ce1b09a4d067ad2393dd8170ac4d26fd0a62e9 /gcc/fortran
parent1f3d97bdf1e2ac3770468127fb39645bb68f6291 (diff)
downloadgcc-a9b40612baf2f936ac1d211fbc0b3e46404cefa7.zip
gcc-a9b40612baf2f936ac1d211fbc0b3e46404cefa7.tar.gz
gcc-a9b40612baf2f936ac1d211fbc0b3e46404cefa7.tar.bz2
RISC-V: Add autovec FP widening/narrowing.
This patch adds FP widening and narrowing expanders as well as tests. Conceptually similar to integer extension/truncation, we emulate _Float16 -> double by two vfwcvts and double -> _Float16 by two vfncvts. gcc/ChangeLog: * config/riscv/autovec.md (extend<v_double_trunc><mode>2): New expander. (extend<v_quad_trunc><mode>2): Ditto. (trunc<mode><v_double_trunc>2): Ditto. (trunc<mode><v_quad_trunc>2): Ditto. * config/riscv/vector-iterators.md: Add VQEXTF and HF to V_QUAD_TRUNC and v_quad_trunc. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/conversions/vfncvt-run.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfncvt-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfncvt-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfncvt-template.h: New test. * gcc.target/riscv/rvv/autovec/conversions/vfncvt-zvfh-run.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfwcvt-run.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfwcvt-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfwcvt-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/conversions/vfwcvt-template.h: New test. * gcc.target/riscv/rvv/autovec/conversions/vfwcvt-zvfh-run.c: New test.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions