On Thu, Aug 11, 2016 at 2:39 PM, Bill Schmidt <wschm...@linux.vnet.ibm.com> wrote: > Hi, > > Anton reports in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72863 that use > of > vec_vsx_ld and vec_vsx_st intrinsics leaves the endian swaps in the generated > code, even for very simple computations. This turns out to be because we > don't > generate the swaps at expand time as we do with other vector moves; rather, > they > don't get generated until split time. This patch fixes the problem in the > obvious way. > > Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. > One new test case added. Is this ok for trunk? > > I would also like to backport this to 6 and 5 branches after some burn-in > time. > I do not plan to rush this into 6.2; we'll have to wait for 6.3 as this is > only > a performance issue, albeit an important one. > > Thanks, > Bill > > > [gcc] > > 2016-08-11 Bill Schmidt <wschm...@linux.vnet.ibm.com> > > PR target/72863 > * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time. > (vsx_store_<mode>): Likewise. > > [gcc/testsuite] > > 2016-08-11 Bill Schmidt <wschm...@linux.vnet.ibm.com> > > PR target/72863 > * gcc.target/powerpc/pr72863.c: New test.
Okay for trunk, and 5/6 branches after a few weeks. Thanks, David