[jdk17] RFR: 8269568: JVM crashes when running VectorMask query tests [v2]

Sandhya Viswanathan sviswanathan at openjdk.java.net
Thu Jul 1 19:03:01 UTC 2021


On Thu, 1 Jul 2021 12:56:21 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Xiaohong Gong has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - Refactor VectorMask query tests
>>  - Fix x86 backend codegen issue
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3868:
> 
>> 3866:   if (masklen < 64) {
>> 3867:     andq(tmp, (((jlong)1 << masklen) - 1));
>> 3868:   }
> 
> Hi @sviswa7 , @XiaohongGong , @DamonFool , I think problem will occur only on non-AVX512VLBW platforms. So this workaround fix of one extra instruction can be removed from this place.

@jatin-bhateja Thanks for this input.
@XiaohongGong Please include the following patch for Jatin's comment:

diff --git a/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp b/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp
index 87016e2..e21b065 100644
--- a/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp
+++ b/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp
@@ -3863,9 +3863,6 @@ void C2_MacroAssembler::vector_mask_operation(int opc, Register dst, XMMRegister
   vpsubb(xtmp, xtmp, mask, vec_enc);
   evpmovb2m(ktmp, xtmp, vec_enc);
   kmovql(tmp, ktmp);
-  if (masklen < 64) {
-    andq(tmp, (((jlong)1 << masklen) - 1));
-  }
   switch(opc) {
     case Op_VectorMaskTrueCount:
       popcntq(dst, tmp);

-------------

PR: https://git.openjdk.java.net/jdk17/pull/168


More information about the hotspot-compiler-dev mailing list