aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorAlejandro Martinez <alejandro.martinezvicente@arm.com>2019-06-18 08:09:00 +0000
committerAlejandro Martinez <alejandro@gcc.gnu.org>2019-06-18 08:09:00 +0000
commitbce29d65ebe1316d15ec7582a1d257ef1be163f7 (patch)
tree5e31c8b01fcf9fd667adb0a813ad377f34961fae /gcc/config
parent9553f0d2216d4475d4d1afaa748b6b02f56c057b (diff)
downloadgcc-bce29d65ebe1316d15ec7582a1d257ef1be163f7.zip
gcc-bce29d65ebe1316d15ec7582a1d257ef1be163f7.tar.gz
gcc-bce29d65ebe1316d15ec7582a1d257ef1be163f7.tar.bz2
[Vectorizer] Support masking fold left reductions
This patch adds support in the vectorizer for masking fold left reductions. This avoids the need to insert a conditional assignement with some identity value. From-SVN: r272407
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/aarch64/aarch64-sve.md10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64-sve.md
index ba39134..806823f 100644
--- a/gcc/config/aarch64/aarch64-sve.md
+++ b/gcc/config/aarch64/aarch64-sve.md
@@ -2180,14 +2180,14 @@
)
;; In-order FP reductions predicated with PTRUE.
-(define_insn "*fold_left_plus_<mode>"
+(define_insn "mask_fold_left_plus_<mode>"
[(set (match_operand:<VEL> 0 "register_operand" "=w")
- (unspec:<VEL> [(match_operand:<VPRED> 1 "register_operand" "Upl")
- (match_operand:<VEL> 2 "register_operand" "0")
- (match_operand:SVE_F 3 "register_operand" "w")]
+ (unspec:<VEL> [(match_operand:<VPRED> 3 "register_operand" "Upl")
+ (match_operand:<VEL> 1 "register_operand" "0")
+ (match_operand:SVE_F 2 "register_operand" "w")]
UNSPEC_FADDA))]
"TARGET_SVE"
- "fadda\t%<Vetype>0, %1, %<Vetype>0, %3.<Vetype>"
+ "fadda\t%<Vetype>0, %3, %<Vetype>0, %2.<Vetype>"
)
;; Predicated form of the above in-order reduction.