RFR: 8259948: Aarch64: Add cast nodes for Aarch64 Neon backend [v2]

Andrew Haley aph at openjdk.java.net
Tue Aug 10 09:19:32 UTC 2021


On Tue, 10 Aug 2021 03:04:02 GMT, Eric Liu <eliu at openjdk.org> wrote:

>> Wang Huang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fix code style
>
> src/hotspot/cpu/aarch64/aarch64_neon.ad line 195:
> 
>> 193:     // If registers are the same, no register move is required - the
>> 194:     // upper bits of "src" are expected to have been initialized
>> 195:     // to zero.
> 
> I have a little concern about this assumption. How to ensure the upper bits are zero? Since the `ReinterpretNode` could be used separately and not always with `CastNode` together. E.g
> 
> https://github.com/openjdk/jdk/blob/jdk-18%2B9/src/hotspot/share/opto/vectorIntrinsics.cpp#L844

There are several places in the AArch64 back end where we expect the upper bits of a register to be zero, but we've never depended on it. This is not a good time to start, so let's clear the bits in order to be certain.

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

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


More information about the hotspot-compiler-dev mailing list