Don't use aliased values when comparing values for basic block subsumption

Aliased values can be defined by semantically different assume instructions  and then the resulting value chosen can have
information which does not correctly represent both values.

Fixes: b/395489597
Change-Id: Ieaeb4fbf8d49cdc60d2912791cc2b701d42d2b34
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/equivalence/BasicBlockBehavioralSubsumption.java b/src/main/java/com/android/tools/r8/ir/analysis/equivalence/BasicBlockBehavioralSubsumption.java
index 1da7136..8d2d7fc 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/equivalence/BasicBlockBehavioralSubsumption.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/equivalence/BasicBlockBehavioralSubsumption.java
@@ -254,8 +254,6 @@
   }
 
   private boolean valuesAreIdentical(Value value, Value other) {
-    value = value.getAliasedValue();
-    other = other.getAliasedValue();
     if (value == other) {
       return true;
     }
diff --git a/src/test/java/com/android/tools/r8/deadcode/DifferentAssumptionsOnReturnValuesTest.java b/src/test/java/com/android/tools/r8/deadcode/DifferentAssumptionsOnReturnValuesTest.java
index e41e378..0b457b8 100644
--- a/src/test/java/com/android/tools/r8/deadcode/DifferentAssumptionsOnReturnValuesTest.java
+++ b/src/test/java/com/android/tools/r8/deadcode/DifferentAssumptionsOnReturnValuesTest.java
@@ -27,8 +27,6 @@
   }
 
   private static final String EXPECTED_OUTPUT = StringUtils.lines("f(null)", "f returned null");
-  private static final String NOT_EXPECTED_OUTPUT =
-      StringUtils.lines("f(null)", "f returned non null");
 
   @Test
   public void testJvm() throws Exception {
@@ -58,7 +56,7 @@
         .enableInliningAnnotations()
         .run(parameters.getRuntime(), TestClass.class)
         // TODO(b/395489597): This should not happen.
-        .assertSuccessWithOutput(NOT_EXPECTED_OUTPUT);
+        .assertSuccessWithOutput(EXPECTED_OUTPUT);
   }
 
   static class TestClass {