]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Fix incorrect implementation of TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>
Tue, 9 May 2023 12:05:50 +0000 (20:05 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Wed, 10 May 2023 08:21:59 +0000 (16:21 +0800)
commita2676383adf31a7b4b64b7b1817428f953041d73
treefd74689050c2bdc4a0083b8e2f2ed986fd1babdb
parent69f3914414a303f0e2c8246e08925f90c207846c
RISC-V: Fix incorrect implementation of TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT

This incorrect codes blocks the scalable RVV auto-vectorization.
Take a look at this target hook implementation of aarch64.
They only have the similiar handling on TARGET_SIMD.

They let movmisalign<mode> to handle scalable vector of SVE.
For RVV, we should follow the same implementation of ARM SVE.

gcc/ChangeLog:

* config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
incorrect codes.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/v-2.c: Adapt testcase.
* gcc.target/riscv/rvv/autovec/zve32f-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve32f-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve32x-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve32x-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64d-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64d-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64d_zvl128b-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64f-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64f-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64f_zvl128b-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64x-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64x-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/zve64x_zvl128b-2.c: Ditto.
15 files changed:
gcc/config/riscv/riscv.cc
gcc/testsuite/gcc.target/riscv/rvv/autovec/v-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-3.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-3.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-3.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-3.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-2.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-3.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-2.c