RFR (XXS) 8234610: MaxVectorSize set wrongly when UseAVX=3 is specified after JDK-8221092

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Nov 22 02:02:43 UTC 2019


Hi Sandhya,

I think you should put cpuid code added by 8221092 under if (use_evex) 
checks because if user specified UseAVX=2 the code under (use_evex) will 
not be executed anyway. Or I am missing something.

I did not get why you said MaxVectorSize is being wrongly set to 16 
bytes. It should 32 because it will set UseAVX=1 in current code.

Thanks,
Vladimir

On 11/21/19 5:27 PM, Viswanathan, Sandhya wrote:
> On Skylake platform the JVM by default sets the UseAVX level to 2 and accordingly sets MaxVectorSize to 32 bytes as per JDK-8221092<https://bugs.openjdk.java.net/browse/JDK-8221092>.
> 
> When the user explicitly wants to use AVX3 on Skylake platform, they need to invoke the JVM with -XX:UseAVX=3 command line argument.
> This should automatically result in MaxVectorSize being set to 64 bytes.
> 
> However post JDK-8221092<https://bugs.openjdk.java.net/browse/JDK-8221092>, when -XX:UseAVX=3 is given on command line, the MaxVectorSize is being wrongly set to 16 bytes.
> I have a patch which fixes the issue.
> 
> JBS: https://bugs.openjdk.java.net/browse/JDK-8234610
> Webrev: http://cr.openjdk.java.net/~sviswanathan/8234610/webrev.00/
> 
> Please review and approve.
> 
> Best Regards,
> Sandhya
> 
> 


More information about the hotspot-compiler-dev mailing list