aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-11-17 18:56:52 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-11-17 18:56:52 +0000
commit6632fdebbd2e6fe2748cf9e6339c744d28279fa8 (patch)
tree8bc5a62b5a1821de0ec2c190965541e07e91d677 /gcc/config
parent98937c6816d7fae32832901e05582b8730c0aaf5 (diff)
downloadgcc-6632fdebbd2e6fe2748cf9e6339c744d28279fa8.zip
gcc-6632fdebbd2e6fe2748cf9e6339c744d28279fa8.tar.gz
gcc-6632fdebbd2e6fe2748cf9e6339c744d28279fa8.tar.bz2
Simplify rs6000_builtin_vectorized_function
After the previous patches it's no longer necessary for TARGET_BUILTIN_VECTORIZED_FUNCTION to return functions that map to the vector optab of the original operation. We'll use a vector form of the internal function instead. Tested on powerpc64-linux-gnu. gcc/ * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove entries that map directly to optabs. From-SVN: r230494
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c36
1 files changed, 0 insertions, 36 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 688f1db..457e944 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -5311,19 +5311,6 @@ rs6000_builtin_vectorized_function (unsigned int fn, tree type_out,
switch (fn)
{
- CASE_CFN_CLZ:
- if (TARGET_P8_VECTOR && in_mode == out_mode && out_n == in_n)
- {
- if (out_mode == QImode && out_n == 16)
- return rs6000_builtin_decls[P8V_BUILTIN_VCLZB];
- else if (out_mode == HImode && out_n == 8)
- return rs6000_builtin_decls[P8V_BUILTIN_VCLZH];
- else if (out_mode == SImode && out_n == 4)
- return rs6000_builtin_decls[P8V_BUILTIN_VCLZW];
- else if (out_mode == DImode && out_n == 2)
- return rs6000_builtin_decls[P8V_BUILTIN_VCLZD];
- }
- break;
CASE_CFN_COPYSIGN:
if (VECTOR_UNIT_VSX_P (V2DFmode)
&& out_mode == DFmode && out_n == 2
@@ -5338,29 +5325,6 @@ rs6000_builtin_vectorized_function (unsigned int fn, tree type_out,
&& in_mode == SFmode && in_n == 4)
return rs6000_builtin_decls[ALTIVEC_BUILTIN_COPYSIGN_V4SF];
break;
- CASE_CFN_POPCOUNT:
- if (TARGET_P8_VECTOR && in_mode == out_mode && out_n == in_n)
- {
- if (out_mode == QImode && out_n == 16)
- return rs6000_builtin_decls[P8V_BUILTIN_VPOPCNTB];
- else if (out_mode == HImode && out_n == 8)
- return rs6000_builtin_decls[P8V_BUILTIN_VPOPCNTH];
- else if (out_mode == SImode && out_n == 4)
- return rs6000_builtin_decls[P8V_BUILTIN_VPOPCNTW];
- else if (out_mode == DImode && out_n == 2)
- return rs6000_builtin_decls[P8V_BUILTIN_VPOPCNTD];
- }
- break;
- CASE_CFN_SQRT:
- if (VECTOR_UNIT_VSX_P (V2DFmode)
- && out_mode == DFmode && out_n == 2
- && in_mode == DFmode && in_n == 2)
- return rs6000_builtin_decls[VSX_BUILTIN_XVSQRTDP];
- if (VECTOR_UNIT_VSX_P (V4SFmode)
- && out_mode == SFmode && out_n == 4
- && in_mode == SFmode && in_n == 4)
- return rs6000_builtin_decls[VSX_BUILTIN_XVSQRTSP];
- break;
CASE_CFN_CEIL:
if (VECTOR_UNIT_VSX_P (V2DFmode)
&& out_mode == DFmode && out_n == 2