From: ienkovich Date: Fri, 23 Oct 2015 13:38:16 +0000 (+0000) Subject: gcc/ X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c130bc5044977a38b157ac3c72f453f703301547;p=thirdparty%2Fgcc.git gcc/ PR middle-end/68066 * tree.c (build_truth_vector_type): Support BLK mode returned for boolean vector. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229256 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 52dca17a5575..54359a0f0f65 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-10-23 Ilya Enkovich + + PR middle-end/68066 + * tree.c (build_truth_vector_type): Support BLK mode + returned for boolean vector. + 2015-10-23 Alan Hayward PR tree-optimization/65947 diff --git a/gcc/tree.c b/gcc/tree.c index 09df67ebf881..79bbd0752c81 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -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);