Integrated: 8309660: C2: failed: XMM register should be 0-15 (UseKNLSetting and ConvF2HF)
    Emanuel Peter 
    epeter at openjdk.org
       
    Mon Jul  3 06:53:10 UTC 2023
    
    
  
On Thu, 8 Jun 2023 14:45:54 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
> Context: `Float.floatToFloat16` -> `vcvtps2ph`.
> 
> **Problem**
> 
> vcvtps2ph
> pre=Assembler::VEX_SIMD_66
> opc=Assembler::VEX_OPCODE_0F_3A
> VEX.128.66.0F3A
> requires F16C
> 
> https://www.felixcloutier.com/x86/vcvtps2ph
> 
> So this is a non-AVX512 feature, and we should only use the registers `xmm0-15`.
> 
> There is also a AVX512 version, but it requires `AVX512VL and AVX512F`.
> 
> So on `x64`, we should only use registers `xmm0-15` if we do not have `AVX512VL`, and if we have it, then we can use `xmm0-31`.
> 
> **Suggested Solution**
> As @sviswa7 suggested, we should just use the `vlRegF` instead of `regF`, see discussion in comments.
> 
> **Testing**
> I simulated the patch on intel's `sde`. So now I'm confident that I don't generate code that uses `AVX512VL` registers (XMM16-31).
> 
> Running: tier1-6 + stress testing.
This pull request has now been integrated.
Changeset: 2c29705d
Author:    Emanuel Peter <epeter at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/2c29705d7bc9cf3d9884abf81ba6d3eeff881d73
Stats:     36 lines in 2 files changed: 32 ins; 0 del; 4 mod
8309660: C2: failed: XMM register should be 0-15 (UseKNLSetting and ConvF2HF)
Co-authored-by: Sandhya Viswanathan <sviswanathan at openjdk.org>
Reviewed-by: sviswanathan, jbhateja
-------------
PR: https://git.openjdk.org/jdk/pull/14379
    
    
More information about the hotspot-compiler-dev
mailing list