[jdk16] RFR: 8259601: AArch64: Fix reinterpretX2D match rule issue
Xiaohong Gong
xgong at openjdk.java.net
Tue Jan 12 04:08:07 UTC 2021
Currently the `"reinterpretX2D"` match rule does not generate any register move instruction if the` 'dst'` and` 'src'` are the same register. This rule implements the vector reinterpretation from 16 bytes to 8 bytes. It is a kind of data truncation, which should make sure the higher 8 bytes of the `'dst' `register cleared to zero. So the `"mov" `is always needed even if the` "dst"` and `"src"` are the same register in case of the issue mentioned in [1].
We have tested the case [3] with Arm NEON. And the issue still exists even if [1] is fixed with [2]. Removing the check (i.e. whether `'src'` and `'dst`' are the same register) in the rule would fix it finally.
[1] https://bugs.openjdk.java.net/browse/JDK-8259353
[2] https://github.com/openjdk/jdk16/pull/100
[3] https://bugs.openjdk.java.net/secure/attachment/92713/Test.java
-------------
Commit messages:
- 8259601: AArch64: Fix reinterpretX2D match rule issue
Changes: https://git.openjdk.java.net/jdk16/pull/108/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk16&pr=108&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8259601
Stats: 41 lines in 2 files changed: 17 ins; 1 del; 23 mod
Patch: https://git.openjdk.java.net/jdk16/pull/108.diff
Fetch: git fetch https://git.openjdk.java.net/jdk16 pull/108/head:pull/108
PR: https://git.openjdk.java.net/jdk16/pull/108
More information about the hotspot-compiler-dev
mailing list