RFR: 8227505: SuperWordLoopUnrollAnalysis may lead to over loop unrolling

Deshpande, Vivek R vivek.r.deshpande at intel.com
Wed Aug 21 19:37:05 UTC 2019

Hi Jie

Thanks for working on this. I tried webrev.03. 
The 2nd compilation(recompilation) of doit2 generates the code which does not use full vector width and also does not unroll after vectorization.


-----Original Message-----
From: Jie Fu [mailto:fujie at loongson.cn] 
Sent: Wednesday, August 21, 2019 1:59 AM
To: Deshpande, Vivek R <vivek.r.deshpande at intel.com>; Vladimir Kozlov <vladimir.kozlov at oracle.com>; hotspot-compiler-dev at openjdk.java.net; Viswanathan, Sandhya <sandhya.viswanathan at intel.com>
Subject: Re: RFR: 8227505: SuperWordLoopUnrollAnalysis may lead to over loop unrolling

Hi Vivek,

Updated: http://cr.openjdk.java.net/~jiefu/8227505/webrev.03/
Please see comments inline.

On 2019/8/20 上午11:44, Deshpande, Vivek R wrote:
> Hi All
> I tested this patch with small test which adds byte arrays.
> for (int i = 0; i < NUM; i++) {
>                  data[i] = (byte)(data2[i] + data3[i]); }
> Since the loop unrolled to half than earlier, the maximum vector length could not be used and generated 256 bit long vector instructions instead of maximum available 512 bits.
I've asked my manager for an AVX-512 machine.
But it will take some time to get it.

So could you please share me the performance of your test case on your
AVX-512 machine?

> Also the loop did not get unrolled after vectorization.  I have given the generated code below.

Fixed. Thanks.

Any comments?

Thanks a lot.
Best regards,

More information about the hotspot-compiler-dev mailing list