Always consider wide registers clobbered when re-using constant instructions

A reused wide value still have to invalidate covering wide constants.

Bug: 136717060
Change-Id: I10a3ea336b292a1d0371e34c35ebde095f71870c
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/PeepholeOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/PeepholeOptimizer.java
index 66a1106..87c0737 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/PeepholeOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/PeepholeOptimizer.java
@@ -483,9 +483,8 @@
               registerToNumber.put(outRegister, current.asConstNumber());
               if (current.outType().isWide()) {
                 registerToNumber.remove(outRegister + 1);
-              } else {
-                removeWideConstantCovering(registerToNumber, outRegister);
               }
+              removeWideConstantCovering(registerToNumber, outRegister);
             }
           } else {
             // This instruction writes registers with a non-constant value. Remove the registers
diff --git a/src/test/java/com/android/tools/r8/ir/regalloc/B136717060.java b/src/test/java/com/android/tools/r8/ir/regalloc/B136717060.java
index 3b9edfc..3de2b40 100644
--- a/src/test/java/com/android/tools/r8/ir/regalloc/B136717060.java
+++ b/src/test/java/com/android/tools/r8/ir/regalloc/B136717060.java
@@ -4,16 +4,9 @@
 
 package com.android.tools.r8.ir.regalloc;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.AnyOf.anyOf;
-import static org.hamcrest.core.StringContains.containsString;
-
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.utils.codeinspector.ClassSubject;
-import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -32,22 +25,14 @@
     this.parameters = parameters;
   }
 
-  private void checkSomething(CodeInspector inspector) {
-    ClassSubject classSubject = inspector.clazz(TestClass.class);
-    assertThat(classSubject, isPresent());
-  }
-
   @Test
   public void test() throws Exception {
     testForD8()
         .addInnerClasses(B136717060.class)
         .setMinApi(parameters.getRuntime())
         .compile()
-        .disassemble()
-        .inspect(this::checkSomething)
         .run(parameters.getRuntime(), TestClass.class)
-        .assertFailureWithErrorThatMatches(
-            anyOf(containsString("rejecting opcode"), containsString("Precise Low-half Constant")));
+        .assertSuccess();
   }
 
   static class TestClass {
@@ -64,6 +49,6 @@
       method(Long.MIN_VALUE, -1, Long.MIN_VALUE, 0L);
     }
 
-    static void method(long x, long y, Object divExpected, Object modExpected) {}
+    static void method(long x, long y, Object a, Object b) {}
   }
 }