8320911: RISC-V: Enable hotspot/jtreg/compiler/intrinsics/chacha/TestChaCha20.java
Reviewed-by: fyang
This commit is contained in:
parent
77d604a29f
commit
335f5dbf62
@ -36,6 +36,9 @@ import jdk.test.whitebox.cpuinfo.CPUInfo;
|
||||
* @bug 8247645
|
||||
* @summary ChaCha20 Intrinsics
|
||||
* @library /test/lib
|
||||
* @requires (vm.cpu.features ~= ".*avx512.*" | vm.cpu.features ~= ".*avx2.*" | vm.cpu.features ~= ".*avx.*") |
|
||||
* (os.arch=="aarch64" & vm.cpu.features ~= ".*simd.*") |
|
||||
* (os.arch == "riscv64" & vm.cpu.features ~= ".*v,.*")
|
||||
* @build compiler.intrinsics.chacha.ExerciseChaCha20
|
||||
* jdk.test.whitebox.WhiteBox
|
||||
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
|
||||
@ -57,9 +60,13 @@ public class TestChaCha20 {
|
||||
return n;
|
||||
}
|
||||
|
||||
private static boolean containsFuzzy(List<String> list, String sub) {
|
||||
private static boolean containsFuzzy(List<String> list, String sub, Boolean matchExactly) {
|
||||
for (String s : list) {
|
||||
if (s.contains(sub)) return true;
|
||||
if (matchExactly) {
|
||||
if (s.equals(sub)) return true;
|
||||
} else {
|
||||
if (s.contains(sub)) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -79,26 +86,32 @@ public class TestChaCha20 {
|
||||
}
|
||||
|
||||
// Otherwise, select the tests that make sense on current platform.
|
||||
if (containsFuzzy(cpuFeatures, "avx512")) {
|
||||
if (containsFuzzy(cpuFeatures, "avx512", false)) {
|
||||
System.out.println("Setting up AVX512 worker");
|
||||
configs.add(List.of("-XX:UseAVX=3"));
|
||||
}
|
||||
if (containsFuzzy(cpuFeatures, "avx2")) {
|
||||
if (containsFuzzy(cpuFeatures, "avx2", false)) {
|
||||
System.out.println("Setting up AVX2 worker");
|
||||
configs.add(List.of("-XX:UseAVX=2"));
|
||||
}
|
||||
if (containsFuzzy(cpuFeatures, "avx")) {
|
||||
if (containsFuzzy(cpuFeatures, "avx", false)) {
|
||||
System.out.println("Setting up AVX worker");
|
||||
configs.add(List.of("-XX:UseAVX=1"));
|
||||
}
|
||||
} else if (Platform.isAArch64()) {
|
||||
// AArch64 intrinsics require the advanced simd instructions
|
||||
if (containsFuzzy(cpuFeatures, "simd")) {
|
||||
if (containsFuzzy(cpuFeatures, "simd", false)) {
|
||||
System.out.println("Setting up ASIMD worker");
|
||||
configs.add(new ArrayList());
|
||||
}
|
||||
} else if (Platform.isRISCV64()) {
|
||||
// Riscv64 intrinsics require the vector instructions
|
||||
if (containsFuzzy(cpuFeatures, "v", true)) {
|
||||
System.out.println("Setting up vector worker");
|
||||
configs.add(List.of("-XX:+UseRVV"));
|
||||
}
|
||||
} else {
|
||||
// We only have ChaCha20 intrinsics on x64 and aarch64
|
||||
// We only have ChaCha20 intrinsics on x64, aarch64 and riscv64
|
||||
// currently. If the platform is neither of these then
|
||||
// the ChaCha20 known answer tests in
|
||||
// com/sun/crypto/provider/Cipher are sufficient.
|
||||
|
Loading…
x
Reference in New Issue
Block a user