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

Ningsheng Jian njian at openjdk.java.net
Fri Sep 3 03:26:31 UTC 2021


On Thu, 19 Aug 2021 08:57:47 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> * In this issue, we plan to complete all missing implementation for aarch64 neon backend. For example, cast from Byte to Long, cast from Long to Byte, and so on.
>> * It may be a solver of JDK-8269866, or part of it.
>
> Wang Huang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix codes

src/hotspot/cpu/aarch64/aarch64.ad line 2452:

> 2450:         return false;
> 2451:       }
> 2452:       break;

Why do you remove others but keep this (4Sto4B not implemented)?

src/hotspot/cpu/aarch64/aarch64_neon.ad line 187:

> 185:   format %{ " # reinterpret $dst,$src\t# S2X" %}
> 186:   ins_encode %{
> 187:     // The upper bits of "src" are expected to have been initialized to zero.

I think the comment should be:

// The higher bits of the "dst" register must be cleared to zero.

src/hotspot/cpu/aarch64/assembler_aarch64.hpp line 2910:

> 2908:   INSN(frintm, 0, 0b00, 0b01, 0b11001);
> 2909:   INSN(frintp, 0, 0b10, 0b01, 0b11000);
> 2910:   INSN(fcvtzv, 0, 0b10, 0b01, 0b11011); // converts each element in a vector from a floating-point value to a signed integer value, and Arm's name is fcvtzs

Would using "fcvtzs" name directly looks easier to understand (align with the manual)?

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

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


More information about the hotspot-compiler-dev mailing list