diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2023-12-21 11:41:18 -0800 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2023-12-21 12:23:17 -0800 |
commit | df5df10355089c9c92529c222100722cea170877 (patch) | |
tree | 6b505ea0b7e099de6df0a21b08fff38db3f52339 /gcc | |
parent | 619a9539ee378e635ba3a26300dff746a9ff4ba2 (diff) | |
download | gcc-df5df10355089c9c92529c222100722cea170877.zip gcc-df5df10355089c9c92529c222100722cea170877.tar.gz gcc-df5df10355089c9c92529c222100722cea170877.tar.bz2 |
Document cond_copysign and cond_len_copysign optabs [PR112951]
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>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/doc/md.texi | 10 | ||||
-rw-r--r-- | gcc/optabs.def | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 536ce99..030a9bf 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 07c06ba..92acec7 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") |