[PATCH, rs6000] Fix PR72863 (swap optimization misses swaps generated from intrinsics)

David Edelsohn dje.gcc@gmail.com
Thu Aug 11 19:12:00 GMT 2016


On Thu, Aug 11, 2016 at 2:39 PM, Bill Schmidt
<wschmidt@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  <wschmidt@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  <wschmidt@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



More information about the Gcc-patches mailing list