https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104265
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
Sure - the example is more complicated to what I'd initially try to handle ;)
Consider a fully unrolled
bool is_hello (const char *s)
{
for (int i = 0; i < 8; ++i)
if (s[i] != "hello world][i])
return false;
return true;
}
or so.
That should vectorize to ((v8qi)*s != (v8qi)"hello wo") != { -1, -1, ...}
And the important missing bit is to build the SLP tree for both the
compare (the GIMPLE_COND conditions plus possibly if-converted parts)
and the final compare with all-true or all-false.