[PATCH 1/3][rs6000] x86-compat vector intrinsics fixes for BE, 32bit

Segher Boessenkool segher@kernel.crashing.org
Tue Dec 4 23:01:00 GMT 2018


On Tue, Dec 04, 2018 at 02:33:59PM -0600, Paul Clarke wrote:
> On 12/04/2018 02:16 PM, Segher Boessenkool wrote:
> > On Tue, Dec 04, 2018 at 08:59:03AM -0600, Paul Clarke wrote:
> >> @@ -1612,7 +1608,8 @@ _mm_bsrli_si128 (__m128i __A, const int __N)
> >>    const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
> >>  
> >>    if (__N < 16)
> >> -    if (__builtin_constant_p(__N))
> >> +    if (__builtin_constant_p(__N) &&
> >> +        __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
> > 
> > Please just use __LITTLE_ENDIAN__, as the rest of these files already does.
> > (More times in this patch; also BIG).
> 
> OK.  I was using the ORDER macros based on the GCC documentation at https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html, which mentions them and does not mention the shorter ENDIAN boolean macros.

Those are PowerPC ABI, or at least, GCC has defined them in rs6000.c since
forever and a bit.  The *mm headers already used them, so let's stick to
this one style please.

> > Do you have new testcases, too?  Or is all this caught by existing
> > testcases?
> 
> Same testcases.  They catch a lot more bugs when they actually run.

:-)


Segher



More information about the Gcc-patches mailing list