mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8305461: [vectorapi] Add VectorMask::xor
Reviewed-by: psandoz
This commit is contained in:
parent
ddd50d0db3
commit
536ad9df1a
64 changed files with 2451 additions and 321 deletions
|
@ -137,10 +137,17 @@ abstract class AbstractMask<E> extends VectorMask<E> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public VectorMask<E> andNot(VectorMask<E> m) {
|
||||
@ForceInline
|
||||
public final VectorMask<E> andNot(VectorMask<E> m) {
|
||||
return and(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public final VectorMask<E> eq(VectorMask<E> m) {
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
/*package-private*/
|
||||
static boolean anyTrueHelper(boolean[] bits) {
|
||||
// FIXME: Maybe use toLong() != 0 here.
|
||||
|
|
|
@ -677,14 +677,6 @@ final class Byte128Vector extends ByteVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Byte128Mask eq(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte128Mask m = (Byte128Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -733,9 +725,9 @@ final class Byte128Vector extends ByteVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Byte128Mask xor(VectorMask<Byte> mask) {
|
||||
public Byte128Mask xor(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte128Mask m = (Byte128Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Byte128Mask.class, null, byte.class, VLENGTH,
|
||||
|
|
|
@ -709,14 +709,6 @@ final class Byte256Vector extends ByteVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Byte256Mask eq(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte256Mask m = (Byte256Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -765,9 +757,9 @@ final class Byte256Vector extends ByteVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Byte256Mask xor(VectorMask<Byte> mask) {
|
||||
public Byte256Mask xor(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte256Mask m = (Byte256Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Byte256Mask.class, null, byte.class, VLENGTH,
|
||||
|
|
|
@ -773,14 +773,6 @@ final class Byte512Vector extends ByteVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Byte512Mask eq(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte512Mask m = (Byte512Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -829,9 +821,9 @@ final class Byte512Vector extends ByteVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Byte512Mask xor(VectorMask<Byte> mask) {
|
||||
public Byte512Mask xor(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte512Mask m = (Byte512Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Byte512Mask.class, null, byte.class, VLENGTH,
|
||||
|
|
|
@ -661,14 +661,6 @@ final class Byte64Vector extends ByteVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Byte64Mask eq(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte64Mask m = (Byte64Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -717,9 +709,9 @@ final class Byte64Vector extends ByteVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Byte64Mask xor(VectorMask<Byte> mask) {
|
||||
public Byte64Mask xor(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Byte64Mask m = (Byte64Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Byte64Mask.class, null, byte.class, VLENGTH,
|
||||
|
|
|
@ -647,14 +647,6 @@ final class ByteMaxVector extends ByteVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public ByteMaxMask eq(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
ByteMaxMask m = (ByteMaxMask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -703,9 +695,9 @@ final class ByteMaxVector extends ByteVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
ByteMaxMask xor(VectorMask<Byte> mask) {
|
||||
public ByteMaxMask xor(VectorMask<Byte> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
ByteMaxMask m = (ByteMaxMask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, ByteMaxMask.class, null, byte.class, VLENGTH,
|
||||
|
|
|
@ -638,14 +638,6 @@ final class Double128Vector extends DoubleVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Double128Mask eq(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double128Mask m = (Double128Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -694,9 +686,9 @@ final class Double128Vector extends DoubleVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Double128Mask xor(VectorMask<Double> mask) {
|
||||
public Double128Mask xor(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double128Mask m = (Double128Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Double128Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -642,14 +642,6 @@ final class Double256Vector extends DoubleVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Double256Mask eq(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double256Mask m = (Double256Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -698,9 +690,9 @@ final class Double256Vector extends DoubleVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Double256Mask xor(VectorMask<Double> mask) {
|
||||
public Double256Mask xor(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double256Mask m = (Double256Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Double256Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -650,14 +650,6 @@ final class Double512Vector extends DoubleVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Double512Mask eq(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double512Mask m = (Double512Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -706,9 +698,9 @@ final class Double512Vector extends DoubleVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Double512Mask xor(VectorMask<Double> mask) {
|
||||
public Double512Mask xor(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double512Mask m = (Double512Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Double512Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -636,14 +636,6 @@ final class Double64Vector extends DoubleVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Double64Mask eq(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double64Mask m = (Double64Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -692,9 +684,9 @@ final class Double64Vector extends DoubleVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Double64Mask xor(VectorMask<Double> mask) {
|
||||
public Double64Mask xor(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Double64Mask m = (Double64Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Double64Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -635,14 +635,6 @@ final class DoubleMaxVector extends DoubleVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public DoubleMaxMask eq(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
DoubleMaxMask m = (DoubleMaxMask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -691,9 +683,9 @@ final class DoubleMaxVector extends DoubleVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
DoubleMaxMask xor(VectorMask<Double> mask) {
|
||||
public DoubleMaxMask xor(VectorMask<Double> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
DoubleMaxMask m = (DoubleMaxMask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, DoubleMaxMask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -642,14 +642,6 @@ final class Float128Vector extends FloatVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Float128Mask eq(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float128Mask m = (Float128Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -698,9 +690,9 @@ final class Float128Vector extends FloatVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Float128Mask xor(VectorMask<Float> mask) {
|
||||
public Float128Mask xor(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float128Mask m = (Float128Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Float128Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -650,14 +650,6 @@ final class Float256Vector extends FloatVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Float256Mask eq(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float256Mask m = (Float256Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -706,9 +698,9 @@ final class Float256Vector extends FloatVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Float256Mask xor(VectorMask<Float> mask) {
|
||||
public Float256Mask xor(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float256Mask m = (Float256Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Float256Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -666,14 +666,6 @@ final class Float512Vector extends FloatVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Float512Mask eq(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float512Mask m = (Float512Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -722,9 +714,9 @@ final class Float512Vector extends FloatVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Float512Mask xor(VectorMask<Float> mask) {
|
||||
public Float512Mask xor(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float512Mask m = (Float512Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Float512Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -638,14 +638,6 @@ final class Float64Vector extends FloatVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Float64Mask eq(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float64Mask m = (Float64Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -694,9 +686,9 @@ final class Float64Vector extends FloatVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Float64Mask xor(VectorMask<Float> mask) {
|
||||
public Float64Mask xor(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Float64Mask m = (Float64Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Float64Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -635,14 +635,6 @@ final class FloatMaxVector extends FloatVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public FloatMaxMask eq(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
FloatMaxMask m = (FloatMaxMask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -691,9 +683,9 @@ final class FloatMaxVector extends FloatVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
FloatMaxMask xor(VectorMask<Float> mask) {
|
||||
public FloatMaxMask xor(VectorMask<Float> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
FloatMaxMask m = (FloatMaxMask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, FloatMaxMask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -653,14 +653,6 @@ final class Int128Vector extends IntVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Int128Mask eq(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int128Mask m = (Int128Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -709,9 +701,9 @@ final class Int128Vector extends IntVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Int128Mask xor(VectorMask<Integer> mask) {
|
||||
public Int128Mask xor(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int128Mask m = (Int128Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Int128Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -661,14 +661,6 @@ final class Int256Vector extends IntVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Int256Mask eq(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int256Mask m = (Int256Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -717,9 +709,9 @@ final class Int256Vector extends IntVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Int256Mask xor(VectorMask<Integer> mask) {
|
||||
public Int256Mask xor(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int256Mask m = (Int256Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Int256Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -677,14 +677,6 @@ final class Int512Vector extends IntVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Int512Mask eq(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int512Mask m = (Int512Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -733,9 +725,9 @@ final class Int512Vector extends IntVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Int512Mask xor(VectorMask<Integer> mask) {
|
||||
public Int512Mask xor(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int512Mask m = (Int512Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Int512Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -649,14 +649,6 @@ final class Int64Vector extends IntVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Int64Mask eq(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int64Mask m = (Int64Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -705,9 +697,9 @@ final class Int64Vector extends IntVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Int64Mask xor(VectorMask<Integer> mask) {
|
||||
public Int64Mask xor(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Int64Mask m = (Int64Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Int64Mask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -647,14 +647,6 @@ final class IntMaxVector extends IntVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public IntMaxMask eq(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
IntMaxMask m = (IntMaxMask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -703,9 +695,9 @@ final class IntMaxVector extends IntVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
IntMaxMask xor(VectorMask<Integer> mask) {
|
||||
public IntMaxMask xor(VectorMask<Integer> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
IntMaxMask m = (IntMaxMask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, IntMaxMask.class, null, int.class, VLENGTH,
|
||||
|
|
|
@ -639,14 +639,6 @@ final class Long128Vector extends LongVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Long128Mask eq(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long128Mask m = (Long128Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -695,9 +687,9 @@ final class Long128Vector extends LongVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Long128Mask xor(VectorMask<Long> mask) {
|
||||
public Long128Mask xor(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long128Mask m = (Long128Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Long128Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -643,14 +643,6 @@ final class Long256Vector extends LongVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Long256Mask eq(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long256Mask m = (Long256Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -699,9 +691,9 @@ final class Long256Vector extends LongVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Long256Mask xor(VectorMask<Long> mask) {
|
||||
public Long256Mask xor(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long256Mask m = (Long256Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Long256Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -651,14 +651,6 @@ final class Long512Vector extends LongVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Long512Mask eq(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long512Mask m = (Long512Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -707,9 +699,9 @@ final class Long512Vector extends LongVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Long512Mask xor(VectorMask<Long> mask) {
|
||||
public Long512Mask xor(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long512Mask m = (Long512Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Long512Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -637,14 +637,6 @@ final class Long64Vector extends LongVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Long64Mask eq(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long64Mask m = (Long64Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -693,9 +685,9 @@ final class Long64Vector extends LongVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Long64Mask xor(VectorMask<Long> mask) {
|
||||
public Long64Mask xor(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Long64Mask m = (Long64Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Long64Mask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -637,14 +637,6 @@ final class LongMaxVector extends LongVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public LongMaxMask eq(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
LongMaxMask m = (LongMaxMask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -693,9 +685,9 @@ final class LongMaxVector extends LongVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
LongMaxMask xor(VectorMask<Long> mask) {
|
||||
public LongMaxMask xor(VectorMask<Long> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
LongMaxMask m = (LongMaxMask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, LongMaxMask.class, null, long.class, VLENGTH,
|
||||
|
|
|
@ -661,14 +661,6 @@ final class Short128Vector extends ShortVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Short128Mask eq(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short128Mask m = (Short128Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -717,9 +709,9 @@ final class Short128Vector extends ShortVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Short128Mask xor(VectorMask<Short> mask) {
|
||||
public Short128Mask xor(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short128Mask m = (Short128Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Short128Mask.class, null, short.class, VLENGTH,
|
||||
|
|
|
@ -677,14 +677,6 @@ final class Short256Vector extends ShortVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Short256Mask eq(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short256Mask m = (Short256Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -733,9 +725,9 @@ final class Short256Vector extends ShortVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Short256Mask xor(VectorMask<Short> mask) {
|
||||
public Short256Mask xor(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short256Mask m = (Short256Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Short256Mask.class, null, short.class, VLENGTH,
|
||||
|
|
|
@ -709,14 +709,6 @@ final class Short512Vector extends ShortVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Short512Mask eq(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short512Mask m = (Short512Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -765,9 +757,9 @@ final class Short512Vector extends ShortVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Short512Mask xor(VectorMask<Short> mask) {
|
||||
public Short512Mask xor(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short512Mask m = (Short512Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Short512Mask.class, null, short.class, VLENGTH,
|
||||
|
|
|
@ -653,14 +653,6 @@ final class Short64Vector extends ShortVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public Short64Mask eq(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short64Mask m = (Short64Mask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -709,9 +701,9 @@ final class Short64Vector extends ShortVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
Short64Mask xor(VectorMask<Short> mask) {
|
||||
public Short64Mask xor(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
Short64Mask m = (Short64Mask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, Short64Mask.class, null, short.class, VLENGTH,
|
||||
|
|
|
@ -647,14 +647,6 @@ final class ShortMaxVector extends ShortVector {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public ShortMaxMask eq(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
ShortMaxMask m = (ShortMaxMask)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -703,9 +695,9 @@ final class ShortMaxVector extends ShortVector {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
ShortMaxMask xor(VectorMask<Short> mask) {
|
||||
public ShortMaxMask xor(VectorMask<Short> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
ShortMaxMask m = (ShortMaxMask)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, ShortMaxMask.class, null, short.class, VLENGTH,
|
||||
|
|
|
@ -398,20 +398,18 @@ public abstract class VectorMask<E> extends jdk.internal.vm.vector.VectorSupport
|
|||
public abstract VectorMask<E> or(VectorMask<E> m);
|
||||
|
||||
/**
|
||||
* Determines logical equivalence of this mask
|
||||
* to a second input mask (as boolean {@code a==b}
|
||||
* or {@code a^~b}).
|
||||
* Determines logical symmetric difference
|
||||
* (as {@code a^b}) of this mask and a second input mask.
|
||||
* <p>
|
||||
* This is a lane-wise binary operation tests each
|
||||
* corresponding pair of mask bits for equality.
|
||||
* It is also equivalent to a inverse {@code XOR}
|
||||
* operation ({@code ^~}) on the mask bits.
|
||||
* This is a lane-wise binary operation which applies
|
||||
* the logical {@code XOR} operation
|
||||
* ({@code ^}) to each corresponding pair of mask bits.
|
||||
*
|
||||
* @param m the input mask
|
||||
* @return a mask showing where the two input masks were equal
|
||||
* @see #equals
|
||||
* @return the result of logically disjunctively disjoining the two
|
||||
* input masks
|
||||
*/
|
||||
public abstract VectorMask<E> eq(VectorMask<E> m);
|
||||
public abstract VectorMask<E> xor(VectorMask<E> m);
|
||||
|
||||
/**
|
||||
* Logically subtracts a second input mask
|
||||
|
@ -426,6 +424,23 @@ public abstract class VectorMask<E> extends jdk.internal.vm.vector.VectorSupport
|
|||
*/
|
||||
public abstract VectorMask<E> andNot(VectorMask<E> m);
|
||||
|
||||
/**
|
||||
* Determines logical equivalence of this mask
|
||||
* to a second input mask (as boolean {@code a==b}
|
||||
* or {@code a^~b}).
|
||||
* <p>
|
||||
* This is a lane-wise binary operation tests each
|
||||
* corresponding pair of mask bits for equality.
|
||||
* It is also equivalent to the logical {@code XNOR}
|
||||
* operation ({@code ^~}) to each corresponding pair
|
||||
* of mask bits.
|
||||
*
|
||||
* @param m the input mask
|
||||
* @return a mask showing where the two input masks were equal
|
||||
* @see #equals
|
||||
*/
|
||||
public abstract VectorMask<E> eq(VectorMask<E> m);
|
||||
|
||||
/**
|
||||
* Logically negates this mask.
|
||||
* <p>
|
||||
|
|
|
@ -920,14 +920,6 @@ final class $vectortype$ extends $abstractvectortype$ {
|
|||
(m, s) -> s.maskFactory(m.toArray()).check(s));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
public $masktype$ eq(VectorMask<$Boxtype$> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
$masktype$ m = ($masktype$)mask;
|
||||
return xor(m.not());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/*package-private*/
|
||||
|
@ -976,9 +968,9 @@ final class $vectortype$ extends $abstractvectortype$ {
|
|||
(m1, m2, vm) -> m1.bOp(m2, (i, a, b) -> a | b));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ForceInline
|
||||
/* package-private */
|
||||
$masktype$ xor(VectorMask<$Boxtype$> mask) {
|
||||
public $masktype$ xor(VectorMask<$Boxtype$> mask) {
|
||||
Objects.requireNonNull(mask);
|
||||
$masktype$ m = ($masktype$)mask;
|
||||
return VectorSupport.binaryOp(VECTOR_OP_XOR, $masktype$.class, null, $bitstype$.class, VLENGTH,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue