Hi!

On Tue, Jul 21, 2020 at 10:28:01AM -0700, Carl Love wrote:
> [PATCH 6/6] rs6000 Add vector blend, permute builtin support

> 
>       * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define.
>       * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New
>       unspecs.

(stray dot after XXPERMX)

> +(define_mode_attr VM3_char [(V2DI "d")
> +                        (V4SI "w")
> +                        (V8HI "h")
> +                        (V16QI "b")
> +                        (V2DF  "d")
> +                        (V4SF  "w")])

Maybe the <wd> mode attr should handle the floating point modes as well?
Hrm, that doesn't even sound too confusing?  (This is for later, of
course; just thinking out loud).

Oh, either align all the ", or just use a single space on the last few
lines as well?

> +      /* Reverse value of byte element indexes by XORing with 0xFF.
> +      Reverse the 32-byte section identifier match by subracting bits [0:2]
> +      of elemet from 7.  */

(typo "element")

>        }
> -    else if (fcode == P10_BUILTIN_VEC_XXEVAL)
> +    else if ((fcode == P10_BUILTIN_VEC_XXEVAL)
> +         || (fcode == P10_BUILTIN_VXXPERMX))

Should be indented one char more here...  But please just write

    else if (fcode == P10_BUILTIN_VEC_XXEVAL
             || fcode == P10_BUILTIN_VXXPERMX)

> +  case P10_BUILTIN_VXXPERMX:
> +    gcc_assert ((mode_ret == V2DImode)
> +             && (mode_arg0 == V2DImode)
> +             && (mode_arg1 == V2DImode)
> +             && (mode_arg2 == V16QImode)
> +             && (mode_arg3 == QImode));

Simimilarly, lose the inner parens here please?

> +/* { dg-final { scan-assembler-times {\msplati\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\msrdbi\M} 6 } } */

Same issue here as in 5/6.

Okay for trunk with those things fixed, and the testcases tested and
the expected assembler code corrected.  Thanks!


Segher

Reply via email to