summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.h
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2017-05-23 11:01:13 -0700
committer Aart Bik <ajcbik@google.com> 2017-05-24 15:56:14 +0000
commit304c8a5dfe92d5677e9561270b19313d3e450c59 (patch)
treea5345d8d3467dde5f509dcc5dd0b3b170b021e60 /compiler/optimizing/loop_optimization.h
parent14538fb50832ac20445af5a92003bc250f486c22 (diff)
Support for narrow operands in "dangerous" operations.
This is a revert^2 of commit 636e870d55c1739e2318c2180fac349683dbfa97. Rationale: Under strict conditions, even operations that are sensitive to higher order bits can vectorize by inspecting the operands carefully. This enables more vectorization, as demonstrated by the removal of quite a few TODOs. Test: test-art-target, test-art-host Change-Id: Ic2684f771d2e36df10432286198533284acaf472
Diffstat (limited to 'compiler/optimizing/loop_optimization.h')
-rw-r--r--compiler/optimizing/loop_optimization.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/optimizing/loop_optimization.h b/compiler/optimizing/loop_optimization.h
index 6d5978d337..35298d4076 100644
--- a/compiler/optimizing/loop_optimization.h
+++ b/compiler/optimizing/loop_optimization.h
@@ -137,7 +137,11 @@ class HLoopOptimization : public HOptimization {
HInstruction* opa,
HInstruction* opb,
Primitive::Type type);
- void GenerateVecOp(HInstruction* org, HInstruction* opa, HInstruction* opb, Primitive::Type type);
+ void GenerateVecOp(HInstruction* org,
+ HInstruction* opa,
+ HInstruction* opb,
+ Primitive::Type type,
+ bool is_unsigned = false);
// Vectorization idioms.
bool VectorizeHalvingAddIdiom(LoopNode* node,