VectorAPI Scatter Gather Intrinsic Support
    Vladimir Ivanov 
    vladimir.x.ivanov at oracle.com
       
    Mon Dec  3 19:54:25 UTC 2018
    
    
  
One more question:
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template:
+        VectorIntrinsics.storeWithMap($vectortype$.class, $type$.class, 
LENGTH,
+                               a, Unsafe.ARRAY_$TYPE$_BASE_OFFSET, 
vecInd, vecInd.getClass(),
Why do you need vecInd class in the intrinsic?
My main concern with proposed code shape is there are no guarantees it's 
a compile-time constant. And those special cases on Java side for 
Long64/Double64 only complicates the picture. Moreover, on C2 side it 
turns out it's optional:
src/hotspot/share/opto/library_call.cpp:
+bool LibraryCallKit::inline_vector_gather_scatter(bool is_scatter) {
...
+  const TypeInstPtr* vector_idx_klass = 
gvn().type(argument(7))->is_instptr();
...
+  ciKlass* vbox_idx_klass = NULL;
+  if (vector_idx_klass->const_oop() == NULL) {
+    vbox_idx_klass = 
elem_klass->const_oop()->as_instance()->java_lang_Class_klass();
+  } else {
+    vbox_idx_klass = 
vector_idx_klass->const_oop()->as_instance()->java_lang_Class_klass();
+  }
So, why not simply get rid of it?
Best regards,
Vladimir Ivanov
On 30/11/2018 18:19, Rukmannagari, Shravya wrote:
> Hi All,
> 
> I would like to contribute a patch that adds scatter and gather support in Java for int, float, long and double datatypes.
> 
> 
> 
> Could you please review the patch here:
> 
> http://cr.openjdk.java.net/~srukmannagar/VectorAPI_ScatterGather/webrev.00/
> 
> 
> 
> Thanks,
> 
> Shravya.
> 
> 
    
    
More information about the panama-dev
mailing list