]> git.ipfire.org Git - thirdparty/gcc.git/commit
Relax boolean processing in vect_maybe_update_slp_op_vectype
authorRichard Biener <rguenther@suse.de>
Thu, 17 Oct 2024 12:27:13 +0000 (14:27 +0200)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 18 Oct 2024 07:39:59 +0000 (09:39 +0200)
commit59afd44ffb1bd55fc84b4a36107a9bdba708e9a0
tree0a0fcdd734429264e83f9b14d6b655a37c81190b
parenta449b4245556e7540e916e9ec475e8275c0b8484
Relax boolean processing in vect_maybe_update_slp_op_vectype

The following makes VECTOR_BOOLEAN_TYPE_P processing consistent with
what we do without SLP.  The original motivation for rejecting of
VECTOR_BOOLEAN_TYPE_P extern defs was bad code generation.  But
the non-SLP codepath happily goes along - but always hits the
case of an uniform vector and this case specifically we can now
code-generate optimally.  So the following allows single-lane
externs as well.

Requiring patterns to code-generate can have bad influence on
the vectorization factor though a prototype patch of mine shows
that generating vector compares externally isn't always trivial.

The patch fixes the gcc.dg/vect/vect-early-break_82.c FAIL on x86_64
when --param vect-force-slp=1 is in effect.

PR tree-optimization/117171
* tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype):
Relax vect_external_def VECTOR_BOOLEAN_TYPE_P constraint.
gcc/tree-vect-stmts.cc