Extend dead code remover to remove unnecessary casts (follow up)

Change-Id: I17bf09c05c61e5f34b320fb2cfe18bdade2a0c14
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java b/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
index 8d61a94..83364fc 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
@@ -127,6 +127,7 @@
           if (!checkCast.isRefiningStaticType()
               && checkCast.outValue().getLocalInfo() == checkCast.object().getLocalInfo()) {
             checkCast.outValue().replaceUsers(checkCast.object());
+            checkCast.object().uniquePhiUsers().forEach(Phi::removeTrivialPhi);
           }
         }
         // Remove unused invoke results.
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java b/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java
index 4f60021..1f7b39a 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java
@@ -57,9 +57,8 @@
               assertThat(main, isPresent());
               MethodSubject mainMethod = main.uniqueMethodWithName("main");
               assertThat(mainMethod, isPresent());
-              // TODO(b/160856783): Investigate if this can be removed.
               assertEquals(
-                  1,
+                  0,
                   mainMethod
                       .streamInstructions()
                       .filter(instruction -> instruction.isCheckCast(Main.class.getTypeName()))