RFR: 8284125: AArch64: Remove partial masked operations for SVE

Eric Liu eliu at openjdk.java.net
Thu Apr 7 13:18:15 UTC 2022


Currently there are match rules named as xxx_masked_partial, which are
expected to work on masked vector operations when the vector size is not
the full size of hardware vector reg width, i.e. partial vector. Those
rules will make sure the given masked (predicate) high bits are cleared
with vector width. Actually, for those masked rules with predicate
input, if we can guarantee the input predicate high bits are already
cleared with vector width, we don't need to re-do the clear work before
use. Currently, there are only 4 nodes on AArch64 backend which
initializes (defines) predicate registers:

  1.MaskAllNode
  2.VectorLoadMaskNode
  3.VectorMaskGen
  4.VectorMaskCmp

We can ensure that the predicate register will be well initialized with
proper vector size, so that most of the masked partial rules with a mask
input could be removed.

[TEST]
vector api jtreg tests passed on my SVE testing system.

Change-Id: Iee3d7c5952f7634458222cad9eec1cc661818b8e

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

Commit messages:
 - 8284125: AArch64: Remove partial masked operations for SVE

Changes: https://git.openjdk.java.net/jdk/pull/8144/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8144&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8284125
  Stats: 1501 lines in 2 files changed: 219 ins; 1169 del; 113 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8144.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8144/head:pull/8144

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


More information about the hotspot-compiler-dev mailing list