]> git.ipfire.org Git - thirdparty/gcc.git/commit
Change MODE_BITSIZE to MODE_PRECISION for MODE_VECTOR_BOOL.
authorRobin Dapp <rdapp@ventanamicro.com>
Wed, 28 Jun 2023 18:59:29 +0000 (20:59 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Wed, 5 Jul 2023 09:36:39 +0000 (11:36 +0200)
commitf4a2ae2338962208b8039f154f5912402e94c378
tree42edb8e867e69bb03afc95537c4ae9b0d51fd442
parent5f5e37dcbc19cbbaec58789fc532cb9940413258
Change MODE_BITSIZE to MODE_PRECISION for MODE_VECTOR_BOOL.

RISC-V lowers the TYPE_PRECISION for MODE_VECTOR_BOOL vectors in order
to distinguish between VNx1BI, VNx2BI, VNx4BI and VNx8BI.

This patch adjusts uses of MODE_VECTOR_BOOL to use GET_MODE_PRECISION
instead of GET_MODE_BITSIZE.

The RISC-V tests are provided by Juzhe.

Co-Authored-By: Juzhe-Zhong <juzhe.zhong@rivai.ai>
gcc/c-family/ChangeLog:

* c-common.cc (c_common_type_for_mode): Use GET_MODE_PRECISION.

gcc/ChangeLog:

* simplify-rtx.cc (native_encode_rtx): Ditto.
(native_decode_vector_rtx): Ditto.
(simplify_const_vector_byte_offset): Ditto.
(simplify_const_vector_subreg): Ditto.
* tree.cc (build_truth_vector_type_for_mode): Ditto.
* varasm.cc (output_constant_pool_2): Ditto.

gcc/fortran/ChangeLog:

* trans-types.cc (gfc_type_for_mode): Ditto.

gcc/go/ChangeLog:

* go-lang.cc (go_langhook_type_for_mode): Ditto.

gcc/lto/ChangeLog:

* lto-lang.cc (lto_type_for_mode): Ditto.

gcc/rust/ChangeLog:

* backend/rust-tree.cc (c_common_type_for_mode): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-11.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-12.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-13.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-14.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-9.c: New test.
22 files changed:
gcc/c-family/c-common.cc
gcc/fortran/trans-types.cc
gcc/go/go-lang.cc
gcc/lto/lto-lang.cc
gcc/rust/backend/rust-tree.cc
gcc/simplify-rtx.cc
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-11.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-9.c [new file with mode: 0644]
gcc/tree.cc
gcc/varasm.cc