< prev index next >

src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java

Print this page
rev 49878 : ByteBuffers need to use native order

All ByteBuffers need to use native order since intrinsification leads
to use of vector operations with native order. Additionally, using
native order means there is no preferential treatment to ordering
that would create unnecessary overheads.

@@ -486,17 +486,17 @@
     public abstract FloatVector<S> hypot(float o, Mask<Float,S> m);
 
 
     @Override
     public void intoByteArray(byte[] a, int ix) {
-        ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix);
+        ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix).order(ByteOrder.nativeOrder());
         intoByteBuffer(bb);
     }
 
     @Override
     public void intoByteArray(byte[] a, int ix, Mask<Float, S> m) {
-        ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix);
+        ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix).order(ByteOrder.nativeOrder());
         intoByteBuffer(bb, m);
     }
 
     @Override
     public void intoByteBuffer(ByteBuffer bb) {

@@ -857,17 +857,17 @@
             return op(m, n -> a[i + indexMap[j + n]]);
         }
 
         @Override
         public FloatVector<S> fromByteArray(byte[] a, int ix) {
-            ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix);
+            ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix).order(ByteOrder.nativeOrder());
             return fromByteBuffer(bb);
         }
 
         @Override
         public FloatVector<S> fromByteArray(byte[] a, int ix, Mask<Float, S> m) {
-            ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix);
+            ByteBuffer bb = ByteBuffer.wrap(a, ix, a.length - ix).order(ByteOrder.nativeOrder());
             return fromByteBuffer(bb, m);
         }
 
         @Override
         public FloatVector<S> fromByteBuffer(ByteBuffer bb) {

@@ -888,18 +888,18 @@
             });
         }
 
         @Override
         public FloatVector<S> fromByteBuffer(ByteBuffer bb, int ix) {
-            bb = bb.duplicate().position(ix);
+            bb = bb.duplicate().order(ByteOrder.nativeOrder()).position(ix);
             FloatBuffer fb = bb.asFloatBuffer();
             return op(i -> fb.get(i));
         }
 
         @Override
         public FloatVector<S> fromByteBuffer(ByteBuffer bb, int ix, Mask<Float, S> m) {
-            bb = bb.duplicate().position(ix);
+            bb = bb.duplicate().order(ByteOrder.nativeOrder()).position(ix);
             FloatBuffer fb = bb.asFloatBuffer();
             return op(m, i -> fb.get(i));
         }
 
         @Override
< prev index next >