This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 6/6] Simplify aarch64_builtin_vectorized_function
- From: Richard Sandiford <richard dot sandiford at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: marcus dot shawcroft at arm dot com, richard dot earnshaw at arm dot com, james dot greenhalgh at arm dot com
- Date: Mon, 09 Nov 2015 16:31:48 +0000
- Subject: [PATCH 6/6] Simplify aarch64_builtin_vectorized_function
- Authentication-results: sourceware.org; auth=none
- References: <87io5bno02 dot fsf at e105548-lin dot cambridge dot arm dot com>
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.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Remove entries that map
directly to optabs.
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index c4cda4f..2a560a9 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -1288,40 +1288,6 @@ aarch64_builtin_vectorized_function (unsigned int fn, tree type_out,
{
#undef AARCH64_CHECK_BUILTIN_MODE
#define AARCH64_CHECK_BUILTIN_MODE(C, N) \
- (out_mode == N##Fmode && out_n == C \
- && in_mode == N##Fmode && in_n == C)
- CASE_CFN_FLOOR:
- return AARCH64_FIND_FRINT_VARIANT (floor);
- CASE_CFN_CEIL:
- return AARCH64_FIND_FRINT_VARIANT (ceil);
- CASE_CFN_TRUNC:
- return AARCH64_FIND_FRINT_VARIANT (btrunc);
- CASE_CFN_ROUND:
- return AARCH64_FIND_FRINT_VARIANT (round);
- CASE_CFN_NEARBYINT:
- return AARCH64_FIND_FRINT_VARIANT (nearbyint);
- CASE_CFN_SQRT:
- return AARCH64_FIND_FRINT_VARIANT (sqrt);
-#undef AARCH64_CHECK_BUILTIN_MODE
-#define AARCH64_CHECK_BUILTIN_MODE(C, N) \
- (out_mode == SImode && out_n == C \
- && in_mode == N##Imode && in_n == C)
- CASE_CFN_CLZ:
- {
- if (AARCH64_CHECK_BUILTIN_MODE (4, S))
- return aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_clzv4si];
- return NULL_TREE;
- }
- CASE_CFN_CTZ:
- {
- if (AARCH64_CHECK_BUILTIN_MODE (2, S))
- return aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_ctzv2si];
- else if (AARCH64_CHECK_BUILTIN_MODE (4, S))
- return aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_ctzv4si];
- return NULL_TREE;
- }
-#undef AARCH64_CHECK_BUILTIN_MODE
-#define AARCH64_CHECK_BUILTIN_MODE(C, N) \
(out_mode == N##Imode && out_n == C \
&& in_mode == N##Fmode && in_n == C)
CASE_CFN_IFLOOR: