RFR: 8300258: C2: vectorization fails on simple ByteBuffer loop [v2]
Emanuel Peter
epeter at openjdk.org
Fri Feb 24 08:11:07 UTC 2023
On Thu, 23 Feb 2023 20:21:27 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> Do we have the same alias index or different for 2 arrays in testByteByte1() test?
@vnkozlov as explained in https://github.com/openjdk/jdk/pull/12440#discussion_r1116622180, SuperWord seems to have all arrays of the same basic type in the same slice. If a method has two input arrays, they must be in the same slice, because we do not know if it is maybe the same array.
However, if the two arrays have different basic types, then they are in separate memory slices.
Basically, @rwestrel has detected a subtle difference between `memory slice` and `velt_type`. Usually, the two are identical. But with `Unsafe`, the type of the load/store can be different to that of the array.
@rwestrel : can you change the name of the Bug to reflect this? Suggestion:
`C2: SuperWord alignment analysis must be based on memory slice, not velt type`
-------------
PR: https://git.openjdk.org/jdk/pull/12440
More information about the hotspot-compiler-dev
mailing list