diff options
author | Ilya Enkovich <enkovich.gnu@gmail.com> | 2015-10-23 13:38:16 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2015-10-23 13:38:16 +0000 |
commit | f819b3b278609360242d969027031a9a9381edeb (patch) | |
tree | 5378eae13fb0aa7cb3180d45337f4190cddd875b /gcc | |
parent | abcb651bac5a4aeadca671b7ed76d396788cfa10 (diff) | |
download | gcc-f819b3b278609360242d969027031a9a9381edeb.zip gcc-f819b3b278609360242d969027031a9a9381edeb.tar.gz gcc-f819b3b278609360242d969027031a9a9381edeb.tar.bz2 |
re PR middle-end/68066 (ICE in max_value, at wide-int.cc)
gcc/
PR middle-end/68066
* tree.c (build_truth_vector_type): Support BLK mode
returned for boolean vector.
From-SVN: r229256
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree.c | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 52dca17..54359a0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com> + + PR middle-end/68066 + * tree.c (build_truth_vector_type): Support BLK mode + returned for boolean vector. + 2015-10-23 Alan Hayward <alan.hayward@arm.com> PR tree-optimization/65947 @@ -10671,8 +10671,14 @@ build_truth_vector_type (unsigned nunits, unsigned vector_size) gcc_assert (mask_mode != VOIDmode); - unsigned HOST_WIDE_INT esize = GET_MODE_BITSIZE (mask_mode) / nunits; - gcc_assert (esize * nunits == GET_MODE_BITSIZE (mask_mode)); + unsigned HOST_WIDE_INT vsize; + if (mask_mode == BLKmode) + vsize = vector_size * BITS_PER_UNIT; + else + vsize = GET_MODE_BITSIZE (mask_mode); + + unsigned HOST_WIDE_INT esize = vsize / nunits; + gcc_assert (esize * nunits == vsize); tree bool_type = build_nonstandard_boolean_type (esize); |