If we can prove (statically or with a runtime-check) that two arrays are different, then this removes edges from the dependency graph, and may allow vectorization that would otherwise not be possible.
As discussed inJDK-8323582 / https://github.com/openjdk/jdk/pull/22016#issuecomment-2680894298, we should write some benchmarks to prove that we need the slow and fast loop, and so that the complexity of the slow_loop is really justified.
Also: add a Flag to disable the predicate for Auto Vectorization.
As discussed in
Also: add a Flag to disable the predicate for Auto Vectorization.
- is blocked by
-
JDK-8323582 C2 SuperWord AlignVector: misaligned vector memory access with unaligned native memory
-
- Resolved
-
-
JDK-8354477 C2 SuperWord: make use of memory edges more explicit
-
- Open
-
-
JDK-8343685 C2 SuperWord: refactor VPointer with MemPointer
-
- Resolved
-
-
JDK-8315361 C2 SuperWord: refactor out loop analysis into shared auto-vectorization facility VLoopAnalyzer
-
- Closed
-
- relates to
-
JDK-8324752 C2 Superword: remove SuperWordRTDepCheck
-
- Resolved
-
-
JDK-8354303 C2 SuperWord: Aliasing Analysis: newly allocated arrays cannot alias
-
- Open
-
(1 relates to)