- With JDK-8309531 we have disabled the intrinsification of shuffle Iota for following conditions :-
- wrap = false, non-constant start and step value.
- wrap = false, constant start and step value where effective shuffle index is out of byte value range [127, -128].
- Existing intrinsic operate over byte vectors, for unwrapped shuffle Iota computed effective index is used to create a comparison mask where a lane is set to true when effective index value is greater than vector length.
- Effective index is then wrapped and vector length is subtracted from it if corresponding comparison mask is true.
- wrap = false, non-constant start and step value.
- wrap = false, constant start and step value where effective shuffle index is out of byte value range [127, -128].
- Existing intrinsic operate over byte vectors, for unwrapped shuffle Iota computed effective index is used to create a comparison mask where a lane is set to true when effective index value is greater than vector length.
- Effective index is then wrapped and vector length is subtracted from it if corresponding comparison mask is true.
- relates to
-
JDK-8309531 Incorrect result with unwrapped iotaShuffle.
-
- Resolved
-