public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Document cond_copysign and cond_len_copysign optabs [PR112951]
@ 2023-12-21 20:10 Andrew Pinski
  2023-12-21 20:19 ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Pinski @ 2023-12-21 20:10 UTC (permalink / raw)
  To: gcc-patches; +Cc: Andrew Pinski

This adds the documentation for cond_copysign and cond_len_copysign optabs.
Also reorders the optabs.def to be in the similar order as how the internal
function was done.

gcc/ChangeLog:

	PR middle-end/112951
	* doc/md.texi (cond_copysign): Document.
	(cond_len_copysign): Likewise.
	* optabs.def: Reorder cond_copysign to be before
	cond_fmin. Likewise for cond_len_copysign.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
---
 gcc/doc/md.texi | 10 +++++++++-
 gcc/optabs.def  |  4 ++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 536ce997f01..030a9bf4c3d 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -7315,6 +7315,7 @@ form of @samp{@var{op}@var{mode}2}.
 @cindex @code{cond_smax@var{mode}} instruction pattern
 @cindex @code{cond_umin@var{mode}} instruction pattern
 @cindex @code{cond_umax@var{mode}} instruction pattern
+@cindex @code{cond_copysign@var{mode}} instruction pattern
 @cindex @code{cond_fmin@var{mode}} instruction pattern
 @cindex @code{cond_fmax@var{mode}} instruction pattern
 @cindex @code{cond_ashl@var{mode}} instruction pattern
@@ -7334,6 +7335,7 @@ form of @samp{@var{op}@var{mode}2}.
 @itemx @samp{cond_smax@var{mode}}
 @itemx @samp{cond_umin@var{mode}}
 @itemx @samp{cond_umax@var{mode}}
+@itemx @samp{cond_copysign@var{mode}}
 @itemx @samp{cond_fmin@var{mode}}
 @itemx @samp{cond_fmax@var{mode}}
 @itemx @samp{cond_ashl@var{mode}}
@@ -7371,6 +7373,8 @@ form of @samp{@var{op}@var{mode}3}.  As an exception, the vector forms
 of shifts correspond to patterns like @code{vashl@var{mode}3} rather
 than patterns like @code{ashl@var{mode}3}.
 
+@samp{cond_copysign@var{mode}} is only defined for floating point modes.
+
 @cindex @code{cond_fma@var{mode}} instruction pattern
 @cindex @code{cond_fms@var{mode}} instruction pattern
 @cindex @code{cond_fnma@var{mode}} instruction pattern
@@ -7432,6 +7436,7 @@ form of @samp{@var{op}@var{mode}2}.
 @cindex @code{cond_len_smax@var{mode}} instruction pattern
 @cindex @code{cond_len_umin@var{mode}} instruction pattern
 @cindex @code{cond_len_umax@var{mode}} instruction pattern
+@cindex @code{cond_len_copysign@var{mode}} instruction pattern
 @cindex @code{cond_len_fmin@var{mode}} instruction pattern
 @cindex @code{cond_len_fmax@var{mode}} instruction pattern
 @cindex @code{cond_len_ashl@var{mode}} instruction pattern
@@ -7451,6 +7456,7 @@ form of @samp{@var{op}@var{mode}2}.
 @itemx @samp{cond_len_smax@var{mode}}
 @itemx @samp{cond_len_umin@var{mode}}
 @itemx @samp{cond_len_umax@var{mode}}
+@itemx @samp{cond_len_copysign@var{mode}}
 @itemx @samp{cond_len_fmin@var{mode}}
 @itemx @samp{cond_len_fmax@var{mode}}
 @itemx @samp{cond_len_ashl@var{mode}}
@@ -7478,11 +7484,13 @@ integer if @var{m} is scalar, otherwise it has the mode returned by
 @code{TARGET_VECTORIZE_GET_MASK_MODE}.  Operand 5 has whichever
 integer mode the target prefers.
 
