aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.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 17:25:36 +0800
commit49485639c25c77b116d35c2f9c3dbfb8bf4cf814 (patch)
tree9e09d1f5685f3d89b2f29729daa72ff4d85a4cc3 /gcc/tree.cc
parentbc32918b063b9fa3dffc8815478a81df6ad999ca (diff)
downloadgcc-49485639c25c77b116d35c2f9c3dbfb8bf4cf814.zip
gcc-49485639c25c77b116d35c2f9c3dbfb8bf4cf814.tar.gz
gcc-49485639c25c77b116d35c2f9c3dbfb8bf4cf814.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/tree.cc')
0 files changed, 0 insertions, 0 deletions