[PATCH] Adjust docu of TARGET_VECTORIZE_VEC_PERM_CONST

Richard Biener richard.guenther@gmail.com
Wed Jul 28 07:43:53 GMT 2021


On Wed, Jul 28, 2021 at 8:44 AM Andreas Krebbel via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> There are also memory operands passed for in0 and in1.
>
> Ok for mainline?

They can also be constant vectors, I'd just not specify the operand
kind - usually
expanders are not limited as to what they feed down.

> gcc/ChangeLog:
>
>         * target.def: Describe in0 and in1 as being either register or
>         memory operands.
>         * doc/tm.texi: Regenerate.
> ---
>  gcc/doc/tm.texi | 7 ++++---
>  gcc/target.def  | 7 ++++---
>  2 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
> index c8f4abe3e41..31f188daf00 100644
> --- a/gcc/doc/tm.texi
> +++ b/gcc/doc/tm.texi
> @@ -6124,9 +6124,10 @@ This hook is used to test whether the target can permute up to two
>  vectors of mode @var{mode} using the permutation vector @code{sel}, and
>  also to emit such a permutation.  In the former case @var{in0}, @var{in1}
>  and @var{out} are all null.  In the latter case @var{in0} and @var{in1} are
> -the source vectors and @var{out} is the destination vector; all three are
> -registers of mode @var{mode}.  @var{in1} is the same as @var{in0} if
> -@var{sel} describes a permutation on one vector instead of two.
> +the source vectors and @var{out} is the destination vector.  The destination
> +vector is a register of mode @var{mode} while the source vectors can be either
> +register or memory operands of mode @var{mode}.  @var{in1} is the same as
> +@var{in0} if @var{sel} describes a permutation on one vector instead of two.
>
>  Return true if the operation is possible, emitting instructions for it
>  if rtxes are provided.
> diff --git a/gcc/target.def b/gcc/target.def
> index 2e40448e6c5..b368d81be63 100644
> --- a/gcc/target.def
> +++ b/gcc/target.def
> @@ -1860,9 +1860,10 @@ DEFHOOK
>  vectors of mode @var{mode} using the permutation vector @code{sel}, and\n\
>  also to emit such a permutation.  In the former case @var{in0}, @var{in1}\n\
>  and @var{out} are all null.  In the latter case @var{in0} and @var{in1} are\n\
> -the source vectors and @var{out} is the destination vector; all three are\n\
> -registers of mode @var{mode}.  @var{in1} is the same as @var{in0} if\n\
> -@var{sel} describes a permutation on one vector instead of two.\n\
> +the source vectors and @var{out} is the destination vector.  The destination\n\
> +vector is a register of mode @var{mode} while the source vectors can be either\n\
> +register or memory operands of mode @var{mode}.  @var{in1} is the same as\n\
> +@var{in0} if @var{sel} describes a permutation on one vector instead of two.\n\
>  \n\
>  Return true if the operation is possible, emitting instructions for it\n\
>  if rtxes are provided.\n\
> --
> 2.31.1
>


More information about the Gcc-patches mailing list