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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-08-11
             Status|UNCONFIRMED                 |ASSIGNED

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so the odd vector type comes from get_mask_type_for_scalar_type
which expects a scalar, not a mask type and goes via determining
vector(4) unsigned char as vectype for bool:1 and a vector(4) bool:8
as corresponding mask type (because the backend says so, for V4QI).

That's vect_get_vector_types_for_stmt doing

  else if (vect_use_mask_type_p (stmt_info))
    {
      unsigned int precision = stmt_info->mask_precision;
      scalar_type = build_nonstandard_integer_type (precision, 1);
      vectype = get_mask_type_for_scalar_type (vinfo, scalar_type, group_size);

I have a fix.

Reply via email to