8324858: [vectorapi] Bounds checking issues when accessing memory segments

Reviewed-by: mcimadamore, jbhateja
This commit is contained in:
Paul Sandoz 2024-02-02 16:53:10 +00:00
parent 38c01971ff
commit 1ae851387f
39 changed files with 240 additions and 116 deletions

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -360,14 +360,6 @@ abstract class AbstractSpecies<E> extends jdk.internal.vm.vector.VectorSupport.V
return dummyVector().iotaShuffle(start, step, wrap);
}
@ForceInline
@Override
public final Vector<E> fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
return dummyVector()
.fromMemorySegment0(ms, offset)
.maybeSwap(bo);
}
@Override
public VectorMask<E> loadMask(boolean[] bits, int offset) {
return VectorMask.fromArray(this, bits, offset);

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -4194,11 +4194,21 @@ public abstract class ByteVector extends AbstractVector<Byte> {
@ForceInline
@Override final
public ByteVector fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return ByteVector
.fromArray(this, (byte[]) a, offset);
}
@ForceInline
@Override final
public ByteVector fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return ByteVector
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
ByteVector dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -3797,11 +3797,21 @@ public abstract class DoubleVector extends AbstractVector<Double> {
@ForceInline
@Override final
public DoubleVector fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return DoubleVector
.fromArray(this, (double[]) a, offset);
}
@ForceInline
@Override final
public DoubleVector fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return DoubleVector
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
DoubleVector dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -3747,11 +3747,21 @@ public abstract class FloatVector extends AbstractVector<Float> {
@ForceInline
@Override final
public FloatVector fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return FloatVector
.fromArray(this, (float[]) a, offset);
}
@ForceInline
@Override final
public FloatVector fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return FloatVector
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
FloatVector dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -3903,11 +3903,21 @@ public abstract class IntVector extends AbstractVector<Integer> {
@ForceInline
@Override final
public IntVector fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return IntVector
.fromArray(this, (int[]) a, offset);
}
@ForceInline
@Override final
public IntVector fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return IntVector
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
IntVector dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -3829,11 +3829,21 @@ public abstract class LongVector extends AbstractVector<Long> {
@ForceInline
@Override final
public LongVector fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return LongVector
.fromArray(this, (long[]) a, offset);
}
@ForceInline
@Override final
public LongVector fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return LongVector
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
LongVector dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -4188,11 +4188,21 @@ public abstract class ShortVector extends AbstractVector<Short> {
@ForceInline
@Override final
public ShortVector fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return ShortVector
.fromArray(this, (short[]) a, offset);
}
@ForceInline
@Override final
public ShortVector fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return ShortVector
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
ShortVector dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024, 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
@ -5453,11 +5453,21 @@ public abstract class $abstractvectortype$ extends AbstractVector<$Boxtype$> {
@ForceInline
@Override final
public $abstractvectortype$ fromArray(Object a, int offset) {
// User entry point: Be careful with inputs.
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return $abstractvectortype$
.fromArray(this, ($type$[]) a, offset);
}
@ForceInline
@Override final
public $abstractvectortype$ fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo) {
// User entry point
// Defer only to the equivalent method on the vector class, using the same inputs
return $abstractvectortype$
.fromMemorySegment(this, ms, offset, bo);
}
@ForceInline
@Override final
$abstractvectortype$ dummyVector() {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Byte128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromArray(byte[] a, int i) {
return ByteVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Byte128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ByteVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Byte256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromArray(byte[] a, int i) {
return ByteVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Byte256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ByteVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Byte512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromArray(byte[] a, int i) {
return ByteVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Byte512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ByteVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Byte64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromArray(byte[] a, int i) {
return ByteVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Byte64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ByteVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -255,7 +255,8 @@ public class ByteMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromArray(byte[] a, int i) {
return ByteVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -275,7 +276,8 @@ public class ByteMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ByteVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ByteVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ByteVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Double128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromArray(double[] a, int i) {
return DoubleVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Double128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return DoubleVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Double256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromArray(double[] a, int i) {
return DoubleVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Double256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return DoubleVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Double512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromArray(double[] a, int i) {
return DoubleVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Double512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return DoubleVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Double64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromArray(double[] a, int i) {
return DoubleVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Double64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return DoubleVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -255,7 +255,8 @@ public class DoubleMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromArray(double[] a, int i) {
return DoubleVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -275,7 +276,8 @@ public class DoubleMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static DoubleVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return DoubleVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (DoubleVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Float128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromArray(float[] a, int i) {
return FloatVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Float128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return FloatVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Float256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromArray(float[] a, int i) {
return FloatVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Float256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return FloatVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Float512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromArray(float[] a, int i) {
return FloatVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Float512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return FloatVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Float64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromArray(float[] a, int i) {
return FloatVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Float64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return FloatVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -255,7 +255,8 @@ public class FloatMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromArray(float[] a, int i) {
return FloatVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -275,7 +276,8 @@ public class FloatMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static FloatVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return FloatVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (FloatVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Int128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromArray(int[] a, int i) {
return IntVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Int128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return IntVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Int256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromArray(int[] a, int i) {
return IntVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Int256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return IntVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Int512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromArray(int[] a, int i) {
return IntVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Int512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return IntVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Int64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromArray(int[] a, int i) {
return IntVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Int64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return IntVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -255,7 +255,8 @@ public class IntMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromArray(int[] a, int i) {
return IntVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -275,7 +276,8 @@ public class IntMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static IntVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return IntVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (IntVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Long128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromArray(long[] a, int i) {
return LongVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Long128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return LongVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Long256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromArray(long[] a, int i) {
return LongVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Long256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return LongVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Long512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromArray(long[] a, int i) {
return LongVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Long512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return LongVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Long64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromArray(long[] a, int i) {
return LongVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Long64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return LongVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -255,7 +255,8 @@ public class LongMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromArray(long[] a, int i) {
return LongVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -275,7 +276,8 @@ public class LongMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static LongVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return LongVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (LongVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Short128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromArray(short[] a, int i) {
return ShortVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Short128VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ShortVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Short256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromArray(short[] a, int i) {
return ShortVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Short256VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ShortVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Short512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromArray(short[] a, int i) {
return ShortVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Short512VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ShortVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -248,7 +248,8 @@ public class Short64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromArray(short[] a, int i) {
return ShortVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -268,7 +269,8 @@ public class Short64VectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ShortVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -255,7 +255,8 @@ public class ShortMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromArray(short[] a, int i) {
return ShortVector.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromArray(a, i);
}
@DontInline
@ -275,7 +276,8 @@ public class ShortMaxVectorLoadStoreTests extends AbstractVectorLoadStoreTest {
@DontInline
static ShortVector fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return ShortVector.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return (ShortVector) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2024, 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
@ -268,7 +268,8 @@ public class $vectorteststype$ extends AbstractVectorLoadStoreTest {
@DontInline
static $abstractvectortype$ fromArray($type$[] a, int i) {
return $abstractvectortype$.fromArray(SPECIES, a, i);
// Tests the species method and the equivalent vector method it defers to
return ($abstractvectortype$) SPECIES.fromArray(a, i);
}
@DontInline
@ -288,7 +289,8 @@ public class $vectorteststype$ extends AbstractVectorLoadStoreTest {
@DontInline
static $abstractvectortype$ fromMemorySegment(MemorySegment a, int i, ByteOrder bo) {
return $abstractvectortype$.fromMemorySegment(SPECIES, a, i, bo);
// Tests the species method and the equivalent vector method it defers to
return ($abstractvectortype$) SPECIES.fromMemorySegment(a, i, bo);
}
@DontInline