RFR: 8284125: AArch64: Remove partial masked operations for SVE
Ningsheng Jian
njian at openjdk.java.net
Mon Apr 11 02:59:46 UTC 2022
On Thu, 7 Apr 2022 13:10:57 GMT, Eric Liu <eliu at openjdk.org> wrote:
> 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.
Looks good and much cleaner to me. Thanks for the cleaning up!
-------------
Marked as reviewed by njian (Committer).
PR: https://git.openjdk.java.net/jdk/pull/8144
More information about the hotspot-compiler-dev
mailing list