RFR(S) 8200067: Vector Carry-less Multiplication support

Rukmannagari, Shravya shravya.rukmannagari at intel.com
Mon Mar 26 18:51:41 UTC 2018

Hi Vladimir,
Thanks a lot for reviewing it. I have made the suggested changes. Please find the latest changes below and let me know if you have any questions or comments.


-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] 
Sent: Friday, March 23, 2018 2:47 PM
To: Rukmannagari, Shravya <shravya.rukmannagari at intel.com>; hotspot compiler <hotspot-compiler-dev at openjdk.java.net>
Cc: Kamath, Smita <smita.kamath at intel.com>
Subject: Re: RFR(S) 8200067: Vector Carry-less Multiplication support

Hi Shravya,


Why you placed xmm0 initialization before size check?:

+   movdqu(xmm0, 
+ ExternalAddress(StubRoutines::x86::crc_by128_masks_addr() + 32));

I think initialization and the check should be inside code guarded by supports_vpclmulqdq().

L_Parallel is not used - no jump to it.


On 3/22/18 12:11 PM, Rukmannagari, Shravya wrote:
> Hi everyone,
> As per "Intel Architecture Instruction Set Extensions and Future Features Programming Reference" 
> manual [1], vector carry-less multiplication (vpclmulqdq) instruction 
> will be supported in future Intel ISA. I have updated the CRC32 
> algorithm to take advantage of this instruction. I have tested with 
> Intel SDE [2] to confirm encoding and semantics are correctly implemented. Please take a look and let me know if you have any questions or comments.
> http://cr.openjdk.java.net/~vdeshpande/ICL_crc32/webrev.00/
> Thanks,
> Shravya.
> [1]
> https://software.intel.com/sites/default/files/managed/c5/15/architect
> ure-instruction-set-extensions-programming-reference.pdf
> [2] 
> https://software.intel.com/en-us/articles/intel-software-development-e
> mulator
> [3] https://bugs.openjdk.java.net/browse/JDK-8200067

More information about the hotspot-compiler-dev mailing list