< prev index next >
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java
Print this page
rev 55891 : 8222897: [vector] Renaming of shift, rotate operations. Few other api changes.
Summary: Renaming of shift, rotate operations. Few other api changes.
Reviewed-by: jrose, briangoetz
rev 55894 : 8222897: [vector] Renaming of shift, rotate operations. Few other api changes.
Summary: Renaming of shift, rotate operations. Few other api changes.
Reviewed-by: jrose, briangoetz
*** 161,171 ****
throw new IllegalArgumentException("Vector length this species length differ");
return VectorIntrinsics.cast(
Float128Vector.class,
float.class, LENGTH,
! s.boxType(),
s.elementType(), LENGTH,
this, s,
(species, vector) -> vector.castDefault(species)
);
}
--- 161,171 ----
throw new IllegalArgumentException("Vector length this species length differ");
return VectorIntrinsics.cast(
Float128Vector.class,
float.class, LENGTH,
! s.vectorType(),
s.elementType(), LENGTH,
this, s,
(species, vector) -> vector.castDefault(species)
);
}
*** 299,346 ****
@Override
@ForceInline
public FloatVector reshape(VectorSpecies<Float> s) {
Objects.requireNonNull(s);
! if (s.bitSize() == 64 && (s.boxType() == Float64Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float64Vector.class,
float.class, Float64Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 128 && (s.boxType() == Float128Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float128Vector.class,
float.class, Float128Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 256 && (s.boxType() == Float256Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float256Vector.class,
float.class, Float256Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 512 && (s.boxType() == Float512Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float512Vector.class,
float.class, Float512Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
} else if ((s.bitSize() > 0) && (s.bitSize() <= 2048)
! && (s.bitSize() % 128 == 0) && (s.boxType() == FloatMaxVector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
FloatMaxVector.class,
float.class, FloatMaxVector.LENGTH,
--- 299,346 ----
@Override
@ForceInline
public FloatVector reshape(VectorSpecies<Float> s) {
Objects.requireNonNull(s);
! if (s.bitSize() == 64 && (s.vectorType() == Float64Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float64Vector.class,
float.class, Float64Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 128 && (s.vectorType() == Float128Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float128Vector.class,
float.class, Float128Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 256 && (s.vectorType() == Float256Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float256Vector.class,
float.class, Float256Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 512 && (s.vectorType() == Float512Vector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
Float512Vector.class,
float.class, Float512Vector.LENGTH,
this, s,
(species, vector) -> (FloatVector) vector.defaultReinterpret(species)
);
} else if ((s.bitSize() > 0) && (s.bitSize() <= 2048)
! && (s.bitSize() % 128 == 0) && (s.vectorType() == FloatMaxVector.class)) {
return VectorIntrinsics.reinterpret(
Float128Vector.class,
float.class, LENGTH,
FloatMaxVector.class,
float.class, FloatMaxVector.LENGTH,
*** 837,847 ****
// Type specific horizontal reductions
@Override
@ForceInline
! public float addAll() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_ADD, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp((float) 0, (i, a, b) -> (float) (a + b));
--- 837,847 ----
// Type specific horizontal reductions
@Override
@ForceInline
! public float addLanes() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_ADD, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp((float) 0, (i, a, b) -> (float) (a + b));
*** 850,860 ****
return Float.intBitsToFloat(bits);
}
@Override
@ForceInline
! public float mulAll() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MUL, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp((float) 1, (i, a, b) -> (float) (a * b));
--- 850,860 ----
return Float.intBitsToFloat(bits);
}
@Override
@ForceInline
! public float mulLanes() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MUL, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp((float) 1, (i, a, b) -> (float) (a * b));
*** 863,873 ****
return Float.intBitsToFloat(bits);
}
@Override
@ForceInline
! public float minAll() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MIN, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp(Float.POSITIVE_INFINITY , (i, a, b) -> (float) Math.min(a, b));
--- 863,873 ----
return Float.intBitsToFloat(bits);
}
@Override
@ForceInline
! public float minLanes() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MIN, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp(Float.POSITIVE_INFINITY , (i, a, b) -> (float) Math.min(a, b));
*** 876,886 ****
return Float.intBitsToFloat(bits);
}
@Override
@ForceInline
! public float maxAll() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MAX, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp(Float.NEGATIVE_INFINITY, (i, a, b) -> (float) Math.max(a, b));
--- 876,886 ----
return Float.intBitsToFloat(bits);
}
@Override
@ForceInline
! public float maxLanes() {
int bits = (int) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MAX, Float128Vector.class, float.class, LENGTH,
this,
v -> {
float r = v.rOp(Float.NEGATIVE_INFINITY, (i, a, b) -> (float) Math.max(a, b));
*** 890,920 ****
}
@Override
@ForceInline
! public float addAll(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, (float) 0).blend(this, m).addAll();
}
@Override
@ForceInline
! public float mulAll(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, (float) 1).blend(this, m).mulAll();
}
@Override
@ForceInline
! public float minAll(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, Float.MAX_VALUE).blend(this, m).minAll();
}
@Override
@ForceInline
! public float maxAll(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, Float.MIN_VALUE).blend(this, m).maxAll();
}
@Override
@ForceInline
public VectorShuffle<Float> toShuffle() {
--- 890,920 ----
}
@Override
@ForceInline
! public float addLanes(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, (float) 0).blend(this, m).addLanes();
}
@Override
@ForceInline
! public float mulLanes(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, (float) 1).blend(this, m).mulLanes();
}
@Override
@ForceInline
! public float minLanes(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, Float.MAX_VALUE).blend(this, m).minLanes();
}
@Override
@ForceInline
! public float maxLanes(VectorMask<Float> m) {
! return FloatVector.broadcast(SPECIES, Float.MIN_VALUE).blend(this, m).maxLanes();
}
@Override
@ForceInline
public VectorShuffle<Float> toShuffle() {
*** 1165,1185 ****
return new Int128Vector(res);
}
@Override
! public Float128Vector rotateEL(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length(); i++){
res[(j + i) % length()] = vec[i];
}
return new Float128Vector(res);
}
@Override
! public Float128Vector rotateER(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length(); i++){
int z = i - j;
if(j < 0) {
--- 1165,1185 ----
return new Int128Vector(res);
}
@Override
! public Float128Vector rotateLanesLeft(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length(); i++){
res[(j + i) % length()] = vec[i];
}
return new Float128Vector(res);
}
@Override
! public Float128Vector rotateLanesRight(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length(); i++){
int z = i - j;
if(j < 0) {
*** 1190,1210 ****
}
return new Float128Vector(res);
}
@Override
! public Float128Vector shiftEL(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length() - j; i++) {
res[i] = vec[i + j];
}
return new Float128Vector(res);
}
@Override
! public Float128Vector shiftER(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length() - j; i++){
res[i + j] = vec[i];
}
--- 1190,1210 ----
}
return new Float128Vector(res);
}
@Override
! public Float128Vector shiftLanesLeft(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length() - j; i++) {
res[i] = vec[i + j];
}
return new Float128Vector(res);
}
@Override
! public Float128Vector shiftLanesRight(int j) {
float[] vec = getElements();
float[] res = new float[length()];
for (int i = 0; i < length() - j; i++){
res[i + j] = vec[i];
}
< prev index next >