-@samp{cond_@var{op}@var{mode}} generally corresponds to a conditional
+@samp{cond_len_@var{op}@var{mode}} generally corresponds to a conditional
 form of @samp{@var{op}@var{mode}3}.  As an exception, the vector forms
 of shifts correspond to patterns like @code{vashl@var{mode}3} rather
 than patterns like @code{ashl@var{mode}3}.
 
+@samp{cond_len_copysign@var{mode}} is only defined for floating point modes.
+
 @cindex @code{cond_len_fma@var{mode}} instruction pattern
 @cindex @code{cond_len_fms@var{mode}} instruction pattern
 @cindex @code{cond_len_fnma@var{mode}} instruction pattern
diff --git a/gcc/optabs.def b/gcc/optabs.def
index 07c06ba8cbb..92acec73b3a 100644
--- a/gcc/optabs.def
+++ b/gcc/optabs.def
@@ -249,6 +249,7 @@ OPTAB_D (cond_smin_optab, "cond_smin$a")
 OPTAB_D (cond_smax_optab, "cond_smax$a")
 OPTAB_D (cond_umin_optab, "cond_umin$a")
 OPTAB_D (cond_umax_optab, "cond_umax$a")
+OPTAB_D (cond_copysign_optab, "cond_copysign$F$a")
 OPTAB_D (cond_fmin_optab, "cond_fmin$a")
 OPTAB_D (cond_fmax_optab, "cond_fmax$a")
 OPTAB_D (cond_fma_optab, "cond_fma$a")
@@ -256,7 +257,6 @@ OPTAB_D (cond_fms_optab, "cond_fms$a")
 OPTAB_D (cond_fnma_optab, "cond_fnma$a")
 OPTAB_D (cond_fnms_optab, "cond_fnms$a")
 OPTAB_D (cond_neg_optab, "cond_neg$a")
-OPTAB_D (cond_copysign_optab, "cond_copysign$F$a")
 OPTAB_D (cond_one_cmpl_optab, "cond_one_cmpl$a")
 OPTAB_D (cond_len_add_optab, "cond_len_add$a")
 OPTAB_D (cond_len_sub_optab, "cond_len_sub$a")
@@ -275,6 +275,7 @@ OPTAB_D (cond_len_smin_optab, "cond_len_smin$a")
 OPTAB_D (cond_len_smax_optab, "cond_len_smax$a")
 OPTAB_D (cond_len_umin_optab, "cond_len_umin$a")
 OPTAB_D (cond_len_umax_optab, "cond_len_umax$a")
+OPTAB_D (cond_len_copysign_optab, "cond_len_copysign$F$a")
 OPTAB_D (cond_len_fmin_optab, "cond_len_fmin$a")
 OPTAB_D (cond_len_fmax_optab, "cond_len_fmax$a")
 OPTAB_D (cond_len_fma_optab, "cond_len_fma$a")
@@ -282,7 +283,6 @@ OPTAB_D (cond_len_fms_optab, "cond_len_fms$a")
 OPTAB_D (cond_len_fnma_optab, "cond_len_fnma$a")
 OPTAB_D (cond_len_fnms_optab, "cond_len_fnms$a")
 OPTAB_D (cond_len_neg_optab, "cond_len_neg$a")
-OPTAB_D (cond_len_copysign_optab, "cond_len_copysign$F$a")
 OPTAB_D (cond_len_one_cmpl_optab, "cond_len_one_cmpl$a")
 OPTAB_D (vcond_mask_len_optab, "vcond_mask_len_$a")
 OPTAB_D (cmov_optab, "cmov$a6")
-- 
2.39.3


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Document cond_copysign and cond_len_copysign optabs [PR112951]
  2023-12-21 20:10 [PATCH] Document cond_copysign and cond_len_copysign optabs [PR112951] Andrew Pinski
