]> gcc.gnu.org Git - gcc.git/commit
RISC-V: Add RVV FMA auto-vectorization support
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>
Mon, 29 May 2023 04:48:08 +0000 (12:48 +0800)
committerJeff Law <jlaw@ventanamicro.com>
Fri, 14 Jul 2023 02:05:28 +0000 (20:05 -0600)
commitbbfeb58c98d15350539303e839f7471dd5549b39
tree191ec3f0611b80c8a69ac0a463dc17f8f0e94c00
parent43627715a9a6a8b179b991e1834b91d579276209
RISC-V: Add RVV FMA auto-vectorization support

This patch support FMA auto-vectorization pattern. Let's RA decide
vmacc or vmadd.

Signed-off-by: Juzhe-Zhong <juzhe.zhong@rivai.ai>
gcc/ChangeLog:

* config/riscv/autovec.md (fma<mode>4): New pattern.
(*fma<mode>): Ditto.
* config/riscv/riscv-protos.h (enum insn_type): New enum.
(emit_vlmax_ternary_insn): New function.
* config/riscv/riscv-v.cc (emit_vlmax_ternary_insn): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/rvv.exp: Add ternary tests
* gcc.target/riscv/rvv/autovec/ternop/ternop-1.c: New test.
* gcc.target/riscv/rvv/autovec/ternop/ternop-2.c: New test.
* gcc.target/riscv/rvv/autovec/ternop/ternop-3.c: New test.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-1.c: New test.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-2.c: New test.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-3.c: New test.
gcc/config/riscv/autovec.md
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv-v.cc
gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
This page took 0.060744 seconds and 6 git commands to generate.