summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.h
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2017-05-18 14:45:27 -0700
committerAart Bik <ajcbik@google.com>2017-05-18 17:18:24 -0700
commit636e870d55c1739e2318c2180fac349683dbfa97 (patch)
tree6c726b0b918e26aba5b5f9ec1bc900045ef2c3e3 /compiler/optimizing/loop_optimization.h
parentde31d084f7d64c94911aef927798559d39759f95 (diff)
Support for narrow operands in "dangerous" operations.
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: I2b0fda6a182da9aed9ce1708a53eaf0b7e1c9146
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,