aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-loop-versioning.cc
diff options
context:
space:
mode:
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>2023-06-28 19:55:59 +0800
committerLehua Ding <lehua.ding@rivai.ai>2023-07-03 16:24:54 +0800
commit47e6dcb597b2d4abcab13c9dea0cc7d2131b6419 (patch)
tree9b2ba655dcb6f29b432c3bd9fd963e13a94eb831 /gcc/gimple-loop-versioning.cc
parent3d95a524d4746ceb3065f92f30a5679afb88d16a (diff)
downloadgcc-47e6dcb597b2d4abcab13c9dea0cc7d2131b6419.zip
gcc-47e6dcb597b2d4abcab13c9dea0cc7d2131b6419.tar.gz
gcc-47e6dcb597b2d4abcab13c9dea0cc7d2131b6419.tar.bz2
RISC-V: Support vfwnmacc/vfwmsac/vfwnmsac combine lowering
Similar to vfwmacc. Add combine patterns as follows: For vfwnmsac: 1. (set (reg) (fma (neg (float_extend (reg))) (float_extend (reg))) (reg) ))) 2. (set (reg) (fma (neg (float_extend (reg))) (reg) (reg) ))) For vfwmsac: 1. (set (reg) (fma (float_extend (reg)) (float_extend (reg))) (neg (reg)) ))) 2. (set (reg) (fma (float_extend (reg)) (reg) (neg (reg)) ))) For vfwnmacc: 1. (set (reg) (fma (neg (float_extend (reg))) (float_extend (reg))) (neg (reg)) ))) 2. (set (reg) (fma (neg (float_extend (reg))) (reg) (neg (reg)) ))) gcc/ChangeLog: * config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern. (*single_widen_fnma<mode>): Ditto. (*double_widen_fms<mode>): Ditto. (*single_widen_fms<mode>): Ditto. (*double_widen_fnms<mode>): Ditto. (*single_widen_fnms<mode>): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/widen/widen-10.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen-11.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen-12.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen-complicate-7.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen-complicate-8.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen-complicate-9.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen_run-10.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen_run-11.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen_run-12.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-10.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-11.c: New test. * gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-12.c: New test.
Diffstat (limited to 'gcc/gimple-loop-versioning.cc')
0 files changed, 0 insertions, 0 deletions