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

Eric Liu eliu at openjdk.java.net
Fri Sep 3 04:33:29 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

I tested in my local, a `bad AD file` due to the missing rule of `VectorReinterpret 4B`


o1666  VectorReinterpret  === _ o1665  [[o1691 ]]  #vectord[8]:{byte}
--N: o1666  VectorReinterpret  === _ o1665  [[o1691 ]]  #vectord[8]:{byte}
   --N: o1665  VectorCastI2X  === _ o1644  [[o1666 ]]  #vectord[4]:{byte}
   VECD  100  vcvt4Ito4B
      --N: o1644  LoadVector  === o448 o7 o1642  |o1719  [[o1665 ]]  @int[int:>=0]:NotNull:exact+any *, idx=9; mismatched #vectorx[4]:{int}
      VECX  0  VECX
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/matcher.cpp:1681
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/jdk/jdk_src/src/hotspot/share/opto/matcher.cpp:1681), pid=32585, tid=32598
#  assert(false) failed: bad AD file
#
# JRE version: OpenJDK Runtime Environment (18.0) (fastdebug build 18-internal+0-git-cd8783c08)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 18-internal+0-git-cd8783c08, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V  [libjvm.so+0x12bb770]  Matcher::Label_Root(Node const*, State*, Node*, Node*&)+0xa50
#
# Core dump will be written. Default location: /tmp/core
#
# An error report file with more information is saved as:
# /home/jdk/test/hs_err_pid32585.log
[thread 32586 also had an error]
#
# Compiler replay data is saved as:
# /home/jdk/test/replay_pid32585.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#
./run.sh: line 25: 32585 Aborted                 (core dumped) $java -ea --add-modules jdk.incubator.vector -XX:+UnlockDiagnosticVMOptions -XX:+TieredCompilation $1


It can be reproduced by casting `Int128 species` to `byte64 species`[1]. Hope these 2 test cases helpful to you.

[1] https://gist.github.com/theRealELiu/e75f0a001d8eeda17e02616479319624
[2] https://gist.github.com/theRealELiu/083573141d2c953c09d3da931b3e7ee7

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

Changes requested by eliu (Author).

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


More information about the hotspot-compiler-dev mailing list