mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8293198: [vectorapi] Improve the implementation of VectorMask.indexInRange()
Reviewed-by: jbhateja, qamai, psandoz
This commit is contained in:
parent
b814cfc39d
commit
e245620f6f
41 changed files with 632 additions and 42 deletions
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue