RFR(S):8216050:X86: Fix for Superword optimization fails with assert(0 <= i && i < _len) failed: illegal index

Deshpande, Vivek R vivek.r.deshpande at intel.com
Fri Jan 11 19:38:16 UTC 2019


Hi Tobias

Thanks for reviewing the patch.
I have made the changes according to your suggestion.
In this webrev: http://cr.openjdk.java.net/~vdeshpande/8216050/webrev.01/
I have fix for the crash reported in the 8216050.

The lower cost is needed for generation of vpdpwssd instruction, by combining AddVI and MulAddVS2VI.
For other instructions pmaddwd and vpmaddwd, they get generated on platforms upto skylake with default cost.

I have updated the bug also with the link to webrev.

I have created a different bug JDK-8216580 for  
 3) 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

Thank you.
Regards,
Vivek

-----Original Message-----
From: Tobias Hartmann [mailto:tobias.hartmann at oracle.com] 
Sent: Friday, January 11, 2019 4:49 AM
To: Deshpande, Vivek R <vivek.r.deshpande at intel.com>; hotspot-compiler-dev at openjdk.java.net compiler <hotspot-compiler-dev at openjdk.java.net>
Cc: Vladimir Kozlov <vladimir.kozlov at oracle.com>; Viswanathan, Sandhya <sandhya.viswanathan at intel.com>; Raj, Guru <guru.raj at intel.com>
Subject: Re: RFR(S):8216050:X86: Fix for Superword optimization fails with assert(0 <= i && i < _len) failed: illegal index

Hi Vivek,

On 11.01.19 07:58, Deshpande, Vivek R wrote:
> 1) Fix for the crash by matching the operand by swapping to right positions. 

Looks good but the change to loopopts.cpp:530 screwed up the indentation around the ifs, please fix.

> 2) Cost based generation of vpdpwssd instruction. 

Other instructions added by JDK-8214751 still miss a cost definition, for example:
http://hg.openjdk.java.net/jdk/jdk/rev/4bb6e0871bf7#l5.20

> 3) 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

This is unrelated to the original bug, right? If so, this should be integrated with a separate RFE.

Thanks,
Tobias


More information about the hotspot-compiler-dev mailing list