diff options
author | 2018-01-31 12:55:04 -0800 | |
---|---|---|
committer | 2018-02-01 13:26:03 -0800 | |
commit | 66c158ef6b2a16257f1590b3ace78848a7c2407b (patch) | |
tree | f17f7eee70aa43711c7eb764c1789f4ec17aef37 /compiler/optimizing/register_allocation_resolver.cc | |
parent | 92d0c8b68c24a2fa21f95d63a1ff2fb00fdb9aaf (diff) |
Clean up signed/unsigned in vectorizer.
Rationale:
Currently we have some remaining ugliness around signed and unsigned
SIMD operations due to lack of kUint32 and kUint64 in the HIR. By
"softly" introducing these types, ABS/MIN/MAX/HALVING_ADD/SAD_ACCUMULATE
operations can solely rely on the packed data types to distinguish
between signed and unsigned operations. Cleaner, and also allows for
some code removal in the current loop optimizer.
Bug: 72709770
Test: test-art-host test-art-target
Change-Id: I68e4cdfba325f622a7256adbe649735569cab2a3
Diffstat (limited to 'compiler/optimizing/register_allocation_resolver.cc')
-rw-r--r-- | compiler/optimizing/register_allocation_resolver.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/optimizing/register_allocation_resolver.cc b/compiler/optimizing/register_allocation_resolver.cc index 1d3fe0334d..27f9ac3990 100644 --- a/compiler/optimizing/register_allocation_resolver.cc +++ b/compiler/optimizing/register_allocation_resolver.cc @@ -103,6 +103,7 @@ void RegisterAllocationResolver::Resolve(ArrayRef<HInstruction* const> safepoint case DataType::Type::kFloat64: slot += long_spill_slots; FALLTHROUGH_INTENDED; + case DataType::Type::kUint64: case DataType::Type::kInt64: slot += float_spill_slots; FALLTHROUGH_INTENDED; @@ -110,6 +111,7 @@ void RegisterAllocationResolver::Resolve(ArrayRef<HInstruction* const> safepoint slot += int_spill_slots; FALLTHROUGH_INTENDED; case DataType::Type::kReference: + case DataType::Type::kUint32: case DataType::Type::kInt32: case DataType::Type::kUint16: case DataType::Type::kUint8: |