Add regression test for move scheduling issue

Bug: b/379007412
Change-Id: If6f3518b723853b10ab96c1bf5e785124e6369e8
diff --git a/src/test/java/com/android/tools/r8/ir/regalloc/RegisterMoveSchedulerTest.java b/src/test/java/com/android/tools/r8/ir/regalloc/RegisterMoveSchedulerTest.java
index 8c95f7e..83d2cef 100644
--- a/src/test/java/com/android/tools/r8/ir/regalloc/RegisterMoveSchedulerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/regalloc/RegisterMoveSchedulerTest.java
@@ -572,6 +572,29 @@
     assertEquals(2, scheduler.getUsedTempRegisters());
   }
 
+  @Test
+  public void regressionTestBug379007412() {
+    CollectMovesIterator moves = new CollectMovesIterator();
+    int temp = 42;
+    RegisterMoveScheduler scheduler = new RegisterMoveScheduler(moves, temp);
+    scheduler.addMove(new RegisterMove(2, 8, TypeElement.getInt()));
+    scheduler.addMove(new RegisterMove(21, 13, TypeElement.getInt()));
+    scheduler.addMove(new RegisterMove(8, 15, TypeElement.getInt()));
+    scheduler.addMove(new RegisterMove(3, 16, TypeElement.getInt()));
+    scheduler.addMove(new RegisterMove(13, 21, TypeElement.getLong()));
+    scheduler.addMove(new RegisterMove(15, 25, TypeElement.getLong()));
+    scheduler.schedule();
+    assertEquals(7, moves.size());
+    assertEquals("2 <- 8", toString(moves.get(0)));
+    assertEquals("8 <- 15", toString(moves.get(1)));
+    assertEquals("3 <- 16", toString(moves.get(2)));
+    assertEquals("15 <- 25", toString(moves.get(3)));
+    assertEquals("42 <- 21", toString(moves.get(4)));
+    assertEquals("21 <- 13", toString(moves.get(5)));
+    assertEquals("13 <- 42", toString(moves.get(6)));
+    assertEquals(2, scheduler.getUsedTempRegisters());
+  }
+
   // Debugging aid.
   private void printMoves(List<Instruction> moves) {
     System.out.println("Generated moves:");