< prev index next >

test/hotspot/jtreg/compiler/c2/TestCastX2NotProcessedIGVN.java

Print this page

 59     }
 60 
 61     @Test
 62     @IR(failOn = IRNode.ADD_L, counts = {IRNode.ADD_P, "1"})
 63     public static byte test1(long base) {
 64         int offset = 0;
 65         do {
 66             offset++;
 67         } while (offset < 100);
 68         long longOffset = ((long) offset) * 2;
 69         return UNSAFE.getByte(null, base + longOffset);
 70     }
 71 
 72     @Run(test = "test1")
 73     public static void test1Runner() {
 74         test1(base);
 75     }
 76 
 77     @Test
 78     @IR(counts = {IRNode.LOAD_VECTOR_I, "> 1"},
 79         applyIfOr = {"UseCompactObjectHeaders", "false", "AlignVector", "false"},
 80         applyIfPlatformOr = {"x64", "true", "aarch64", "true"})
 81     public static int test2(int stop, int[] array) {
 82         int v = 0;
 83         stop = Math.min(stop, Integer.MAX_VALUE / 4);
 84         for (int i = 0; i < stop; i++) {
 85             long offset = ((long)i) * 4;
 86             array[i] = UNSAFE.getInt(null, offset + base);
 87             // With AlignVector, we need 8-byte alignment of vector loads/stores.
 88             // UseCompactObjectHeaders=false                  UseCompactObjectHeaders=true
 89             // I_adr = base + 16 + 4*i  ->  i % 2 = 0         B_adr = base + 12 + 4*i  ->  i % 2 = 1
 90             // N_adr = base      + 4*i  ->  i % 2 = 0         N_adr = base      + 4*i  ->  i % 2 = 0
 91             // -> vectorize                                   -> no vectorization
 92         }
 93         return v;
 94     }
 95 
 96     @Run(test = "test2")
 97     public static void test2Runner() {
 98         test2(size, new int[size]);
 99     }
100 }

 59     }
 60 
 61     @Test
 62     @IR(failOn = IRNode.ADD_L, counts = {IRNode.ADD_P, "1"})
 63     public static byte test1(long base) {
 64         int offset = 0;
 65         do {
 66             offset++;
 67         } while (offset < 100);
 68         long longOffset = ((long) offset) * 2;
 69         return UNSAFE.getByte(null, base + longOffset);
 70     }
 71 
 72     @Run(test = "test1")
 73     public static void test1Runner() {
 74         test1(base);
 75     }
 76 
 77     @Test
 78     @IR(counts = {IRNode.LOAD_VECTOR_I, "> 1"},

 79         applyIfPlatformOr = {"x64", "true", "aarch64", "true"})
 80     public static int test2(int stop, int[] array) {
 81         int v = 0;
 82         stop = Math.min(stop, Integer.MAX_VALUE / 4);
 83         for (int i = 0; i < stop; i++) {
 84             long offset = ((long)i) * 4;
 85             array[i] = UNSAFE.getInt(null, offset + base);





 86         }
 87         return v;
 88     }
 89 
 90     @Run(test = "test2")
 91     public static void test2Runner() {
 92         test2(size, new int[size]);
 93     }
 94 }
< prev index next >