Fix for issue 5884080: Loop formation regression

This CL is the art version of
  https://android-git.corp.google.com/g/#/c/159057/1
The basic problem had been partially fixed in the existing art code,
but this CL is a more comprehensive fix.

Change-Id: I59336ed4265a3535d6da7d51c9243430c68536bd
diff --git a/test/083-jit-regressions/src/Main.java b/test/083-jit-regressions/src/Main.java
index 1f1dee3..3b596db 100644
--- a/test/083-jit-regressions/src/Main.java
+++ b/test/083-jit-regressions/src/Main.java
@@ -24,6 +24,7 @@
         b2296099Test();
         b2302318Test();
         b2487514Test();
+        b5884080Test();
     }
 
     static void b2296099Test() throws Exception {
@@ -105,6 +106,26 @@
                                " (expecting 1000)");
         }
     }
+
+    static void b5884080Test() {
+        int vA = 1;
+
+        int l = 0;
+        do
+        {
+            int k = 0;
+            do
+                vA += 1;
+            while(++k < 100);
+        } while(++l < 1000);
+        if (vA == 100001) {
+            System.out.println("b5884080 passes");
+        }
+        else {
+            System.out.println("b5884080 fails: vA is " + vA +
+                               " (expecting 100001)");
+        }
+    }
 }
 
 class SpinThread extends Thread {