[LIR] Add support for neg and shift instructions.

Also migrates more legacy example regression tests.

Bug: b/225838009
Bug: b/167145686
Change-Id: Icde132054f8488cadaf1febc88c598cfe999a617
diff --git a/src/main/java/com/android/tools/r8/ir/code/Neg.java b/src/main/java/com/android/tools/r8/ir/code/Neg.java
index dde52df..7b7c683 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Neg.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Neg.java
@@ -17,6 +17,7 @@
 import com.android.tools.r8.ir.analysis.type.TypeElement;
 import com.android.tools.r8.ir.conversion.CfBuilder;
 import com.android.tools.r8.ir.conversion.DexBuilder;
+import com.android.tools.r8.lightir.LirBuilder;
 import java.util.function.Function;
 
 public class Neg extends Unop {
@@ -111,4 +112,9 @@
   public void buildCf(CfBuilder builder) {
     builder.add(new CfNeg(type), this);
   }
+
+  @Override
+  public void buildLir(LirBuilder<Value, ?> builder) {
+    builder.addNeg(type, source());
+  }
 }
diff --git a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
index 2c8b535..bfd5625 100644
--- a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
+++ b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
@@ -54,6 +54,7 @@
 import com.android.tools.r8.ir.code.MonitorType;
 import com.android.tools.r8.ir.code.MoveException;
 import com.android.tools.r8.ir.code.Mul;
+import com.android.tools.r8.ir.code.Neg;
 import com.android.tools.r8.ir.code.NewArrayEmpty;
 import com.android.tools.r8.ir.code.NewArrayFilledData;
 import com.android.tools.r8.ir.code.NewInstance;
@@ -67,11 +68,13 @@
 import com.android.tools.r8.ir.code.Position.SyntheticPosition;
 import com.android.tools.r8.ir.code.Rem;
 import com.android.tools.r8.ir.code.Return;
+import com.android.tools.r8.ir.code.Shl;
 import com.android.tools.r8.ir.code.Shr;
 import com.android.tools.r8.ir.code.StaticGet;
 import com.android.tools.r8.ir.code.StaticPut;
 import com.android.tools.r8.ir.code.Sub;
 import com.android.tools.r8.ir.code.Throw;
+import com.android.tools.r8.ir.code.Ushr;
 import com.android.tools.r8.ir.code.Value;
 import com.android.tools.r8.ir.code.ValueType;
 import com.android.tools.r8.ir.code.Xor;
@@ -426,12 +429,30 @@
     }
 
     @Override
+    public void onNeg(NumericType type, EV value) {
+      Value dest = getOutValueForNextInstruction(valueTypeElement(type));
+      addInstruction(new Neg(type, dest, getValue(value)));
+    }
+
+    @Override
+    public void onShl(NumericType type, EV left, EV right) {
+      Value dest = getOutValueForNextInstruction(valueTypeElement(type));
+      addInstruction(new Shl(type, dest, getValue(left), getValue(right)));
+    }
+
+    @Override
     public void onShr(NumericType type, EV left, EV right) {
       Value dest = getOutValueForNextInstruction(valueTypeElement(type));
       addInstruction(new Shr(type, dest, getValue(left), getValue(right)));
     }
 
     @Override
+    public void onUshr(NumericType type, EV left, EV right) {
+      Value dest = getOutValueForNextInstruction(valueTypeElement(type));
+      addInstruction(new Ushr(type, dest, getValue(left), getValue(right)));
+    }
+
+    @Override
     public void onAnd(NumericType type, EV left, EV right) {
       Value dest = getOutValueForNextInstruction(valueTypeElement(type));
       addInstruction(And.createNonNormalized(type, dest, getValue(left), getValue(right)));
diff --git a/src/main/java/com/android/tools/r8/lightir/LirBuilder.java b/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
index c19b47c..ef0e769 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
@@ -389,6 +389,30 @@
     return addOneItemInstruction(LirOpcodes.LDC, type);
   }
 
