< prev index next >

test/hotspot/jtreg/compiler/valhalla/valuetypes/TestNullableArrays.java

Print this page

        

@@ -503,20 +503,32 @@
         for (int i = 1; i < len; ++i) {
             va1[i] = testValue1;
             va2[i] = testValue1;
         }
         MyValue1?[] result1 = test18(va1);
-        MyValue1?[] result2 = test18(va2);
         if (len > 0) {
             Asserts.assertEQ(result1[0], null);
-            Asserts.assertEQ(result2[0].hash(), va2[0].hash());
         }
         for (int i = 1; i < len; ++i) {
             Asserts.assertEQ(result1[i].hash(), va1[i].hash());
+        }
+         // make sure we do deopt: GraphKit::new_array assumes an
+         // array of references
+        for (int j = 0; j < 10; j++) {
+            MyValue1?[] result2 = test18(va2);
+
+            for (int i = 0; i < len; ++i) {
             Asserts.assertEQ(result2[i].hash(), va2[i].hash());
         }
     }
+        if (compile_and_run_again_if_deoptimized(warmup, "TestNullableArrays::test18")) {
+            MyValue1?[] result2 = test18(va2);
+            for (int i = 0; i < len; ++i) {
+                Asserts.assertEQ(result2[i].hash(), va2[i].hash());
+            }
+        }
+    }
 
     // clone() as series of loads/stores
     static MyValue1?[] test19_orig = null;
 
     @Test
< prev index next >