< prev index next > test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java
Print this page
/*
! * 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
/*
! * Copyright (c) 2018, 2025, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
static final VectorSpecies<Float> SPECIES =
FloatVector.SPECIES_MAX;
static final int INVOC_COUNT = Integer.getInteger("jdk.incubator.vector.test.loop-iterations", 100);
+ static FloatVector bcast_vec = FloatVector.broadcast(SPECIES, (float)10);
+
static VectorShape getMaxBit() {
return VectorShape.S_Max_BIT;
}
private static final int Max = 256; // juts so we can do N/Max
}
assertBroadcastLongArraysEquals(r, a, b, mask, FloatMaxVectorTests::ADD);
}
- static FloatVector bv_MIN = FloatVector.broadcast(SPECIES, (float)10);
-
@Test(dataProvider = "floatUnaryOpProvider")
static void MINFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MIN, bv_MIN).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::MIN);
}
- static FloatVector bv_min = FloatVector.broadcast(SPECIES, (float)10);
-
@Test(dataProvider = "floatUnaryOpProvider")
static void minFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.min(bv_min).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::min);
}
- static FloatVector bv_MIN_M = FloatVector.broadcast(SPECIES, (float)10);
-
@Test(dataProvider = "floatUnaryOpMaskProvider")
static void MINFloatMaxVectorTestsMaskedWithMemOp(IntFunction<float[]> fa, IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
VectorMask<Float> vmask = VectorMask.fromArray(SPECIES, mask, 0);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MIN, bv_MIN_M, vmask).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, mask, FloatMaxVectorTests::MIN);
}
- static FloatVector bv_MAX = FloatVector.broadcast(SPECIES, (float)10);
-
@Test(dataProvider = "floatUnaryOpProvider")
static void MAXFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MAX, bv_MAX).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::MAX);
}
- static FloatVector bv_max = FloatVector.broadcast(SPECIES, (float)10);
-
@Test(dataProvider = "floatUnaryOpProvider")
static void maxFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.max(bv_max).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::max);
}
- static FloatVector bv_MAX_M = FloatVector.broadcast(SPECIES, (float)10);
-
@Test(dataProvider = "floatUnaryOpMaskProvider")
static void MAXFloatMaxVectorTestsMaskedWithMemOp(IntFunction<float[]> fa, IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
VectorMask<Float> vmask = VectorMask.fromArray(SPECIES, mask, 0);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MAX, bv_MAX_M, vmask).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, mask, FloatMaxVectorTests::MAX);
}
}
assertBroadcastLongArraysEquals(r, a, b, mask, FloatMaxVectorTests::ADD);
}
@Test(dataProvider = "floatUnaryOpProvider")
static void MINFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MIN, bcast_vec).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::MIN);
}
@Test(dataProvider = "floatUnaryOpProvider")
static void minFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.min(bcast_vec).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::min);
}
@Test(dataProvider = "floatUnaryOpMaskProvider")
static void MINFloatMaxVectorTestsMaskedWithMemOp(IntFunction<float[]> fa, IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
VectorMask<Float> vmask = VectorMask.fromArray(SPECIES, mask, 0);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MIN, bcast_vec, vmask).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, mask, FloatMaxVectorTests::MIN);
}
@Test(dataProvider = "floatUnaryOpProvider")
static void MAXFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MAX, bcast_vec).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::MAX);
}
@Test(dataProvider = "floatUnaryOpProvider")
static void maxFloatMaxVectorTestsWithMemOp(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.max(bcast_vec).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, FloatMaxVectorTests::max);
}
@Test(dataProvider = "floatUnaryOpMaskProvider")
static void MAXFloatMaxVectorTestsMaskedWithMemOp(IntFunction<float[]> fa, IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
VectorMask<Float> vmask = VectorMask.fromArray(SPECIES, mask, 0);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.lanewise(VectorOperators.MAX, bcast_vec, vmask).intoArray(r, i);
}
}
assertArraysEquals(r, a, (float)10, mask, FloatMaxVectorTests::MAX);
}
< prev index next >