aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.cc
diff options
context:
space:
mode:
authorRobin Dapp <rdapp@ventanamicro.com>2023-11-14 14:11:09 +0100
committerRobin Dapp <rdapp@ventanamicro.com>2023-11-20 14:16:30 +0100
commitb3677563cd3ebc20c186650ff94171d321a52b30 (patch)
tree770f193d63fea5cc8463164cf982013fb4bab73f /gcc/tree-vect-loop.cc
parent4d7647edfd7d985fbefe13de03c8bc2e3a74fc61 (diff)
downloadgcc-b3677563cd3ebc20c186650ff94171d321a52b30.zip
gcc-b3677563cd3ebc20c186650ff94171d321a52b30.tar.gz
gcc-b3677563cd3ebc20c186650ff94171d321a52b30.tar.bz2
RISC-V: Disallow 64-bit indexed loads and stores for rv32gcv.
We currently allow 64-bit indices/offsets for vector indexed loads and stores even on rv32 but we should not. This patch adjusts the iterators as well as the insn conditions to reflect the RVV spec. It also fixes an oversight in the VLS modes of the demote iterator that was found while testing the patch. gcc/ChangeLog: * config/riscv/riscv-v.cc (gather_scatter_valid_offset_mode_p): Add check for XLEN == 32. * config/riscv/vector-iterators.md: Change VLS part of the demote iterator to 2x elements modes * config/riscv/vector.md: Adjust iterators and insn conditions. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-1.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-1.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-10.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-10.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-11.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-11.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-12.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-12.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-2.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-2.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-3.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-3.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-4.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-4.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-5.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-5.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-6.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-6.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-7.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-7.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-8.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-8.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-9.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-9.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-1.c: Adjust include. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-11.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-12.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-1.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-1.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-10.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-10.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-11.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-11.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-2.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-2.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-3.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-3.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-4.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-4.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-5.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-5.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-6.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-6.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-7.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-7.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-8.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-8.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-9.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-9.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-1.c: Adjust include. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-11.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-1.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-1.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-10.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-10.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-2.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-2.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-3.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-3.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-4.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-4.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-5.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-5.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-6.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-6.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-7.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-7.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-8.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-8.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-9.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-9.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-1.c: Adjust include. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-1.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-1.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-10.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-10.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-3.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-2.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-4.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-4.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-5.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-5.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-6.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-6.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-7.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-7.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-8.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-8.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-9.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-9.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-2.c: Moved to... * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-2.c: ...here. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-1.c: Adjust include. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-1.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-10.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-11.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-2.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-3.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-4.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-5.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-6.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-7.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-8.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-9.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-1.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-10.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-11.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-2.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-3.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-4.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-5.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-6.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-7.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-8.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-9.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-1.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-10.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-2.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-3.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-4.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-5.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-6.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-7.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-8.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-9.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-1.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-10.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-3.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-4.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-5.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-6.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-7.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-8.c: New test. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-9.c: New test.
Diffstat (limited to 'gcc/tree-vect-loop.cc')
0 files changed, 0 insertions, 0 deletions