8320897: compiler/vectorapi/reshape/TestVectorReinterpret.java fails on ppc64(le) platforms#30554
8320897: compiler/vectorapi/reshape/TestVectorReinterpret.java fails on ppc64(le) platforms#30554TheRealMDoerr wants to merge 2 commits intoopenjdk:masterfrom
Conversation
…on ppc64(le) platforms
|
👋 Welcome back mdoerr! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
@TheRealMDoerr The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
|
@offamitkumar: You may want to check if this solves JDK-8348519, too. |
Webrevs
|
Hi Martin, yes, failure is not anymore there, test is disabled for s390. |
I mean if it passes when you remove it from the ProblemList: diff --git a/test/hotspot/jtreg/ProblemList.txt b/test/hotspot/jtreg/ProblemList.txt
index d4efaa7e631..b4f9efff830 100644
--- a/test/hotspot/jtreg/ProblemList.txt
+++ b/test/hotspot/jtreg/ProblemList.txt
@@ -56,7 +56,6 @@ compiler/c2/irTests/TestDuplicateBackedge.java 8318904 generic-all
compiler/codecache/jmx/PoolsIndependenceTest.java 8264632 macosx-all
-compiler/vectorapi/reshape/TestVectorReinterpret.java 8348519 linux-s390x
compiler/vectorapi/VectorRebracket128Test.java 8330538 generic-all
compiler/vectorization/TestVectorAlgorithms.java#noSuperWord 8376803 aix-ppc64,linux-s390x |
|
Hi Martin, |
|
/issue add JDK-8320897 |
|
@TheRealMDoerr This issue is referenced in the PR title - it will now be updated. |
Thanks for checking! I have added the Problem List update to this PR. A review would be nice. |
|
/issue add JDK-8348519 |
|
@TheRealMDoerr |
offamitkumar
left a comment
There was a problem hiding this comment.
Thanks for fixing it. LGTM.
|
This means that c2 does not use vector intrinsics on ppc64, right? Would c2 be able to use the intrinsics with -XX:-SuperwordUseVSX? E.g. are there vector instructions for, e.g., ByteVector.SPECIES_64? |
This means that c2 does not use 8 Byte vector intrinsics for Reinterpret operations if SuperwordUseVSX is enabled (default on Power9 and later). In this mode, only 16 Byte VectorRegisters are used by the intrinsics which are passing the IR checks for non-8 Byte Reinterpret operations in this test. |
|
Are these test a type conversion and at runtime basically a nop?
I meant this as a more general question. I'd like to understand if there are instructions (besides load/store) for operations on ByteVector.SPECIES_64 vector data and if we miss opportunities for optimization if SuperwordUseVSX is enabled. |
Yes. At least as long as the result uses the same vector register type as the input.
I'd like to understand that, too ;-) |
|
Why are the IR checks failing for |
Seems like only |
From the name |
|
|
Looks like I assume this is because of the length filtering here:
jdk/src/hotspot/cpu/aarch64/aarch64_vector.ad Line 4446 in dc81630 On ppc64 the predicate is missing. Maybe that's ok because we only support vecX. |
testB64toB128andtestB128toB64are using 8 Byte vector operations which are available for some platforms, but not for ppc64 and s390 which currently only support 16 Byte vector operations by default:See JBS comment for complete output.
Similar for
TestVectorRebracketmethods.Progress
Issues
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/30554/head:pull/30554$ git checkout pull/30554Update a local copy of the PR:
$ git checkout pull/30554$ git pull https://git.openjdk.org/jdk.git pull/30554/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 30554View PR using the GUI difftool:
$ git pr show -t 30554Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/30554.diff
Using Webrev
Link to Webrev Comment