For Float/Double masks, VectorMaskCast between VectorStoreMask and VectorLoadMask prevents VectorStoreMask::Identity from collapsing the pair.
This blocks VectorMaskToLong from folding fromLong(...).toLong(). Integral types are unaffected (no VectorMaskCast in their chain).
Reproduces intermittently under StressIncrementalInlining.
Proposed fix is to make VectorStoreMask::Identity look through VectorMaskCast.
Repro in fastdebug with TestVectorMaskToLongFloatDouble.java
Problem visible after fixing https://bugs.openjdk.org/browse/JDK-8375688, as it can assert first.
This blocks VectorMaskToLong from folding fromLong(...).toLong(). Integral types are unaffected (no VectorMaskCast in their chain).
Reproduces intermittently under StressIncrementalInlining.
Proposed fix is to make VectorStoreMask::Identity look through VectorMaskCast.
Repro in fastdebug with TestVectorMaskToLongFloatDouble.java
Problem visible after fixing https://bugs.openjdk.org/browse/JDK-8375688, as it can assert first.
- relates to
-
JDK-8375688 C2: Missed Ideal optimization opportunity with VectorMaskToLong and -XX:+StressIncrementalInlining
-
- Open
-