8320911: RISC-V: Enable hotspot/jtreg/compiler/intrinsics/chacha/TestChaCha20.java

Reviewed-by: fyang
This commit is contained in:
Hamlin Li 2023-11-29 11:18:58 +00:00
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.