diff --git a/test/564-checker-inline-loop/src/Main.java b/test/564-checker-inline-loop/src/Main.java
index 6929913..41eca35 100644
--- a/test/564-checker-inline-loop/src/Main.java
+++ b/test/564-checker-inline-loop/src/Main.java
@@ -21,9 +21,6 @@
   /// CHECK-DAG:                      Return [<<Invoke>>]
 
   /// CHECK-START: int Main.inlineLoop() inliner (after)
-  /// CHECK-NOT:                      InvokeStaticOrDirect
-
-  /// CHECK-START: int Main.inlineLoop() inliner (after)
   /// CHECK-DAG:     <<Constant:i\d+>>   IntConstant 42
   /// CHECK-DAG:                         Return [<<Constant>>]
 
@@ -31,31 +28,31 @@
   /// CHECK:                         Goto loop:{{B\d+}}
 
   public static int inlineLoop() {
-    return loopMethod();
+    return $inline$loopMethod();
   }
 
   /// CHECK-START: void Main.inlineWithinLoop() inliner (before)
   /// CHECK:      InvokeStaticOrDirect
 
-  /// CHECK-START: void Main.inlineWithinLoop() inliner (after)
-  /// CHECK-NOT:  InvokeStaticOrDirect
-
   /// CHECK-START: void Main.inlineWithinLoop() licm (after)
   /// CHECK-DAG:  Goto loop:<<OuterLoop:B\d+>> outer_loop:none
   /// CHECK-DAG:  Goto outer_loop:<<OuterLoop>>
 
   public static void inlineWithinLoop() {
     while (doLoop) {
-      loopMethod();
+      $inline$loopMethod();
     }
   }
 
-  public static int loopMethod() {
-    while (doLoop) {}
+  public static int $inline$loopMethod() {
+    // We use `otherDoLoop` here so we don't propagate the knowledge that `doLoop` is true when
+    // inlining from `inlineWithinLoop`.
+    while (otherDoLoop) {}
     return 42;
   }
 
   public static boolean doLoop = false;
+  public static boolean otherDoLoop = false;
 
   public static void main(String[] args) {
     inlineLoop();
