https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79268

            Bug ID: 79268
           Summary: [6/7 Regression] Wrong code generation for vec_xl and
                    vec_xst intrinsics
           Product: gcc
           Version: 6.3.1
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: major
          Priority: P3
         Component: target
          Assignee: wschmidt at gcc dot gnu.org
          Reporter: wschmidt at gcc dot gnu.org
                CC: segher at gcc dot gnu.org
  Target Milestone: ---
            Target: powerpc64*-*-*

I had a thinko when adding the new element-reversing vector load and store
instructions, tying them to vec_xl and vec_xst rather than vec_xl_be and
vec_xst_be.  This regresses these intrinsics both by generating wrong code for
them, but also by rejecting legitimate parameter combinations that vec_xl/xst
should support (such as vector pixel).  This has been encountered building at
least one debian package.

I plan to attack this in two stages.  First we'll need an emergency patch that
just reverts the #define of these to match vec_vsx_ld and vec_vsx_st as they
should, which we can submit to the various distros for immediate use.  Later
I'll fix up the rest so that vec_xl_be and vec_xst_be make use of the new
instructions.

Reply via email to