]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Allow all const_vec_duplicates as constants.
authorRobin Dapp <rdapp@ventanamicro.com>
Mon, 22 May 2023 18:41:59 +0000 (20:41 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Tue, 30 May 2023 09:55:28 +0000 (11:55 +0200)
commit32a0266cc54a404007fca0d44dc9a299bbe70c1f
tree407e9ff15cbc83fd9ef9d79aae9a616de0c137b7
parentd8545fb2c71683f407bfd96706103297d4d6e27b
RISC-V: Allow all const_vec_duplicates as constants.

As we can always broadcast an integer constant to a vector register
allow them in riscv_const_insns.  We need as many instructions as
it takes to generate the constant and one vmv.vx.

gcc/ChangeLog:

* config/riscv/riscv.cc (riscv_const_insns): Allow
const_vec_duplicates.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv32.c: Add vmv.v.x
tests.
* gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv64.c: Dito.
* gcc.target/riscv/rvv/autovec/vmv-imm-run.c: Dito.
* gcc.target/riscv/rvv/autovec/vmv-imm-rv32.c: Dito.
* gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c: Dito.
* gcc.target/riscv/rvv/autovec/vmv-imm-template.h: Dito.
gcc/config/riscv/riscv.cc
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv32.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv64.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-run.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv32.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-template.h