On Wed, Mar 21, 2018 at 11:42:01AM -0400, Michael Meissner wrote:
> +/* Create a decl for either complex long double multiply or complex long 
> double
> +   divide when long double is IEEE 128-bit floating point.  We can't use
> +   __multc3 and __divtc3 because the original long double using IBM extended
> +   double used those names.  The complex multiply/divide functions are 
> encoded
> +   as builtin functions with a complex result and 4 scalar inputs.  */

The function is much more generic than that (other than the name and the
debug printf).

> +static void
> +create_complex_muldiv (const char *name, built_in_function fncode, tree 
> fntype)
> +{
> +  tree fndecl = add_builtin_function (name, fntype, fncode, BUILT_IN_NORMAL,
> +                                   name, NULL_TREE);
> +
> +  set_builtin_decl (fncode, fndecl, true);
> +
> +  if (TARGET_DEBUG_BUILTIN)
> +    fprintf (stderr, "create complex %s, fncode: %d, fndecl: 0x%lx\n", name,
> +          (int) fncode, (unsigned long)fndecl);

Space after cast.  Don't cast pointers to integer, just use %p.  Is this
address useful to print at all?

> @@ -18689,6 +18710,24 @@ init_float128_ieee (machine_mode mode)
>  {
>    if (FLOAT128_VECTOR_P (mode))
>      {
> +      /* Set up to call __mulkc3 and __divkc3 under -mabi=ieeelongdouble.  */
> +     if (mode == TFmode && TARGET_IEEEQUAD)
> +       {
> +      built_in_function fncode_mul =
> +        (built_in_function)(BUILT_IN_COMPLEX_MUL_MIN + TCmode - 
> MIN_MODE_COMPLEX_FLOAT);
> +      built_in_function fncode_div =
> +        (built_in_function)(BUILT_IN_COMPLEX_DIV_MIN + TCmode - 
> MIN_MODE_COMPLEX_FLOAT);

Space after cast, lines too long.  Put TCmode - MIN_MODE_COMPLEX_FLOAT in
a temp, maybe?

> --- gcc/testsuite/gcc.target/powerpc/mulkc3-3.c       (revision 0)
> +++ gcc/testsuite/gcc.target/powerpc/mulkc3-3.c       (revision 0)
> @@ -0,0 +1,16 @@
> +/* { dg-do compile { target { powerpc64*-*-* } } } */

Does powerpc*-*-* not work?

> +/* { dg-require-effective-target powerpc_p9vector_ok } */
> +/* { dg-options "-O2 -mpower8-vector -mabi=ibmlongdouble -Wno-psabi" } */

powerpc_p9vector_ok but -mpower8-vector, that is strange.


Segher

Reply via email to