< prev index next >
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.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
*** 160,170 ****
throw new IllegalArgumentException("Vector length this species length differ");
return VectorIntrinsics.cast(
Double64Vector.class,
double.class, LENGTH,
! s.boxType(),
s.elementType(), LENGTH,
this, s,
(species, vector) -> vector.castDefault(species)
);
}
--- 160,170 ----
throw new IllegalArgumentException("Vector length this species length differ");
return VectorIntrinsics.cast(
Double64Vector.class,
double.class, LENGTH,
! s.vectorType(),
s.elementType(), LENGTH,
this, s,
(species, vector) -> vector.castDefault(species)
);
}
*** 298,345 ****
@Override
@ForceInline
public DoubleVector reshape(VectorSpecies<Double> s) {
Objects.requireNonNull(s);
! if (s.bitSize() == 64 && (s.boxType() == Double64Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double64Vector.class,
double.class, Double64Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 128 && (s.boxType() == Double128Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double128Vector.class,
double.class, Double128Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 256 && (s.boxType() == Double256Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double256Vector.class,
double.class, Double256Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 512 && (s.boxType() == Double512Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double512Vector.class,
double.class, Double512Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
} else if ((s.bitSize() > 0) && (s.bitSize() <= 2048)
! && (s.bitSize() % 128 == 0) && (s.boxType() == DoubleMaxVector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
DoubleMaxVector.class,
double.class, DoubleMaxVector.LENGTH,
--- 298,345 ----
@Override
@ForceInline
public DoubleVector reshape(VectorSpecies<Double> s) {
Objects.requireNonNull(s);
! if (s.bitSize() == 64 && (s.vectorType() == Double64Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double64Vector.class,
double.class, Double64Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 128 && (s.vectorType() == Double128Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double128Vector.class,
double.class, Double128Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 256 && (s.vectorType() == Double256Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double256Vector.class,
double.class, Double256Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
! } else if (s.bitSize() == 512 && (s.vectorType() == Double512Vector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
Double512Vector.class,
double.class, Double512Vector.LENGTH,
this, s,
(species, vector) -> (DoubleVector) vector.defaultReinterpret(species)
);
} else if ((s.bitSize() > 0) && (s.bitSize() <= 2048)
! && (s.bitSize() % 128 == 0) && (s.vectorType() == DoubleMaxVector.class)) {
return VectorIntrinsics.reinterpret(
Double64Vector.class,
double.class, LENGTH,
DoubleMaxVector.class,
double.class, DoubleMaxVector.LENGTH,
*** 836,846 ****
// Type specific horizontal reductions
@Override
@ForceInline
! public double addAll() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_ADD, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp((double) 0, (i, a, b) -> (double) (a + b));
--- 836,846 ----
// Type specific horizontal reductions
@Override
@ForceInline
! public double addLanes() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_ADD, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp((double) 0, (i, a, b) -> (double) (a + b));
*** 849,859 ****
return Double.longBitsToDouble(bits);
}
@Override
@ForceInline
! public double mulAll() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MUL, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp((double) 1, (i, a, b) -> (double) (a * b));
--- 849,859 ----
return Double.longBitsToDouble(bits);
}
@Override
@ForceInline
! public double mulLanes() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MUL, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp((double) 1, (i, a, b) -> (double) (a * b));
*** 862,872 ****
return Double.longBitsToDouble(bits);
}
@Override
@ForceInline
! public double minAll() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MIN, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp(Double.POSITIVE_INFINITY , (i, a, b) -> (double) Math.min(a, b));
--- 862,872 ----
return Double.longBitsToDouble(bits);
}
@Override
@ForceInline
! public double minLanes() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MIN, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp(Double.POSITIVE_INFINITY , (i, a, b) -> (double) Math.min(a, b));
*** 875,885 ****
return Double.longBitsToDouble(bits);
}
@Override
@ForceInline
! public double maxAll() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MAX, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp(Double.NEGATIVE_INFINITY, (i, a, b) -> (double) Math.max(a, b));
--- 875,885 ----
return Double.longBitsToDouble(bits);
}
@Override
@ForceInline
! public double maxLanes() {
long bits = (long) VectorIntrinsics.reductionCoerced(
VECTOR_OP_MAX, Double64Vector.class, double.class, LENGTH,
this,
v -> {
double r = v.rOp(Double.NEGATIVE_INFINITY, (i, a, b) -> (double) Math.max(a, b));
*** 889,919 ****
}
@Override
@ForceInline
! public double addAll(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, (double) 0).blend(this, m).addAll();
}
@Override
@ForceInline
! public double mulAll(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, (double) 1).blend(this, m).mulAll();
}
@Override
@ForceInline
! public double minAll(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, Double.MAX_VALUE).blend(this, m).minAll();
}
@Override
@ForceInline
! public double maxAll(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, Double.MIN_VALUE).blend(this, m).maxAll();
}
@Override
@ForceInline
public VectorShuffle<Double> toShuffle() {
--- 889,919 ----
}
@Override
@ForceInline
! public double addLanes(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, (double) 0).blend(this, m).addLanes();
}
@Override
@ForceInline
! public double mulLanes(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, (double) 1).blend(this, m).mulLanes();
}
@Override
@ForceInline
! public double minLanes(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, Double.MAX_VALUE).blend(this, m).minLanes();
}
@Override
@ForceInline
! public double maxLanes(VectorMask<Double> m) {
! return DoubleVector.broadcast(SPECIES, Double.MIN_VALUE).blend(this, m).maxLanes();
}
@Override
@ForceInline
public VectorShuffle<Double> toShuffle() {
*** 1152,1172 ****
return new Long64Vector(res);
}
@Override
! public Double64Vector rotateEL(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length(); i++){
res[(j + i) % length()] = vec[i];
}
return new Double64Vector(res);
}
@Override
! public Double64Vector rotateER(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length(); i++){
int z = i - j;
if(j < 0) {
--- 1152,1172 ----
return new Long64Vector(res);
}
@Override
! public Double64Vector rotateLanesLeft(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length(); i++){
res[(j + i) % length()] = vec[i];
}
return new Double64Vector(res);
}
@Override
! public Double64Vector rotateLanesRight(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length(); i++){
int z = i - j;
if(j < 0) {
*** 1177,1197 ****
}
return new Double64Vector(res);
}
@Override
! public Double64Vector shiftEL(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length() - j; i++) {
res[i] = vec[i + j];
}
return new Double64Vector(res);
}
@Override
! public Double64Vector shiftER(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length() - j; i++){
res[i + j] = vec[i];
}
--- 1177,1197 ----
}
return new Double64Vector(res);
}
@Override
! public Double64Vector shiftLanesLeft(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length() - j; i++) {
res[i] = vec[i + j];
}
return new Double64Vector(res);
}
@Override
! public Double64Vector shiftLanesRight(int j) {
double[] vec = getElements();
double[] res = new double[length()];
for (int i = 0; i < length() - j; i++){
res[i + j] = vec[i];
}
< prev index next >