diff options
author | James Greenhalgh <james.greenhalgh@arm.com> | 2013-05-01 15:18:18 +0000 |
---|---|---|
committer | James Greenhalgh <jgreenhalgh@gcc.gnu.org> | 2013-05-01 15:18:18 +0000 |
commit | 1598945b00376f5b61959f34fad3a9ac29633272 (patch) | |
tree | e0597e0e6d1e3c8d58aeb010ae5a1dfd54006ecc /gcc | |
parent | 998eaf975b729d18892843568bffa4dae1d80938 (diff) | |
download | gcc-1598945b00376f5b61959f34fad3a9ac29633272.zip gcc-1598945b00376f5b61959f34fad3a9ac29633272.tar.gz gcc-1598945b00376f5b61959f34fad3a9ac29633272.tar.bz2 |
[AArch64] Fold max and min reduction builtins to tree.
gcc/
* config/aarch64/aarch64-builtins
(aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
From-SVN: r198498
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-builtins.c | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea469b8..0b07091 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com> + * config/aarch64/aarch64-builtins + (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins. + +2013-05-01 James Greenhalgh <james.greenhalgh@arm.com> + * config/aarch64/aarch64-simd-builtins.def (reduc_smax_): New. (reduc_smin_): Likewise. diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index 3016f25..8eb32c6 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -1372,6 +1372,21 @@ aarch64_gimple_fold_builtin (gimple_stmt_iterator *gsi) args[0], NULL_TREE); break; + BUILTIN_VDQIF (UNOP, reduc_smax_, 10) + new_stmt = gimple_build_assign_with_ops ( + REDUC_MAX_EXPR, + gimple_call_lhs (stmt), + args[0], + NULL_TREE); + break; + BUILTIN_VDQIF (UNOP, reduc_smin_, 10) + new_stmt = gimple_build_assign_with_ops ( + REDUC_MIN_EXPR, + gimple_call_lhs (stmt), + args[0], + NULL_TREE); + break; + default: break; } |