From f4a2ae2338962208b8039f154f5912402e94c378 Mon Sep 17 00:00:00 2001 From: Robin Dapp Date: Wed, 28 Jun 2023 20:59:29 +0200 Subject: 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 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. --- gcc/rust/backend/rust-tree.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/rust/backend') diff --git a/gcc/rust/backend/rust-tree.cc b/gcc/rust/backend/rust-tree.cc index 8243d4c..66e859c 100644 --- a/gcc/rust/backend/rust-tree.cc +++ b/gcc/rust/backend/rust-tree.cc @@ -5320,7 +5320,7 @@ c_common_type_for_mode (machine_mode mode, int unsignedp) && valid_vector_subparts_p (GET_MODE_NUNITS (mode))) { unsigned int elem_bits - = vector_element_size (GET_MODE_BITSIZE (mode), GET_MODE_NUNITS (mode)); + = vector_element_size (GET_MODE_PRECISION (mode), GET_MODE_NUNITS (mode)); tree bool_type = build_nonstandard_boolean_type (elem_bits); return build_vector_type_for_mode (bool_type, mode); } -- cgit v1.1 From 46595ce72e5855189e3c60a140c3ca5aaddfb58c Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 28 Sep 2023 10:51:01 +0100 Subject: Remove some unused poly_int variables Switching to default constructors for poly_int exposed some unused variables that weren't previously diagnosed. gcc/ * dwarf2out.cc (mem_loc_descriptor): Remove unused variables. * tree-affine.cc (expr_to_aff_combination): Likewise. gcc/cp/ * constexpr.cc (cxx_fold_indirect_ref): Remove unused variables. gcc/rust/ * backend/rust-constexpr.cc (rs_fold_indirect_ref): Remove unused variables. --- gcc/rust/backend/rust-constexpr.cc | 1 - 1 file changed, 1 deletion(-) (limited to 'gcc/rust/backend') diff --git a/gcc/rust/backend/rust-constexpr.cc b/gcc/rust/backend/rust-constexpr.cc index 4e581a3..b28fa27 100644 --- a/gcc/rust/backend/rust-constexpr.cc +++ b/gcc/rust/backend/rust-constexpr.cc @@ -737,7 +737,6 @@ rs_fold_indirect_ref (const constexpr_ctx *ctx, location_t loc, tree type, { tree sub = op0; tree subtype; - poly_uint64 const_op01; /* STRIP_NOPS, but stop if REINTERPRET_CAST_P. */ while (CONVERT_EXPR_P (sub) || TREE_CODE (sub) == NON_LVALUE_EXPR -- cgit v1.1 From 1a9974d08bc1478a98f52b2ea95475a583747724 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 12 Mar 2024 09:36:43 +0100 Subject: Placate clang-format re 'gcc/rust/backend/rust-tree.cc' Reformat the upstream GCC commit f4a2ae2338962208b8039f154f5912402e94c378 "Change MODE_BITSIZE to MODE_PRECISION for MODE_VECTOR_BOOL" change to 'gcc/rust/backend/rust-tree.cc' to clang-format's liking. gcc/rust/ * backend/rust-tree.cc (c_common_type_for_mode): Placate clang-format. --- gcc/rust/backend/rust-tree.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc/rust/backend') diff --git a/gcc/rust/backend/rust-tree.cc b/gcc/rust/backend/rust-tree.cc index 3f07722..a2c9c3f 100644 --- a/gcc/rust/backend/rust-tree.cc +++ b/gcc/rust/backend/rust-tree.cc @@ -5374,8 +5374,8 @@ c_common_type_for_mode (machine_mode mode, int unsignedp) else if (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL && valid_vector_subparts_p (GET_MODE_NUNITS (mode))) { - unsigned int elem_bits - = vector_element_size (GET_MODE_PRECISION (mode), GET_MODE_NUNITS (mode)); + unsigned int elem_bits = vector_element_size (GET_MODE_PRECISION (mode), + GET_MODE_NUNITS (mode)); tree bool_type = build_nonstandard_boolean_type (elem_bits); return build_vector_type_for_mode (bool_type, mode); } -- cgit v1.1