On 1/28/22 2:32 PM, Segher Boessenkool wrote:
> On Fri, Jan 28, 2022 at 11:50:20AM -0600, Bill Schmidt wrote:
>> It was recently pointed out that we get anomalous behavior when using
>> __attribute__((target)) to select a CPU. As an example, when building for
>> -mcpu=power8 but using __attribute__((target("mcpu=power10")), it is legal
>> to call __builtin_vec_mod, but not vec_mod, even though these are
>> equivalent. This is because the equivalence is established with a #define
>> that is guarded by #ifdef _ARCH_PWR10.
> Yeah that is bad.
>
>> This goofy behavior occurs with both the old builtins support and the
>> new. One of the goals of the new builtins support was to make sure all
>> appropriate interfaces are available using __attribute__((target)), so I
>> failed in this respect. This patch corrects the problem by removing the
>> apply. For example, #ifdef __PPU__ is still appropriate.
> "By removing the apply"... What does that mean?
Er, wow. Meant to say "by removing the #define." Strange error... will fix.
Thanks for catching that!
Bill
>
> Nice cleanup (and nice bugfix of course). Okay for trunk (with that
> comment improved a bit perhaps). Thanks!
>
>
> Segher