-
Bug
-
Resolution: Fixed
-
P3
-
21, 22
-
b19
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8322070 | 21.0.3-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8323148 | 21.0.3 | Goetz Lindenmaier | P3 | Resolved | Fixed | b01 |
./java -XX:CompileCommand=compileonly,Test22::test22 -XX:CompileCommand=printcompilation,Test22::test* -XX:LoopUnrollLimit=250 -XX:UseAVX=2 -Xbatch -XX:+TraceSuperWord -XX:+TraceLoopOpts -XX:LoopMaxUnroll=8 Test22.java
You get:
Exception in thread "main" java.lang.RuntimeException: bad a
at Test22.verify(Test22.java:40)
at Test22.main(Test22.java:26)
But with "-Xint", there is no such exception.
I have a similar example, which also uses Unsafe:
./java -XX:CompileCommand=compileonly,Test21::test21 -XX:CompileCommand=printcompilation,Test21::test* -XX:LoopUnrollLimit=250 --add-modules java.base --add-exports java.base/jdk.internal.misc=ALL-UNNAMED -XX:UseAVX=2 -Xbatch -XX:+TraceSuperWord Test21.java
You get:
Exception in thread "main" java.lang.RuntimeException: bad 18
at Test21.main(Test21.java:28)
But again, we have no exception with "-Xint".
- backported by
-
JDK-8322070 C2 SuperWord: wrong result with hand unrolled loops
- Resolved
-
JDK-8323148 C2 SuperWord: wrong result with hand unrolled loops
- Resolved
- blocks
-
JDK-8310190 C2 SuperWord: AlignVector is broken, generates misaligned packs
- Resolved
- is blocked by
-
JDK-8316679 C2 SuperWord: wrong result, load should not be moved before store if not comparable
- Resolved
- relates to
-
JDK-8308606 C2 SuperWord: remove alignment checks when not required
- Resolved
- links to
-
Commit openjdk/jdk21u-dev/db1fa92d
-
Commit openjdk/jdk/3630af26
-
Review openjdk/jdk21u-dev/110
-
Review openjdk/jdk/15866