RFR: 8288397: AArch64: Fix register issues in SVE backend match rules
Xiaohong Gong
xgong at openjdk.java.net
Wed Jun 15 09:49:22 UTC 2022
There are register usage issues in the sve backend match rules, which made the two added jtreg tests fail.
The predicated vector "`not`" rules didn't use the same register for "`src`" and "`dst`", which is necessary to make sure the inactive lanes in "`dst`" save the same elements as "`src`". This patch fixes the rules by using the same register for "`dst`" and "`src`".
And the input idx register in "`gatherL/scatterL`" rules was overwritten by the first unpack instruction. The same issue also existed in the partial and predicated gatherL/scatterL rules. This patch fixes them by saving the unpack results into a temp register and use it as the index for gather/scatter.
-------------
Commit messages:
- 8288397: AArch64: Fix register issues in SVE backend match rules
Changes: https://git.openjdk.org/jdk19/pull/17/files
Webrev: https://webrevs.openjdk.org/?repo=jdk19&pr=17&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8288397
Stats: 334 lines in 4 files changed: 274 ins; 0 del; 60 mod
Patch: https://git.openjdk.org/jdk19/pull/17.diff
Fetch: git fetch https://git.openjdk.org/jdk19 pull/17/head:pull/17
PR: https://git.openjdk.org/jdk19/pull/17
More information about the hotspot-compiler-dev
mailing list