On Sun, Sep 25, 2016 at 02:48:19PM +0100, Sergei Trofimovich wrote:
> From: Sergei Trofimovich <siarh...@google.com>
> 
> Today I traced AVX2 optimisation bug in gcc and
> distilled it down to '__builtin_ia32_gatheraltdiv4si256'
> generated by gcc.
> 
> When I attempted to use this builtin directly
> in a simple program gcc refused to recognise
> it as known:
> 
>   #include <immintrin.h>
> 
>   void a (void) {
>     __builtin_ia32_gatheraltdiv4si256 (1);
>   }
> 
>   $ LANG=C gcc -c -march=core-avx2 a.c
>     a.c: In function 'a':
>     a.c:4:5: warning: implicit declaration of function
>         '__builtin_ia32_gatheraltdiv4si256' [-Wimplicit-function-declaration]
> 
> The cause is trailing whitespace in builtin definition:
> 
>       def_builtin (OPTION_MASK_ISA_AVX2, "__builtin_ia32_gatheraltdiv4si256 ",
> 
> Fixed by dropping trailing whitespace.

No, that isn't a fix, adding such characters has been an older way to
express internal only builtins that aren't ever meant to be available to
users (these days we'd use internal-fn.* stuff, except we don't have support
for backends adding their own internal functions).

        Jakub

Reply via email to