-
Sub-task
-
Resolution: Fixed
-
P4
-
25
-
b12
The reason for the missing vectorization seems to be that the range checks are not eliminated if the loop exit check in the for expression contains MemorySegment::byteSize() because it takes longer for the loop to be converted to a counted loop
See the attached test case contributed by [~epeter]. Run it with
java -Xbatch -XX:CompileCommand=compileonly,TestLoop.test\* -XX:CompileCommand=printcompilation,TestLoop.test\* -XX:+TraceNewVectors -XX:+TraceLoopOpts Test3.java
- duplicates
-
JDK-8331659 C2 SuperWord: investigate failed vectorization in compiler/loopopts/superword/TestMemorySegment.java
-
- Closed
-
-
JDK-8348096 C2 SuperWord: investigate failed RCE for MemorySegment test
-
- Closed
-
- relates to
-
JDK-8366890 C2: Split through phi printing with TraceLoopOpts misses line break
-
- Resolved
-
-
JDK-8286197 C2: Optimize MemorySegment shape in int loop
-
- Resolved
-
-
JDK-8331659 C2 SuperWord: investigate failed vectorization in compiler/loopopts/superword/TestMemorySegment.java
-
- Closed
-
- links to
-
Commit(master) openjdk/jdk/626bea80
-
Review(master) openjdk/jdk/26429