diff options
author | Paul-Antoine Arras <parras@baylibre.com> | 2025-08-27 19:38:15 +0200 |
---|---|---|
committer | Paul-Antoine Arras <parras@baylibre.com> | 2025-08-28 16:58:46 +0200 |
commit | 31a180d8a4c2893e7c4be43e3daaac12347dddb5 (patch) | |
tree | 6ca7a04fe2490d7774c1ff79dc517704b48d6d7c /libjava/classpath | |
parent | 48ef4af2274a0a1ad945ac14217806c1c1d8ccb2 (diff) | |
download | gcc-31a180d8a4c2893e7c4be43e3daaac12347dddb5.zip gcc-31a180d8a4c2893e7c4be43e3daaac12347dddb5.tar.gz gcc-31a180d8a4c2893e7c4be43e3daaac12347dddb5.tar.bz2 |
RISC-V: Add pattern for vector-scalar floating-point min
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a vec_duplicate into an smin RTL instruction.
Before this patch, we have two instructions, e.g.:
vfmv.v.f v2,fa0
vfmin.vv v1,v1,v2
After, we get only one:
vfmin.vf v1,v1,fa0
gcc/ChangeLog:
* config/riscv/autovec-opt.md (*vfmin_vf_<mode>): Add new pattern to
combine vec_duplicate + vfmin.vv into vfmin.vf.
* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/vls/floating-point-min-2.c: Adjust scan
dump.
* gcc.target/riscv/rvv/autovec/vls/floating-point-min-4.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c: Add vfmin.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c: Likewise.
* gcc.target/riscv/rvv/autovec/vx_vf/vf_binop.h: Add support for
function variants.
* gcc.target/riscv/rvv/autovec/vx_vf/vf_binop_data.h: Add data for
vfmin.
* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmin-run-1-f16.c: New test.
* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmin-run-1-f32.c: New test.
* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmin-run-1-f64.c: New test.
Diffstat (limited to 'libjava/classpath')
0 files changed, 0 insertions, 0 deletions