From 1598945b00376f5b61959f34fad3a9ac29633272 Mon Sep 17 00:00:00 2001 From: James Greenhalgh Date: Wed, 1 May 2013 15:18:18 +0000 Subject: [PATCH] [AArch64] Fold max and min reduction builtins to tree. gcc/ * config/aarch64/aarch64-builtins (aarch64_gimple_fold_builtin): Fold reduc__ builtins. From-SVN: r198498 --- gcc/ChangeLog | 5 +++++ gcc/config/aarch64/aarch64-builtins.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea469b8a33e..0b07091d0c6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-05-01 James Greenhalgh + + * config/aarch64/aarch64-builtins + (aarch64_gimple_fold_builtin): Fold reduc__ builtins. + 2013-05-01 James Greenhalgh * config/aarch64/aarch64-simd-builtins.def diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index 3016f256869..8eb32c65d35 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; } -- 2.30.2