diff --git a/src/main/java/com/android/tools/r8/ir/code/IRCode.java b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
index a5d3e4a..4529112 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRCode.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
@@ -376,7 +376,7 @@
       for (Phi phi : block.getPhis()) {
         assert !phi.isTrivialPhi();
         assert phi.getOperands().size() == predecessorCount;
-        assert phi.outType() != ValueType.INT_OR_FLOAT_OR_NULL;
+        assert phi.outType().isPreciseType();
         values.add(phi);
         for (Value value : phi.getOperands()) {
           values.add(value);
@@ -393,7 +393,7 @@
         if (outValue != null) {
           values.add(outValue);
           assert outValue.definition == instruction;
-          assert outValue.outType() != ValueType.INT_OR_FLOAT_OR_NULL;
+          assert outValue.outType().isPreciseType();
         }
         for (Value value : instruction.inValues()) {
           values.add(value);
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java b/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
index 3e693f3..3b2be1f 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
@@ -73,7 +73,15 @@
 
   private ValueType getPreciseType(Value value) {
     ValueType type = canonical(value).outType();
-    return type != ValueType.INT_OR_FLOAT_OR_NULL ? type : ValueType.INT_OR_FLOAT;
+    if (type.isPreciseType()) {
+      return type;
+    }
+    // If the type is still imprecise, then there are no constraints forcing its type and we
+    // arbitrarily choose long for wide values and int for single values.
+    if (type.isWide()) {
+      return ValueType.LONG;
+    }
+    return ValueType.INT;
   }
 
   private void link(Value canonical1, Value canonical2) {
