diff options
author | Aart Bik <ajcbik@google.com> | 2017-05-18 14:45:27 -0700 |
---|---|---|
committer | Aart Bik <ajcbik@google.com> | 2017-05-18 17:18:24 -0700 |
commit | 636e870d55c1739e2318c2180fac349683dbfa97 (patch) | |
tree | 6c726b0b918e26aba5b5f9ec1bc900045ef2c3e3 /compiler/optimizing/loop_optimization.h | |
parent | de31d084f7d64c94911aef927798559d39759f95 (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.h | 6 |
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, |