]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Implement autovec copysign.
authorRobin Dapp <rdapp@ventanamicro.com>
Tue, 20 Jun 2023 11:07:49 +0000 (13:07 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Tue, 27 Jun 2023 21:29:14 +0000 (23:29 +0200)
commitb95dcaa5a7491e6f97e5fac902d55e8a58e068d3
tree17cedf048c4e635e1968d16c92e4cb8708721512
parent201c6c322f3e88367ac9b6f476cf76b755d3c4b1
RISC-V: Implement autovec copysign.

This adds vector copysign, ncopysign and xorsign as well as the
accompanying tests.

gcc/ChangeLog:

* config/riscv/autovec.md (copysign<mode>3): Add expander.
(xorsign<mode>3): Ditto.
* config/riscv/riscv-vector-builtins-bases.cc (class vfsgnjn):
New class.
* config/riscv/vector-iterators.md (copysign): Remove ncopysign.
(xorsign): Ditto.
(n): Ditto.
(x): Ditto.
* config/riscv/vector.md (@pred_ncopysign<mode>): Split off.
(@pred_ncopysign<mode>_scalar): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/binop/copysign-run.c: New test.
* gcc.target/riscv/rvv/autovec/binop/copysign-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/binop/copysign-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/binop/copysign-template.h: New test.
* gcc.target/riscv/rvv/autovec/binop/copysign-zvfh-run.c: New test.
gcc/config/riscv/autovec.md
gcc/config/riscv/riscv-vector-builtins-bases.cc
gcc/config/riscv/vector-iterators.md
gcc/config/riscv/vector.md
gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-zvfh-run.c [new file with mode: 0644]