RFR: 8332119: Incorrect IllegalArgumentException for C2 compiled permute kernel

Jatin Bhateja jbhateja at openjdk.org
Wed May 29 06:15:21 UTC 2024


Currently inline expansion of vector to shuffle conversion simply type casts the vector holding indexes to byte vector[1] where as fallback implementation[2] also wraps the indexes to a valid index range [0, VEC_LEN-1) or generates a -ve index for exceptional / OOB indices.

This patch extends the conversion inline expander to match the fall back implementation. This imposes around 20% performance tax on Vector.toShuffle() intrinsic but fixes this functional bug.

Kindly review and share your feedback.

Best Regards,
Jatin

PS: Patch also fixes an incorrectness issue reported with [JDK-8332118](https://bugs.openjdk.org/browse/JDK-8332118)

[1] https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java#L2352
[2] https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/AbstractShuffle.java#L58

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

Commit messages:
 - 8332119: Incorrect IllegalArgumentException for C2 compiled permute kernel

Changes: https://git.openjdk.org/jdk/pull/19442/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19442&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332119
  Stats: 147 lines in 3 files changed: 137 ins; 9 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/19442.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19442/head:pull/19442

PR: https://git.openjdk.org/jdk/pull/19442


More information about the hotspot-compiler-dev mailing list