RFR (S): 8154975: Update for vectorizedMismatch with AVX512

Deshpande, Vivek R vivek.r.deshpande at intel.com
Tue Apr 26 18:22:43 UTC 2016


HI Vladimir

I have updated the webrev with all suggested changes.
The webrev is at this location:
http://cr.openjdk.java.net/~vdeshpande/8154975/webrev.01/

Regards
Vivek

-----Original Message-----
From: Berg, Michael C 
Sent: Saturday, April 23, 2016 7:24 PM
To: Vladimir Kozlov; Deshpande, Vivek R; hotspot-compiler-dev at openjdk.java.net
Subject: RE: RFR (S): 8154975: Update for vectorizedMismatch with AVX512

More info:

Setvectmask and restorevectmask are used for auto code generation.

The method attached here is used entirely for stub code assembly and is intended only for stub code usage and checked via assertions as such.

Regards,
Michael

-----Original Message-----
From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Berg, Michael C
Sent: Friday, April 22, 2016 7:30 PM
To: Vladimir Kozlov <vladimir.kozlov at oracle.com>; Deshpande, Vivek R <vivek.r.deshpande at intel.com>; hotspot-compiler-dev at openjdk.java.net
Subject: RE: RFR (S): 8154975: Update for vectorizedMismatch with AVX512

Vladimir, it Is not related to 8153998.
It seems his patch is not sync'd against the head of the tree.

-Michael

-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
Sent: Friday, April 22, 2016 6:54 PM
To: Deshpande, Vivek R <vivek.r.deshpande at intel.com>; hotspot-compiler-dev at openjdk.java.net
Cc: Viswanathan, Sandhya <sandhya.viswanathan at intel.com>; Berg, Michael C <michael.c.berg at intel.com>
Subject: Re: RFR (S): 8154975: Update for vectorizedMismatch with AVX512

Hi Vivek,

How it is related to next macro instructions from JDK-8153998?

+  // special instructions for EVEX
+  void setvectmask(Register dst, Register src);  void 
+ restorevectmask();

Can you reuse them? Or add variants which you can use. I see difference kmovql vs kmovdl in code.

_programmed_mask_reg/clear_programmed_mask_reg/set_programmed_mask_reg should be named _vector_masking/clear_vector_masking/set_vector_masking


I don't like next code in assembler instructions:
+  if (zeroing) attributes.set_is_clear_context();

+  if (!no_reg_mask) {
+    attributes.set_embedded_opmask_register_specifier(mask);
+    if (zeroing) attributes.set_is_clear_context();
+  }

zeroing is false and mask is not NULL in your code. I would prefer to have separate instructions when you need them.
_embedded_opmask_register_specifier is not used (only set). Don't add values which are not used.

Thanks,
Vladimir

On 4/22/16 6:10 PM, Deshpande, Vivek R wrote:
> Hi all
>
> I would like to contribute a patch with AVX512 support for the vectorizedMismatch intrinsic.
>
> Could you please review and sponsor this patch.
>
> Bug-id:
>
> https://bugs.openjdk.java.net/browse/JDK-8154975
>
> webrev:
>
> http://cr.openjdk.java.net/~vdeshpande/8154975/webrev.00/
>
> Thanks and regards,
>
> Vivek
>


More information about the hotspot-compiler-dev mailing list