< prev index next >

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

Print this page

        

@@ -152,11 +152,11 @@
             throw new IllegalArgumentException("Vector length this species length differ");
 
         return VectorIntrinsics.cast(
             ByteMaxVector.class,
             byte.class, LENGTH,
-            s.boxType(),
+            s.vectorType(),
             s.elementType(), LENGTH,
             this, s,
             (species, vector) -> vector.castDefault(species)
         );
     }

@@ -290,48 +290,48 @@
 
     @Override
     @ForceInline
     public ByteVector reshape(VectorSpecies<Byte> s) {
         Objects.requireNonNull(s);
-        if (s.bitSize() == 64 && (s.boxType() == Byte64Vector.class)) {
+        if (s.bitSize() == 64 && (s.vectorType() == Byte64Vector.class)) {
             return VectorIntrinsics.reinterpret(
                 ByteMaxVector.class,
                 byte.class, LENGTH,
                 Byte64Vector.class,
                 byte.class, Byte64Vector.LENGTH,
                 this, s,
                 (species, vector) -> (ByteVector) vector.defaultReinterpret(species)
             );
-        } else if (s.bitSize() == 128 && (s.boxType() == Byte128Vector.class)) {
+        } else if (s.bitSize() == 128 && (s.vectorType() == Byte128Vector.class)) {
             return VectorIntrinsics.reinterpret(
                 ByteMaxVector.class,
                 byte.class, LENGTH,
                 Byte128Vector.class,
                 byte.class, Byte128Vector.LENGTH,
                 this, s,
                 (species, vector) -> (ByteVector) vector.defaultReinterpret(species)
             );
-        } else if (s.bitSize() == 256 && (s.boxType() == Byte256Vector.class)) {
+        } else if (s.bitSize() == 256 && (s.vectorType() == Byte256Vector.class)) {
             return VectorIntrinsics.reinterpret(
                 ByteMaxVector.class,
                 byte.class, LENGTH,
                 Byte256Vector.class,
                 byte.class, Byte256Vector.LENGTH,
                 this, s,
                 (species, vector) -> (ByteVector) vector.defaultReinterpret(species)
             );
-        } else if (s.bitSize() == 512 && (s.boxType() == Byte512Vector.class)) {
+        } else if (s.bitSize() == 512 && (s.vectorType() == Byte512Vector.class)) {
             return VectorIntrinsics.reinterpret(
                 ByteMaxVector.class,
                 byte.class, LENGTH,
                 Byte512Vector.class,
                 byte.class, Byte512Vector.LENGTH,
                 this, s,
                 (species, vector) -> (ByteVector) vector.defaultReinterpret(species)
             );
         } else if ((s.bitSize() > 0) && (s.bitSize() <= 2048)
-                && (s.bitSize() % 128 == 0) && (s.boxType() == ByteMaxVector.class)) {
+                && (s.bitSize() % 128 == 0) && (s.vectorType() == ByteMaxVector.class)) {
             return VectorIntrinsics.reinterpret(
                 ByteMaxVector.class,
                 byte.class, LENGTH,
                 ByteMaxVector.class,
                 byte.class, ByteMaxVector.LENGTH,

@@ -654,52 +654,80 @@
         return blend(xor(v), m);
     }
 
     @Override
     @ForceInline
-    public ByteMaxVector shiftL(int s) {
+    public ByteMaxVector shiftLeft(int s) {
         return VectorIntrinsics.broadcastInt(
             VECTOR_OP_LSHIFT, ByteMaxVector.class, byte.class, LENGTH,
             this, s,
-            (v, i) -> v.uOp((__, a) -> (byte) (a << (i & 7))));
+            (v, i) -> v.uOp((__, a) -> (byte) (a << (i & 0x7))));
     }
 
     @Override
     @ForceInline
-    public ByteMaxVector shiftL(int s, VectorMask<Byte> m) {
-        return blend(shiftL(s), m);
+    public ByteMaxVector shiftLeft(int s, VectorMask<Byte> m) {
+        return blend(shiftLeft(s), m);
     }
 
     @Override
     @ForceInline
-    public ByteMaxVector shiftR(int s) {
+    public ByteMaxVector shiftLeft(Vector<Byte> s) {
+        ByteMaxVector shiftv = (ByteMaxVector)s;
+        // As per shift specification for Java, mask the shift count.
+        shiftv = shiftv.and(ByteVector.broadcast(SPECIES, (byte) 0x7));
+        return this.bOp(shiftv, (i, a, b) -> (byte) (a << (b & 0x7)));
+    }
+
+    @Override
+    @ForceInline
+    public ByteMaxVector shiftRight(int s) {
         return VectorIntrinsics.broadcastInt(
             VECTOR_OP_URSHIFT, ByteMaxVector.class, byte.class, LENGTH,
             this, s,
-            (v, i) -> v.uOp((__, a) -> (byte) ((a & 0xFF) >>> (i & 7))));
+            (v, i) -> v.uOp((__, a) -> (byte) ((a & 0xFF) >>> (i & 0x7))));
     }
 
     @Override
     @ForceInline
-    public ByteMaxVector shiftR(int s, VectorMask<Byte> m) {
-        return blend(shiftR(s), m);
+    public ByteMaxVector shiftRight(int s, VectorMask<Byte> m) {
+        return blend(shiftRight(s), m);
     }
 
     @Override
     @ForceInline
-    public ByteMaxVector aShiftR(int s) {
+    public ByteMaxVector shiftRight(Vector<Byte> s) {
+        ByteMaxVector shiftv = (ByteMaxVector)s;
+        // As per shift specification for Java, mask the shift count.
+        shiftv = shiftv.and(ByteVector.broadcast(SPECIES, (byte) 0x7));
+        return this.bOp(shiftv, (i, a, b) -> (byte) (a >>> (b & 0x7)));
+    }
+
+    @Override
+    @ForceInline
+    public ByteMaxVector shiftArithmeticRight(int s) {
         return VectorIntrinsics.broadcastInt(
             VECTOR_OP_RSHIFT, ByteMaxVector.class, byte.class, LENGTH,
             this, s,
-            (v, i) -> v.uOp((__, a) -> (byte) (a >> (i & 7))));
+            (v, i) -> v.uOp((__, a) -> (byte) (a >> (i & 0x7))));
+    }
+
+    @Override
+    @ForceInline
+    public ByteMaxVector shiftArithmeticRight(int s, VectorMask<Byte> m) {
+        return blend(shiftArithmeticRight(s), m);
     }
 
     @Override
     @ForceInline
-    public ByteMaxVector aShiftR(int s, VectorMask<Byte> m) {
-        return blend(aShiftR(s), m);
+    public ByteMaxVector shiftArithmeticRight(Vector<Byte> s) {
+        ByteMaxVector shiftv = (ByteMaxVector)s;
+        // As per shift specification for Java, mask the shift count.
+        shiftv = shiftv.and(ByteVector.broadcast(SPECIES, (byte) 0x7));
+        return this.bOp(shiftv, (i, a, b) -> (byte) (a >> (b & 0x7)));
     }
+
     // Ternary operations
 
 
     // Type specific horizontal reductions
 

@@ -1026,21 +1054,21 @@
     }
 
 
 
     @Override
-    public ByteMaxVector rotateEL(int j) {
+    public ByteMaxVector rotateLanesLeft(int j) {
         byte[] vec = getElements();
         byte[] res = new byte[length()];
         for (int i = 0; i < length(); i++){
             res[(j + i) % length()] = vec[i];
         }
         return new ByteMaxVector(res);
     }
 
     @Override
-    public ByteMaxVector rotateER(int j) {
+    public ByteMaxVector rotateLanesRight(int j) {
         byte[] vec = getElements();
         byte[] res = new byte[length()];
         for (int i = 0; i < length(); i++){
             int z = i - j;
             if(j < 0) {

@@ -1051,21 +1079,21 @@
         }
         return new ByteMaxVector(res);
     }
 
     @Override
-    public ByteMaxVector shiftEL(int j) {
+    public ByteMaxVector shiftLanesLeft(int j) {
         byte[] vec = getElements();
         byte[] res = new byte[length()];
         for (int i = 0; i < length() - j; i++) {
             res[i] = vec[i + j];
         }
         return new ByteMaxVector(res);
     }
 
     @Override
-    public ByteMaxVector shiftER(int j) {
+    public ByteMaxVector shiftLanesRight(int j) {
         byte[] vec = getElements();
         byte[] res = new byte[length()];
         for (int i = 0; i < length() - j; i++){
             res[i + j] = vec[i];
         }
< prev index next >