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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---

  v = { 0.0, 0.0, 0.0, 0.0 };
  MEM <unsigned char[12]> [(char * {ref-all})&v] = MEM <unsigned char[12]>
[(char * {ref-all})&init];
  _1 = BIT_FIELD_REF <v, 32, 0>;

The check there needs to check if the the nelts is a power of 2.
Which is what SET_TYPE_VECTOR_SUBPARTS is doing:


  unsigned HOST_WIDE_INT coeff0 = subparts.coeffs[0];
  int index = exact_log2 (coeff0);
  gcc_assert (index >= 0);

Note it is a bit complex for the case of NUM_POLY_INT_COEFFS == 2 which happens
currently only on aarch64.

Reply via email to