RFR: 8268363: AArch64: Implement string_indexof_char intrinsic in SVE

TatWai Chong github.com+78814694+tatwaichong at openjdk.java.net
Sun Jun 27 11:55:55 UTC 2021


This patch implements string_indexof_char intrinsic in SVE for both
UTF-16 and Latin-8 variants. In the current underneath implementation,
there is only 4 and 8 characters are compared at a time in UTF-16 and
Latin-8 respectively. In this patch, we adopt SVE to vectorize this
intrinsic so that a wider comparison can be performed each time.

I've run [1] with this patch on an SVE machine, and the performance of
StringIndexOfChar.latin1_mixed_char (length=65) and
StringIndexOfChar.utf16_mixed_char (length=65) are improved significantly,
while no visible regression for other cases with shorter strings.
(length=7, 8, 15, 16 and 32)

[1] https://github.com/openjdk/jdk/blob/master/test/micro/org/openjdk/bench/java/lang/StringIndexOfChar.java

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

Commit messages:
 - 8268363: AArch64: Implement string_indexof_char intrinsic in SVE

Changes: https://git.openjdk.java.net/jdk/pull/4567/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4567&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8268363
  Stats: 346 lines in 7 files changed: 227 ins; 0 del; 119 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4567.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4567/head:pull/4567

PR: https://git.openjdk.java.net/jdk/pull/4567


More information about the hotspot-compiler-dev mailing list