< prev index next >

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

Print this page




 488             Asserts.assertEQ(va[i].x, rI + 1);
 489         }
 490     }
 491 
 492     // clone() as stub call
 493     @Test
 494     public MyValue1?[] test18(MyValue1?[] va) {
 495         return va.clone();
 496     }
 497 
 498     @DontCompile
 499     public void test18_verifier(boolean warmup) {
 500         int len = Math.abs(rI) % 10;
 501         MyValue1?[] va1 = new MyValue1?[len];
 502         MyValue1[]  va2 = new MyValue1[len];
 503         for (int i = 1; i < len; ++i) {
 504             va1[i] = testValue1;
 505             va2[i] = testValue1;
 506         }
 507         MyValue1?[] result1 = test18(va1);
 508         MyValue1?[] result2 = test18(va2);
 509         if (len > 0) {
 510             Asserts.assertEQ(result1[0], null);
 511             Asserts.assertEQ(result2[0].hash(), va2[0].hash());
 512         }
 513         for (int i = 1; i < len; ++i) {
 514             Asserts.assertEQ(result1[i].hash(), va1[i].hash());







 515             Asserts.assertEQ(result2[i].hash(), va2[i].hash());
 516         }
 517     }







 518 
 519     // clone() as series of loads/stores
 520     static MyValue1?[] test19_orig = null;
 521 
 522     @Test
 523     public MyValue1?[] test19() {
 524         MyValue1?[] va = new MyValue1?[8];
 525         for (int i = 1; i < va.length; ++i) {
 526             va[i] = MyValue1.createWithFieldsInline(rI, rL);
 527         }
 528         test19_orig = va;
 529 
 530         return va.clone();
 531     }
 532 
 533     @DontCompile
 534     public void test19_verifier(boolean warmup) {
 535         MyValue1?[] result = test19();
 536         Asserts.assertEQ(result[0], null);
 537         for (int i = 1; i < test19_orig.length; ++i) {




 488             Asserts.assertEQ(va[i].x, rI + 1);
 489         }
 490     }
 491 
 492     // clone() as stub call
 493     @Test
 494     public MyValue1?[] test18(MyValue1?[] va) {
 495         return va.clone();
 496     }
 497 
 498     @DontCompile
 499     public void test18_verifier(boolean warmup) {
 500         int len = Math.abs(rI) % 10;
 501         MyValue1?[] va1 = new MyValue1?[len];
 502         MyValue1[]  va2 = new MyValue1[len];
 503         for (int i = 1; i < len; ++i) {
 504             va1[i] = testValue1;
 505             va2[i] = testValue1;
 506         }
 507         MyValue1?[] result1 = test18(va1);

 508         if (len > 0) {
 509             Asserts.assertEQ(result1[0], null);

 510         }
 511         for (int i = 1; i < len; ++i) {
 512             Asserts.assertEQ(result1[i].hash(), va1[i].hash());
 513         }
 514          // make sure we do deopt: GraphKit::new_array assumes an
 515          // array of references
 516         for (int j = 0; j < 10; j++) {
 517             MyValue1?[] result2 = test18(va2);
 518 
 519             for (int i = 0; i < len; ++i) {
 520                 Asserts.assertEQ(result2[i].hash(), va2[i].hash());
 521             }
 522         }
 523         if (compile_and_run_again_if_deoptimized(warmup, "TestNullableArrays::test18")) {
 524             MyValue1?[] result2 = test18(va2);
 525             for (int i = 0; i < len; ++i) {
 526                 Asserts.assertEQ(result2[i].hash(), va2[i].hash());
 527             }
 528         }
 529     }
 530 
 531     // clone() as series of loads/stores
 532     static MyValue1?[] test19_orig = null;
 533 
 534     @Test
 535     public MyValue1?[] test19() {
 536         MyValue1?[] va = new MyValue1?[8];
 537         for (int i = 1; i < va.length; ++i) {
 538             va[i] = MyValue1.createWithFieldsInline(rI, rL);
 539         }
 540         test19_orig = va;
 541 
 542         return va.clone();
 543     }
 544 
 545     @DontCompile
 546     public void test19_verifier(boolean warmup) {
 547         MyValue1?[] result = test19();
 548         Asserts.assertEQ(result[0], null);
 549         for (int i = 1; i < test19_orig.length; ++i) {


< prev index next >