8305461: [vectorapi] Add VectorMask::xor

Reviewed-by: psandoz
This commit is contained in:
Quan Anh Mai 2023-04-06 15:33:16 +00:00
parent ddd50d0db3
commit 536ad9df1a
64 changed files with 2451 additions and 321 deletions

View file

@ -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.

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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>

View file

@ -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,