This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rs6000] Clean up implementation of built-in functions


Hi Kelvin,

On Fri, Jun 01, 2018 at 01:22:09PM -0500, Kelvin Nilsen wrote:
> 2018-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
> 
> 	* config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD,
> 	VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses.
> 	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
> 	several redundant entries.

> --- gcc/config/rs6000/rs6000-builtin.def	(revision 261067)
> +++ gcc/config/rs6000/rs6000-builtin.def	(working copy)
> @@ -1811,6 +1811,15 @@ BU_VSX_OVERLOAD_1 (VUNSIGNEDE,  "vunsignede")
>  BU_VSX_OVERLOAD_1 (VUNSIGNEDO,  "vunsignedo")
>  
>  /* VSX builtins that are handled as special cases.  */
> +
> +
> +/* NON-TRADITIONAL BEHAVIOR HERE: Besides introducing the
> +   __builtin_vec_ld and __builtin_vec_st built-in functions,
> +   the VSX_BUILTIN_VEC_LD and VSX_BUILTIN_VEC_ST symbolic constants
> +   introduced below are also affiliated with the __builtin_vec_vsx_ld
> +   and __builtin_vec_vsx_st functions respectively.  This unnatural
> +   binding is formed with explicit calls to the def_builtin function
> +   found in rs6000.c.  */
>  BU_VSX_OVERLOAD_X (LD,	     "ld")
>  BU_VSX_OVERLOAD_X (ST,	     "st")
>  BU_VSX_OVERLOAD_X (XL,	     "xl")

It's not clear to me how this is different from all the other def_builtin
calls, say, __builtin_vec_adde or __builtin_vec_splats.

Either way, the patch is fine, okay for trunk.  Thanks.


Segher


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]