- 
    Bug 
- 
    Resolution: Fixed
- 
     P3 P3
- 
    9, 11, 16, 17
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build | 
|---|---|---|---|---|---|---|
| JDK-8265671 | 11.0.12-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b03 | 
| JDK-8265738 | 11.0.12 | Sandhya Viswanathan | P3 | Resolved | Fixed | b01 | 
                    There is a bug in macro assembler in vinserti128 special handling for platforms like KNL that do not support AVX512VL.
 
The following:
void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinserti32x4(dst, dst, src, imm8);
}
...
}
 
Should have been:
void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinserti32x4(dst, nds, src, imm8);
}
...
}
            
The following:
void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinserti32x4(dst, dst, src, imm8);
}
...
}
Should have been:
void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8) {
if (UseAVX > 2 && VM_Version::supports_avx512novl()) {
Assembler::vinserti32x4(dst, nds, src, imm8);
}
...
}
- backported by
- 
                    JDK-8265671 vinserti128 operand mix up for KNL platforms -           
- Resolved
 
-         
- 
                    JDK-8265738 vinserti128 operand mix up for KNL platforms -           
- Resolved
 
-         
- relates to
- 
                    JDK-8151003 Remove nds->is_valid() checks from assembler_x86.cpp -           
- Resolved
 
-         
 
        