[vectorIntrinsics] [PATCH] Elemental shifts and rotates speedup
Kharbas, Kishor
kishor.kharbas at intel.com
Tue Jun 4 22:49:24 UTC 2019
Hi Jatin,
As John pointed, there is discrepancy in Javadoc and the definition of shiftLanesLeft, shiftLanesRight.
Otherwise the patch looks good.
Thanks,
Kishor
> -----Original Message-----
> From: panama-dev [mailto:panama-dev-bounces at openjdk.java.net] On
> Behalf Of Bhateja, Jatin
> Sent: Friday, May 31, 2019 3:27 AM
> To: john.r.rose at oracle.com
> Cc: panama-dev at openjdk.java.net
> Subject: Re: [vectorIntrinsics] [PATCH] Elemental shifts and rotates speedup
>
>
> Hi John,
>
> Thanks for your comments.
>
> Please find my response embedded below.
>
> Regards,
> Jatin
>
> -------- Original message --------
> From: John Rose <john.r.rose at oracle.com>
> Date: 30/05/2019 22:12 (GMT+05:30)
> To: "Bhateja, Jatin" <jatin.bhateja at intel.com>
> Cc: panama-dev at openjdk.java.net
> Subject: Re: [vectorIntrinsics] [PATCH] Elemental shifts and rotates speedup
>
> On May 30, 2019, at 9:35 AM, John Rose <john.r.rose at oracle.com> wrote:
> >
> > I looked at the Java changes. They look good.
>
> JATIN >> Thanks
>
> One more comment at the API level. I have been thinking about the Java
> rules for <<n and >>n, versus our vector-level shifting operations, and I think
> the Java rules are not for the best here. So in Java x<<n is reduced modulo
> bitsize(x) (by and-ing with n-1). But this doesn't seem to make sense (to me)
> when working with lanes.
> If you are shifting lanes by a large number, I think you should just shift in
> zeroes or (even better) throw an exception.
>
> Reason: Lane bundles *sometimes* wrap modulo the lane-count but
> *usually* do not, because a bundle of lanes always represents an oriented
> segment in a much larger data workload. In this setting, an overflowing lane
> shift n in shiftLanesRight(n) is probably unintentional and will reorder the
> workload unpredictably.
> The user can say v.shiftLanesRight(n%LC) if the n parameter really needs to
> be wrapped.
>
> Comments?
>
> JATIN>> I agree, shift count at lane level is not modulo wrapped, for count
> greater than lane count and -ve shift count special handling has already been
> done in API definition as you mentioned.
>
> — John
More information about the panama-dev
mailing list