[Bug tree-optimization/115813] New: missing constant evaluation for vectors
andi-gcc at firstfloor dot org
gcc-bugzilla@gcc.gnu.org
Sun Jul 7 02:22:57 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115813
Bug ID: 115813
Summary: missing constant evaluation for vectors
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: andi-gcc at firstfloor dot org
Target Milestone: ---
typedef int v4si __attribute__((vector_size(16)));
v4si v(v4si x)
{
x = (x << 1) | 1;
x = (x << 1) | 1;
return x;
}
gives
movdqa .LC0(%rip), %xmm1
pslld $1, %xmm0
por %xmm1, %xmm0
pslld $1, %xmm0
por %xmm1, %xmm0
ret
but I would have expected the compiler to combine the two shifts and ors, like
it happens for scalar operations.
More information about the Gcc-bugs
mailing list