ART: Resolve ambiguous ArraySets

Just like aget(-wide), the value operand of aput(-wide) bytecode
instructions can be both int/long and float/double. This patch builds
on the previous mechanism for resolving type of ArrayGets to type the
values of ArraySets based on the reference type of the array.

Bug: 22538329

Change-Id: Ic86abbb58de146692de04476b555010b6fcdd8b6
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index dc54bda..1a7cbde 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -101,7 +101,7 @@
 enum BuildSsaResult {
   kBuildSsaFailNonNaturalLoop,
   kBuildSsaFailThrowCatchLoop,
-  kBuildSsaFailAmbiguousArrayGet,
+  kBuildSsaFailAmbiguousArrayOp,
   kBuildSsaSuccess,
 };