< prev index next >

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

Print this page
rev 54658 : refactored mask and shuffle creation methods, moved classes to top-level
rev 54660 : Javadoc changes

*** 168,208 **** Class<?> stype = s.elementType(); if (stype == byte.class) { byte[] a = new byte[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (byte) this.get(i); } return (Vector) ByteVector.fromArray((VectorSpecies<Byte>) s, a, 0); } else if (stype == short.class) { short[] a = new short[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (short) this.get(i); } return (Vector) ShortVector.fromArray((VectorSpecies<Short>) s, a, 0); } else if (stype == int.class) { int[] a = new int[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (int) this.get(i); } return (Vector) IntVector.fromArray((VectorSpecies<Integer>) s, a, 0); } else if (stype == long.class) { long[] a = new long[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (long) this.get(i); } return (Vector) LongVector.fromArray((VectorSpecies<Long>) s, a, 0); } else if (stype == float.class) { float[] a = new float[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (float) this.get(i); } return (Vector) FloatVector.fromArray((VectorSpecies<Float>) s, a, 0); } else if (stype == double.class) { double[] a = new double[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (double) this.get(i); } return (Vector) DoubleVector.fromArray((VectorSpecies<Double>) s, a, 0); } else { throw new UnsupportedOperationException("Bad lane type for casting."); } --- 168,208 ---- Class<?> stype = s.elementType(); if (stype == byte.class) { byte[] a = new byte[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (byte) this.lane(i); } return (Vector) ByteVector.fromArray((VectorSpecies<Byte>) s, a, 0); } else if (stype == short.class) { short[] a = new short[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (short) this.lane(i); } return (Vector) ShortVector.fromArray((VectorSpecies<Short>) s, a, 0); } else if (stype == int.class) { int[] a = new int[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (int) this.lane(i); } return (Vector) IntVector.fromArray((VectorSpecies<Integer>) s, a, 0); } else if (stype == long.class) { long[] a = new long[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (long) this.lane(i); } return (Vector) LongVector.fromArray((VectorSpecies<Long>) s, a, 0); } else if (stype == float.class) { float[] a = new float[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (float) this.lane(i); } return (Vector) FloatVector.fromArray((VectorSpecies<Float>) s, a, 0); } else if (stype == double.class) { double[] a = new double[limit]; for (int i = 0; i < limit; i++) { ! a[i] = (double) this.lane(i); } return (Vector) DoubleVector.fromArray((VectorSpecies<Double>) s, a, 0); } else { throw new UnsupportedOperationException("Bad lane type for casting."); }
*** 1087,1098 **** return VectorIntrinsics.rearrangeOp( Byte128Vector.class, Byte128Shuffle.class, byte.class, LENGTH, this, s, (v1, s_) -> v1.uOp((i, a) -> { ! int ei = s_.getElement(i); ! return v1.get(ei); })); } @Override @ForceInline --- 1087,1098 ---- return VectorIntrinsics.rearrangeOp( Byte128Vector.class, Byte128Shuffle.class, byte.class, LENGTH, this, s, (v1, s_) -> v1.uOp((i, a) -> { ! int ei = s_.lane(i); ! return v1.lane(ei); })); } @Override @ForceInline
*** 1103,1119 **** Byte128Mask m = (Byte128Mask)o2; return VectorIntrinsics.blend( Byte128Vector.class, Byte128Mask.class, byte.class, LENGTH, this, v, m, ! (v1, v2, m_) -> v1.bOp(v2, (i, a, b) -> m_.getElement(i) ? b : a)); } // Accessors @Override ! public byte get(int i) { if (i < 0 || i >= LENGTH) { throw new IllegalArgumentException("Index " + i + " must be zero or positive, and less than " + LENGTH); } return (byte) VectorIntrinsics.extract( Byte128Vector.class, byte.class, LENGTH, --- 1103,1119 ---- Byte128Mask m = (Byte128Mask)o2; return VectorIntrinsics.blend( Byte128Vector.class, Byte128Mask.class, byte.class, LENGTH, this, v, m, ! (v1, v2, m_) -> v1.bOp(v2, (i, a, b) -> m_.lane(i) ? b : a)); } // Accessors @Override ! public byte lane(int i) { if (i < 0 || i >= LENGTH) { throw new IllegalArgumentException("Index " + i + " must be zero or positive, and less than " + LENGTH); } return (byte) VectorIntrinsics.extract( Byte128Vector.class, byte.class, LENGTH,
*** 1310,1320 **** @Override public ByteVector toVector() { byte[] va = new byte[SPECIES.length()]; for (int i = 0; i < va.length; i++) { ! va[i] = (byte) getElement(i); } return ByteVector.fromArray(SPECIES, va, 0); } @Override --- 1310,1320 ---- @Override public ByteVector toVector() { byte[] va = new byte[SPECIES.length()]; for (int i = 0; i < va.length; i++) { ! va[i] = (byte) lane(i); } return ByteVector.fromArray(SPECIES, va, 0); } @Override
< prev index next >