JDK-8216580 : Fix generation of VNNI vector code by allowing adjacent LoadS nodes to be isomorphic
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 12,13
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • CPU: x86
  • Submitted: 2019-01-11
  • Updated: 2019-03-13
  • Resolved: 2019-03-05
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 13
13 b11Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Fix generation of vector code by allowing adjacent LoadS nodes to be isomorphic when they have different control RangeCheck nodes for a[i] and a[i+1] accesses in same MulAddS2I node.
Separating it from JDK-8216050 in a new bug.
Comments
Webrev with an added check against NULL. http://cr.openjdk.java.net/~vdeshpande/8216580/webrev.03/
05-03-2019

My tier1-tier3 testing passed with few unrelated failures. Note, we don't have VNNI machines so the code is not exercised. [~vdeshpande] is running testing on VNNI machine.
01-03-2019

http://cr.openjdk.java.net/~vdeshpande/8216580/webrev.02/
01-03-2019

Fixed parentheses at 1225,1226 http://cr.openjdk.java.net/~vdeshpande/8216580/webrev.01/
15-01-2019

Hi Rahul, The jtreg test Vec_MulAddS2I.java is the failing case. It does not generate wrong code, but it does not get vectorized as it cannot pack the adjacent LoadS nodes.
15-01-2019

Shouldn't this be an enhancement?
14-01-2019

initial ILW = wrong vector code generation; not commonly reported!; disable vectorization = HLM = P3 Hi [~vdeshpande], please add a sample failing test case if any. Thanks.
14-01-2019

Fix generation of vector code by allowing adjacent LoadS nodes to be isomorphic when they have different control RangeCheck nodes for a[i] and a[i+1] accesses in same MulAddS2I node. Webrev: http://cr.openjdk.java.net/~vdeshpande/8216580/webrev.00/
11-01-2019