@ 2023-12-21 20:19 ` Richard Biener
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2023-12-21 20:19 UTC (permalink / raw)
  To: Andrew Pinski; +Cc: gcc-patches



> Am 21.12.2023 um 21:11 schrieb Andrew Pinski <quic_apinski@quicinc.com>:
> 
> This adds the documentation for cond_copysign and cond_len_copysign optabs.
> Also reorders the optabs.def to be in the similar order as how the internal
> function was done.

Ok

> gcc/ChangeLog:
> 
>    PR middle-end/112951
>    * doc/md.texi (cond_copysign): Document.
>    (cond_len_copysign): Likewise.
>    * optabs.def: Reorder cond_copysign to be before
>    cond_fmin. Likewise for cond_len_copysign.
> 
> Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
> ---
> gcc/doc/md.texi | 10 +++++++++-
> gcc/optabs.def  |  4 ++--
> 2 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
> index 536ce997f01..030a9bf4c3d 100644
> --- a/gcc/doc/md.texi
> +++ b/gcc/doc/md.texi
> @@ -7315,6 +7315,7 @@ form of @samp{@var{op}@var{mode}2}.
> @cindex @code{cond_smax@var{mode}} instruction pattern
> @cindex @code{cond_umin@var{mode}} instruction pattern
> @cindex @code{cond_umax@var{mode}} instruction pattern
> +@cindex @code{cond_copysign@var{mode}} instruction pattern
> @cindex @code{cond_fmin@var{mode}} instruction pattern
> @cindex @code{cond_fmax@var{mode}} instruction pattern
> @cindex @code{cond_ashl@var{mode}} instruction pattern
> @@ -7334,6 +7335,7 @@ form of @samp{@var{op}@var{mode}2}.
> @itemx @samp{cond_smax@var{mode}}
> @itemx @samp{cond_umin@var{mode}}
> @itemx @samp{cond_umax@var{mode}}
> +@itemx @samp{cond_copysign@var{mode}}
> @itemx @samp{cond_fmin@var{mode}}
> @itemx @samp{cond_fmax@var{mode}}
> @itemx @samp{cond_ashl@var{mode}}
> @@ -7371,6 +7373,8 @@ form of @samp{@var{op}@var{mode}3}.  As an exception, the vector forms
> of shifts correspond to patterns like @code{vashl@var{mode}3} rather
> than patterns like @code{ashl@var{mode}3}.
> 
> +@samp{cond_copysign@var{mode}} is only defined for floating point modes.
> +
> @cindex @code{cond_fma@var{mode}} instruction pattern
> @cindex @code{cond_fms@var{mode}} instruction pattern
> @cindex @code{cond_fnma@var{mode}} instruction pattern
> @@ -7432,6 +7436,7 @@ form of @samp{@var{op}@var{mode}2}.
> @cindex @code{cond_len_smax@var{mode}} instruction pattern
> @cindex @code{cond_len_umin@var{mode}} instruction pattern
> @cindex @code{cond_len_umax@var{mode}} instruction pattern
> +@cindex @code{cond_len_copysign@var{mode}} instruction pattern
> @cindex @code{cond_len_fmin@var{mode}} instruction pattern
> @cindex @code{cond_len_fmax@var{mode}} instruction pattern
> @cindex @code{cond_len_ashl@var{mode}} instruction pattern
> @@ -7451,6 +7456,7 @@ form of @samp{@var{op}@var{mode}2}.
> @itemx @samp{cond_len_smax@var{mode}}
> @itemx @samp{cond_len_umin@var{mode}}
> @itemx @samp{cond_len_umax@var{mode}}
> +@itemx @samp{cond_len_copysign@var{mode}}
> @itemx @samp{cond_len_fmin@var{mode}}
> @itemx @samp{cond_len_fmax@var{mode}}
> @itemx @samp{cond_len_ashl@var{mode}}
> @@ -7478,11 +7484,13 @@ integer if @var{m} is scalar, otherwise it has the mode returned by
> @code{TARGET_VECTORIZE_GET_MASK_MODE}.  Operand 5 has whichever
> integer mode the target prefers.
> 
> -@samp{cond_@var{op}@var{mode}} generally corresponds to a conditional
> +@samp{cond_len_@var{op}@var{mode}} generally corresponds to a conditional
> form of @samp{@var{op}@var{mode}3}.  As an exception, the vector forms
> of shifts correspond to patterns like @code{vashl@var{mode}3} rather
> than patterns like @code{ashl@var{mode}3}.
> 
> +@samp{cond_len_copysign@var{mode}} is only defined for floating point modes.
> +
> @cindex @code{cond_len_fma@var{mode}} instruction pattern
> @cindex @code{cond_len_fms@var{mode}} instruction pattern
> @cindex @code{cond_len_fnma@var{mode}} instruction pattern
> diff --git a/gcc/optabs.def b/gcc/optabs.def
> index 07c06ba8cbb..92acec73b3a 100644
> --- a/gcc/optabs.def
> +++ b/gcc/optabs.def
> @@ -249,6 +249,7 @@ OPTAB_D (cond_smin_optab, "cond_smin$a")
> OPTAB_D (cond_smax_optab, "cond_smax$a")
> OPTAB_D (cond_umin_optab, "cond_umin$a")
> OPTAB_D (cond_umax_optab, "cond_umax$a")
> +OPTAB_D (cond_copysign_optab, "cond_copysign$F$a")
> OPTAB_D (cond_fmin_optab, "cond_fmin$a")
> OPTAB_D (cond_fmax_optab, "cond_fmax$a")
> OPTAB_D (cond_fma_optab, "cond_fma$a")
> @@ -256,7 +257,6 @@ OPTAB_D (cond_fms_optab, "cond_fms$a")
> OPTAB_D (cond_fnma_optab, "cond_fnma$a")
> OPTAB_D (cond_fnms_optab, "cond_fnms$a")
> OPTAB_D (cond_neg_optab, "cond_neg$a")
> -OPTAB_D (cond_copysign_optab, "cond_copysign$F$a")
> OPTAB_D (cond_one_cmpl_optab, "cond_one_cmpl$a")
> OPTAB_D (cond_len_add_optab, "cond_len_add$a")
> OPTAB_D (cond_len_sub_optab, "cond_len_sub$a")
> @@ -275,6 +275,7 @@ OPTAB_D (cond_len_smin_optab, "cond_len_smin$a")
> OPTAB_D (cond_len_smax_optab, "cond_len_smax$a")
> OPTAB_D (cond_len_umin_optab, "cond_len_umin$a")
> OPTAB_D (cond_len_umax_optab, "cond_len_umax$a")
> +OPTAB_D (cond_len_copysign_optab, "cond_len_copysign$F$a")
> OPTAB_D (cond_len_fmin_optab, "cond_len_fmin$a")
> OPTAB_D (cond_len_fmax_optab, "cond_len_fmax$a")
> OPTAB_D (cond_len_fma_optab, "cond_len_fma$a")
> @@ -282,7 +283,6 @@ OPTAB_D (cond_len_fms_optab, "cond_len_fms$a")
> OPTAB_D (cond_len_fnma_optab, "cond_len_fnma$a")
> OPTAB_D (cond_len_fnms_optab, "cond_len_fnms$a")
> OPTAB_D (cond_len_neg_optab, "cond_len_neg$a")
> -OPTAB_D (cond_len_copysign_optab, "cond_len_copysign$F$a")
> OPTAB_D (cond_len_one_cmpl_optab, "cond_len_one_cmpl$a")
> OPTAB_D (vcond_mask_len_optab, "vcond_mask_len_$a")
> OPTAB_D (cmov_optab, "cmov$a6")
> -- 
> 2.39.3
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-12-21 20:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-21 20:10 [PATCH] Document cond_copysign and cond_len_copysign optabs [PR112951] Andrew Pinski
2023-12-21 20:19 ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).