[PATCH i386 AVX512] [81/n] Add new built-ins.

Jakub Jelinek jakub@redhat.com
Mon Oct 20 13:56:00 GMT 2014


On Mon, Oct 20, 2014 at 05:41:25PM +0400, Kirill Yukhin wrote:
> Hello,
> This patch adds (almost) all built-ins needed by
> AVX-512VL,BW,DQ intrinsics.
> 
> Main questionable hunk is:
> 
> diff --git a/gcc/tree-core.h b/gcc/tree-core.h
> index b69312b..a639487 100644
> --- a/gcc/tree-core.h
> +++ b/gcc/tree-core.h
> @@ -1539,7 +1539,7 @@ struct GTY(()) tree_function_decl {
>       DECL_FUNCTION_CODE.  Otherwise unused.
>       ???  The bitfield needs to be able to hold all target function
>  	  codes as well.  */
> -  ENUM_BITFIELD(built_in_function) function_code : 11;
> +  ENUM_BITFIELD(built_in_function) function_code : 12;
>    ENUM_BITFIELD(built_in_class) built_in_class : 2;
>  
>    unsigned static_ctor_flag : 1;

Well, decl_with_vis has 15 unused bits, so instead of growing
FUNCTION_DECL significantly, might be better to move one of the
flags to decl_with_vis and just document that it applies to FUNCTION_DECLs
only.  Or move some flag to cgraph if possible.

But seeing e.g.
       IX86_BUILTIN_FIXUPIMMPD256, IX86_BUILTIN_FIXUPIMMPD256_MASK,
       IX86_BUILTIN_FIXUPIMMPD256_MASKZ
etc. I wonder if you really need that many builtins, weren't we adding
for avx512f just single builtin instead of 3 different ones, always
providing mask argument and depending on whether it is all ones, etc.
figuring out what kind of masking should be performed?

	Jakub



More information about the Gcc-patches mailing list