[vectorIntrinsics] RFR: 8259536: Add cast nodes between interger types implementation for Arm SVE [v3]
Ningsheng Jian
njian at openjdk.java.net
Wed Jan 27 09:24:09 UTC 2021
On Tue, 26 Jan 2021 08:56:07 GMT, Wang Huang <whuang at openjdk.org> wrote:
>> This patch add cast nodes between interger types implementation for Arm SVE like "VectorCastB2X" "VectorCastI2X " "VectorCastS2X" "VectorCastL2X".
>
> Wang Huang has updated the pull request incrementally with one additional commit since the last revision:
>
> add other I2I cast nodes
@Wanghuang-Huawei Thanks a lot for the work! Could you please do a merge and resolve the merge conflicts?
src/hotspot/cpu/aarch64/aarch64_sve.ad line 2499:
> 2497: predicate(UseSVE > 0 && n->bottom_type()->is_vect()->length_in_bytes() >= 16 &&
> 2498: n->bottom_type()->is_vect()->element_basic_type() == T_SHORT);
> 2499: match(Set dst (VectorCastB2X src));
Is it possible to sort these newly added rules by Node name? So that it's easier to know whether there are still some rules missing.
src/hotspot/share/opto/vectorIntrinsics.cpp line 441:
> 439: if (Matcher::supports_scalable_vector()) {
> 440: if (C->print_intrinsics()) {
> 441: tty->print_cr(" ** shuffle to vector not supported on SVE");
I think it's a bit intrusive to do a workaround here, which will be removed soon, for SVE implementation in shared code.
src/hotspot/share/opto/vectorIntrinsics.cpp line 334:
> 332: // int start, int step, int wrap, ShuffleIotaOperation<Sh, E> defaultImpl)
> 333: bool LibraryCallKit::inline_vector_shuffle_iota() {
> 334: // TODO shuffle is not supported on SVE
This check is no necessary? Since SVE does not have Op_VectorLoadConst yet, arch_supports_vector() check below should return false.
-------------
PR: https://git.openjdk.java.net/panama-vector/pull/31
More information about the panama-dev
mailing list