Ensure extract is seen as having scalar result.
Rationale:
Extracting from a vector yields a scalar, yet
our parallel mover and one DCHECK did not account
for that fact (note that moving towards a vector
type system will prevent such errors).
Regression test for this is part of the SAD CL.
Test: test-art-host test-art-target
Bug: 64091002
Change-Id: Id154edd1a069c54e7d8da069c368dea0a8f973f4
diff --git a/compiler/optimizing/nodes_vector.h b/compiler/optimizing/nodes_vector.h
index 886d75e..c5e75a7 100644
--- a/compiler/optimizing/nodes_vector.h
+++ b/compiler/optimizing/nodes_vector.h
@@ -815,7 +815,7 @@
class HVecSetScalars FINAL : public HVecOperation {
public:
HVecSetScalars(ArenaAllocator* arena,
- HInstruction** scalars, // array
+ HInstruction* scalars[],
Primitive::Type packed_type,
size_t vector_length,
size_t number_of_scalars,
@@ -827,7 +827,7 @@
vector_length,
dex_pc) {
for (size_t i = 0; i < number_of_scalars; i++) {
- DCHECK(!scalars[i]->IsVecOperation());
+ DCHECK(!scalars[i]->IsVecOperation() || scalars[i]->IsVecExtractScalar());
SetRawInputAt(0, scalars[i]);
}
}