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