8333729: C2 SuperWord: remove some @requires usages in test/hotspot/jtreg/compiler/loopopts/superword
Reviewed-by: chagedorn, kvn
This commit is contained in:
parent
29b6392838
commit
7b38bfea33
@ -24,12 +24,11 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @bug 8238438
|
* @bug 8238438
|
||||||
* @summary Tests to select the memory state of the last load in a load pack in SuperWord::co_locate_pack.
|
* @summary Tests to select the memory state of the last load in a load pack in SuperWord::co_locate_pack.
|
||||||
*
|
*
|
||||||
* @run main/othervm -Xbatch -XX:CompileCommand=compileonly,compiler.loopopts.superword.CoLocatePackMemoryState::test
|
* @run main/othervm -Xbatch -XX:CompileCommand=compileonly,compiler.loopopts.superword.CoLocatePackMemoryState::test
|
||||||
* -XX:LoopMaxUnroll=16 compiler.loopopts.superword.CoLocatePackMemoryState
|
* -XX:+IgnoreUnrecognizedVMOptions -XX:LoopMaxUnroll=16 compiler.loopopts.superword.CoLocatePackMemoryState
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package compiler.loopopts.superword;
|
package compiler.loopopts.superword;
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8240248
|
* @bug 8240248
|
||||||
* @summary Add C2 x86 Superword support for scalar logical reduction optimizations : long test
|
* @summary Add C2 x86 Superword support for scalar logical reduction optimizations : long test
|
||||||
* @requires vm.bits == "64"
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.RedTest_long
|
* @run driver compiler.loopopts.superword.RedTest_long
|
||||||
*/
|
*/
|
||||||
@ -137,6 +136,7 @@ public class RedTest_long {
|
|||||||
failOn = {IRNode.ADD_REDUCTION_VL})
|
failOn = {IRNode.ADD_REDUCTION_VL})
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.ADD_REDUCTION_VL, ">= 1", IRNode.ADD_REDUCTION_VL, "<= 2"}) // one for main-loop, one for vector-post-loop
|
counts = {IRNode.ADD_REDUCTION_VL, ">= 1", IRNode.ADD_REDUCTION_VL, "<= 2"}) // one for main-loop, one for vector-post-loop
|
||||||
public static long sumReductionImplement(
|
public static long sumReductionImplement(
|
||||||
long[] a,
|
long[] a,
|
||||||
@ -154,6 +154,7 @@ public class RedTest_long {
|
|||||||
failOn = {IRNode.OR_REDUCTION_V})
|
failOn = {IRNode.OR_REDUCTION_V})
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.OR_REDUCTION_V, ">= 1", IRNode.OR_REDUCTION_V, "<= 2"}) // one for main-loop, one for vector-post-loop
|
counts = {IRNode.OR_REDUCTION_V, ">= 1", IRNode.OR_REDUCTION_V, "<= 2"}) // one for main-loop, one for vector-post-loop
|
||||||
public static long orReductionImplement(
|
public static long orReductionImplement(
|
||||||
long[] a,
|
long[] a,
|
||||||
@ -171,6 +172,7 @@ public class RedTest_long {
|
|||||||
failOn = {IRNode.AND_REDUCTION_V})
|
failOn = {IRNode.AND_REDUCTION_V})
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.AND_REDUCTION_V, ">= 1", IRNode.AND_REDUCTION_V, "<= 2"}) // one for main-loop, one for vector-post-loop
|
counts = {IRNode.AND_REDUCTION_V, ">= 1", IRNode.AND_REDUCTION_V, "<= 2"}) // one for main-loop, one for vector-post-loop
|
||||||
public static long andReductionImplement(
|
public static long andReductionImplement(
|
||||||
long[] a,
|
long[] a,
|
||||||
@ -188,6 +190,7 @@ public class RedTest_long {
|
|||||||
failOn = {IRNode.XOR_REDUCTION_V})
|
failOn = {IRNode.XOR_REDUCTION_V})
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.XOR_REDUCTION_V, ">= 1", IRNode.XOR_REDUCTION_V, "<= 2"}) // one for main-loop, one for vector-post-loop
|
counts = {IRNode.XOR_REDUCTION_V, ">= 1", IRNode.XOR_REDUCTION_V, "<= 2"}) // one for main-loop, one for vector-post-loop
|
||||||
public static long xorReductionImplement(
|
public static long xorReductionImplement(
|
||||||
long[] a,
|
long[] a,
|
||||||
@ -205,6 +208,7 @@ public class RedTest_long {
|
|||||||
failOn = {IRNode.MUL_REDUCTION_VL})
|
failOn = {IRNode.MUL_REDUCTION_VL})
|
||||||
@IR(applyIfCPUFeature = {"avx512dq", "true"},
|
@IR(applyIfCPUFeature = {"avx512dq", "true"},
|
||||||
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
applyIfAnd = {"SuperWordReductions", "true", "LoopMaxUnroll", ">= 8"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.MUL_REDUCTION_VL, ">= 1", IRNode.MUL_REDUCTION_VL, "<= 2"}) // one for main-loop, one for vector-post-loop
|
counts = {IRNode.MUL_REDUCTION_VL, ">= 1", IRNode.MUL_REDUCTION_VL, "<= 2"}) // one for main-loop, one for vector-post-loop
|
||||||
public static long mulReductionImplement(
|
public static long mulReductionImplement(
|
||||||
long[] a,
|
long[] a,
|
||||||
|
@ -25,11 +25,10 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8074981 8302652
|
* @bug 8074981 8302652
|
||||||
* @summary Test SuperWord Reduction Perf.
|
* @summary Test SuperWord Reduction Perf.
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @requires vm.simpleArch == "x86" | vm.simpleArch == "x64" | vm.simpleArch == "aarch64" | vm.simpleArch == "riscv64"
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run main/othervm -Xbatch -XX:LoopUnrollLimit=250
|
* @run main/othervm -Xbatch
|
||||||
* -XX:CompileCommand=exclude,compiler.loopopts.superword.ReductionPerf::main
|
* -XX:CompileCommand=exclude,compiler.loopopts.superword.ReductionPerf::main
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions -XX:LoopUnrollLimit=250
|
||||||
* compiler.loopopts.superword.ReductionPerf
|
* compiler.loopopts.superword.ReductionPerf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -39,7 +39,6 @@ import java.nio.ByteOrder;
|
|||||||
* @summary Test AlignVector with various loop init, stride, scale, invar, etc.
|
* @summary Test AlignVector with various loop init, stride, scale, invar, etc.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @run driver compiler.loopopts.superword.TestAlignVector NoAlignVector
|
* @run driver compiler.loopopts.superword.TestAlignVector NoAlignVector
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -49,7 +48,6 @@ import java.nio.ByteOrder;
|
|||||||
* @summary Test AlignVector with various loop init, stride, scale, invar, etc.
|
* @summary Test AlignVector with various loop init, stride, scale, invar, etc.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @run driver compiler.loopopts.superword.TestAlignVector AlignVector
|
* @run driver compiler.loopopts.superword.TestAlignVector AlignVector
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -59,7 +57,6 @@ import java.nio.ByteOrder;
|
|||||||
* @summary Test AlignVector with various loop init, stride, scale, invar, etc.
|
* @summary Test AlignVector with various loop init, stride, scale, invar, etc.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @run driver compiler.loopopts.superword.TestAlignVector VerifyAlignVector
|
* @run driver compiler.loopopts.superword.TestAlignVector VerifyAlignVector
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -96,7 +93,7 @@ public class TestAlignVector {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
TestFramework framework = new TestFramework(TestAlignVector.class);
|
TestFramework framework = new TestFramework(TestAlignVector.class);
|
||||||
framework.addFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
|
framework.addFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
|
||||||
"-XX:LoopUnrollLimit=250");
|
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=250");
|
||||||
|
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "NoAlignVector" -> { framework.addFlags("-XX:-AlignVector"); }
|
case "NoAlignVector" -> { framework.addFlags("-XX:-AlignVector"); }
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Do not force alignment.
|
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Do not force alignment.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @key randomness
|
* @key randomness
|
||||||
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
||||||
* -XX:LoopUnrollLimit=250
|
* -XX:LoopUnrollLimit=250
|
||||||
@ -41,7 +40,6 @@
|
|||||||
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Verify AlignVector.
|
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Verify AlignVector.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @key randomness
|
* @key randomness
|
||||||
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
||||||
* -XX:+AlignVector -XX:+VerifyAlignVector
|
* -XX:+AlignVector -XX:+VerifyAlignVector
|
||||||
@ -56,8 +54,6 @@
|
|||||||
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Verify AlignVector.
|
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Verify AlignVector.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @requires vm.bits == 64
|
|
||||||
* @key randomness
|
* @key randomness
|
||||||
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
||||||
* -XX:+AlignVector -XX:+VerifyAlignVector
|
* -XX:+AlignVector -XX:+VerifyAlignVector
|
||||||
@ -73,7 +69,6 @@
|
|||||||
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Verify AlignVector.
|
* @summary Fuzzing loops with different (random) init, limit, stride, scale etc. Verify AlignVector.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @key randomness
|
* @key randomness
|
||||||
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions
|
||||||
* -XX:+AlignVector -XX:+VerifyAlignVector
|
* -XX:+AlignVector -XX:+VerifyAlignVector
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
* @bug 8298935
|
* @bug 8298935
|
||||||
* @summary Writing forward on array creates cyclic dependency
|
* @summary Writing forward on array creates cyclic dependency
|
||||||
* which leads to wrong result, when ignored.
|
* which leads to wrong result, when ignored.
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver TestCyclicDependency
|
* @run driver TestCyclicDependency
|
||||||
*/
|
*/
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
* and various MaxVectorSize values, and +- AlignVector.
|
* and various MaxVectorSize values, and +- AlignVector.
|
||||||
*
|
*
|
||||||
* Note: this test is auto-generated. Please modify / generate with script:
|
* Note: this test is auto-generated. Please modify / generate with script:
|
||||||
* https://bugs.openjdk.org/browse/JDK-8310190
|
* https://bugs.openjdk.org/browse/JDK-8333729
|
||||||
*
|
*
|
||||||
* Types: int, long, short, char, byte, float, double
|
* Types: int, long, short, char, byte, float, double
|
||||||
* Offsets: 0, -1, 1, -2, 2, -3, 3, -4, 4, -7, 7, -8, 8, -14, 14, -16, 16, -18, 18, -20, 20, -31, 31, -32, 32, -63, 63, -64, 64, -65, 65, -128, 128, -129, 129, -192, 192
|
* Offsets: 0, -1, 1, -2, 2, -3, 3, -4, 4, -7, 7, -8, 8, -14, 14, -16, 16, -18, 18, -20, 20, -31, 31, -32, 32, -63, 63, -64, 64, -65, 65, -128, 128, -129, 129, -192, 192
|
||||||
@ -113,7 +113,6 @@
|
|||||||
* @test id=vanilla-A
|
* @test id=vanilla-A
|
||||||
* @bug 8298935 8308606 8310308 8312570 8310190
|
* @bug 8298935 8308606 8310308 8312570 8310190
|
||||||
* @summary Test SuperWord: vector size, offsets, dependencies, alignment.
|
* @summary Test SuperWord: vector size, offsets, dependencies, alignment.
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestDependencyOffsets vanilla-A
|
* @run driver compiler.loopopts.superword.TestDependencyOffsets vanilla-A
|
||||||
*/
|
*/
|
||||||
@ -122,7 +121,6 @@
|
|||||||
* @test id=vanilla-U
|
* @test id=vanilla-U
|
||||||
* @bug 8298935 8308606 8310308 8312570 8310190
|
* @bug 8298935 8308606 8310308 8312570 8310190
|
||||||
* @summary Test SuperWord: vector size, offsets, dependencies, alignment.
|
* @summary Test SuperWord: vector size, offsets, dependencies, alignment.
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestDependencyOffsets vanilla-U
|
* @run driver compiler.loopopts.superword.TestDependencyOffsets vanilla-U
|
||||||
*/
|
*/
|
||||||
@ -1285,7 +1283,7 @@ public class TestDependencyOffsets {
|
|||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::init",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::init",
|
||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::test*",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::test*",
|
||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::verify",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::verify",
|
||||||
"-XX:LoopUnrollLimit=250");
|
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=250");
|
||||||
|
|
||||||
if (args.length != 1) {
|
if (args.length != 1) {
|
||||||
throw new RuntimeException("Test requires exactly one argument!");
|
throw new RuntimeException("Test requires exactly one argument!");
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
* @summary Test reduction vectorizations that are enabled by performing SLP
|
* @summary Test reduction vectorizations that are enabled by performing SLP
|
||||||
* reduction analysis on unrolled loops.
|
* reduction analysis on unrolled loops.
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @requires vm.bits == 64
|
|
||||||
* @run driver compiler.loopopts.superword.TestGeneralizedReductions
|
* @run driver compiler.loopopts.superword.TestGeneralizedReductions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ public class TestGeneralizedReductions {
|
|||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
// Fix maximum number of unrolls for test stability.
|
// Fix maximum number of unrolls for test stability.
|
||||||
TestFramework.runWithFlags("-XX:LoopMaxUnroll=16");
|
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopMaxUnroll=16");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Run(test = {"testReductionOnGlobalAccumulator",
|
@Run(test = {"testReductionOnGlobalAccumulator",
|
||||||
@ -82,7 +81,9 @@ public class TestGeneralizedReductions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"}, applyIf = {"SuperWordReductions", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
|
applyIf = {"SuperWordReductions", "true"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.ADD_REDUCTION_VI, ">= 1"})
|
counts = {IRNode.ADD_REDUCTION_VI, ">= 1"})
|
||||||
private static long testReductionOnGlobalAccumulator(long[] array) {
|
private static long testReductionOnGlobalAccumulator(long[] array) {
|
||||||
acc = 0;
|
acc = 0;
|
||||||
@ -93,7 +94,9 @@ public class TestGeneralizedReductions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"}, applyIf = {"SuperWordReductions", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
|
applyIf = {"SuperWordReductions", "true"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.ADD_REDUCTION_VI, ">= 1"})
|
counts = {IRNode.ADD_REDUCTION_VI, ">= 1"})
|
||||||
private static long testReductionOnPartiallyUnrolledLoop(long[] array) {
|
private static long testReductionOnPartiallyUnrolledLoop(long[] array) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
@ -105,7 +108,9 @@ public class TestGeneralizedReductions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"}, applyIf = {"SuperWordReductions", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
|
applyIf = {"SuperWordReductions", "true"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.ADD_REDUCTION_VI, ">= 1"})
|
counts = {IRNode.ADD_REDUCTION_VI, ">= 1"})
|
||||||
private static long testReductionOnLargePartiallyUnrolledLoop(long[] array) {
|
private static long testReductionOnLargePartiallyUnrolledLoop(long[] array) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
@ -128,7 +133,9 @@ public class TestGeneralizedReductions {
|
|||||||
// If this limitation is overcome in the future, the test case should be
|
// If this limitation is overcome in the future, the test case should be
|
||||||
// turned into a positive one.
|
// turned into a positive one.
|
||||||
@Test
|
@Test
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"}, applyIf = {"SuperWordReductions", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
|
applyIf = {"SuperWordReductions", "true"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
failOn = {IRNode.ADD_REDUCTION_VI})
|
failOn = {IRNode.ADD_REDUCTION_VI})
|
||||||
private static long testReductionOnPartiallyUnrolledLoopWithSwappedInputs(long[] array) {
|
private static long testReductionOnPartiallyUnrolledLoopWithSwappedInputs(long[] array) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
@ -142,6 +149,7 @@ public class TestGeneralizedReductions {
|
|||||||
@Test
|
@Test
|
||||||
@IR(applyIfCPUFeature = {"avx2", "true"},
|
@IR(applyIfCPUFeature = {"avx2", "true"},
|
||||||
applyIfAnd = {"SuperWordReductions", "true","UsePopCountInstruction", "true"},
|
applyIfAnd = {"SuperWordReductions", "true","UsePopCountInstruction", "true"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
counts = {IRNode.ADD_REDUCTION_VI, ">= 1",
|
counts = {IRNode.ADD_REDUCTION_VI, ">= 1",
|
||||||
IRNode.POPCOUNT_VL, ">= 1"})
|
IRNode.POPCOUNT_VL, ">= 1"})
|
||||||
@IR(applyIfPlatform = {"riscv64", "true"},
|
@IR(applyIfPlatform = {"riscv64", "true"},
|
||||||
|
@ -27,8 +27,6 @@
|
|||||||
* @bug 8304042
|
* @bug 8304042
|
||||||
* @summary Test some examples with independent packs with cyclic dependency
|
* @summary Test some examples with independent packs with cyclic dependency
|
||||||
* between the packs.
|
* between the packs.
|
||||||
* @requires vm.bits == 64
|
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency
|
* @run driver compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency
|
||||||
@ -78,7 +76,7 @@ public class TestIndependentPacksWithCyclicDependency {
|
|||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::test*",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::test*",
|
||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::verify",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::verify",
|
||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::init",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::init",
|
||||||
"-XX:LoopUnrollLimit=1000");
|
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000");
|
||||||
}
|
}
|
||||||
|
|
||||||
TestIndependentPacksWithCyclicDependency() {
|
TestIndependentPacksWithCyclicDependency() {
|
||||||
@ -120,6 +118,7 @@ public class TestIndependentPacksWithCyclicDependency {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VF, "> 0"},
|
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VF, "> 0"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
||||||
static void test0(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
static void test0(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
||||||
for (int i = 0; i < RANGE; i+=2) {
|
for (int i = 0; i < RANGE; i+=2) {
|
||||||
@ -144,6 +143,7 @@ public class TestIndependentPacksWithCyclicDependency {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VF, "> 0", IRNode.VECTOR_CAST_F2I, "> 0", IRNode.VECTOR_CAST_I2F, "> 0"},
|
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VF, "> 0", IRNode.VECTOR_CAST_F2I, "> 0", IRNode.VECTOR_CAST_I2F, "> 0"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
applyIfCPUFeatureOr = {"avx2", "true", "asimd", "true"})
|
applyIfCPUFeatureOr = {"avx2", "true", "asimd", "true"})
|
||||||
static void test1(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
static void test1(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
||||||
for (int i = 0; i < RANGE; i+=2) {
|
for (int i = 0; i < RANGE; i+=2) {
|
||||||
@ -167,6 +167,7 @@ public class TestIndependentPacksWithCyclicDependency {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VI, "> 0"},
|
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VI, "> 0"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
||||||
static void test2(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
static void test2(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
||||||
for (int i = 0; i < RANGE; i+=2) {
|
for (int i = 0; i < RANGE; i+=2) {
|
||||||
@ -191,6 +192,7 @@ public class TestIndependentPacksWithCyclicDependency {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VF, "> 0"},
|
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VF, "> 0"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
||||||
static void test3(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
static void test3(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb) {
|
||||||
for (int i = 0; i < RANGE; i+=2) {
|
for (int i = 0; i < RANGE; i+=2) {
|
||||||
@ -267,6 +269,7 @@ public class TestIndependentPacksWithCyclicDependency {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VI, "> 0", IRNode.ADD_VF, "> 0"},
|
@IR(counts = {IRNode.ADD_VI, "> 0", IRNode.MUL_VI, "> 0", IRNode.ADD_VF, "> 0"},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true"})
|
||||||
static void test6(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb,
|
static void test6(int[] dataIa, int[] dataIb, float[] dataFa, float[] dataFb,
|
||||||
long[] dataLa, long[] dataLb) {
|
long[] dataLa, long[] dataLb) {
|
||||||
|
@ -28,11 +28,10 @@
|
|||||||
* @summary Test some examples with independent packs with cyclic dependency
|
* @summary Test some examples with independent packs with cyclic dependency
|
||||||
* between the packs.
|
* between the packs.
|
||||||
* Before fix, this hit: "assert(!is_visited) failed: visit only once"
|
* Before fix, this hit: "assert(!is_visited) failed: visit only once"
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm -XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency2::test
|
||||||
* -XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency2::test
|
* -XX:+IgnoreUnrecognizedVMOptions -XX:LoopUnrollLimit=250
|
||||||
* compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency2
|
* compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -27,9 +27,9 @@ package compiler.loopopts.superword;
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8327978
|
* @bug 8327978
|
||||||
* @summary Test compile time for large compilation, where SuperWord takes especially much time.
|
* @summary Test compile time for large compilation, where SuperWord takes especially much time.
|
||||||
* @requires vm.compiler2.enabled
|
* @run main/othervm/timeout=30 -Xbatch
|
||||||
* @run main/othervm/timeout=30 -XX:LoopUnrollLimit=1000 -Xbatch
|
|
||||||
* -XX:CompileCommand=compileonly,compiler.loopopts.superword.TestLargeCompilation::test*
|
* -XX:CompileCommand=compileonly,compiler.loopopts.superword.TestLargeCompilation::test*
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions -XX:LoopUnrollLimit=1000
|
||||||
* compiler.loopopts.superword.TestLargeCompilation
|
* compiler.loopopts.superword.TestLargeCompilation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -35,8 +35,7 @@
|
|||||||
* @bug 8328938
|
* @bug 8328938
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @requires vm.compiler2.enabled
|
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+AlignVector compiler.loopopts.superword.TestLargeScaleAndStride
|
||||||
* @run main/othervm -XX:+AlignVector compiler.loopopts.superword.TestLargeScaleAndStride
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package compiler.loopopts.superword;
|
package compiler.loopopts.superword;
|
||||||
|
@ -24,16 +24,16 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @bug 8316679 8316594
|
* @bug 8316679 8316594
|
||||||
* @summary In SuperWord::output, LoadVector can be moved before StoreVector, but only if it is proven to be safe.
|
* @summary In SuperWord::output, LoadVector can be moved before StoreVector, but only if it is proven to be safe.
|
||||||
* @key randomness
|
* @key randomness
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @run main/othervm -XX:CompileCommand=compileonly,compiler.loopopts.superword.TestMovingLoadBeforeStore::test*
|
* @run main/othervm -XX:CompileCommand=compileonly,compiler.loopopts.superword.TestMovingLoadBeforeStore::test*
|
||||||
* -Xbatch -XX:LoopUnrollLimit=100
|
|
||||||
* -XX:+UnlockDiagnosticVMOptions -XX:+StressLCM
|
|
||||||
* --add-modules java.base --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
|
* --add-modules java.base --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
|
||||||
|
* -Xbatch
|
||||||
|
* -XX:+UnlockDiagnosticVMOptions -XX:+StressLCM
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions -XX:LoopUnrollLimit=100
|
||||||
* compiler.loopopts.superword.TestMovingLoadBeforeStore
|
* compiler.loopopts.superword.TestMovingLoadBeforeStore
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -75,8 +75,8 @@ public class TestMulAddS2I {
|
|||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
TestFramework.runWithFlags("-XX:+AlignVector");
|
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector");
|
||||||
TestFramework.runWithFlags("-XX:-AlignVector");
|
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Run(test = {"testa", "testb", "testc", "testd", "teste", "testf", "testg", "testh",
|
@Run(test = {"testa", "testb", "testc", "testd", "teste", "testf", "testg", "testh",
|
||||||
|
@ -29,7 +29,8 @@
|
|||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @comment The test is run with -XX:LoopUnrollLimit=32 to prevent unrolling
|
* @comment The test is run with -XX:LoopUnrollLimit=32 to prevent unrolling
|
||||||
* from fully replacing vectorization.
|
* from fully replacing vectorization.
|
||||||
* @run main/othervm -Xbatch -XX:LoopUnrollLimit=32
|
* @run main/othervm -Xbatch
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions -XX:LoopUnrollLimit=32
|
||||||
* compiler.loopopts.superword.TestPeeledReductionNode
|
* compiler.loopopts.superword.TestPeeledReductionNode
|
||||||
*/
|
*/
|
||||||
package compiler.loopopts.superword;
|
package compiler.loopopts.superword;
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @bug 8240281
|
* @bug 8240281
|
||||||
* @summary Test which needs to select the memory state of the first load in a load pack in SuperWord::co_locate_pack.
|
* @summary Test which needs to select the memory state of the first load in a load pack in SuperWord::co_locate_pack.
|
||||||
*
|
*
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @bug 8290910 8293216
|
* @bug 8290910 8293216
|
||||||
* @summary Test which needs to select the memory state of the last load in a load pack in SuperWord::co_locate_pack.
|
* @summary Test which needs to select the memory state of the last load in a load pack in SuperWord::co_locate_pack.
|
||||||
*
|
*
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
* @bug 8304720
|
* @bug 8304720
|
||||||
* @summary Test some examples where non-vectorized memops also need to
|
* @summary Test some examples where non-vectorized memops also need to
|
||||||
* be reordered during SuperWord::schedule.
|
* be reordered during SuperWord::schedule.
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestScheduleReordersScalarMemops
|
* @run driver compiler.loopopts.superword.TestScheduleReordersScalarMemops
|
||||||
@ -55,8 +54,8 @@ public class TestScheduleReordersScalarMemops {
|
|||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestScheduleReordersScalarMemops::test*",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestScheduleReordersScalarMemops::test*",
|
||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestScheduleReordersScalarMemops::verify",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestScheduleReordersScalarMemops::verify",
|
||||||
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestScheduleReordersScalarMemops::init",
|
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestScheduleReordersScalarMemops::init",
|
||||||
"-XX:LoopUnrollLimit=1000",
|
"-XX:-TieredCompilation", "-Xbatch",
|
||||||
"-XX:-TieredCompilation", "-Xbatch");
|
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000");
|
||||||
}
|
}
|
||||||
|
|
||||||
TestScheduleReordersScalarMemops() {
|
TestScheduleReordersScalarMemops() {
|
||||||
|
@ -37,7 +37,6 @@ import java.nio.ByteOrder;
|
|||||||
* @bug 8326139
|
* @bug 8326139
|
||||||
* @summary Test splitting packs in SuperWord
|
* @summary Test splitting packs in SuperWord
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @run driver compiler.loopopts.superword.TestSplitPacks
|
* @run driver compiler.loopopts.superword.TestSplitPacks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -71,7 +70,7 @@ public class TestSplitPacks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
TestFramework.runWithFlags("-XX:LoopUnrollLimit=1000");
|
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000");
|
||||||
}
|
}
|
||||||
|
|
||||||
public TestSplitPacks() {
|
public TestSplitPacks() {
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
* @test id=Vanilla-Unaligned
|
* @test id=Vanilla-Unaligned
|
||||||
* @bug 8302652 8314612
|
* @bug 8302652 8314612
|
||||||
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestUnorderedReduction Vanilla-Unaligned
|
* @run driver compiler.loopopts.superword.TestUnorderedReduction Vanilla-Unaligned
|
||||||
*/
|
*/
|
||||||
@ -34,7 +33,6 @@
|
|||||||
* @test id=Vanilla-Aligned
|
* @test id=Vanilla-Aligned
|
||||||
* @bug 8302652 8314612
|
* @bug 8302652 8314612
|
||||||
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestUnorderedReduction Vanilla-Aligned
|
* @run driver compiler.loopopts.superword.TestUnorderedReduction Vanilla-Aligned
|
||||||
*/
|
*/
|
||||||
@ -43,7 +41,6 @@
|
|||||||
* @test id=MaxVectorSize16-Unaligned
|
* @test id=MaxVectorSize16-Unaligned
|
||||||
* @bug 8302652 8314612
|
* @bug 8302652 8314612
|
||||||
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestUnorderedReduction MaxVectorSize16-Unaligned
|
* @run driver compiler.loopopts.superword.TestUnorderedReduction MaxVectorSize16-Unaligned
|
||||||
*/
|
*/
|
||||||
@ -52,7 +49,6 @@
|
|||||||
* @test id=MaxVectorSize32-Aligned
|
* @test id=MaxVectorSize32-Aligned
|
||||||
* @bug 8302652 8314612
|
* @bug 8302652 8314612
|
||||||
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestUnorderedReduction MaxVectorSize32-Aligned
|
* @run driver compiler.loopopts.superword.TestUnorderedReduction MaxVectorSize32-Aligned
|
||||||
*/
|
*/
|
||||||
@ -75,10 +71,10 @@ public class TestUnorderedReduction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "Vanilla-Unaligned" -> { framework.addFlags("-XX:-AlignVector"); }
|
case "Vanilla-Unaligned" -> { framework.addFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector"); }
|
||||||
case "Vanilla-Aligned" -> { framework.addFlags("-XX:+AlignVector"); }
|
case "Vanilla-Aligned" -> { framework.addFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector"); }
|
||||||
case "MaxVectorSize16-Unaligned" -> { framework.addFlags("-XX:-AlignVector", "-XX:MaxVectorSize=16"); }
|
case "MaxVectorSize16-Unaligned" -> { framework.addFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector", "-XX:MaxVectorSize=16"); }
|
||||||
case "MaxVectorSize32-Aligned" -> { framework.addFlags("-XX:+AlignVector", "-XX:MaxVectorSize=32"); }
|
case "MaxVectorSize32-Aligned" -> { framework.addFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector", "-XX:MaxVectorSize=32"); }
|
||||||
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
|
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
|
||||||
}
|
}
|
||||||
framework.start();
|
framework.start();
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
* @bug JDK-8310130
|
* @bug JDK-8310130
|
||||||
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
* @summary Special test cases for PhaseIdealLoop::move_unordered_reduction_out_of_loop
|
||||||
* Here a case with partial vectorization of the reduction.
|
* Here a case with partial vectorization of the reduction.
|
||||||
* @requires vm.bits == "64"
|
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestUnorderedReductionPartialVectorization
|
* @run driver compiler.loopopts.superword.TestUnorderedReductionPartialVectorization
|
||||||
*/
|
*/
|
||||||
@ -62,6 +61,7 @@ public class TestUnorderedReductionPartialVectorization {
|
|||||||
@IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE + "min(max_int, max_long)", "> 0",
|
@IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE + "min(max_int, max_long)", "> 0",
|
||||||
IRNode.VECTOR_CAST_I2L, IRNode.VECTOR_SIZE + "min(max_int, max_long)", "> 0",
|
IRNode.VECTOR_CAST_I2L, IRNode.VECTOR_SIZE + "min(max_int, max_long)", "> 0",
|
||||||
IRNode.OR_REDUCTION_V, "> 0",},
|
IRNode.OR_REDUCTION_V, "> 0",},
|
||||||
|
applyIfPlatform = {"64-bit", "true"},
|
||||||
applyIfCPUFeatureOr = {"avx2", "true"})
|
applyIfCPUFeatureOr = {"avx2", "true"})
|
||||||
static long test1(int[] data, long sum) {
|
static long test1(int[] data, long sum) {
|
||||||
for (int i = 0; i < data.length; i+=2) {
|
for (int i = 0; i < data.length; i+=2) {
|
||||||
|
@ -27,47 +27,62 @@
|
|||||||
* @bug 8214751
|
* @bug 8214751
|
||||||
* @summary Test operations in C2 MulAddS2I and MulAddVS2VI nodes.
|
* @summary Test operations in C2 MulAddS2I and MulAddVS2VI nodes.
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @requires vm.compiler2.enabled
|
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:+UseSuperWord
|
* -XX:+UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=2
|
* -XX:LoopMaxUnroll=2
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:-UseSuperWord
|
* -XX:-UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=2
|
* -XX:LoopMaxUnroll=2
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:+UseSuperWord
|
* -XX:+UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=4
|
* -XX:LoopMaxUnroll=4
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:-UseSuperWord
|
* -XX:-UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=4
|
* -XX:LoopMaxUnroll=4
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:+UseSuperWord
|
* -XX:+UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=8
|
* -XX:LoopMaxUnroll=8
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:-UseSuperWord
|
* -XX:-UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=8
|
* -XX:LoopMaxUnroll=8
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:+UseSuperWord
|
* -XX:+UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=16
|
* -XX:LoopMaxUnroll=16
|
||||||
* compiler.loopopts.superword.Vec_MulAddS2I
|
* compiler.loopopts.superword.Vec_MulAddS2I
|
||||||
* @run main/othervm -XX:LoopUnrollLimit=250
|
* @run main/othervm
|
||||||
|
* -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:LoopUnrollLimit=250
|
||||||
* -XX:CompileThresholdScaling=0.1
|
* -XX:CompileThresholdScaling=0.1
|
||||||
* -XX:-UseSuperWord
|
* -XX:-UseSuperWord
|
||||||
* -XX:LoopMaxUnroll=16
|
* -XX:LoopMaxUnroll=16
|
||||||
|
Loading…
Reference in New Issue
Block a user