< prev index next >

test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationNotRun.java

Print this page

46                                    "-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders",
47                                    "-XX:-AlignVector");
48         TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
49                                    "-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders",
50                                    "-XX:+AlignVector");
51         TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
52                                    "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders",
53                                    "-XX:-AlignVector");
54         TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
55                                    "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders",
56                                    "-XX:+AlignVector");
57     }
58 
59     static int size = 1024;
60     static int sizeBytes = 8 * size;
61     static byte[] byteArray = new byte[sizeBytes];
62     static long[] longArray = new long[size];
63 
64     @Test
65     @IR(counts = { IRNode.LOAD_VECTOR_L, ">=1", IRNode.STORE_VECTOR, ">=1" },
66         applyIfOr = { "UseCompactObjectHeaders", "false", "AlignVector", "false" },
67         applyIfPlatform = {"64-bit", "true"},
68         applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
69     public static void test(byte[] dest, long[] src) {
70         for (int i = 0; i < src.length; i++) {
71             if ((i < 0) || (8 > sizeBytes - i)) {
72                 throw new IndexOutOfBoundsException();
73             }
74             UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + i * 8, src[i]);
75             // For UseCompactObjectHeaders and AlignVector, we must 8-byte align all vector loads/stores.
76             // But the long-stores to the byte-array are never aligned:
77             // adr = base + UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8*iter
78             //              = 16 (or 12 if UseCompactObjectHeaders=true)
79         }
80     }
81 
82     @Run(test = "test")
83     public static void test_runner() {
84         test(byteArray, longArray);
85     }
86 }

46                                    "-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders",
47                                    "-XX:-AlignVector");
48         TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
49                                    "-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders",
50                                    "-XX:+AlignVector");
51         TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
52                                    "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders",
53                                    "-XX:-AlignVector");
54         TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
55                                    "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders",
56                                    "-XX:+AlignVector");
57     }
58 
59     static int size = 1024;
60     static int sizeBytes = 8 * size;
61     static byte[] byteArray = new byte[sizeBytes];
62     static long[] longArray = new long[size];
63 
64     @Test
65     @IR(counts = { IRNode.LOAD_VECTOR_L, ">=1", IRNode.STORE_VECTOR, ">=1" },

66         applyIfPlatform = {"64-bit", "true"},
67         applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
68     public static void test(byte[] dest, long[] src) {
69         for (int i = 0; i < src.length; i++) {
70             if ((i < 0) || (8 > sizeBytes - i)) {
71                 throw new IndexOutOfBoundsException();
72             }
73             UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + i * 8, src[i]);




74         }
75     }
76 
77     @Run(test = "test")
78     public static void test_runner() {
79         test(byteArray, longArray);
80     }
81 }
< prev index next >