+  public LirBuilder<V, EV> addNeg(NumericType type, V source) {
+    int opcode;
+    switch (type) {
+      case BYTE:
+      case CHAR:
+      case SHORT:
+      case INT:
+        opcode = LirOpcodes.INEG;
+        break;
+      case LONG:
+        opcode = LirOpcodes.LNEG;
+        break;
+      case FLOAT:
+        opcode = LirOpcodes.FNEG;
+        break;
+      case DOUBLE:
+        opcode = LirOpcodes.DNEG;
+        break;
+      default:
+        throw new Unreachable("Unexpected type: " + type);
+    }
+    return addOneValueInstruction(opcode, source);
+  }
+
   public LirBuilder<V, EV> addDiv(NumericType type, V leftValue, V rightValue) {
     int opcode;
     switch (type) {
diff --git a/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java b/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
index 3684dab..c19f035 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
@@ -239,18 +239,28 @@
     onRem(NumericType.DOUBLE, leftValueIndex, rightValueIndex);
   }
 
+  public void onNeg(NumericType type, EV value) {
+    onInstruction();
+  }
+
   private void onLogicalBinopInternal(int opcode, LirInstructionView view) {
     EV left = getNextValueOperand(view);
     EV right = getNextValueOperand(view);
     switch (opcode) {
       case LirOpcodes.ISHL:
-      case LirOpcodes.LSHL:
         throw new Unimplemented(LirOpcodes.toString(opcode));
+      case LirOpcodes.LSHL:
+        onShl(NumericType.LONG, left, right);
+        return;
       case LirOpcodes.ISHR:
         onShr(NumericType.INT, left, right);
         return;
       case LirOpcodes.LSHR:
+        onShr(NumericType.LONG, left, right);
+        return;
       case LirOpcodes.IUSHR:
+        onUshr(NumericType.INT, left, right);
+        return;
       case LirOpcodes.LUSHR:
         throw new Unimplemented(LirOpcodes.toString(opcode));
       case LirOpcodes.IAND:
@@ -278,10 +288,18 @@
     onBinop(type, left, right);
   }
 
+  public void onShl(NumericType type, EV left, EV right) {
+    onLogicalBinop(type, left, right);
+  }
+
   public void onShr(NumericType type, EV left, EV right) {
     onLogicalBinop(type, left, right);
   }
 
+  public void onUshr(NumericType type, EV left, EV right) {
+    onLogicalBinop(type, left, right);
+  }
+
   public void onAnd(NumericType type, EV left, EV right) {
     onLogicalBinop(type, left, right);
   }
@@ -763,6 +781,22 @@
           onRemDouble(leftValueIndex, rightValueIndex);
           return;
         }
+      case LirOpcodes.INEG:
+        {
+          EV value = getNextValueOperand(view);
+          onNeg(NumericType.INT, value);
+          return;
+        }
+      case LirOpcodes.LNEG:
+        throw new Unimplemented("missing opcode: " + LirOpcodes.toString(opcode));
+      case LirOpcodes.FNEG:
+        {
+          EV value = getNextValueOperand(view);
+          onNeg(NumericType.FLOAT, value);
+          return;
+        }
+      case LirOpcodes.DNEG:
+        throw new Unimplemented("missing opcode: " + LirOpcodes.toString(opcode));
       case LirOpcodes.ISHL:
       case LirOpcodes.LSHL:
       case LirOpcodes.ISHR:
diff --git a/src/main/java/com/android/tools/r8/lightir/LirPrinter.java b/src/main/java/com/android/tools/r8/lightir/LirPrinter.java
index 91dd055..b818d6b 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirPrinter.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirPrinter.java
@@ -170,6 +170,12 @@
   }
 
   @Override
