diff options
author | Richard Biener <rguenther@suse.de> | 2021-01-25 11:22:28 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-01-25 13:18:13 +0100 |
commit | defc40db9e09ecceb2d71727031fe9579bce1b11 (patch) | |
tree | a7a28892322f7e32224d0ab1c09725d564df942a /gcc/tree.c | |
parent | 0433fc2d7d44eafd61017cd0b6c4cab1fcb16990 (diff) | |
download | gcc-defc40db9e09ecceb2d71727031fe9579bce1b11.zip gcc-defc40db9e09ecceb2d71727031fe9579bce1b11.tar.gz gcc-defc40db9e09ecceb2d71727031fe9579bce1b11.tar.bz2 |
middle-end/98807 - more vector_element_bits fixes
This simplifies vector_element_bits further, avoiding any mode
dependence and instead relying on boolean vector construction
to populate element precision accordingly.
2021-01-25 Richard Biener <rguenther@suse.de>
PR middle-end/98807
* tree.c (vector_element_bits): Always use precision of
the element type for boolean vectors.
* gcc.dg/pr98807.c: New testcase.
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 8 |
1 files changed, 1 insertions, 7 deletions
@@ -14027,13 +14027,7 @@ vector_element_bits (const_tree type) { gcc_checking_assert (VECTOR_TYPE_P (type)); if (VECTOR_BOOLEAN_TYPE_P (type)) - { - if (SCALAR_INT_MODE_P (TYPE_MODE (type))) - return 1; - else - return vector_element_size (tree_to_poly_uint64 (TYPE_SIZE (type)), - TYPE_VECTOR_SUBPARTS (type)); - } + return TYPE_PRECISION (TREE_TYPE (type)); return tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type))); } |