8293198: [vectorapi] Improve the implementation of VectorMask.indexInRange()

Reviewed-by: jbhateja, qamai, psandoz
This commit is contained in:
Xiaohong Gong 2023-02-10 01:32:05 +00:00
parent b814cfc39d
commit e245620f6f
41 changed files with 632 additions and 42 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -195,24 +195,51 @@ abstract class AbstractMask<E> extends VectorMask<E> {
return res;
}
@Override
/*package-private*/
@ForceInline
public VectorMask<E> indexInRange(int offset, int limit) {
VectorMask<E> indexPartiallyInRange(int offset, int limit) {
int vlength = length();
Vector<E> iota = vectorSpecies().zero().addIndex(1);
VectorMask<E> badMask = checkIndex0(offset, limit, iota, vlength);
return this.andNot(badMask);
return badMask.not();
}
/*package-private*/
@ForceInline
VectorMask<E> indexPartiallyInRange(long offset, long limit) {
int vlength = length();
Vector<E> iota = vectorSpecies().zero().addIndex(1);
VectorMask<E> badMask = checkIndex0(offset, limit, iota, vlength);
return badMask.not();
}
@Override
@ForceInline
public VectorMask<E> indexInRange(long offset, long limit) {
int vlength = length();
Vector<E> iota = vectorSpecies().zero().addIndex(1);
VectorMask<E> badMask = checkIndex0(offset, limit, iota, vlength);
return this.andNot(badMask);
public VectorMask<E> indexInRange(int offset, int limit) {
if (offset < 0) {
return this.and(indexPartiallyInRange(offset, limit));
} else if (offset >= limit) {
return vectorSpecies().maskAll(false);
} else if (limit - offset >= length()) {
return this;
}
return this.and(indexPartiallyInUpperRange(offset, limit));
}
@ForceInline
public VectorMask<E> indexInRange(long offset, long limit) {
if (offset < 0) {
return this.and(indexPartiallyInRange(offset, limit));
} else if (offset >= limit) {
return vectorSpecies().maskAll(false);
} else if (limit - offset >= length()) {
return this;
}
return this.and(indexPartiallyInUpperRange(offset, limit));
}
abstract VectorMask<E> indexPartiallyInUpperRange(long offset, long limit);
/*package-private*/
@ForceInline
AbstractVector<E>

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -685,6 +685,15 @@ final class Byte128Vector extends ByteVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Byte128Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Byte128Mask) VectorSupport.indexPartiallyInUpperRange(
Byte128Mask.class, byte.class, VLENGTH, offset, limit,
(o, l) -> (Byte128Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -717,6 +717,15 @@ final class Byte256Vector extends ByteVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Byte256Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Byte256Mask) VectorSupport.indexPartiallyInUpperRange(
Byte256Mask.class, byte.class, VLENGTH, offset, limit,
(o, l) -> (Byte256Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -781,6 +781,15 @@ final class Byte512Vector extends ByteVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Byte512Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Byte512Mask) VectorSupport.indexPartiallyInUpperRange(
Byte512Mask.class, byte.class, VLENGTH, offset, limit,
(o, l) -> (Byte512Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -669,6 +669,15 @@ final class Byte64Vector extends ByteVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Byte64Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Byte64Mask) VectorSupport.indexPartiallyInUpperRange(
Byte64Mask.class, byte.class, VLENGTH, offset, limit,
(o, l) -> (Byte64Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -655,6 +655,15 @@ final class ByteMaxVector extends ByteVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
ByteMaxMask indexPartiallyInUpperRange(long offset, long limit) {
return (ByteMaxMask) VectorSupport.indexPartiallyInUpperRange(
ByteMaxMask.class, byte.class, VLENGTH, offset, limit,
(o, l) -> (ByteMaxMask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -646,6 +646,15 @@ final class Double128Vector extends DoubleVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Double128Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Double128Mask) VectorSupport.indexPartiallyInUpperRange(
Double128Mask.class, double.class, VLENGTH, offset, limit,
(o, l) -> (Double128Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -650,6 +650,15 @@ final class Double256Vector extends DoubleVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Double256Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Double256Mask) VectorSupport.indexPartiallyInUpperRange(
Double256Mask.class, double.class, VLENGTH, offset, limit,
(o, l) -> (Double256Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -658,6 +658,15 @@ final class Double512Vector extends DoubleVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Double512Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Double512Mask) VectorSupport.indexPartiallyInUpperRange(
Double512Mask.class, double.class, VLENGTH, offset, limit,
(o, l) -> (Double512Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -644,6 +644,15 @@ final class Double64Vector extends DoubleVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Double64Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Double64Mask) VectorSupport.indexPartiallyInUpperRange(
Double64Mask.class, double.class, VLENGTH, offset, limit,
(o, l) -> (Double64Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -643,6 +643,15 @@ final class DoubleMaxVector extends DoubleVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
DoubleMaxMask indexPartiallyInUpperRange(long offset, long limit) {
return (DoubleMaxMask) VectorSupport.indexPartiallyInUpperRange(
DoubleMaxMask.class, double.class, VLENGTH, offset, limit,
(o, l) -> (DoubleMaxMask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -650,6 +650,15 @@ final class Float128Vector extends FloatVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Float128Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Float128Mask) VectorSupport.indexPartiallyInUpperRange(
Float128Mask.class, float.class, VLENGTH, offset, limit,
(o, l) -> (Float128Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -658,6 +658,15 @@ final class Float256Vector extends FloatVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Float256Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Float256Mask) VectorSupport.indexPartiallyInUpperRange(
Float256Mask.class, float.class, VLENGTH, offset, limit,
(o, l) -> (Float256Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -674,6 +674,15 @@ final class Float512Vector extends FloatVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Float512Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Float512Mask) VectorSupport.indexPartiallyInUpperRange(
Float512Mask.class, float.class, VLENGTH, offset, limit,
(o, l) -> (Float512Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -646,6 +646,15 @@ final class Float64Vector extends FloatVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Float64Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Float64Mask) VectorSupport.indexPartiallyInUpperRange(
Float64Mask.class, float.class, VLENGTH, offset, limit,
(o, l) -> (Float64Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -643,6 +643,15 @@ final class FloatMaxVector extends FloatVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
FloatMaxMask indexPartiallyInUpperRange(long offset, long limit) {
return (FloatMaxMask) VectorSupport.indexPartiallyInUpperRange(
FloatMaxMask.class, float.class, VLENGTH, offset, limit,
(o, l) -> (FloatMaxMask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -661,6 +661,15 @@ final class Int128Vector extends IntVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Int128Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Int128Mask) VectorSupport.indexPartiallyInUpperRange(
Int128Mask.class, int.class, VLENGTH, offset, limit,
(o, l) -> (Int128Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -669,6 +669,15 @@ final class Int256Vector extends IntVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Int256Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Int256Mask) VectorSupport.indexPartiallyInUpperRange(
Int256Mask.class, int.class, VLENGTH, offset, limit,
(o, l) -> (Int256Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -685,6 +685,15 @@ final class Int512Vector extends IntVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Int512Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Int512Mask) VectorSupport.indexPartiallyInUpperRange(
Int512Mask.class, int.class, VLENGTH, offset, limit,
(o, l) -> (Int512Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -657,6 +657,15 @@ final class Int64Vector extends IntVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Int64Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Int64Mask) VectorSupport.indexPartiallyInUpperRange(
Int64Mask.class, int.class, VLENGTH, offset, limit,
(o, l) -> (Int64Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -655,6 +655,15 @@ final class IntMaxVector extends IntVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
IntMaxMask indexPartiallyInUpperRange(long offset, long limit) {
return (IntMaxMask) VectorSupport.indexPartiallyInUpperRange(
IntMaxMask.class, int.class, VLENGTH, offset, limit,
(o, l) -> (IntMaxMask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -647,6 +647,15 @@ final class Long128Vector extends LongVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Long128Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Long128Mask) VectorSupport.indexPartiallyInUpperRange(
Long128Mask.class, long.class, VLENGTH, offset, limit,
(o, l) -> (Long128Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -651,6 +651,15 @@ final class Long256Vector extends LongVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Long256Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Long256Mask) VectorSupport.indexPartiallyInUpperRange(
Long256Mask.class, long.class, VLENGTH, offset, limit,
(o, l) -> (Long256Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -659,6 +659,15 @@ final class Long512Vector extends LongVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Long512Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Long512Mask) VectorSupport.indexPartiallyInUpperRange(
Long512Mask.class, long.class, VLENGTH, offset, limit,
(o, l) -> (Long512Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -645,6 +645,15 @@ final class Long64Vector extends LongVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Long64Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Long64Mask) VectorSupport.indexPartiallyInUpperRange(
Long64Mask.class, long.class, VLENGTH, offset, limit,
(o, l) -> (Long64Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -645,6 +645,15 @@ final class LongMaxVector extends LongVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
LongMaxMask indexPartiallyInUpperRange(long offset, long limit) {
return (LongMaxMask) VectorSupport.indexPartiallyInUpperRange(
LongMaxMask.class, long.class, VLENGTH, offset, limit,
(o, l) -> (LongMaxMask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -669,6 +669,15 @@ final class Short128Vector extends ShortVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Short128Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Short128Mask) VectorSupport.indexPartiallyInUpperRange(
Short128Mask.class, short.class, VLENGTH, offset, limit,
(o, l) -> (Short128Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -685,6 +685,15 @@ final class Short256Vector extends ShortVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Short256Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Short256Mask) VectorSupport.indexPartiallyInUpperRange(
Short256Mask.class, short.class, VLENGTH, offset, limit,
(o, l) -> (Short256Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -717,6 +717,15 @@ final class Short512Vector extends ShortVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Short512Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Short512Mask) VectorSupport.indexPartiallyInUpperRange(
Short512Mask.class, short.class, VLENGTH, offset, limit,
(o, l) -> (Short512Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -661,6 +661,15 @@ final class Short64Vector extends ShortVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
Short64Mask indexPartiallyInUpperRange(long offset, long limit) {
return (Short64Mask) VectorSupport.indexPartiallyInUpperRange(
Short64Mask.class, short.class, VLENGTH, offset, limit,
(o, l) -> (Short64Mask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -655,6 +655,15 @@ final class ShortMaxVector extends ShortVector {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
ShortMaxMask indexPartiallyInUpperRange(long offset, long limit) {
return (ShortMaxMask) VectorSupport.indexPartiallyInUpperRange(
ShortMaxMask.class, short.class, VLENGTH, offset, limit,
(o, l) -> (ShortMaxMask) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -928,6 +928,15 @@ final class $vectortype$ extends $abstractvectortype$ {
return xor(m.not());
}
@Override
@ForceInline
/*package-private*/
$masktype$ indexPartiallyInUpperRange(long offset, long limit) {
return ($masktype$) VectorSupport.indexPartiallyInUpperRange(
$masktype$.class, $type$.class, VLENGTH, offset, limit,
(o, l) -> ($masktype$) TRUE_MASK.indexPartiallyInRange(o, l));
}
// Unary operations
@Override