+  public void onNeg(NumericType type, EV value) {
+    appendOutValue();
+    appendValueArguments(value);
+  }
+
+  @Override
   public void onNumberConversion(int opcode, EV value) {
     appendOutValue();
     appendValueArguments(value);
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
index 20d9e1e..190ef4b 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
@@ -27,9 +27,6 @@
     String[] tests = {
       "arithmetic.Arithmetic",
       "inlining.Inlining",
-      "regress_65104300.Regress",
-      "regress_70703087.Test",
-      "regress_70736958.Test",
       "regress_70737019.Test",
       "regress_72361252.Test",
       "regress_110373181.Regress",
diff --git a/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java b/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java
index 2ed3a8a..1018d03 100644
--- a/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java
+++ b/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java
@@ -60,22 +60,6 @@
   }
 
   @Test
-  public void testRegress65104300() throws Exception {
-    testDebugging("regress_65104300", "Regress");
-  }
-
-  @Ignore("TODO(b/79671093): This test seems to take forever")
-  @Test
-  public void testRegress70703087() throws Exception {
-    testDebugging("regress_70703087", "Test");
-  }
-
-  @Test
-  public void testRegress70736958() throws Exception {
-    testDebugging("regress_70736958", "Test");
-  }
-
-  @Test
   public void testRegress70737019() throws Exception {
     testDebugging("regress_70737019", "Test");
   }
diff --git a/src/test/examples/regress_65104300/Regress.java b/src/test/java/com/android/tools/r8/examples/regress_65104300/Regress.java
similarity index 92%
rename from src/test/examples/regress_65104300/Regress.java
rename to src/test/java/com/android/tools/r8/examples/regress_65104300/Regress.java
index 05a4333..44d87e7 100644
--- a/src/test/examples/regress_65104300/Regress.java
+++ b/src/test/java/com/android/tools/r8/examples/regress_65104300/Regress.java
@@ -1,7 +1,7 @@
 // Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-package regress_65104300;
+package com.android.tools.r8.examples.regress_65104300;
 
 public class Regress {
   // We correctly deduce that the array put cannot throw. However, we had a bug
diff --git a/src/test/java/com/android/tools/r8/examples/regress_65104300/Regress65104300TestRunner.java b/src/test/java/com/android/tools/r8/examples/regress_65104300/Regress65104300TestRunner.java
new file mode 100644
index 0000000..798cb08
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/examples/regress_65104300/Regress65104300TestRunner.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.examples.regress_65104300;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.examples.ExamplesTestBase;
+import com.android.tools.r8.utils.StringUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class Regress65104300TestRunner extends ExamplesTestBase {
+
+  @Parameterized.Parameters(name = "{0}")
+  public static TestParametersCollection data() {
+    return getTestParameters().withAllRuntimesAndApiLevels().enableApiLevelsForCf().build();
+  }
+
+  public Regress65104300TestRunner(TestParameters parameters) {
+    super(parameters);
+  }
+
+  @Override
+  public Class<?> getMainClass() {
+    return Regress.class;
+  }
+
+  @Override
+  public String getExpected() {
+    return StringUtils.lines("0");
+  }
+
+  @Test
+  public void testDesugaring() throws Exception {
+    runTestDesugaring();
+  }
+
+  @Test
+  public void testR8() throws Exception {
+    runTestR8();
+  }
+
+  @Test
+  public void testDebug() throws Exception {
+    runTestDebugComparator();
+  }
+}
diff --git a/src/test/java/com/android/tools/r8/examples/regress_70703087/Regress70703087TestRunner.java b/src/test/java/com/android/tools/r8/examples/regress_70703087/Regress70703087TestRunner.java
new file mode 100644
index 0000000..11ade17
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/examples/regress_70703087/Regress70703087TestRunner.java
@@ -0,0 +1,205 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.examples.regress_70703087;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.examples.ExamplesTestBase;
+import com.android.tools.r8.utils.StringUtils;
+import com.google.common.collect.ImmutableList;
+import java.util.List;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class Regress70703087TestRunner extends ExamplesTestBase {
+
+  @Parameterized.Parameters(name = "{0}")
+  public static TestParametersCollection data() {
+    return getTestParameters().withAllRuntimesAndApiLevels().enableApiLevelsForCf().build();
+  }
+
+  public Regress70703087TestRunner(TestParameters parameters) {
+    super(parameters);
+  }
+
+  @Override
+  public Class<?> getMainClass() {
+    return TestClass.class;
+  }
+
+  @Override
+  public List<Class<?>> getTestClasses() throws Exception {
+    return ImmutableList.of(
+        getMainClass(),
+        Class.forName(typeName(TestClass.class) + "$1"),
+        Class.forName(typeName(TestClass.class) + "$X"),
+        Class.forName(typeName(TestClass.class) + "$A"),
+        Class.forName(typeName(TestClass.class) + "$B"),
+        Class.forName(typeName(TestClass.class) + "$C"));
+  }
+
+  @Override
+  public String getExpected() {
+    return StringUtils.lines(
+        "An exception was caught.",
+        "r  = 1.7532855E9",
+        "mZ = false",
+        "mI = -1938324620",
+        "mJ = -242539528963191",
+        "mF = -1.0",
+        "mD = 0.0",
+        "mArray = [1.0, 5.0, 13.0, 29.0, 61.0, 125.0, 253.0, 509.0, 1021.0, 2045.0, 4093.0, 8189.0,"
+            + " 16381.0, 32765.0, 65533.0, 131069.0, 262141.0, 524285.0, 1048573.0, 2097149.0,"
+            + " 4194301.0, 8388605.0, 1.6777213E7, 3.3554429E7, 6.7108861E7, 1.34217725E8,"
+            + " 2.68435453E8, 5.36870909E8, 1.073741821E9, 2.147483645E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9, -1.938324619E9,"
+            + " -1.938324619E9, -1.938324619E9, 1.796355124E9, 1.796355125E9, 1.796355126E9,"
+            + " 1.796355127E9, 1.796355128E9, 1.796355129E9, 1.79635513E9, 1.796355131E9,"
+            + " 1.796355132E9, 1.796355133E9, 1.796355134E9, 1.796355135E9, 1.796355136E9,"
+            + " 1.796355137E9, 1.796355138E9, 1.796355139E9, 1.79635514E9, 1.796355141E9,"
+            + " 1.796355142E9, 1.796355143E9, 1.796355144E9, 1.796355145E9, 1.796355146E9,"
+            + " 1.796355147E9, 1.796355148E9, 1.796355149E9, 1.79635515E9, 1.796355151E9,"
+            + " 1.796355152E9, 1.796355153E9, 1.796355154E9, 1.796355155E9, 1.796355156E9,"
+            + " 1.796355157E9, 1.796355158E9, 1.796355159E9, 1.79635516E9, 1.796355161E9,"
+            + " 1.796355162E9, 1.796355163E9, 1.796355164E9, 1.796355165E9, 1.796355166E9,"
+            + " 1.796355167E9, 1.796355168E9, 1.796355169E9, 1.79635517E9, 1.796355171E9,"
+            + " 1.796355172E9, 1.796355173E9, 1.796355174E9, 1.796355175E9, 1.796355176E9,"
+            + " 1.796355177E9, 1.796355178E9, 1.796355179E9, 1.79635518E9, 1.796355181E9,"
+            + " 1.796355182E9, 1.796355183E9, 1.796355184E9, 1.796355185E9, 1.796355186E9,"
+            + " 1.796355187E9, 1.796355188E9, 1.796355189E9, 1.79635519E9, 1.796355191E9,"
+            + " 1.796355192E9, 1.796355193E9, 1.796355194E9, 1.796355195E9, 1.796355196E9,"
+            + " 1.796355197E9, 1.796355198E9, 1.796355199E9, 1.7963552E9, 1.796355201E9,"
+            + " 1.796355202E9, 1.796355203E9, 1.796355204E9, 1.796355205E9, 1.796355206E9,"
+            + " 1.796355207E9, 1.796355208E9, 1.796355209E9, 1.79635521E9, 1.796355211E9,"
+            + " 1.796355212E9, 1.796355213E9, 1.796355214E9, 1.796355215E9, 1.796355216E9,"
+            + " 1.796355217E9, 1.796355218E9, 1.796355219E9, 1.79635522E9, 1.796355221E9,"
+            + " 1.796355222E9, 1.796355223E9, 1.796355224E9, 1.796355225E9, 1.796355226E9,"
+            + " 1.796355227E9, 1.796355228E9, 1.796355229E9, 1.79635523E9, 1.796355231E9,"
+            + " 1.796355232E9, 1.796355233E9, 1.796355234E9, 1.796355235E9, 1.796355236E9,"
+            + " 1.796355237E9, 1.796355238E9, 1.796355239E9, 1.79635524E9, 1.796355241E9,"
+            + " 1.796355242E9, 1.796355243E9, 1.796355244E9, 1.796355245E9, 1.796355246E9,"
+            + " 1.796355247E9, 1.796355248E9, 1.796355249E9, 1.79635525E9, 1.796355251E9,"
+            + " 1.796355252E9, 1.796355253E9, 1.796355254E9, 1.796355255E9, 1.796355256E9,"
+            + " 1.796355257E9, 1.796355258E9, 1.796355259E9, 1.79635526E9, 1.796355261E9,"
+            + " 1.796355262E9, 1.796355263E9, 1.796355264E9, 1.796355265E9, 1.796355266E9,"
+            + " 1.796355267E9, 1.796355268E9, 1.796355269E9, 1.79635527E9, 1.796355271E9,"
+            + " 1.796355272E9, 1.796355273E9, 1.796355274E9, 1.796355275E9, 1.796355276E9,"
+            + " 1.796355277E9, 1.796355278E9, 1.796355279E9, 1.79635528E9, 1.796355281E9,"
+            + " 1.796355282E9, 1.796355283E9, 1.796355284E9, 1.796355285E9, 1.796355286E9,"
+            + " 1.796355287E9, 1.796355288E9, 1.796355289E9, 1.79635529E9, 1.796355291E9,"
+            + " 1.796355292E9, 1.796355293E9, 1.796355294E9, 1.796355295E9, 1.796355296E9,"
+            + " 1.796355297E9, 1.796355298E9, 1.796355299E9, 1.7963553E9, 1.796355301E9,"
+            + " 1.796355302E9, 1.796355303E9, 1.796355304E9, 1.796355305E9, 1.796355306E9,"
+            + " 1.796355307E9, 1.796355308E9, 1.796355309E9, 1.79635531E9, 1.796355311E9,"
+            + " 1.796355312E9, 1.796355313E9, 1.796355314E9, 1.796355315E9, 1.796355316E9,"
+            + " 1.796355317E9, 1.796355318E9, 1.796355319E9, 1.79635532E9, 1.796355321E9,"
+            + " 1.796355322E9, 1.796355323E9, 1.796355324E9, 1.796355325E9, 1.796355326E9,"
+            + " 1.796355327E9, 1.796355328E9, 1.796355329E9, 1.79635533E9, 1.796355331E9,"
+            + " 1.796355332E9, 1.796355333E9, 1.796355334E9, 1.796355335E9, 1.796355336E9,"
+            + " 1.796355337E9, 1.796355338E9, 1.796355339E9, 1.79635534E9, 1.796355341E9,"
+            + " 1.796355342E9, 1.796355343E9, 1.796355344E9, 1.796355345E9, 1.796355346E9,"
+            + " 1.796355347E9, 1.796355348E9, 1.796355349E9, 1.79635535E9, 1.796355351E9,"
+            + " 1.796355352E9, 1.796355353E9, 1.796355354E9, 1.796355355E9, 1.796355356E9,"
+            + " 1.796355357E9, 1.796355358E9, 1.796355359E9, 1.79635536E9, 1.796355361E9,"
+            + " 1.796355362E9, 1.796355363E9, 1.796355364E9, 1.796355365E9, 1.796355366E9,"
+            + " 1.796355367E9, 1.796355368E9, 1.796355369E9, 1.79635537E9, 1.796355371E9,"
+            + " 1.796355372E9, 1.796355373E9, 1.796355374E9, 1.796355375E9, 1.796355376E9,"
+            + " 1.796355377E9, 1.796355378E9, 1.796355379E9, 1.79635538E9, 1.796355381E9,"
+            + " 1.796355382E9, 1.796355383E9, 1.796355384E9, 1.796355385E9, 1.796355386E9,"
+            + " 1.796355387E9, 1.796355388E9, 1.796355389E9, 1.79635539E9, 1.796355391E9,"
+            + " 1.796355392E9, 1.796355393E9, 1.796355394E9, 1.796355395E9, 1.796355396E9,"
+            + " 1.796355397E9, 1.796355398E9, 1.796355399E9, 1.7963554E9, 1.796355401E9,"
+            + " 1.796355402E9, 1.796355403E9, 1.796355404E9, 1.796355405E9, 1.796355406E9,"
+            + " 1.796355407E9, 1.796355408E9, 1.796355409E9, 1.79635541E9, 1.796355411E9,"
+            + " 1.796355412E9, 1.796355413E9, 1.796355414E9, 1.796355415E9, 1.796355416E9,"
+            + " 1.796355417E9, 1.796355418E9, 1.796355419E9, 1.79635542E9, 1.796355421E9,"
+            + " 1.796355422E9, 1.796355423E9, 1.796355424E9, 1.796355425E9, 1.796355426E9,"
+            + " 1.796355427E9, 1.796355428E9, 1.796355429E9, 1.79635543E9, 1.796355431E9,"
+            + " 1.796355432E9, 1.796355433E9, 1.796355434E9, 1.796355435E9, 1.796355436E9,"
+            + " 1.796355437E9, 1.796355438E9, 1.796355439E9, 1.79635544E9, 1.796355441E9,"
+            + " 1.796355442E9, 1.796355443E9, 1.796355444E9, 1.796355445E9, 1.796355446E9,"
+            + " 1.796355447E9, 1.796355448E9, 1.796355449E9, 1.79635545E9, 1.796355451E9,"
+            + " 1.796355452E9, 1.796355453E9, 1.796355454E9, 1.796355455E9, 1.796355456E9,"
+            + " 1.796355457E9, 1.796355458E9, 1.796355459E9, 1.79635546E9, 1.796355461E9,"
+            + " 1.796355462E9, 1.796355463E9, 1.796355464E9, 1.796355465E9, 1.796355466E9,"
+            + " 1.796355467E9, 1.796355468E9, 1.796355469E9, 1.79635547E9, 1.796355471E9,"
+            + " 1.796355472E9, 1.796355473E9, 1.796355474E9, 1.796355475E9, 1.796355476E9,"
+            + " 1.796355477E9, 1.796355478E9, 1.796355479E9, 1.79635548E9, 1.796355481E9,"
+            + " 1.796355482E9, 1.796355483E9, 1.796355484E9, 1.796355485E9, 1.796355486E9,"
+            + " 1.796355487E9, 1.796355488E9, 1.796355489E9, 1.79635549E9, 1.796355491E9,"
+            + " 1.796355492E9, 1.796355493E9, 1.796355494E9, 1.796355495E9, 1.796355496E9,"
+            + " 1.796355497E9, 1.796355498E9, 1.796355499E9, 1.7963555E9, 1.796355501E9,"
+            + " 1.796355502E9, 1.796355503E9, 1.796355504E9, 1.796355505E9, 1.796355506E9,"
+            + " 1.796355507E9, 1.796355508E9, 1.796355509E9, 1.79635551E9, 1.796355511E9,"
+            + " 1.796355512E9, 1.796355513E9, 1.796355514E9, 1.796355515E9, 1.796355516E9,"
+            + " 1.796355517E9, 1.796355518E9, 1.796355519E9, 1.79635552E9, 1.796355521E9,"
+            + " 1.796355522E9, 1.796355523E9, 1.796355524E9, 1.796355525E9, 1.796355526E9,"
+            + " 1.796355527E9, 1.796355528E9, 1.796355529E9, 1.79635553E9, 1.796355531E9,"
+            + " 1.796355532E9, 1.796355533E9, 1.796355534E9, 1.796355535E9, 1.796355536E9,"
+            + " 1.796355537E9, 1.796355538E9, 1.796355539E9, 1.79635554E9, 1.796355541E9,"
+            + " 1.796355542E9, 1.796355543E9, 1.796355544E9, 1.796355545E9, 1.796355546E9,"
+            + " 1.796355547E9, 1.796355548E9, 1.796355549E9, 1.79635555E9, 1.796355551E9,"
+            + " 1.796355552E9, 1.796355553E9, 1.796355554E9, 1.796355555E9, 1.796355556E9,"
+            + " 1.796355557E9, 1.796355558E9, 1.796355559E9, 1.79635556E9, 1.796355561E9,"
+            + " 1.796355562E9, 1.796355563E9, 1.796355564E9, 1.796355565E9, 1.796355566E9,"
+            + " 1.796355567E9, 1.796355568E9, 1.796355569E9, 1.79635557E9, 1.796355571E9,"
+            + " 1.796355572E9, 1.796355573E9, 1.796355574E9, 1.796355575E9, 1.796355576E9,"
+            + " 1.796355577E9, 1.796355578E9, 1.796355579E9, 1.79635558E9, 1.796355581E9,"
+            + " 1.796355582E9, 1.796355583E9, 1.796355584E9, 1.796355585E9, 1.796355586E9,"
+            + " 1.796355587E9, 1.796355588E9, 1.796355589E9, 1.79635559E9, 1.796355591E9,"
+            + " 1.796355592E9, 1.796355593E9, 1.796355594E9, 1.796355595E9, 1.796355596E9,"
+            + " 1.796355597E9, 1.796355598E9, 1.796355599E9, 1.7963556E9, 1.796355601E9,"
+            + " 1.796355602E9, 1.796355603E9, 1.796355604E9, 1.796355605E9, 1.796355606E9,"
+            + " 1.796355607E9, 1.796355608E9, 1.796355609E9, 1.79635561E9, 1.796355611E9,"
+            + " 1.796355612E9, 1.796355613E9, 1.796355614E9, 1.796355615E9, 1.796355616E9,"
+            + " 1.796355617E9, 1.796355618E9, 1.796355619E9, 1.79635562E9, 1.796355621E9,"
+            + " 1.796355622E9, 1.796355623E9, 1.796355624E9, 1.796355625E9]");
+  }
+
+  @Test
+  public void testDesugaring() throws Exception {
+    runTestDesugaring();
+  }
+
+  @Test
+  public void testR8() throws Exception {
+    runTestR8();
+  }
+
+  // Debug stepping takes forever so don't test it (b/79671093).
+}
diff --git a/src/test/examples/regress_70703087/Test.java b/src/test/java/com/android/tools/r8/examples/regress_70703087/TestClass.java
similarity index 96%
rename from src/test/examples/regress_70703087/Test.java
rename to src/test/java/com/android/tools/r8/examples/regress_70703087/TestClass.java
index 4fb3f2d..c9a324e 100644
--- a/src/test/examples/regress_70703087/Test.java
+++ b/src/test/java/com/android/tools/r8/examples/regress_70703087/TestClass.java
@@ -1,7 +1,7 @@
 // Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-package regress_70703087;
+package com.android.tools.r8.examples.regress_70703087;
 
 /**
  * AOSP JFuzz Tester.
@@ -11,7 +11,7 @@
 
 import java.util.Arrays;
 
-public class Test {
+public class TestClass {
 
   private interface X {
     int x();
@@ -58,7 +58,7 @@
 
   private double[] mArray = new double[700];
 
-  private Test() {
+  private TestClass() {
     double a = 1796354926.0;
     for (int i0 = 0; i0 < 700; i0++) {
       mArray[i0] = a;
@@ -161,7 +161,7 @@
   }
 
   public static void main(String[] args) {
-    Test t = new Test();
+    TestClass t = new TestClass();
     float r = 1753285454.0f;
     try {
       r = t.testMethod();
diff --git a/src/test/java/com/android/tools/r8/examples/regress_70736958/Regress70736958TestRunner.java b/src/test/java/com/android/tools/r8/examples/regress_70736958/Regress70736958TestRunner.java
new file mode 100644
index 0000000..5f228ee
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/examples/regress_70736958/Regress70736958TestRunner.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.examples.regress_70736958;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.examples.ExamplesTestBase;
+import com.android.tools.r8.utils.StringUtils;
+import com.google.common.collect.ImmutableList;
+import java.util.List;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class Regress70736958TestRunner extends ExamplesTestBase {
+
+  @Parameterized.Parameters(name = "{0}")
+  public static TestParametersCollection data() {
+    return getTestParameters().withAllRuntimesAndApiLevels().enableApiLevelsForCf().build();
+  }
+
+  public Regress70736958TestRunner(TestParameters parameters) {
+    super(parameters);
+  }
+
+  @Override
+  public Class<?> getMainClass() {
+    return TestClass.class;
+  }
+
+  @Override
+  public List<Class<?>> getTestClasses() throws Exception {
+    return ImmutableList.of(
+        getMainClass(),
+        Class.forName(typeName(TestClass.class) + "$1"),
+        Class.forName(typeName(TestClass.class) + "$X"),
+        Class.forName(typeName(TestClass.class) + "$A"),
+        Class.forName(typeName(TestClass.class) + "$B"),
+        Class.forName(typeName(TestClass.class) + "$C"));
+  }
+
+  @Override
+  public String getExpected() {
+    return StringUtils.lines(
+        "r  = true",
+        "mZ = false",
+        "mI = 1",
+        "mJ = 936439722084176000",
+        "mF = 0.0",
+        "mD = 0.0",
+        "mArray = [1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9,"
+            + " 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9, 1.6101889E9]");
+  }
+
+  @Test
+  public void testDesugaring() throws Exception {
+    runTestDesugaring();
+  }
+
+  @Test
+  public void testR8() throws Exception {
+    runTestR8();
+  }
+
+  @Test
+  public void testDebug() throws Exception {
+    runTestDebugComparator();
+  }
+}
diff --git a/src/test/examples/regress_70736958/Test.java b/src/test/java/com/android/tools/r8/examples/regress_70736958/TestClass.java
similarity index 93%
rename from src/test/examples/regress_70736958/Test.java
rename to src/test/java/com/android/tools/r8/examples/regress_70736958/TestClass.java
index 3186043..1f2ae2e 100644
--- a/src/test/examples/regress_70736958/Test.java
+++ b/src/test/java/com/android/tools/r8/examples/regress_70736958/TestClass.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package regress_70736958;
+package com.android.tools.r8.examples.regress_70736958;
 
 /**
  * AOSP JFuzz Tester.
@@ -12,7 +12,7 @@
 
 import java.util.Arrays;
 
-public class Test {
+public class TestClass {
 
   private interface X {
     int x();
@@ -59,7 +59,7 @@
 
   private float[] mArray = new float[504];
 
-  private Test() {
+  private TestClass() {
     float a = 1610188871.0f;
     for (int i0 = 0; i0 < 504; i0++) {
       mArray[i0] = a;
@@ -74,7 +74,7 @@
     switch (360) {
       case 180: {
         mJ &= (mJ++);
-        mZ &= (this instanceof Test);
+        mZ &= (this instanceof TestClass);
         {
           boolean lZ0 = (((false & mZ) | true) & false);
           switch (96) {
@@ -91,7 +91,7 @@
                       } else {
                         lZ0 = (Double.isNaN(lD0));
                       }
-                      mZ = (this instanceof Test);
+                      mZ = (this instanceof TestClass);
                       mJ /= (mJ | 513583530L);
                     } catch (IllegalStateException ex1_0) {
                       switch (354) {
@@ -117,7 +117,7 @@
                         {
                           int i2 = -1;
                           while (++i2 < 168) {
-                            mZ ^= (this instanceof Test);
+                            mZ ^= (this instanceof TestClass);
                           }
                         }
                         nop();
@@ -165,7 +165,7 @@
   public static void nop() {}
 
   public static void main(String[] args) {
-    Test t = new Test();
+    TestClass t = new TestClass();
     boolean r = true;
     try {
       r = t.testMethod();