[vector] open issues tagged with vectorIntrinsic label

Viswanathan, Sandhya sandhya.viswanathan at intel.com
Wed Nov 6 01:14:27 UTC 2019


Hi Paul,

Of the list that you identified, I have marked the following as resolved with description in the bug:
 https://bugs.openjdk.java.net/browse/JDK-8225018
 https://bugs.openjdk.java.net/browse/JDK-8224988
 https://bugs.openjdk.java.net/browse/JDK-8222897
 https://bugs.openjdk.java.net/browse/JDK-8223368:  A minor note, the REINTERPRET_F2I is specified in JavaDoc to use floatToRawIntBits() whereas D2L is not using the Raw version. The intrinsics would be what "Raw" versions do, just reinterpret the bits.

The following are still open:
  https://bugs.openjdk.java.net/browse/JDK-8223367
  https://bugs.openjdk.java.net/browse/JDK-8221816
  The problem in both is the gather/scatter with mask (fromArray, intoArray) is not implemented. Need your help on this one.

The following is likely fixed by John:
  https://bugs.openjdk.java.net/browse/JDK-8223366  

Best Regards,
Sandhya

-----Original Message-----
From: Viswanathan, Sandhya 
Sent: Tuesday, November 05, 2019 1:19 PM
To: Paul Sandoz <paul.sandoz at oracle.com>; panama-dev at openjdk.java.net
Subject: RE: [vector] open issues tagged with vectorIntrinsic label

Hi Paul,

I have started looking at these and closed 8225018.

Looks like 8223367 is open because of masked gather/scatter. Code excerpts below with cases not handled for your reference:

IntVector.java

2924     @ForceInline
2925     public static
2926     IntVector fromArray(VectorSpecies<Integer> species,
2927                                    int[] a, int offset,
2928                                    int[] indexMap, int mapOffset,
2929                                    VectorMask<Integer> m) {
2930         IntSpecies vsp = (IntSpecies) species;
2931
2932         // FIXME This can result in out of bounds errors for unset mask lanes
2933         // FIX = Use a scatter instruction which routes the unwanted lanes
2934         // into a bit-bucket variable (private to implementation).
2935         // This requires a 2-D scatter in order to set a second base address.
2936         // See notes in https://bugs.openjdk.java.net/browse/JDK-8223367
2937         assert(m.allTrue());
2938         return (IntVector)
2939             zero(species).blend(fromArray(species, a, offset, indexMap, mapOffset), m);
2940
2941     }


3209     @ForceInline
3210     public final
3211     void intoArray(int[] a, int offset,
3212                    int[] indexMap, int mapOffset,
3213                    VectorMask<Integer> m) {
3214         IntSpecies vsp = vspecies();
3215         if (m.allTrue()) {
3216             intoArray(a, offset, indexMap, mapOffset);
3217             return;
3218         }
3219         throw new AssertionError("fixme");
3220     }

Best Regards,
Sandhya

-----Original Message-----
From: panama-dev <panama-dev-bounces at openjdk.java.net> On Behalf Of Paul Sandoz
Sent: Friday, November 01, 2019 12:11 PM
To: panama-dev at openjdk.java.net
Subject: [vector] open issues tagged with vectorIntrinsic label

Hi,

There are a bunch of open issues tagged with vectorIntrinsic:
 
https://bugs.openjdk.java.net/issues/?jql=status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened%2C%20New)%20AND%20labels%20%3D%20vectorIntrinsics%20ORDER%20BY%20issuetype%20DESC <https://bugs.openjdk.java.net/issues/?jql=status%20in%20(Open,%20%22In%20Progress%22,%20Reopened,%20New)%20AND%20labels%20=%20vectorIntrinsics%20ORDER%20BY%20issuetype%20DESC>

I am wondering what can be marked as resolved or closed.  Please dive in and update or reply on status.


Possible candidates to resolve:

  https://bugs.openjdk.java.net/browse/JDK-8225018 <https://bugs.openjdk.java.net/browse/JDK-8225018>
  9 unit tests for Vector API failed on SkyLake with assert "(((dst_enc < 16 && nds_enc < 16 ..."
  http://hg.openjdk.java.net/panama/dev/rev/73fd0971fb14 <http://hg.openjdk.java.net/panama/dev/rev/73fd0971fb14>


  https://bugs.openjdk.java.net/browse/JDK-8223367 <https://bugs.openjdk.java.net/browse/JDK-8223367>
  [vector] masked memory operations must correctly implement unset lanes


  https://bugs.openjdk.java.net/browse/JDK-8221816 <https://bugs.openjdk.java.net/browse/JDK-8221816>
  [vector] IndexOutOfBoundsException for fromArray/intoArray with unset mask lanes


  https://bugs.openjdk.java.net/browse/JDK-8223366 <https://bugs.openjdk.java.net/browse/JDK-8223366>
  [vector] Vector API should not bake in power-of-two size assumptions


  https://bugs.openjdk.java.net/browse/JDK-8223368 <https://bugs.openjdk.java.net/browse/JDK-8223368>
  [vector] vector API must carefully limit dependencies on native byte order


Possible candidates to close or reevaluate:

  https://bugs.openjdk.java.net/browse/JDK-8224988 <https://bugs.openjdk.java.net/browse/JDK-8224988>
  [vector] Elemental shift and rotate operations speedup
  The API changed and elemental rotate/shift can be supported by slice, receiver vector passed as arg, or zero vector passed as arg, which I presume requires a different set of optimization techniques to trigger the right instructions.


  https://bugs.openjdk.java.net/browse/JDK-8222897 <https://bugs.openjdk.java.net/browse/JDK-8222897>
  Renaming of shift, rotate operations. Few other api changes.


Paul.



More information about the panama-dev mailing list