aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.def
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2023-11-09 14:00:20 +0000
committerTamar Christina <tamar.christina@arm.com>2023-11-09 14:06:06 +0000
commitf30ecd8050444fb902ab66b4600c590908861fdf (patch)
treeeae4168f3ed0449c651386e0baa18eea6b943249 /gcc/optabs.def
parent3f176e1adc6bc9cc2c21222d776b51d9f43cb66b (diff)
downloadgcc-f30ecd8050444fb902ab66b4600c590908861fdf.zip
gcc-f30ecd8050444fb902ab66b4600c590908861fdf.tar.gz
gcc-f30ecd8050444fb902ab66b4600c590908861fdf.tar.bz2
ifcvt: Add support for conditional copysign
This adds a masked variant of copysign. Nothing very exciting just the general machinery to define and use a new masked IFN. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Note: This patch is part of a testseries and tests for it are added in the AArch64 patch that adds supports for the optab. gcc/ChangeLog: PR tree-optimization/109154 * internal-fn.def (COPYSIGN): New. * match.pd (UNCOND_BINARY, COND_BINARY): Map IFN_COPYSIGN to IFN_COND_COPYSIGN. * optabs.def (cond_copysign_optab, cond_len_copysign_optab): New.
Diffstat (limited to 'gcc/optabs.def')
-rw-r--r--gcc/optabs.def2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/optabs.def b/gcc/optabs.def
index 8d5ceeb..07c06ba 100644
--- a/gcc/optabs.def
+++ b/gcc/optabs.def
@@ -256,6 +256,7 @@ 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")
@@ -281,6 +282,7 @@ 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")