RFR: 8262916: Merge LShiftCntV and RShiftCntV into a single node

Eric Liu eliu at openjdk.java.net
Fri Apr 9 10:51:20 UTC 2021

On Fri, 9 Apr 2021 09:26:19 GMT, Andrew Haley <aph at openjdk.org> wrote:

> > It seems that keeping those two RShiftCntV and LShiftCntV is friendly to AArch32/64 in this case, but AArch64 should changed to what AArch32 dose. @theRealAph
> Thanks, but it's been a while since I looked at the vector code. Can you point me to the AArch32 patterns in question, to show me the AArch64 changes needed? Thanks.

AArch32 combinates 'neg' with 'dup' in RShiftCntV[1], which AArch64  has a single 'dup' only[2] and generates 'neg' before every use sites, e.g. RShiftVB[3]. 

[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/arm/arm.ad#L10451
[2] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/aarch64/aarch64_neon.ad#L5117
[3] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/aarch64/aarch64_neon.ad#L5188


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

More information about the hotspot-compiler-dev mailing list