[vector] Mask/Shuffle from/intoArray
Paul Sandoz
paul.sandoz at oracle.com
Fri Mar 16 15:25:26 UTC 2018
Although now i have read your email on "1-byte and 2-byte vectors” are opmask registers leveraged at the moment on AVX-512 architectures?
Paul.
> On Mar 15, 2018, at 9:53 PM, Lupusoru, Razvan A <razvan.a.lupusoru at intel.com> wrote:
>
> You're right - I forgot that we add that extra layer explicitly during boxing/unboxing to handle the transition to/from hardware representation. I just got excited because for a second there it looked like we could get the intrinsification for free.
>
> --Razvan
>
> -----Original Message-----
> From: Paul Sandoz [mailto:paul.sandoz at oracle.com]
> Sent: Thursday, March 15, 2018 5:05 PM
> To: Lupusoru, Razvan A <razvan.a.lupusoru at intel.com>
> Cc: panama-dev at openjdk.java.net
> Subject: Re: [vector] Mask/Shuffle from/intoArray
>
>
>
>> On Mar 15, 2018, at 4:13 PM, Lupusoru, Razvan A <razvan.a.lupusoru at intel.com> wrote:
>>
>> Looks good to me!
>>
>
> Thanks.
>
>
>> Also, I wonder what will happen if you try to intrinsify the intoArray using same support that was made to intrinsify vector stores.
>>
>
> Unsure, might be problematic if the mask and vector hardware representation differ e.g. opmask register?
>
> Paul.
>
>
>> This is what you would put in X-VectorBits.java.template:
>> @Override
>> @ForceInline
>> public void intoArray(boolean[] a, int ix) {
>> Objects.requireNonNull(a);
>> ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
>> VectorIntrinsics.store($masktype$.class, boolean.class, LENGTH,
>> a, ix, this,
>> (arr, idx, v) -> v.forEach((i, a_) -> ((boolean[])arr)[idx + i] = a_));
>> }
>>
>> --Razvan
>>
>> -----Original Message-----
>> From: panama-dev [mailto:panama-dev-bounces at openjdk.java.net] On Behalf Of Paul Sandoz
>> Sent: Thursday, March 15, 2018 4:02 PM
>> To: panama-dev at openjdk.java.net
>> Subject: [vector] Mask/Shuffle from/intoArray
>>
>> Hi,
>>
>> http://cr.openjdk.java.net/~psandoz/panama/mask-to-from-array/webrev/ <http://cr.openjdk.java.net/~psandoz/panama/mask-to-from-array/webrev/>
>>
>> Methods have been added to create Mask or Shuffle from an array at a index, and likewise store values into an array at an index.
>>
>> I kept the Mask/Shuffle.toArray array returning methods. For consistency I added a *Vector.toArray.
>>
>> I tried to improve the names and consistency of the existing Species factory methods:
>>
>> constantMask -> maskFromValues
>> trueMask -> maskAllTrue
>> falseMask -> maskAllFalse
>> constantShuffle -> shuffleFromValues
>>
>> Paul.
>>
>
More information about the panama-dev
mailing list