8235288: AVX 512 instructions inadvertently used on Xeon for small vector width operations

Reviewed-by: kvn, vlivanov
This commit is contained in:
Sandhya Viswanathan 2019-12-04 14:55:15 -08:00
parent 8b029e21a2
commit e8c10bc9cd

View File

@ -1356,7 +1356,7 @@ public:
void vpxor(XMMRegister dst, Address src) { Assembler::vpxor(dst, dst, src, true); }
void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinserti32x4(dst, dst, src, imm8);
} else if (UseAVX > 1) {
// vinserti128 is available only in AVX2
@ -1367,7 +1367,7 @@ public:
}
void vinserti128(XMMRegister dst, XMMRegister nds, Address src, uint8_t imm8) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinserti32x4(dst, dst, src, imm8);
} else if (UseAVX > 1) {
// vinserti128 is available only in AVX2
@ -1378,7 +1378,7 @@ public:
}
void vextracti128(XMMRegister dst, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vextracti32x4(dst, src, imm8);
} else if (UseAVX > 1) {
// vextracti128 is available only in AVX2
@ -1389,7 +1389,7 @@ public:
}
void vextracti128(Address dst, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vextracti32x4(dst, src, imm8);
} else if (UseAVX > 1) {
// vextracti128 is available only in AVX2
@ -1414,7 +1414,7 @@ public:
}
void vinsertf128_high(XMMRegister dst, XMMRegister src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinsertf32x4(dst, dst, src, 1);
} else {
Assembler::vinsertf128(dst, dst, src, 1);
@ -1422,7 +1422,7 @@ public:
}
void vinsertf128_high(XMMRegister dst, Address src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinsertf32x4(dst, dst, src, 1);
} else {
Assembler::vinsertf128(dst, dst, src, 1);
@ -1430,7 +1430,7 @@ public:
}
void vextractf128_high(XMMRegister dst, XMMRegister src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vextractf32x4(dst, src, 1);
} else {
Assembler::vextractf128(dst, src, 1);
@ -1438,7 +1438,7 @@ public:
}
void vextractf128_high(Address dst, XMMRegister src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vextractf32x4(dst, src, 1);
} else {
Assembler::vextractf128(dst, src, 1);
@ -1480,7 +1480,7 @@ public:
}
void vinsertf128_low(XMMRegister dst, XMMRegister src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinsertf32x4(dst, dst, src, 0);
} else {
Assembler::vinsertf128(dst, dst, src, 0);
@ -1488,7 +1488,7 @@ public:
}
void vinsertf128_low(XMMRegister dst, Address src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinsertf32x4(dst, dst, src, 0);
} else {
Assembler::vinsertf128(dst, dst, src, 0);
@ -1496,7 +1496,7 @@ public:
}
void vextractf128_low(XMMRegister dst, XMMRegister src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vextractf32x4(dst, src, 0);
} else {
Assembler::vextractf128(dst, src, 0);
@ -1504,7 +1504,7 @@ public:
}
void vextractf128_low(Address dst, XMMRegister src) {
if (UseAVX > 2) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vextractf32x4(dst, src, 0);
} else {
Assembler::vextractf128(dst, src, 0);