8256479: [PPC64] C2 crashes when UseVectorByteReverseInstructionsPPC64 used without SuperwordUseVSX

Reviewed-by: goetz, psandoz
This commit is contained in:
Martin Doerr 2020-11-18 10:20:37 +00:00
parent b0b9dd27b8
commit 97074969a5
2 changed files with 18 additions and 2 deletions

View File

@ -136,8 +136,13 @@ void VM_Version::initialize() {
if (FLAG_IS_DEFAULT(UseCharacterCompareIntrinsics)) {
FLAG_SET_ERGO(UseCharacterCompareIntrinsics, true);
}
if (FLAG_IS_DEFAULT(UseVectorByteReverseInstructionsPPC64)) {
FLAG_SET_ERGO(UseVectorByteReverseInstructionsPPC64, true);
if (SuperwordUseVSX) {
if (FLAG_IS_DEFAULT(UseVectorByteReverseInstructionsPPC64)) {
FLAG_SET_ERGO(UseVectorByteReverseInstructionsPPC64, true);
}
} else if (UseVectorByteReverseInstructionsPPC64) {
warning("UseVectorByteReverseInstructionsPPC64 specified, but needs SuperwordUseVSX.");
FLAG_SET_DEFAULT(UseVectorByteReverseInstructionsPPC64, false);
}
if (FLAG_IS_DEFAULT(UseBASE64Intrinsics)) {
FLAG_SET_ERGO(UseBASE64Intrinsics, true);

View File

@ -39,6 +39,17 @@ import java.util.function.IntFunction;
* Vector64ConversionTests
*/
/*
* @test VectorConversionPPC64
* @bug 8256479
* @requires os.arch =="ppc64" | os.arch == "ppc64le"
* @summary VectorConversion on PPC64 without Vector Register usage
* @modules jdk.incubator.vector
* @modules java.base/jdk.internal.vm.annotation
* @run testng/othervm -XX:-SuperwordUseVSX -XX:-TieredCompilation --add-opens jdk.incubator.vector/jdk.incubator.vector=ALL-UNNAMED
* Vector64ConversionTests
*/
@Test
public class Vector64ConversionTests extends AbstractVectorConversionTest {