JDK-8215888 : Register to register spill may use AVX 512 move instruction on unsupported platform.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,11.0.2,12,13
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • CPU: x86
  • Submitted: 2018-12-21
  • Updated: 2022-01-05
  • Resolved: 2019-01-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 12 JDK 13
11.0.3Fixed 12 b27Fixed 13Fixed
Related Reports
Relates :  
Description
We noticed that the register to register moves in x86.ad file attempts to generate emovdqu when UseAVX==2.
The instruction emovdquq is only supported on platforms where UseAVX  > 2 (AVX 512).

The following rules in x86.ad file need to be corrected:
MoveVecX2Leg
MoveLeg2VecX
MoveVecY2Leg
MoveLeg2VecY
The above move rules when activated through register allocator and could result in illegal instruction exception.

Also there is similar usage of (UseAVX < 2) in c1_LIRAssembler which could be written as (UseAVX <=2) for better code sequence.

Comments
closed/Not verified: no test has been provided to verify the fix, none of the existing tests can be used to verify the fix.
12-02-2019

URL: http://hg.openjdk.java.net/jdk/jdk12/rev/3ab3cb8a8d41 User: vdeshpande Date: 2019-01-03 22:56:37 +0000
03-01-2019

Updated webrev: http://cr.openjdk.java.net/~sviswanathan/8215888/webrev.01/
22-12-2018

Webrev: http://cr.openjdk.java.net/~sviswanathan/8215888/webrev.00/
21-12-2018