RFR: 8271589: fatal error with variable shift count integer rotate operation.

Jatin Bhateja jbhateja at openjdk.java.net
Tue Aug 3 01:55:32 UTC 2021


On Mon, 2 Aug 2021 19:39:39 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> > > I assume `TestLongVectRotate.java` should be also updated.
> > > And you need add cases for Long type vector shifts if they can be generated.
> > 
> > 
> > Long rotates patterns with variable shifts i.e. Long.rotateLeft/Right(a[i], int_b[i]/ (int) long_b[i]) are not auto-vectorized currently.
> > Problem is only seen with rotation over integers. I have kept the changes minimal as suggested earlier.
> 
> You said in an other comment:
> "This is to handle long rotates, SLP will insert a ConvI2L before broadcasting shift value into a long vector."
> 
Yes this comment is valid for Long.rotateLeft/Right(a[i], SHIFT/IMM_SHIFT) patterns.

> Is it really a big change for test to cover this case? This is new code in your changes which needs test coverage I think.
> 
> I will start testing current changes (with removed assert(is_invariant_vector()) we agreed on).

-------------

PR: https://git.openjdk.java.net/jdk/pull/4956


More information about the hotspot-compiler-dev mailing list