diff options
author | James Greenhalgh <james.greenhalgh@arm.com> | 2013-11-26 09:59:10 +0000 |
---|---|---|
committer | James Greenhalgh <jgreenhalgh@gcc.gnu.org> | 2013-11-26 09:59:10 +0000 |
commit | e993fea1ac45e88f113a598956224527bcb41753 (patch) | |
tree | 513fa4aa69483de9f770507ecee6f352c7f310e4 /gcc | |
parent | e8e9e1cda43a2b56618172896acb62103cd6bab8 (diff) | |
download | gcc-e993fea1ac45e88f113a598956224527bcb41753.zip gcc-e993fea1ac45e88f113a598956224527bcb41753.tar.gz gcc-e993fea1ac45e88f113a598956224527bcb41753.tar.bz2 |
[AArch64] [1/4 Fix vtbx1] Allow signed and unsigned versions of intrinsics
to coexist.
gcc/
* config/aarch64/aarch64-builtins.c
(VAR1): Use new naming scheme for aarch64_builtins.
(aarch64_builtin_vectorized_function): Use new
aarch64_builtins names.
From-SVN: r205383
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-builtins.c | 60 |
2 files changed, 37 insertions, 30 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a820b5..30f8513 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-11-26 James Greenhalgh <james.greenhalgh@arm.com> + + * config/aarch64/aarch64-builtins.c + (VAR1): Use new naming scheme for aarch64_builtins. + (aarch64_builtin_vectorized_function): Use new + aarch64_builtins names. + 2013-11-26 Richard Biener <rguenther@suse.de> PR tree-optimization/59287 diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index f4d23e7..d804dc9 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -320,7 +320,7 @@ static aarch64_simd_builtin_datum aarch64_simd_builtin_data[] = { #undef VAR1 #define VAR1(T, N, MAP, A) \ - AARCH64_SIMD_BUILTIN_##N##A, + AARCH64_SIMD_BUILTIN_##T##_##N##A, enum aarch64_builtins { @@ -897,11 +897,11 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) #define AARCH64_CHECK_BUILTIN_MODE(C, N) 1 #define AARCH64_FIND_FRINT_VARIANT(N) \ (AARCH64_CHECK_BUILTIN_MODE (2, D) \ - ? aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_##N##v2df] \ + ? aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_##N##v2df] \ : (AARCH64_CHECK_BUILTIN_MODE (4, S) \ - ? aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_##N##v4sf] \ + ? aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_##N##v4sf] \ : (AARCH64_CHECK_BUILTIN_MODE (2, S) \ - ? aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_##N##v2sf] \ + ? aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_##N##v2sf] \ : NULL_TREE))) if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL) { @@ -937,7 +937,7 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) case BUILT_IN_CLZ: { if (AARCH64_CHECK_BUILTIN_MODE (4, S)) - return aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_clzv4si]; + return aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_UNOP_clzv4si]; return NULL_TREE; } #undef AARCH64_CHECK_BUILTIN_MODE @@ -947,47 +947,47 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) case BUILT_IN_LFLOOR: case BUILT_IN_IFLOORF: { - tree new_tree = NULL_TREE; + enum aarch64_builtins builtin; if (AARCH64_CHECK_BUILTIN_MODE (2, D)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lfloorv2dfv2di]; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lfloorv2dfv2di; else if (AARCH64_CHECK_BUILTIN_MODE (4, S)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lfloorv4sfv4si]; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lfloorv4sfv4si; else if (AARCH64_CHECK_BUILTIN_MODE (2, S)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lfloorv2sfv2si]; - return new_tree; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lfloorv2sfv2si; + else + return NULL_TREE; + + return aarch64_builtin_decls[builtin]; } case BUILT_IN_LCEIL: case BUILT_IN_ICEILF: { - tree new_tree = NULL_TREE; + enum aarch64_builtins builtin; if (AARCH64_CHECK_BUILTIN_MODE (2, D)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lceilv2dfv2di]; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lceilv2dfv2di; else if (AARCH64_CHECK_BUILTIN_MODE (4, S)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lceilv4sfv4si]; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lceilv4sfv4si; else if (AARCH64_CHECK_BUILTIN_MODE (2, S)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lceilv2sfv2si]; - return new_tree; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lceilv2sfv2si; + else + return NULL_TREE; + + return aarch64_builtin_decls[builtin]; } case BUILT_IN_LROUND: case BUILT_IN_IROUNDF: { - tree new_tree = NULL_TREE; + enum aarch64_builtins builtin; if (AARCH64_CHECK_BUILTIN_MODE (2, D)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lroundv2dfv2di]; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lroundv2dfv2di; else if (AARCH64_CHECK_BUILTIN_MODE (4, S)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lroundv4sfv4si]; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lroundv4sfv4si; else if (AARCH64_CHECK_BUILTIN_MODE (2, S)) - new_tree = - aarch64_builtin_decls[AARCH64_SIMD_BUILTIN_lroundv2sfv2si]; - return new_tree; + builtin = AARCH64_SIMD_BUILTIN_UNOP_lroundv2sfv2si; + else + return NULL_TREE; + + return aarch64_builtin_decls[builtin]; } default: @@ -1000,7 +1000,7 @@ aarch64_builtin_vectorized_function (tree fndecl, tree type_out, tree type_in) #undef VAR1 #define VAR1(T, N, MAP, A) \ - case AARCH64_SIMD_BUILTIN_##N##A: + case AARCH64_SIMD_BUILTIN_##T##_##N##A: tree aarch64_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *args, |