https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77613
Bug ID: 77613
Summary: Powerpc64le: redundant swaps in autovectorised loop
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: anton at samba dot org
CC: meissner at gcc dot gnu.org, segher at gcc dot gnu.org,
wschmidt at gcc dot gnu.org
Target Milestone: ---
Target: powerpc64le-linux
The following test case:
void testcase(signed short a, signed short *x, signed short *y)
{
unsigned long i;
for (i = 0; i < 1024; i++)
y[i] = a * x[i] + y[i];
}
has redundant swaps on the way in and out:
lxvd2x 32,8,9
lxvd2x 33,10,9
xxpermdi 32,32,32,2
xxpermdi 33,33,33,2
vmladduhm 0,13,0,1
xxpermdi 0,32,32,2
stxvd2x 0,10,9