Move a 530-checker-lse test from java to smali

The test expectations was updated in
https://android-review.googlesource.com/c/platform/art/+/707705 due
to D8 also performing the same optimization.

Moved the test to smali to be independent of the dexer output, and reverted
the test expectations to test this optimization on Art again.

Test: art/test/testrunner/testrunner.py -b --host -t 530-checker-lse
Change-Id: I8c8a37ea08adb44ea9e00284cce43d93a768e7bf
diff --git a/test/530-checker-lse/smali/Main.smali b/test/530-checker-lse/smali/Main.smali
index 2678017..4c18266 100644
--- a/test/530-checker-lse/smali/Main.smali
+++ b/test/530-checker-lse/smali/Main.smali
@@ -124,6 +124,38 @@
     goto :goto_5
 .end method
 
+## CHECK-START: int Main2.test10(TestClass) load_store_elimination (before)
+## CHECK: StaticFieldGet
+## CHECK: InstanceFieldGet
+## CHECK: StaticFieldSet
+## CHECK: InstanceFieldGet
+
+## CHECK-START: int Main2.test10(TestClass) load_store_elimination (after)
+## CHECK: StaticFieldGet
+## CHECK: InstanceFieldGet
+## CHECK: StaticFieldSet
+## CHECK-NOT: NullCheck
+## CHECK-NOT: InstanceFieldGet
+
+# Original java source:
+#
+#  // Static fields shouldn't alias with instance fields.
+#  static int test10(TestClass obj) {
+#    TestClass.si += obj.i;
+#    return obj.i;
+#  }
+
+.method public static test10(LTestClass;)I
+    .registers 3
+    .param p0, "obj"    # LTestClass;
+    sget                v0, LTestClass;->si:I
+    iget                v1, p0, LTestClass;->i:I
+    add-int/2addr       v0, v1
+    sput                v0, LTestClass;->si:I
+    iget                p0, p0, LTestClass;->i:I
+    return              p0
+.end method
+
 ## CHECK-START: int Main2.test23(boolean) load_store_elimination (before)
 ## CHECK: NewInstance
 ## CHECK: InstanceFieldSet
diff --git a/test/530-checker-lse/src/Main.java b/test/530-checker-lse/src/Main.java
index 541ae8b..22bff0a 100644
--- a/test/530-checker-lse/src/Main.java
+++ b/test/530-checker-lse/src/Main.java
@@ -251,24 +251,6 @@
     return obj2.i;
   }
 
-  /// CHECK-START: int Main.test10(TestClass) load_store_elimination (before)
-  /// CHECK: StaticFieldGet
-  /// CHECK: InstanceFieldGet
-  /// CHECK: StaticFieldSet
-
-  /// CHECK-START: int Main.test10(TestClass) load_store_elimination (after)
-  /// CHECK: StaticFieldGet
-  /// CHECK: InstanceFieldGet
-  /// CHECK: StaticFieldSet
-  /// CHECK-NOT: NullCheck
-  /// CHECK-NOT: InstanceFieldGet
-
-  // Static fields shouldn't alias with instance fields.
-  static int test10(TestClass obj) {
-    TestClass.si += obj.i;
-    return obj.i;
-  }
-
   /// CHECK-START: int Main.test11(TestClass) load_store_elimination (before)
   /// CHECK: InstanceFieldSet
   /// CHECK: InstanceFieldGet
@@ -1176,6 +1158,7 @@
     Class main2 = Class.forName("Main2");
     Method test4 = main2.getMethod("test4", TestClass.class, boolean.class);
     Method test5 = main2.getMethod("test5", TestClass.class, boolean.class);
+    Method test10 = main2.getMethod("test10", TestClass.class);
     Method test23 = main2.getMethod("test23", boolean.class);
     Method test24 = main2.getMethod("test24");
 
@@ -1198,7 +1181,7 @@
     obj2 = new TestClass();
     obj1.next = obj2;
     assertIntEquals(test9(new TestClass()), 1);
-    assertIntEquals(test10(new TestClass(3, 4)), 3);
+    assertIntEquals((int)test10.invoke(null, new TestClass(3, 4)), 3);
     assertIntEquals(TestClass.si, 3);
     assertIntEquals(test11(new TestClass()), 10);
     assertIntEquals(test12(new TestClass(), new TestClass()), 10);