mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-08 01:25:31 +00:00
8235288: AVX 512 instructions inadvertently used on Xeon for small vector width operations
Reviewed-by: kvn, vlivanov
This commit is contained in:
parent
8b029e21a2
commit
e8c10bc9cd
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user