RISC-V: Add autovectorization tests for binary integer operations.
commit6cb594f3ffca461ca6df56cc389f7b278e1047af
authorRobin Dapp <rdapp@ventanamicro.com>
Thu, 11 May 2023 08:32:21 +0000 (11 10:32 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Thu, 11 May 2023 12:23:27 +0000 (11 14:23 +0200)
treedc778256de82f9b111e51f2038637c53e60ded12
parent8c08201f06e67d80a12dca9e5dc33334631285a6
RISC-V: Add autovectorization tests for binary integer operations.

This patchs adds scan as well as execution tests for vectorized
binary integer operations.  The tests are not comprehensive as
the vector type promotions (vec_unpack, extend etc.) are not implemented
yet.  Also, vmulh, vmulhu, and vmulhsu and others are still missing.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/shift-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/shift-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/shift-template.h: New test.
* gcc.target/riscv/rvv/autovec/shift-run.c: New test.
* gcc.target/riscv/rvv/autovec/shift-scalar-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/shift-scalar-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/shift-scalar-template.h: New test.
* gcc.target/riscv/rvv/autovec/shift-scalar-run.c: New test.
* gcc.target/riscv/rvv/autovec/vadd-run-template.h: New test.
* gcc.target/riscv/rvv/autovec/vadd-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vadd-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vadd-template.h: New test.
* gcc.target/riscv/rvv/autovec/vand-run.c: New test.
* gcc.target/riscv/rvv/autovec/vand-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vand-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vand-template.h: New test.
* gcc.target/riscv/rvv/autovec/vdiv-run.c: New test.
* gcc.target/riscv/rvv/autovec/vdiv-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vdiv-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vdiv-template.h: New test.
* gcc.target/riscv/rvv/autovec/vmax-run.c: New test.
* gcc.target/riscv/rvv/autovec/vmax-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vmax-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vmax-template.h: New test.
* gcc.target/riscv/rvv/autovec/vmin-run.c: New test.
* gcc.target/riscv/rvv/autovec/vmin-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vmin-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vmin-template.h: New test.
* gcc.target/riscv/rvv/autovec/vmul-run.c: New test.
* gcc.target/riscv/rvv/autovec/vmul-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vmul-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vmul-template.h: New test.
* gcc.target/riscv/rvv/autovec/vor-run.c: New test.
* gcc.target/riscv/rvv/autovec/vor-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vor-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vor-template.h: New test.
* gcc.target/riscv/rvv/autovec/vrem-run.c: New test.
* gcc.target/riscv/rvv/autovec/vrem-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vrem-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vrem-template.h: New test.
* gcc.target/riscv/rvv/autovec/vsub-run.c: New test.
* gcc.target/riscv/rvv/autovec/vsub-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vsub-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vsub-template.h: New test.
* gcc.target/riscv/rvv/autovec/vxor-run.c: New test.
* gcc.target/riscv/rvv/autovec/vxor-rv32gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vxor-rv64gcv.c: New test.
* gcc.target/riscv/rvv/autovec/vxor-template.h: New test.

Co-authored-by: Michael Collison <collison@rivosinc.com>
59 files changed:
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-scalar-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-scalar-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-scalar-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-scalar-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/shift-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vadd-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vadd-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vadd-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vadd-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vadd-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vand-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vand-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vand-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vand-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vand-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vdiv-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vdiv-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vdiv-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vdiv-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vdiv-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmax-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmax-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmax-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmax-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmax-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmin-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmin-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmin-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmin-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmin-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmul-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmul-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmul-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmul-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vmul-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vor-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vor-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vor-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vor-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vor-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vrem-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vrem-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vrem-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vrem-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vrem-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vsub-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vsub-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vsub-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vsub-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vsub-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vxor-run-template.h [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vxor-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vxor-rv32gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vxor-rv64gcv.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vxor-template.h [new file with mode: 0644]