Message ID | 1383677020.30428.33.camel@gnopaine |
---|---|
State | New |
Headers | show |
On Tue, Nov 5, 2013 at 1:43 PM, Bill Schmidt <wschmidt@linux.vnet.ibm.com> wrote: > Hi, > > With the recent set of patches, there are no longer any vector-related > regressions for powerpc64le-linux-gnu that do not also occur for > powerpc64-linux-gnu. (gcc.dg/vect/vect-96.c is still broken for both > endiannesses and is being tracked.) I did a code walkthrough on the > back-end code and did not find any additional endianness concerns. > Therefore, this patch removes the restriction that we cannot generate > VSX instructions for a little endian target. > > Note that there are still two relevant patches pending approval, so this > patch is contingent on final resolution of those and will not be > committed until then. > > With that restriction, is this ok for trunk? > > Thanks, > Bill > > > 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> > > * config/rs6000/rs6000.c (rs6000_option_override_internal): > Remove restriction against use of VSX instructions when generating > code for little endian mode. Okay. Woohoo :-/ - David
Index: gcc/config/rs6000/rs6000.c =================================================================== --- gcc/config/rs6000/rs6000.c (revision 204350) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -3221,11 +3221,6 @@ rs6000_option_override_internal (bool global_init_ } else if (TARGET_PAIRED_FLOAT) msg = N_("-mvsx and -mpaired are incompatible"); - /* The hardware will allow VSX and little endian, but until we make sure - things like vector select, etc. work don't allow VSX on little endian - systems at this point. */ - else if (!BYTES_BIG_ENDIAN) - msg = N_("-mvsx used with little endian code"); else if (TARGET_AVOID_XFORM > 0) msg = N_("-mvsx needs indexed addressing"); else if (!TARGET_ALTIVEC && (rs6000_isa_flags_explicit