[ARM] Allow vecreduce_add in tail predicated loops

This allows vecreduce_add in loops so that we can tailpredicate them.

Differential Revision: https://reviews.llvm.org/D85454
This commit is contained in:
David Green 2020-08-09 10:57:17 +01:00
parent 296faa91ed
commit 8590e5abad
2 changed files with 284 additions and 2103 deletions

View File

@ -254,11 +254,12 @@ bool MVETailPredication::IsPredicatedVectorLoop() {
switch (Int->getIntrinsicID()) {
case Intrinsic::get_active_lane_mask:
ActiveLaneMask = true;
LLVM_FALLTHROUGH;
continue;
case Intrinsic::sadd_sat:
case Intrinsic::uadd_sat:
case Intrinsic::ssub_sat:
case Intrinsic::usub_sat:
case Intrinsic::experimental_vector_reduce_add:
continue;
case Intrinsic::fma:
case Intrinsic::trunc:
@ -269,7 +270,7 @@ bool MVETailPredication::IsPredicatedVectorLoop() {
case Intrinsic::fabs:
if (ST->hasMVEFloatOps())
continue;
LLVM_FALLTHROUGH;
break;
default:
break;
}

File diff suppressed because it is too large Load Diff