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

Ningsheng Jian njian at openjdk.java.net
Fri Sep 17 10:07:49 UTC 2021


On Tue, 7 Sep 2021 10:11:08 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 bugs

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

> 2443:     case Op_VectorCastB2X:
> 2444:     case Op_VectorCastS2X:
> 2445:       if (vlen < 4) {

The vector_size_supported() check should already cover this and no need to check it here?

src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 line 280:

> 278:   match(Set dst (VectorCast$2`'2X src));
> 279:   format %{ "fcvtzs  $dst, T$6, $src\n\t"
> 280:             "xtn     $dst, T$7, $dst, T$6\n\t# convert $1$2 to $1$3 vector"

"\n\t" --> "\t" at the last line of the block.

src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 line 298:

> 296:   format %{ "fcvtzs  $dst, T4S, $src\n\t"
> 297:             "xtn     $dst, T4H, $dst, T4S\n\t"
> 298:             "xtn     $dst, T8B, $dst, T8H\n\t# convert 4F to 4B vector"

xtn $dst, T8B, $dst, T8H\n\t# convert 4F to 4B vector"

=> xtn $dst, T8B, $dst, T8H\t# convert 4F to 4B vector"

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

> 2829:     f(0b000001, 15, 10), rf(Vn, 5), rf(Vd, 0);
> 2830:   }
> 2831: 

What's the difference between dups and the dup right above?

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

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


More information about the hotspot-compiler-dev mailing list