[vectorIntrinsics+mask] RFR: 8272479: Fix a regression of rearrange intrinsic after JDK-8272479

Jie Fu jiefu at openjdk.java.net
Mon Sep 6 02:49:33 UTC 2021


Hi all, 

After JDK-8272479, the following crash was observed on x86 with `-ea -esa -Xcomp -XX:CompileThreshold=100`


test Double256VectorTests.RearrangeDouble256VectorTests(double[-i * 5], shuffle[random]): success
test Double256VectorTests.RearrangeDouble256VectorTests(double[i * 5], shuffle[random]): success
test Double256VectorTests.RearrangeDouble256VectorTests(double[i + 1], shuffle[random]): success
test Double256VectorTests.RearrangeDouble256VectorTests(double[cornerCaseValue(i)], shuffle[random]): success
o114  ReplicateD  === _ o73  [[o340 ]]  #vectory[4]:{double}

--N: o114  ReplicateD  === _ o73  [[o340 ]]  #vectory[4]:{double}

   --N: o73  ConI  === o0  [[o166 o173 o114 ]]  #int:0
   IMMI  10  IMMI
   IMMI_0  0  IMMI_0
   IMMI2  0  IMMI2
   IMMU7  5  IMMU7
   IMMI8  5  IMMI8
   IMMU8  5  IMMU8
   IMMI16  10  IMMI16
   IMMU31  0  IMMU31
   RREGI  50  loadConI0
   RAX_REGI  50  loadConI0
   RBX_REGI  50  loadConI0
   RCX_REGI  50  loadConI0
   RDX_REGI  50  loadConI0
   RDI_REGI  50  loadConI0
   NO_RAX_RDX_REGI  50  loadConI0
   STACKSLOTI  150  storeSSI


This is because the type of broadcasted ZERO is incorrect.

Other affected tests include

jdk/incubator/vector/DoubleMaxVectorTests.java
jdk/incubator/vector/Float128VectorTests.java
jdk/incubator/vector/Float256VectorTests.java
jdk/incubator/vector/FloatMaxVectorTests.java
jdk/incubator/vector/Long256VectorTests.java
jdk/incubator/vector/LongMaxVectorTests.java


Let's fix it.

Thanks.
Best regards,
Jie

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

Commit messages:
 - 8272479: Fix a regression of rearrange intrinsic after JDK-8272479

Changes: https://git.openjdk.java.net/panama-vector/pull/120/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=120&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8272479
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/120.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/120/head:pull/120

PR: https://git.openjdk.java.net/panama-vector/pull/120


More information about the panama-dev mailing list