diff options
author | Vladimir Marko <vmarko@google.com> | 2019-10-29 10:17:53 +0000 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2019-10-31 09:19:22 +0000 |
commit | 7cf5607f472020711e36eedbbfebb25b40d3f90e (patch) | |
tree | 71f30133f4650656911f2fb72e3b8d203b355635 /compiler/optimizing/loop_optimization.cc | |
parent | d55b844e39c4d5eb1a56de6cb95c891659f8a27f (diff) |
Revert^2 "Implement Dot Product Vectorization for x86"
This reverts commit b8c884e5f22390386b202459ab55ef3046631e42.
And fixes a codegen bug (the reason why the original CL was
reverted).
Test: 684-checker-simd-dotprod
Test: DEX2OAT_HOST_INSTRUCTION_SET_FEATURES="sse4.1" test.py --host
Test: test.py --host --jit --gcstress
Change-Id: Ibef925d1037abc9cb5f3d4dbd79f1d1eceae2f71
Signed-off-by: Shalini Salomi Bodapati <shalini.salomi.bodapati@intel.com>
Diffstat (limited to 'compiler/optimizing/loop_optimization.cc')
-rw-r--r-- | compiler/optimizing/loop_optimization.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/compiler/optimizing/loop_optimization.cc b/compiler/optimizing/loop_optimization.cc index 9c4e9d25f7..567a41e2fd 100644 --- a/compiler/optimizing/loop_optimization.cc +++ b/compiler/optimizing/loop_optimization.cc @@ -1623,14 +1623,20 @@ bool HLoopOptimization::TrySetVectorType(DataType::Type type, uint64_t* restrict kNoDotProd; return TrySetVectorLength(16); case DataType::Type::kUint16: - case DataType::Type::kInt16: *restrictions |= kNoDiv | kNoAbs | kNoSignedHAdd | kNoUnroundedHAdd | - kNoSAD| + kNoSAD | kNoDotProd; return TrySetVectorLength(8); + case DataType::Type::kInt16: + *restrictions |= kNoDiv | + kNoAbs | + kNoSignedHAdd | + kNoUnroundedHAdd | + kNoSAD; + return TrySetVectorLength(8); case DataType::Type::kInt32: *restrictions |= kNoDiv | kNoSAD; return TrySetVectorLength(4); @@ -2166,7 +2172,7 @@ bool HLoopOptimization::VectorizeDotProdIdiom(LoopNode* node, bool generate_code, DataType::Type reduction_type, uint64_t restrictions) { - if (!instruction->IsAdd() || (reduction_type != DataType::Type::kInt32)) { + if (!instruction->IsAdd() || reduction_type != DataType::Type::kInt32) { return false; } |