[Bug middle-end/100582] New: vectorize failed to generate VEC_COND_EXPR for v32qi
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu May 13 08:48:49 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100582
Bug ID: 100582
Summary: vectorize failed to generate VEC_COND_EXPR for v32qi
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: crazylht at gmail dot com
CC: hjl.tools at gmail dot com
Target Milestone: ---
Host: x86_64-pc-linux-gnu
https://godbolt.org/z/nfdsGPTxj
cat test.c
v32qi
f2 (v32qi x, v32qi a, v32qi b)
{
v32qi e;
for (int i = 0; i != 32; i++)
e[i] = x[i] ? a[i] : b[i];
return e;
}
clang can generate vplendvb, gcc doesn't vectorize it.
also clang can generate clean vplendvb for f1.
v32qi
f1 (v32qi x, v32qi a, v32qi b)
{
v32qi e;
for (int i = 0; i != 32; i++)
e[i] = x[i] & -128 ? a[i] : b[i];
return e;
}
More information about the Gcc-bugs
mailing list