diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2015-11-17 18:56:52 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2015-11-17 18:56:52 +0000 |
commit | 6632fdebbd2e6fe2748cf9e6339c744d28279fa8 (patch) | |
tree | 8bc5a62b5a1821de0ec2c190965541e07e91d677 /gcc/config | |
parent | 98937c6816d7fae32832901e05582b8730c0aaf5 (diff) | |
download | gcc-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.c | 36 |
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 |