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?