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

            Bug ID: 101802
           Summary: Vectorization can end up creating vector bool CTORs
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---

When SLP vectorization creates code for external bool defs that are used in
condition composition we can end up combining them with vector booleans
and thus push types like vector(16) <signed-boolean:1> on them.

vect_create_constant_vectors then converts the components to signed-boolean:1
using _3 = _2 ? -1 : 0 and builds a CTOR with signed-boolean:1 components.
It's probably better to code-generate the "conversion" to vector bool by
using a CTOR with the original bools and then producing the vector bool mask
by a comparison against zero (if supported?).

Reply via email to