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