RFR: 8265154: vinserti128 operand mix up for KNL platforms

Tobias Hartmann thartmann at openjdk.java.net
Wed Apr 14 06:40:03 UTC 2021


On Wed, 14 Apr 2021 00:25:40 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

> 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);
>      }
>     ...
>   }
> 
> Best Regards,
> Sandhya

Looks good to me. Just wondering, why did this never show up? Are we missing tests exercising this code path?

-------------

Marked as reviewed by thartmann (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/3480


More information about the hotspot-compiler-dev mailing list