Hi!

On Fri, Sep 25, 2020 at 11:09:39AM +0200, Jakub Jelinek wrote:
> libcpp has two specialized altivec implementations of search_line_fast,
> one for power8+ and the other one otherwise.
> Both use __attribute__((altivec(vector))) and the GCC builtins rather than
> altivec.h and the APIs from there, which is fine, but should be restricted
> to when libcpp is built with GCC, so that it can be relied on.
> The second elif is
> #elif (GCC_VERSION >= 4005) && defined(__ALTIVEC__) && defined 
> (__BIG_ENDIAN__)
> and thus e.g. when built with clang it isn't picked, but the first one was
> just guarded with
> #elif defined(_ARCH_PWR8) && defined(__ALTIVEC__)
> and so according to the bugreporter clang fails miserably on that.

Yeah.  This could be rewritten to use the more portable, more modern
intrinsics, but that would need a lot of testing etc.  Since the only
thing this does is speed up the compiler a few percent, and nothing
changes for a bootstrapped compiler (whatever the build compiler is),
it is just fine.

>       PR bootstrap/97163
>       * lex.c (search_line_fast): Only use _ARCH_PWR8 Altivec version
>       for GCC >= 4.5.

Okay for trunk (and whatever backports you want of course, if any).
Thanks!


Segher

Reply via email to