RFR: 8297753: AArch64: Add optimized rules for vector compare with zero on NEON

Chang Peng duke at openjdk.org
Fri Jan 27 22:43:13 UTC 2023


We can use the compare-with-zero instructions like cmgt(zero)[1] immediately to avoid the extra scalar2vector operations.

The following instruction sequence

movi  v16.4s, #0x0
cmgt  v16.4s, v17.4s, v16.4s

can be optimized to:

cmgt v16.4s, v17.4s, #0x0

This patch does the following:
1. Add NEON floating-point compare-with-zero instructions.
2. Add optimized match rules to generate the compare-with-zero instructions.

[1]: https://developer.arm.com/documentation/ddi0602/2022-06/SIMD-FP-Instructions/CMGT--zero---Compare-signed-Greater-than-zero--vector--

Change-Id: If026b477a0cad809bd201feafbfc9ab301a1b569

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

Commit messages:
 - 8297753: AArch64: Add optimized rules for vector compare with zero on NEON

Changes: https://git.openjdk.org/jdk/pull/11822/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11822&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8297753
  Stats: 960 lines in 9 files changed: 454 ins; 0 del; 506 mod
  Patch: https://git.openjdk.org/jdk/pull/11822.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11822/head:pull/11822

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


More information about the hotspot-compiler-dev mailing list