summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.cc
diff options
context:
space:
mode:
authorLena Djokic <Lena.Djokic@imgtec.com>2017-10-23 16:40:22 +0200
committerLena Djokic <Lena.Djokic@imgtec.com>2017-10-27 12:34:58 +0200
commite434c4f47e30a6440834d14ee060f2879cbc18aa (patch)
treefd7ef3045089da9da5671e830edf55114aaf8bf1 /compiler/optimizing/loop_optimization.cc
parent5751dc831ffd8acb089c2aff2e2ddf18f89da975 (diff)
MIPS: Basic SIMD reduction support.
Enables vectorization of x += .... for very basic (simple, same-type) constructs for MIPS. Note: Testing is done with checker parts of tests 661 and 665, locally changed to cover MIPS32 cases. These changes can't be included in this patch since MSA is not a default option. Test: test-art-host test-art-target Change-Id: Ia3b3646afecb76c2f00996a30923ca70302be57e
Diffstat (limited to 'compiler/optimizing/loop_optimization.cc')
-rw-r--r--compiler/optimizing/loop_optimization.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/optimizing/loop_optimization.cc b/compiler/optimizing/loop_optimization.cc
index 6a4faaf438..8f84796ff4 100644
--- a/compiler/optimizing/loop_optimization.cc
+++ b/compiler/optimizing/loop_optimization.cc
@@ -1422,10 +1422,10 @@ bool HLoopOptimization::TrySetVectorType(DataType::Type type, uint64_t* restrict
*restrictions |= kNoDiv | kNoStringCharAt | kNoReduction | kNoSAD;
return TrySetVectorLength(8);
case DataType::Type::kInt32:
- *restrictions |= kNoDiv | kNoReduction | kNoSAD;
+ *restrictions |= kNoDiv | kNoSAD;
return TrySetVectorLength(4);
case DataType::Type::kInt64:
- *restrictions |= kNoDiv | kNoReduction | kNoSAD;
+ *restrictions |= kNoDiv | kNoSAD;
return TrySetVectorLength(2);
case DataType::Type::kFloat32:
*restrictions |= kNoMinMax | kNoReduction; // min/max(x, NaN)
@@ -1451,10 +1451,10 @@ bool HLoopOptimization::TrySetVectorType(DataType::Type type, uint64_t* restrict
*restrictions |= kNoDiv | kNoStringCharAt | kNoReduction | kNoSAD;
return TrySetVectorLength(8);
case DataType::Type::kInt32:
- *restrictions |= kNoDiv | kNoReduction | kNoSAD;
+ *restrictions |= kNoDiv | kNoSAD;
return TrySetVectorLength(4);
case DataType::Type::kInt64:
- *restrictions |= kNoDiv | kNoReduction | kNoSAD;
+ *restrictions |= kNoDiv | kNoSAD;
return TrySetVectorLength(2);
case DataType::Type::kFloat32:
*restrictions |= kNoMinMax | kNoReduction; // min/max(x, NaN)