diff options
author | James Greenhalgh <james.greenhalgh@arm.com> | 2013-04-29 11:02:15 +0000 |
---|---|---|
committer | James Greenhalgh <jgreenhalgh@gcc.gnu.org> | 2013-04-29 11:02:15 +0000 |
commit | 0386b123a240b8dbdbdd7243d533c33a8a47a82f (patch) | |
tree | 813d148b51581709d4ff07555fc46189236f9e01 /gcc/config | |
parent | 00fcb892ccf023d378e45b71b93b62c8e5399b60 (diff) | |
download | gcc-0386b123a240b8dbdbdd7243d533c33a8a47a82f.zip gcc-0386b123a240b8dbdbdd7243d533c33a8a47a82f.tar.gz gcc-0386b123a240b8dbdbdd7243d533c33a8a47a82f.tar.bz2 |
[AArch64] Vectorize over more math.h functions.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Vectorize over ifloorf,
iceilf, lround, iroundf.
From-SVN: r198402
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/aarch64/aarch64-builtins.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index d2e5136..53d2c6a 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -1245,6 +1245,7 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) (out_mode == N##Imode && out_n == C \ && in_mode == N##Fmode && in_n == C) case BUILT_IN_LFLOOR: + case BUILT_IN_IFLOORF: { tree new_tree = NULL_TREE; if (AARCH64_CHECK_BUILTIN_MODE (2, D)) @@ -1259,6 +1260,7 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) return new_tree; } case BUILT_IN_LCEIL: + case BUILT_IN_ICEILF: { tree new_tree = NULL_TREE; if (AARCH64_CHECK_BUILTIN_MODE (2, D)) @@ -1272,6 +1274,22 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lceilv2sfv2si]; return new_tree; } + case BUILT_IN_LROUND: + case BUILT_IN_IROUNDF: + { + tree new_tree = NULL_TREE; + if (AARCH64_CHECK_BUILTIN_MODE (2, D)) + new_tree = + aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lroundv2dfv2di]; + else if (AARCH64_CHECK_BUILTIN_MODE (4, S)) + new_tree = + aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lroundv4sfv4si]; + else if (AARCH64_CHECK_BUILTIN_MODE (2, S)) + new_tree = + aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lroundv2sfv2si]; + return new_tree; + } + default: return NULL_TREE; } |