https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119534

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So I wonder if both of the
                  tree boff = size_binop (MULT_EXPR, TYPE_SIZE (idx_type),
                                          bitsize_int (k + elt_offset));
                  tree idx
                    = gimple_build (&stmts, BIT_FIELD_REF, idx_type,
                                    vec_offset, TYPE_SIZE (idx_type), boff);
and
                      tree boff = size_binop (MULT_EXPR, TYPE_SIZE (idx_type),
                                              bitsize_int (k + elt_offset));
                      tree idx
                        = gimple_build (&stmts, BIT_FIELD_REF, idx_type,
                                        vec_offset, TYPE_SIZE (idx_type),
boff);
spots don't need special treatment for
VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (vec_offset))
&& SCALAR_INT_MODE_P (TYPE_MODE (TREE_TYPE (vec_offset))
but dunno what that special handling should be exactly.
VCE it to the corresponding integer type, shift right by elt_offset and mask of
least significant bit?
Are there VECTOR_BOOLEAN_TYPE_P where one element is represented by more than
one bits?

Reply via email to