diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java index a889d10fb43..02a389d08b2 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java index 7f07c32ab13..4e035b13b5e 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java index 20bf261999a..15dd06cdccc 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java index 2756128b469..6ac9d7a8918 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java index c2f5e6f85a9..ed6e15ca293 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java index 385fbba55a3..f2a077604f7 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -512,7 +512,7 @@ final class Double128Vector extends DoubleVector { this, i, (vec, ix) -> { double[] vecarr = vec.vec(); - return (long)Double.doubleToLongBits(vecarr[ix]); + return (long)Double.doubleToRawLongBits(vecarr[ix]); }); } @@ -529,7 +529,7 @@ final class Double128Vector extends DoubleVector { public Double128Vector withLaneHelper(int i, double e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Double.doubleToLongBits(e), + this, i, (long)Double.doubleToRawLongBits(e), (v, ix, bits) -> { double[] res = v.vec().clone(); res[ix] = Double.longBitsToDouble((long)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java index e73ada8a088..da9dd421b17 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -514,7 +514,7 @@ final class Double256Vector extends DoubleVector { this, i, (vec, ix) -> { double[] vecarr = vec.vec(); - return (long)Double.doubleToLongBits(vecarr[ix]); + return (long)Double.doubleToRawLongBits(vecarr[ix]); }); } @@ -533,7 +533,7 @@ final class Double256Vector extends DoubleVector { public Double256Vector withLaneHelper(int i, double e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Double.doubleToLongBits(e), + this, i, (long)Double.doubleToRawLongBits(e), (v, ix, bits) -> { double[] res = v.vec().clone(); res[ix] = Double.longBitsToDouble((long)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java index 5f239d2a527..d23f09e774b 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -518,7 +518,7 @@ final class Double512Vector extends DoubleVector { this, i, (vec, ix) -> { double[] vecarr = vec.vec(); - return (long)Double.doubleToLongBits(vecarr[ix]); + return (long)Double.doubleToRawLongBits(vecarr[ix]); }); } @@ -541,7 +541,7 @@ final class Double512Vector extends DoubleVector { public Double512Vector withLaneHelper(int i, double e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Double.doubleToLongBits(e), + this, i, (long)Double.doubleToRawLongBits(e), (v, ix, bits) -> { double[] res = v.vec().clone(); res[ix] = Double.longBitsToDouble((long)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java index cd5f14c47db..19bd640f978 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -511,7 +511,7 @@ final class Double64Vector extends DoubleVector { this, i, (vec, ix) -> { double[] vecarr = vec.vec(); - return (long)Double.doubleToLongBits(vecarr[ix]); + return (long)Double.doubleToRawLongBits(vecarr[ix]); }); } @@ -527,7 +527,7 @@ final class Double64Vector extends DoubleVector { public Double64Vector withLaneHelper(int i, double e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Double.doubleToLongBits(e), + this, i, (long)Double.doubleToRawLongBits(e), (v, ix, bits) -> { double[] res = v.vec().clone(); res[ix] = Double.longBitsToDouble((long)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java index 84b0b240ca5..73f6f2ece5d 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -510,7 +510,7 @@ final class DoubleMaxVector extends DoubleVector { this, i, (vec, ix) -> { double[] vecarr = vec.vec(); - return (long)Double.doubleToLongBits(vecarr[ix]); + return (long)Double.doubleToRawLongBits(vecarr[ix]); }); } @@ -526,7 +526,7 @@ final class DoubleMaxVector extends DoubleVector { public DoubleMaxVector withLaneHelper(int i, double e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Double.doubleToLongBits(e), + this, i, (long)Double.doubleToRawLongBits(e), (v, ix, bits) -> { double[] res = v.vec().clone(); res[ix] = Double.longBitsToDouble((long)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java index d6b66f77431..ae47beca5de 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -514,7 +514,7 @@ final class Float128Vector extends FloatVector { this, i, (vec, ix) -> { float[] vecarr = vec.vec(); - return (long)Float.floatToIntBits(vecarr[ix]); + return (long)Float.floatToRawIntBits(vecarr[ix]); }); } @@ -533,7 +533,7 @@ final class Float128Vector extends FloatVector { public Float128Vector withLaneHelper(int i, float e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Float.floatToIntBits(e), + this, i, (long)Float.floatToRawIntBits(e), (v, ix, bits) -> { float[] res = v.vec().clone(); res[ix] = Float.intBitsToFloat((int)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java index 38e5bee8a97..d5c0506a542 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -518,7 +518,7 @@ final class Float256Vector extends FloatVector { this, i, (vec, ix) -> { float[] vecarr = vec.vec(); - return (long)Float.floatToIntBits(vecarr[ix]); + return (long)Float.floatToRawIntBits(vecarr[ix]); }); } @@ -541,7 +541,7 @@ final class Float256Vector extends FloatVector { public Float256Vector withLaneHelper(int i, float e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Float.floatToIntBits(e), + this, i, (long)Float.floatToRawIntBits(e), (v, ix, bits) -> { float[] res = v.vec().clone(); res[ix] = Float.intBitsToFloat((int)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java index 3a398976d98..536f7db6946 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -526,7 +526,7 @@ final class Float512Vector extends FloatVector { this, i, (vec, ix) -> { float[] vecarr = vec.vec(); - return (long)Float.floatToIntBits(vecarr[ix]); + return (long)Float.floatToRawIntBits(vecarr[ix]); }); } @@ -557,7 +557,7 @@ final class Float512Vector extends FloatVector { public Float512Vector withLaneHelper(int i, float e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Float.floatToIntBits(e), + this, i, (long)Float.floatToRawIntBits(e), (v, ix, bits) -> { float[] res = v.vec().clone(); res[ix] = Float.intBitsToFloat((int)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java index 867b3e284ae..849062c6cb8 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -512,7 +512,7 @@ final class Float64Vector extends FloatVector { this, i, (vec, ix) -> { float[] vecarr = vec.vec(); - return (long)Float.floatToIntBits(vecarr[ix]); + return (long)Float.floatToRawIntBits(vecarr[ix]); }); } @@ -529,7 +529,7 @@ final class Float64Vector extends FloatVector { public Float64Vector withLaneHelper(int i, float e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Float.floatToIntBits(e), + this, i, (long)Float.floatToRawIntBits(e), (v, ix, bits) -> { float[] res = v.vec().clone(); res[ix] = Float.intBitsToFloat((int)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java index 242d405eafb..b14797f6788 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -510,7 +510,7 @@ final class FloatMaxVector extends FloatVector { this, i, (vec, ix) -> { float[] vecarr = vec.vec(); - return (long)Float.floatToIntBits(vecarr[ix]); + return (long)Float.floatToRawIntBits(vecarr[ix]); }); } @@ -526,7 +526,7 @@ final class FloatMaxVector extends FloatVector { public FloatMaxVector withLaneHelper(int i, float e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)Float.floatToIntBits(e), + this, i, (long)Float.floatToRawIntBits(e), (v, ix, bits) -> { float[] res = v.vec().clone(); res[ix] = Float.intBitsToFloat((int)bits); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java index 0c83b037454..cd652941fb3 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java index abb10696ba4..b76a1035561 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java index 7b6435e4c0a..3a42c661144 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java index 491010be90e..4181e6b4ea3 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java index e20829f7c4f..785022fcd65 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java index cf552c23a80..302c71bc13b 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java index ffa1029bdd8..04c51c377e1 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java index aea8fe0fe6c..fbcd57400d5 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java index ffb07535d65..3b2e77f1a54 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java index e4197cb7f2e..cc3641be3d6 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java index 3930826aa09..7703df9a59a 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java index e39e89f6137..cf845930195 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java index 1caea78f748..67a5073df05 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java index 640be746f15..263ee10d907 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java index 96683ac53c4..07a2caebef0 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template index cebdc7594d6..111d4bbefd4 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, 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 @@ -561,7 +561,7 @@ final class $vectortype$ extends $abstractvectortype$ { this, i, (vec, ix) -> { $type$[] vecarr = vec.vec(); - return (long)$Type$.$type$To$Bitstype$Bits(vecarr[ix]); + return (long)$Type$.$type$ToRaw$Bitstype$Bits(vecarr[ix]); }); } @@ -607,7 +607,7 @@ final class $vectortype$ extends $abstractvectortype$ { public $vectortype$ withLaneHelper(int i, $type$ e) { return VectorSupport.insert( VCLASS, ETYPE, VLENGTH, - this, i, (long)$Type$.$type$To$Bitstype$Bits(e), + this, i, (long)$Type$.$type$ToRaw$Bitstype$Bits(e), (v, ix, bits) -> { $type$[] res = v.vec().clone(); res[ix] = $Type$.$bitstype$BitsTo$Type$(($bitstype$)bits); diff --git a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java index 11f45b24c8e..77d0dd20974 100644 --- a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java @@ -67,6 +67,14 @@ public class Byte128VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 128); + static void assertArraysStrictlyEquals(byte[] r, byte[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { byte apply(byte a); } @@ -231,25 +239,6 @@ public class Byte128VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(byte[] r, byte[] a, byte element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(byte[] r, byte[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Byte128VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - byte apply(byte[] a, int b); - } - - static void assertArraysEquals(byte[] r, byte[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { byte[] apply(byte[] a, int ix, int[] b, int iy); } @@ -1212,10 +1186,6 @@ public class Byte128VectorTests extends AbstractVectorTest { } } - static byte get(byte[] a, int i) { - return (byte) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new byte[length]; @@ -3748,22 +3718,23 @@ public class Byte128VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Byte128VectorTests::allTrue); } - @Test(dataProvider = "byteUnaryOpProvider") - static void withByte128VectorTests(IntFunction fa) { + @Test(dataProvider = "byteBinaryOpProvider") + static void withByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (byte)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (byte)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(byte a) { @@ -4698,7 +4669,7 @@ public class Byte128VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Byte128VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "byteUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java index c050ab1daa8..31e38f633ff 100644 --- a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java @@ -67,6 +67,14 @@ public class Byte256VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 256); + static void assertArraysStrictlyEquals(byte[] r, byte[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { byte apply(byte a); } @@ -231,25 +239,6 @@ public class Byte256VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(byte[] r, byte[] a, byte element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(byte[] r, byte[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Byte256VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - byte apply(byte[] a, int b); - } - - static void assertArraysEquals(byte[] r, byte[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { byte[] apply(byte[] a, int ix, int[] b, int iy); } @@ -1212,10 +1186,6 @@ public class Byte256VectorTests extends AbstractVectorTest { } } - static byte get(byte[] a, int i) { - return (byte) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new byte[length]; @@ -3748,22 +3718,23 @@ public class Byte256VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Byte256VectorTests::allTrue); } - @Test(dataProvider = "byteUnaryOpProvider") - static void withByte256VectorTests(IntFunction fa) { + @Test(dataProvider = "byteBinaryOpProvider") + static void withByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (byte)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (byte)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(byte a) { @@ -4698,7 +4669,7 @@ public class Byte256VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Byte256VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "byteUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java index 4498714a170..9204c3ed1ad 100644 --- a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java @@ -67,6 +67,14 @@ public class Byte512VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 512); + static void assertArraysStrictlyEquals(byte[] r, byte[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { byte apply(byte a); } @@ -231,25 +239,6 @@ public class Byte512VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(byte[] r, byte[] a, byte element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(byte[] r, byte[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Byte512VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - byte apply(byte[] a, int b); - } - - static void assertArraysEquals(byte[] r, byte[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { byte[] apply(byte[] a, int ix, int[] b, int iy); } @@ -1212,10 +1186,6 @@ public class Byte512VectorTests extends AbstractVectorTest { } } - static byte get(byte[] a, int i) { - return (byte) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new byte[length]; @@ -3748,22 +3718,23 @@ public class Byte512VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Byte512VectorTests::allTrue); } - @Test(dataProvider = "byteUnaryOpProvider") - static void withByte512VectorTests(IntFunction fa) { + @Test(dataProvider = "byteBinaryOpProvider") + static void withByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (byte)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (byte)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(byte a) { @@ -4698,7 +4669,7 @@ public class Byte512VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Byte512VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "byteUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java index 9fb90a5fdd3..9af640a3133 100644 --- a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java @@ -67,6 +67,14 @@ public class Byte64VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 64); + static void assertArraysStrictlyEquals(byte[] r, byte[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { byte apply(byte a); } @@ -231,25 +239,6 @@ public class Byte64VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(byte[] r, byte[] a, byte element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(byte[] r, byte[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Byte64VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - byte apply(byte[] a, int b); - } - - static void assertArraysEquals(byte[] r, byte[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { byte[] apply(byte[] a, int ix, int[] b, int iy); } @@ -1212,10 +1186,6 @@ public class Byte64VectorTests extends AbstractVectorTest { } } - static byte get(byte[] a, int i) { - return (byte) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new byte[length]; @@ -3748,22 +3718,23 @@ public class Byte64VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Byte64VectorTests::allTrue); } - @Test(dataProvider = "byteUnaryOpProvider") - static void withByte64VectorTests(IntFunction fa) { + @Test(dataProvider = "byteBinaryOpProvider") + static void withByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (byte)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (byte)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(byte a) { @@ -4698,7 +4669,7 @@ public class Byte64VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Byte64VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "byteUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java b/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java index 44b47293444..1c0d5362b53 100644 --- a/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java @@ -72,6 +72,14 @@ public class ByteMaxVectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / Max); + static void assertArraysStrictlyEquals(byte[] r, byte[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { byte apply(byte a); } @@ -236,25 +244,6 @@ public class ByteMaxVectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(byte[] r, byte[] a, byte element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(byte[] r, byte[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -709,21 +698,6 @@ public class ByteMaxVectorTests extends AbstractVectorTest { - interface FBinArrayOp { - byte apply(byte[] a, int b); - } - - static void assertArraysEquals(byte[] r, byte[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { byte[] apply(byte[] a, int ix, int[] b, int iy); } @@ -1217,10 +1191,6 @@ public class ByteMaxVectorTests extends AbstractVectorTest { } } - static byte get(byte[] a, int i) { - return (byte) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new byte[length]; @@ -3753,22 +3723,23 @@ public class ByteMaxVectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, ByteMaxVectorTests::allTrue); } - @Test(dataProvider = "byteUnaryOpProvider") - static void withByteMaxVectorTests(IntFunction fa) { + @Test(dataProvider = "byteBinaryOpProvider") + static void withByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (byte)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (byte)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(byte a) { @@ -4703,7 +4674,7 @@ public class ByteMaxVectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, ByteMaxVectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "byteUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Double128VectorTests.java b/test/jdk/jdk/incubator/vector/Double128VectorTests.java index 81c915ba7cf..4efeb8f2059 100644 --- a/test/jdk/jdk/incubator/vector/Double128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Double128VectorTests.java @@ -71,6 +71,16 @@ public class Double128VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 128); + static void assertArraysStrictlyEquals(double[] r, double[] a) { + for (int i = 0; i < a.length; i++) { + long ir = Double.doubleToRawLongBits(r[i]); + long ia = Double.doubleToRawLongBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %016X, actual = %016X", i, ia, ir)); + } + } + } + interface FUnOp { double apply(double a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(double[] r, double[] a, double element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(double[] r, double[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - double apply(double[] a, int b); - } - - static void assertArraysEquals(double[] r, double[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { double[] apply(double[] a, int ix, int[] b, int iy); } @@ -1356,26 +1332,16 @@ relativeError)); } static double cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Double.MAX_VALUE; - case 1: - return Double.MIN_VALUE; - case 2: - return Double.NEGATIVE_INFINITY; - case 3: - return Double.POSITIVE_INFINITY; - case 4: - return Double.NaN; - case 5: - return (double)0.0; - default: - return (double)-0.0; - } - } - - static double get(double[] a, int i) { - return (double) a[i]; + return switch(i % 8) { + case 0 -> Double.MAX_VALUE; + case 1 -> Double.MIN_VALUE; + case 2 -> Double.NEGATIVE_INFINITY; + case 3 -> Double.POSITIVE_INFINITY; + case 4 -> Double.NaN; + case 5 -> Double.longBitsToDouble(0x7FF123456789ABCDL); + case 6 -> (double)0.0; + default -> (double)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2602,22 +2568,23 @@ relativeError)); Double128VectorTests::FIRST_NONZEROReduceMasked, Double128VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "doubleUnaryOpProvider") - static void withDouble128VectorTests(IntFunction fa) { + @Test(dataProvider = "doubleBinaryOpProvider") + static void withDouble128VectorTests(IntFunction fa, IntFunction fb) { double[] a = fa.apply(SPECIES.length()); + double[] b = fb.apply(SPECIES.length()); double[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { DoubleVector av = DoubleVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (double)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (double)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(double a) { @@ -3507,7 +3474,7 @@ relativeError)); } } - assertArraysEquals(r, a, Double128VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "doubleUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Double256VectorTests.java b/test/jdk/jdk/incubator/vector/Double256VectorTests.java index 5824941d806..04b0e7dc0d6 100644 --- a/test/jdk/jdk/incubator/vector/Double256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Double256VectorTests.java @@ -71,6 +71,16 @@ public class Double256VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 256); + static void assertArraysStrictlyEquals(double[] r, double[] a) { + for (int i = 0; i < a.length; i++) { + long ir = Double.doubleToRawLongBits(r[i]); + long ia = Double.doubleToRawLongBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %016X, actual = %016X", i, ia, ir)); + } + } + } + interface FUnOp { double apply(double a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(double[] r, double[] a, double element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(double[] r, double[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - double apply(double[] a, int b); - } - - static void assertArraysEquals(double[] r, double[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { double[] apply(double[] a, int ix, int[] b, int iy); } @@ -1356,26 +1332,16 @@ relativeError)); } static double cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Double.MAX_VALUE; - case 1: - return Double.MIN_VALUE; - case 2: - return Double.NEGATIVE_INFINITY; - case 3: - return Double.POSITIVE_INFINITY; - case 4: - return Double.NaN; - case 5: - return (double)0.0; - default: - return (double)-0.0; - } - } - - static double get(double[] a, int i) { - return (double) a[i]; + return switch(i % 8) { + case 0 -> Double.MAX_VALUE; + case 1 -> Double.MIN_VALUE; + case 2 -> Double.NEGATIVE_INFINITY; + case 3 -> Double.POSITIVE_INFINITY; + case 4 -> Double.NaN; + case 5 -> Double.longBitsToDouble(0x7FF123456789ABCDL); + case 6 -> (double)0.0; + default -> (double)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2602,22 +2568,23 @@ relativeError)); Double256VectorTests::FIRST_NONZEROReduceMasked, Double256VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "doubleUnaryOpProvider") - static void withDouble256VectorTests(IntFunction fa) { + @Test(dataProvider = "doubleBinaryOpProvider") + static void withDouble256VectorTests(IntFunction fa, IntFunction fb) { double[] a = fa.apply(SPECIES.length()); + double[] b = fb.apply(SPECIES.length()); double[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { DoubleVector av = DoubleVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (double)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (double)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(double a) { @@ -3507,7 +3474,7 @@ relativeError)); } } - assertArraysEquals(r, a, Double256VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "doubleUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Double512VectorTests.java b/test/jdk/jdk/incubator/vector/Double512VectorTests.java index 895cf243eb7..ad03b8b5c7b 100644 --- a/test/jdk/jdk/incubator/vector/Double512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Double512VectorTests.java @@ -71,6 +71,16 @@ public class Double512VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 512); + static void assertArraysStrictlyEquals(double[] r, double[] a) { + for (int i = 0; i < a.length; i++) { + long ir = Double.doubleToRawLongBits(r[i]); + long ia = Double.doubleToRawLongBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %016X, actual = %016X", i, ia, ir)); + } + } + } + interface FUnOp { double apply(double a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(double[] r, double[] a, double element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(double[] r, double[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - double apply(double[] a, int b); - } - - static void assertArraysEquals(double[] r, double[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { double[] apply(double[] a, int ix, int[] b, int iy); } @@ -1356,26 +1332,16 @@ relativeError)); } static double cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Double.MAX_VALUE; - case 1: - return Double.MIN_VALUE; - case 2: - return Double.NEGATIVE_INFINITY; - case 3: - return Double.POSITIVE_INFINITY; - case 4: - return Double.NaN; - case 5: - return (double)0.0; - default: - return (double)-0.0; - } - } - - static double get(double[] a, int i) { - return (double) a[i]; + return switch(i % 8) { + case 0 -> Double.MAX_VALUE; + case 1 -> Double.MIN_VALUE; + case 2 -> Double.NEGATIVE_INFINITY; + case 3 -> Double.POSITIVE_INFINITY; + case 4 -> Double.NaN; + case 5 -> Double.longBitsToDouble(0x7FF123456789ABCDL); + case 6 -> (double)0.0; + default -> (double)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2602,22 +2568,23 @@ relativeError)); Double512VectorTests::FIRST_NONZEROReduceMasked, Double512VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "doubleUnaryOpProvider") - static void withDouble512VectorTests(IntFunction fa) { + @Test(dataProvider = "doubleBinaryOpProvider") + static void withDouble512VectorTests(IntFunction fa, IntFunction fb) { double[] a = fa.apply(SPECIES.length()); + double[] b = fb.apply(SPECIES.length()); double[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { DoubleVector av = DoubleVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (double)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (double)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(double a) { @@ -3507,7 +3474,7 @@ relativeError)); } } - assertArraysEquals(r, a, Double512VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "doubleUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Double64VectorTests.java b/test/jdk/jdk/incubator/vector/Double64VectorTests.java index 4414e36b0de..9321215c3de 100644 --- a/test/jdk/jdk/incubator/vector/Double64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Double64VectorTests.java @@ -71,6 +71,16 @@ public class Double64VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 64); + static void assertArraysStrictlyEquals(double[] r, double[] a) { + for (int i = 0; i < a.length; i++) { + long ir = Double.doubleToRawLongBits(r[i]); + long ia = Double.doubleToRawLongBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %016X, actual = %016X", i, ia, ir)); + } + } + } + interface FUnOp { double apply(double a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(double[] r, double[] a, double element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(double[] r, double[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - double apply(double[] a, int b); - } - - static void assertArraysEquals(double[] r, double[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { double[] apply(double[] a, int ix, int[] b, int iy); } @@ -1356,26 +1332,16 @@ relativeError)); } static double cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Double.MAX_VALUE; - case 1: - return Double.MIN_VALUE; - case 2: - return Double.NEGATIVE_INFINITY; - case 3: - return Double.POSITIVE_INFINITY; - case 4: - return Double.NaN; - case 5: - return (double)0.0; - default: - return (double)-0.0; - } - } - - static double get(double[] a, int i) { - return (double) a[i]; + return switch(i % 8) { + case 0 -> Double.MAX_VALUE; + case 1 -> Double.MIN_VALUE; + case 2 -> Double.NEGATIVE_INFINITY; + case 3 -> Double.POSITIVE_INFINITY; + case 4 -> Double.NaN; + case 5 -> Double.longBitsToDouble(0x7FF123456789ABCDL); + case 6 -> (double)0.0; + default -> (double)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2602,22 +2568,23 @@ relativeError)); Double64VectorTests::FIRST_NONZEROReduceMasked, Double64VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "doubleUnaryOpProvider") - static void withDouble64VectorTests(IntFunction fa) { + @Test(dataProvider = "doubleBinaryOpProvider") + static void withDouble64VectorTests(IntFunction fa, IntFunction fb) { double[] a = fa.apply(SPECIES.length()); + double[] b = fb.apply(SPECIES.length()); double[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { DoubleVector av = DoubleVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (double)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (double)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(double a) { @@ -3507,7 +3474,7 @@ relativeError)); } } - assertArraysEquals(r, a, Double64VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "doubleUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java b/test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java index 271d1f12aba..a6b80376196 100644 --- a/test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java @@ -76,6 +76,16 @@ public class DoubleMaxVectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / Max); + static void assertArraysStrictlyEquals(double[] r, double[] a) { + for (int i = 0; i < a.length; i++) { + long ir = Double.doubleToRawLongBits(r[i]); + long ia = Double.doubleToRawLongBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %016X, actual = %016X", i, ia, ir)); + } + } + } + interface FUnOp { double apply(double a); } @@ -253,25 +263,6 @@ relativeError)); } } - static void assertInsertArraysEquals(double[] r, double[] a, double element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(double[] r, double[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -800,21 +791,6 @@ relativeError)); } } - interface FBinArrayOp { - double apply(double[] a, int b); - } - - static void assertArraysEquals(double[] r, double[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { double[] apply(double[] a, int ix, int[] b, int iy); } @@ -1361,26 +1337,16 @@ relativeError)); } static double cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Double.MAX_VALUE; - case 1: - return Double.MIN_VALUE; - case 2: - return Double.NEGATIVE_INFINITY; - case 3: - return Double.POSITIVE_INFINITY; - case 4: - return Double.NaN; - case 5: - return (double)0.0; - default: - return (double)-0.0; - } - } - - static double get(double[] a, int i) { - return (double) a[i]; + return switch(i % 8) { + case 0 -> Double.MAX_VALUE; + case 1 -> Double.MIN_VALUE; + case 2 -> Double.NEGATIVE_INFINITY; + case 3 -> Double.POSITIVE_INFINITY; + case 4 -> Double.NaN; + case 5 -> Double.longBitsToDouble(0x7FF123456789ABCDL); + case 6 -> (double)0.0; + default -> (double)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2607,22 +2573,23 @@ relativeError)); DoubleMaxVectorTests::FIRST_NONZEROReduceMasked, DoubleMaxVectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "doubleUnaryOpProvider") - static void withDoubleMaxVectorTests(IntFunction fa) { + @Test(dataProvider = "doubleBinaryOpProvider") + static void withDoubleMaxVectorTests(IntFunction fa, IntFunction fb) { double[] a = fa.apply(SPECIES.length()); + double[] b = fb.apply(SPECIES.length()); double[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { DoubleVector av = DoubleVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (double)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (double)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(double a) { @@ -3512,7 +3479,7 @@ relativeError)); } } - assertArraysEquals(r, a, DoubleMaxVectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "doubleUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Float128VectorTests.java b/test/jdk/jdk/incubator/vector/Float128VectorTests.java index a634aeffe54..6bad9098544 100644 --- a/test/jdk/jdk/incubator/vector/Float128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Float128VectorTests.java @@ -71,6 +71,16 @@ public class Float128VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 128); + static void assertArraysStrictlyEquals(float[] r, float[] a) { + for (int i = 0; i < a.length; i++) { + int ir = Float.floatToRawIntBits(r[i]); + int ia = Float.floatToRawIntBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %08X, actual = %08X", i, ia, ir)); + } + } + } + interface FUnOp { float apply(float a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(float[] r, float[] a, float element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(float[] r, float[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - float apply(float[] a, int b); - } - - static void assertArraysEquals(float[] r, float[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { float[] apply(float[] a, int ix, int[] b, int iy); } @@ -1367,26 +1343,16 @@ relativeError)); } static float cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Float.MAX_VALUE; - case 1: - return Float.MIN_VALUE; - case 2: - return Float.NEGATIVE_INFINITY; - case 3: - return Float.POSITIVE_INFINITY; - case 4: - return Float.NaN; - case 5: - return (float)0.0; - default: - return (float)-0.0; - } - } - - static float get(float[] a, int i) { - return (float) a[i]; + return switch(i % 8) { + case 0 -> Float.MAX_VALUE; + case 1 -> Float.MIN_VALUE; + case 2 -> Float.NEGATIVE_INFINITY; + case 3 -> Float.POSITIVE_INFINITY; + case 4 -> Float.NaN; + case 5 -> Float.intBitsToFloat(0x7F812345); + case 6 -> (float)0.0; + default -> (float)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2613,22 +2579,23 @@ relativeError)); Float128VectorTests::FIRST_NONZEROReduceMasked, Float128VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "floatUnaryOpProvider") - static void withFloat128VectorTests(IntFunction fa) { + @Test(dataProvider = "floatBinaryOpProvider") + static void withFloat128VectorTests(IntFunction fa, IntFunction fb) { float[] a = fa.apply(SPECIES.length()); + float[] b = fb.apply(SPECIES.length()); float[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { FloatVector av = FloatVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (float)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (float)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(float a) { @@ -3518,7 +3485,7 @@ relativeError)); } } - assertArraysEquals(r, a, Float128VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "floatUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Float256VectorTests.java b/test/jdk/jdk/incubator/vector/Float256VectorTests.java index d9509ff3152..e714ace5a78 100644 --- a/test/jdk/jdk/incubator/vector/Float256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Float256VectorTests.java @@ -71,6 +71,16 @@ public class Float256VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 256); + static void assertArraysStrictlyEquals(float[] r, float[] a) { + for (int i = 0; i < a.length; i++) { + int ir = Float.floatToRawIntBits(r[i]); + int ia = Float.floatToRawIntBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %08X, actual = %08X", i, ia, ir)); + } + } + } + interface FUnOp { float apply(float a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(float[] r, float[] a, float element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(float[] r, float[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - float apply(float[] a, int b); - } - - static void assertArraysEquals(float[] r, float[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { float[] apply(float[] a, int ix, int[] b, int iy); } @@ -1367,26 +1343,16 @@ relativeError)); } static float cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Float.MAX_VALUE; - case 1: - return Float.MIN_VALUE; - case 2: - return Float.NEGATIVE_INFINITY; - case 3: - return Float.POSITIVE_INFINITY; - case 4: - return Float.NaN; - case 5: - return (float)0.0; - default: - return (float)-0.0; - } - } - - static float get(float[] a, int i) { - return (float) a[i]; + return switch(i % 8) { + case 0 -> Float.MAX_VALUE; + case 1 -> Float.MIN_VALUE; + case 2 -> Float.NEGATIVE_INFINITY; + case 3 -> Float.POSITIVE_INFINITY; + case 4 -> Float.NaN; + case 5 -> Float.intBitsToFloat(0x7F812345); + case 6 -> (float)0.0; + default -> (float)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2613,22 +2579,23 @@ relativeError)); Float256VectorTests::FIRST_NONZEROReduceMasked, Float256VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "floatUnaryOpProvider") - static void withFloat256VectorTests(IntFunction fa) { + @Test(dataProvider = "floatBinaryOpProvider") + static void withFloat256VectorTests(IntFunction fa, IntFunction fb) { float[] a = fa.apply(SPECIES.length()); + float[] b = fb.apply(SPECIES.length()); float[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { FloatVector av = FloatVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (float)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (float)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(float a) { @@ -3518,7 +3485,7 @@ relativeError)); } } - assertArraysEquals(r, a, Float256VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "floatUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Float512VectorTests.java b/test/jdk/jdk/incubator/vector/Float512VectorTests.java index 83326abe54e..f3c5a316c79 100644 --- a/test/jdk/jdk/incubator/vector/Float512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Float512VectorTests.java @@ -71,6 +71,16 @@ public class Float512VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 512); + static void assertArraysStrictlyEquals(float[] r, float[] a) { + for (int i = 0; i < a.length; i++) { + int ir = Float.floatToRawIntBits(r[i]); + int ia = Float.floatToRawIntBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %08X, actual = %08X", i, ia, ir)); + } + } + } + interface FUnOp { float apply(float a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(float[] r, float[] a, float element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(float[] r, float[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - float apply(float[] a, int b); - } - - static void assertArraysEquals(float[] r, float[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { float[] apply(float[] a, int ix, int[] b, int iy); } @@ -1367,26 +1343,16 @@ relativeError)); } static float cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Float.MAX_VALUE; - case 1: - return Float.MIN_VALUE; - case 2: - return Float.NEGATIVE_INFINITY; - case 3: - return Float.POSITIVE_INFINITY; - case 4: - return Float.NaN; - case 5: - return (float)0.0; - default: - return (float)-0.0; - } - } - - static float get(float[] a, int i) { - return (float) a[i]; + return switch(i % 8) { + case 0 -> Float.MAX_VALUE; + case 1 -> Float.MIN_VALUE; + case 2 -> Float.NEGATIVE_INFINITY; + case 3 -> Float.POSITIVE_INFINITY; + case 4 -> Float.NaN; + case 5 -> Float.intBitsToFloat(0x7F812345); + case 6 -> (float)0.0; + default -> (float)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2613,22 +2579,23 @@ relativeError)); Float512VectorTests::FIRST_NONZEROReduceMasked, Float512VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "floatUnaryOpProvider") - static void withFloat512VectorTests(IntFunction fa) { + @Test(dataProvider = "floatBinaryOpProvider") + static void withFloat512VectorTests(IntFunction fa, IntFunction fb) { float[] a = fa.apply(SPECIES.length()); + float[] b = fb.apply(SPECIES.length()); float[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { FloatVector av = FloatVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (float)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (float)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(float a) { @@ -3518,7 +3485,7 @@ relativeError)); } } - assertArraysEquals(r, a, Float512VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "floatUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Float64VectorTests.java b/test/jdk/jdk/incubator/vector/Float64VectorTests.java index efae7f1fc3c..378c2ae783f 100644 --- a/test/jdk/jdk/incubator/vector/Float64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Float64VectorTests.java @@ -71,6 +71,16 @@ public class Float64VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 64); + static void assertArraysStrictlyEquals(float[] r, float[] a) { + for (int i = 0; i < a.length; i++) { + int ir = Float.floatToRawIntBits(r[i]); + int ia = Float.floatToRawIntBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %08X, actual = %08X", i, ia, ir)); + } + } + } + interface FUnOp { float apply(float a); } @@ -248,25 +258,6 @@ relativeError)); } } - static void assertInsertArraysEquals(float[] r, float[] a, float element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(float[] r, float[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -795,21 +786,6 @@ relativeError)); } } - interface FBinArrayOp { - float apply(float[] a, int b); - } - - static void assertArraysEquals(float[] r, float[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { float[] apply(float[] a, int ix, int[] b, int iy); } @@ -1367,26 +1343,16 @@ relativeError)); } static float cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Float.MAX_VALUE; - case 1: - return Float.MIN_VALUE; - case 2: - return Float.NEGATIVE_INFINITY; - case 3: - return Float.POSITIVE_INFINITY; - case 4: - return Float.NaN; - case 5: - return (float)0.0; - default: - return (float)-0.0; - } - } - - static float get(float[] a, int i) { - return (float) a[i]; + return switch(i % 8) { + case 0 -> Float.MAX_VALUE; + case 1 -> Float.MIN_VALUE; + case 2 -> Float.NEGATIVE_INFINITY; + case 3 -> Float.POSITIVE_INFINITY; + case 4 -> Float.NaN; + case 5 -> Float.intBitsToFloat(0x7F812345); + case 6 -> (float)0.0; + default -> (float)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2613,22 +2579,23 @@ relativeError)); Float64VectorTests::FIRST_NONZEROReduceMasked, Float64VectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "floatUnaryOpProvider") - static void withFloat64VectorTests(IntFunction fa) { + @Test(dataProvider = "floatBinaryOpProvider") + static void withFloat64VectorTests(IntFunction fa, IntFunction fb) { float[] a = fa.apply(SPECIES.length()); + float[] b = fb.apply(SPECIES.length()); float[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { FloatVector av = FloatVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (float)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (float)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(float a) { @@ -3518,7 +3485,7 @@ relativeError)); } } - assertArraysEquals(r, a, Float64VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "floatUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java b/test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java index fdd3e042f77..a2dc38413ec 100644 --- a/test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java @@ -76,6 +76,16 @@ public class FloatMaxVectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / Max); + static void assertArraysStrictlyEquals(float[] r, float[] a) { + for (int i = 0; i < a.length; i++) { + int ir = Float.floatToRawIntBits(r[i]); + int ia = Float.floatToRawIntBits(a[i]); + if (ir != ia) { + Assert.fail(String.format("at index #%d, expected = %08X, actual = %08X", i, ia, ir)); + } + } + } + interface FUnOp { float apply(float a); } @@ -253,25 +263,6 @@ relativeError)); } } - static void assertInsertArraysEquals(float[] r, float[] a, float element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(float[] r, float[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -800,21 +791,6 @@ relativeError)); } } - interface FBinArrayOp { - float apply(float[] a, int b); - } - - static void assertArraysEquals(float[] r, float[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { float[] apply(float[] a, int ix, int[] b, int iy); } @@ -1372,26 +1348,16 @@ relativeError)); } static float cornerCaseValue(int i) { - switch(i % 7) { - case 0: - return Float.MAX_VALUE; - case 1: - return Float.MIN_VALUE; - case 2: - return Float.NEGATIVE_INFINITY; - case 3: - return Float.POSITIVE_INFINITY; - case 4: - return Float.NaN; - case 5: - return (float)0.0; - default: - return (float)-0.0; - } - } - - static float get(float[] a, int i) { - return (float) a[i]; + return switch(i % 8) { + case 0 -> Float.MAX_VALUE; + case 1 -> Float.MIN_VALUE; + case 2 -> Float.NEGATIVE_INFINITY; + case 3 -> Float.POSITIVE_INFINITY; + case 4 -> Float.NaN; + case 5 -> Float.intBitsToFloat(0x7F812345); + case 6 -> (float)0.0; + default -> (float)-0.0; + }; } static final IntFunction fr = (vl) -> { @@ -2618,22 +2584,23 @@ relativeError)); FloatMaxVectorTests::FIRST_NONZEROReduceMasked, FloatMaxVectorTests::FIRST_NONZEROReduceAllMasked); } - @Test(dataProvider = "floatUnaryOpProvider") - static void withFloatMaxVectorTests(IntFunction fa) { + @Test(dataProvider = "floatBinaryOpProvider") + static void withFloatMaxVectorTests(IntFunction fa, IntFunction fb) { float[] a = fa.apply(SPECIES.length()); + float[] b = fb.apply(SPECIES.length()); float[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { FloatVector av = FloatVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (float)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (float)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(float a) { @@ -3523,7 +3490,7 @@ relativeError)); } } - assertArraysEquals(r, a, FloatMaxVectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "floatUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Int128VectorTests.java b/test/jdk/jdk/incubator/vector/Int128VectorTests.java index 25d656af7da..1ee0bbc3197 100644 --- a/test/jdk/jdk/incubator/vector/Int128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int128VectorTests.java @@ -67,6 +67,14 @@ public class Int128VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 128); + static void assertArraysStrictlyEquals(int[] r, int[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { int apply(int a); } @@ -231,25 +239,6 @@ public class Int128VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(int[] r, int[] a, int element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(int[] r, int[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Int128VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - int apply(int[] a, int b); - } - - static void assertArraysEquals(int[] r, int[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { int[] apply(int[] a, int ix, int[] b, int iy); } @@ -1172,10 +1146,6 @@ public class Int128VectorTests extends AbstractVectorTest { } } - static int get(int[] a, int i) { - return (int) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new int[length]; @@ -3792,22 +3762,23 @@ public class Int128VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Int128VectorTests::allTrue); } - @Test(dataProvider = "intUnaryOpProvider") - static void withInt128VectorTests(IntFunction fa) { + @Test(dataProvider = "intBinaryOpProvider") + static void withInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); int[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (int)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (int)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(int a) { @@ -4742,7 +4713,7 @@ public class Int128VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Int128VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "intUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Int256VectorTests.java b/test/jdk/jdk/incubator/vector/Int256VectorTests.java index 7420c7842d5..5257af21c94 100644 --- a/test/jdk/jdk/incubator/vector/Int256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int256VectorTests.java @@ -67,6 +67,14 @@ public class Int256VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 256); + static void assertArraysStrictlyEquals(int[] r, int[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { int apply(int a); } @@ -231,25 +239,6 @@ public class Int256VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(int[] r, int[] a, int element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(int[] r, int[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Int256VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - int apply(int[] a, int b); - } - - static void assertArraysEquals(int[] r, int[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { int[] apply(int[] a, int ix, int[] b, int iy); } @@ -1172,10 +1146,6 @@ public class Int256VectorTests extends AbstractVectorTest { } } - static int get(int[] a, int i) { - return (int) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new int[length]; @@ -3792,22 +3762,23 @@ public class Int256VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Int256VectorTests::allTrue); } - @Test(dataProvider = "intUnaryOpProvider") - static void withInt256VectorTests(IntFunction fa) { + @Test(dataProvider = "intBinaryOpProvider") + static void withInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); int[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (int)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (int)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(int a) { @@ -4742,7 +4713,7 @@ public class Int256VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Int256VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "intUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Int512VectorTests.java b/test/jdk/jdk/incubator/vector/Int512VectorTests.java index ccd2bb7a5c9..6d4633cc7ae 100644 --- a/test/jdk/jdk/incubator/vector/Int512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int512VectorTests.java @@ -67,6 +67,14 @@ public class Int512VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 512); + static void assertArraysStrictlyEquals(int[] r, int[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { int apply(int a); } @@ -231,25 +239,6 @@ public class Int512VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(int[] r, int[] a, int element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(int[] r, int[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Int512VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - int apply(int[] a, int b); - } - - static void assertArraysEquals(int[] r, int[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { int[] apply(int[] a, int ix, int[] b, int iy); } @@ -1172,10 +1146,6 @@ public class Int512VectorTests extends AbstractVectorTest { } } - static int get(int[] a, int i) { - return (int) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new int[length]; @@ -3792,22 +3762,23 @@ public class Int512VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Int512VectorTests::allTrue); } - @Test(dataProvider = "intUnaryOpProvider") - static void withInt512VectorTests(IntFunction fa) { + @Test(dataProvider = "intBinaryOpProvider") + static void withInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); int[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (int)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (int)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(int a) { @@ -4742,7 +4713,7 @@ public class Int512VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Int512VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "intUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Int64VectorTests.java b/test/jdk/jdk/incubator/vector/Int64VectorTests.java index 26201745ad4..7bd1543ed5c 100644 --- a/test/jdk/jdk/incubator/vector/Int64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int64VectorTests.java @@ -67,6 +67,14 @@ public class Int64VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 64); + static void assertArraysStrictlyEquals(int[] r, int[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { int apply(int a); } @@ -231,25 +239,6 @@ public class Int64VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(int[] r, int[] a, int element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(int[] r, int[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Int64VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - int apply(int[] a, int b); - } - - static void assertArraysEquals(int[] r, int[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { int[] apply(int[] a, int ix, int[] b, int iy); } @@ -1172,10 +1146,6 @@ public class Int64VectorTests extends AbstractVectorTest { } } - static int get(int[] a, int i) { - return (int) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new int[length]; @@ -3792,22 +3762,23 @@ public class Int64VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Int64VectorTests::allTrue); } - @Test(dataProvider = "intUnaryOpProvider") - static void withInt64VectorTests(IntFunction fa) { + @Test(dataProvider = "intBinaryOpProvider") + static void withInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); int[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (int)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (int)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(int a) { @@ -4742,7 +4713,7 @@ public class Int64VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Int64VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "intUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java b/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java index 612dc5080e2..71d1ce594f9 100644 --- a/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java @@ -72,6 +72,14 @@ public class IntMaxVectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / Max); + static void assertArraysStrictlyEquals(int[] r, int[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { int apply(int a); } @@ -236,25 +244,6 @@ public class IntMaxVectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(int[] r, int[] a, int element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(int[] r, int[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -709,21 +698,6 @@ public class IntMaxVectorTests extends AbstractVectorTest { - interface FBinArrayOp { - int apply(int[] a, int b); - } - - static void assertArraysEquals(int[] r, int[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { int[] apply(int[] a, int ix, int[] b, int iy); } @@ -1177,10 +1151,6 @@ public class IntMaxVectorTests extends AbstractVectorTest { } } - static int get(int[] a, int i) { - return (int) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new int[length]; @@ -3797,22 +3767,23 @@ public class IntMaxVectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, IntMaxVectorTests::allTrue); } - @Test(dataProvider = "intUnaryOpProvider") - static void withIntMaxVectorTests(IntFunction fa) { + @Test(dataProvider = "intBinaryOpProvider") + static void withIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); int[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (int)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (int)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(int a) { @@ -4747,7 +4718,7 @@ public class IntMaxVectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, IntMaxVectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "intUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Long128VectorTests.java b/test/jdk/jdk/incubator/vector/Long128VectorTests.java index 5ebc7f2c673..bcec2dee9fe 100644 --- a/test/jdk/jdk/incubator/vector/Long128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long128VectorTests.java @@ -67,6 +67,14 @@ public class Long128VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 128); + static void assertArraysStrictlyEquals(long[] r, long[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { long apply(long a); } @@ -188,25 +196,6 @@ public class Long128VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(long[] r, long[] a, long element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(long[] r, long[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -661,21 +650,6 @@ public class Long128VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - long apply(long[] a, int b); - } - - static void assertArraysEquals(long[] r, long[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { long[] apply(long[] a, int ix, int[] b, int iy); } @@ -1199,10 +1173,6 @@ public class Long128VectorTests extends AbstractVectorTest { } } - static long get(long[] a, int i) { - return (long) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new long[length]; @@ -3814,22 +3784,23 @@ public class Long128VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Long128VectorTests::allTrue); } - @Test(dataProvider = "longUnaryOpProvider") - static void withLong128VectorTests(IntFunction fa) { + @Test(dataProvider = "longBinaryOpProvider") + static void withLong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); long[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (long)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (long)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(long a) { @@ -4694,7 +4665,7 @@ public class Long128VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Long128VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "longUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Long256VectorTests.java b/test/jdk/jdk/incubator/vector/Long256VectorTests.java index b7b66008917..e8f2fb1301c 100644 --- a/test/jdk/jdk/incubator/vector/Long256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long256VectorTests.java @@ -67,6 +67,14 @@ public class Long256VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 256); + static void assertArraysStrictlyEquals(long[] r, long[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { long apply(long a); } @@ -188,25 +196,6 @@ public class Long256VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(long[] r, long[] a, long element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(long[] r, long[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -661,21 +650,6 @@ public class Long256VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - long apply(long[] a, int b); - } - - static void assertArraysEquals(long[] r, long[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { long[] apply(long[] a, int ix, int[] b, int iy); } @@ -1199,10 +1173,6 @@ public class Long256VectorTests extends AbstractVectorTest { } } - static long get(long[] a, int i) { - return (long) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new long[length]; @@ -3814,22 +3784,23 @@ public class Long256VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Long256VectorTests::allTrue); } - @Test(dataProvider = "longUnaryOpProvider") - static void withLong256VectorTests(IntFunction fa) { + @Test(dataProvider = "longBinaryOpProvider") + static void withLong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); long[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (long)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (long)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(long a) { @@ -4694,7 +4665,7 @@ public class Long256VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Long256VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "longUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Long512VectorTests.java b/test/jdk/jdk/incubator/vector/Long512VectorTests.java index 65edac9114c..022f1490fcc 100644 --- a/test/jdk/jdk/incubator/vector/Long512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long512VectorTests.java @@ -67,6 +67,14 @@ public class Long512VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 512); + static void assertArraysStrictlyEquals(long[] r, long[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { long apply(long a); } @@ -188,25 +196,6 @@ public class Long512VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(long[] r, long[] a, long element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(long[] r, long[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -661,21 +650,6 @@ public class Long512VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - long apply(long[] a, int b); - } - - static void assertArraysEquals(long[] r, long[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { long[] apply(long[] a, int ix, int[] b, int iy); } @@ -1199,10 +1173,6 @@ public class Long512VectorTests extends AbstractVectorTest { } } - static long get(long[] a, int i) { - return (long) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new long[length]; @@ -3814,22 +3784,23 @@ public class Long512VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Long512VectorTests::allTrue); } - @Test(dataProvider = "longUnaryOpProvider") - static void withLong512VectorTests(IntFunction fa) { + @Test(dataProvider = "longBinaryOpProvider") + static void withLong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); long[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (long)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (long)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(long a) { @@ -4694,7 +4665,7 @@ public class Long512VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Long512VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "longUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Long64VectorTests.java b/test/jdk/jdk/incubator/vector/Long64VectorTests.java index 7b1c65716aa..fe886bf93d8 100644 --- a/test/jdk/jdk/incubator/vector/Long64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long64VectorTests.java @@ -67,6 +67,14 @@ public class Long64VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 64); + static void assertArraysStrictlyEquals(long[] r, long[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { long apply(long a); } @@ -188,25 +196,6 @@ public class Long64VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(long[] r, long[] a, long element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(long[] r, long[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -661,21 +650,6 @@ public class Long64VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - long apply(long[] a, int b); - } - - static void assertArraysEquals(long[] r, long[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { long[] apply(long[] a, int ix, int[] b, int iy); } @@ -1199,10 +1173,6 @@ public class Long64VectorTests extends AbstractVectorTest { } } - static long get(long[] a, int i) { - return (long) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new long[length]; @@ -3814,22 +3784,23 @@ public class Long64VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Long64VectorTests::allTrue); } - @Test(dataProvider = "longUnaryOpProvider") - static void withLong64VectorTests(IntFunction fa) { + @Test(dataProvider = "longBinaryOpProvider") + static void withLong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); long[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (long)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (long)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(long a) { @@ -4694,7 +4665,7 @@ public class Long64VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Long64VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "longUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java b/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java index 06f5814e533..b77d6eeb118 100644 --- a/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java @@ -72,6 +72,14 @@ public class LongMaxVectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / Max); + static void assertArraysStrictlyEquals(long[] r, long[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { long apply(long a); } @@ -193,25 +201,6 @@ public class LongMaxVectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(long[] r, long[] a, long element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(long[] r, long[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -666,21 +655,6 @@ public class LongMaxVectorTests extends AbstractVectorTest { - interface FBinArrayOp { - long apply(long[] a, int b); - } - - static void assertArraysEquals(long[] r, long[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { long[] apply(long[] a, int ix, int[] b, int iy); } @@ -1204,10 +1178,6 @@ public class LongMaxVectorTests extends AbstractVectorTest { } } - static long get(long[] a, int i) { - return (long) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new long[length]; @@ -3819,22 +3789,23 @@ public class LongMaxVectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, LongMaxVectorTests::allTrue); } - @Test(dataProvider = "longUnaryOpProvider") - static void withLongMaxVectorTests(IntFunction fa) { + @Test(dataProvider = "longBinaryOpProvider") + static void withLongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); long[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (long)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (long)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(long a) { @@ -4699,7 +4670,7 @@ public class LongMaxVectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, LongMaxVectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "longUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Short128VectorTests.java b/test/jdk/jdk/incubator/vector/Short128VectorTests.java index c9fe21f8125..2a82ada044e 100644 --- a/test/jdk/jdk/incubator/vector/Short128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short128VectorTests.java @@ -67,6 +67,14 @@ public class Short128VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 128); + static void assertArraysStrictlyEquals(short[] r, short[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { short apply(short a); } @@ -231,25 +239,6 @@ public class Short128VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(short[] r, short[] a, short element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(short[] r, short[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Short128VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - short apply(short[] a, int b); - } - - static void assertArraysEquals(short[] r, short[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { short[] apply(short[] a, int ix, int[] b, int iy); } @@ -1202,10 +1176,6 @@ public class Short128VectorTests extends AbstractVectorTest { } } - static short get(short[] a, int i) { - return (short) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new short[length]; @@ -3739,22 +3709,23 @@ public class Short128VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Short128VectorTests::allTrue); } - @Test(dataProvider = "shortUnaryOpProvider") - static void withShort128VectorTests(IntFunction fa) { + @Test(dataProvider = "shortBinaryOpProvider") + static void withShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); short[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (short)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (short)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(short a) { @@ -4689,7 +4660,7 @@ public class Short128VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Short128VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "shortUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Short256VectorTests.java b/test/jdk/jdk/incubator/vector/Short256VectorTests.java index a39ec0126d4..69a8432acef 100644 --- a/test/jdk/jdk/incubator/vector/Short256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short256VectorTests.java @@ -67,6 +67,14 @@ public class Short256VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 256); + static void assertArraysStrictlyEquals(short[] r, short[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { short apply(short a); } @@ -231,25 +239,6 @@ public class Short256VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(short[] r, short[] a, short element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(short[] r, short[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Short256VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - short apply(short[] a, int b); - } - - static void assertArraysEquals(short[] r, short[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { short[] apply(short[] a, int ix, int[] b, int iy); } @@ -1202,10 +1176,6 @@ public class Short256VectorTests extends AbstractVectorTest { } } - static short get(short[] a, int i) { - return (short) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new short[length]; @@ -3739,22 +3709,23 @@ public class Short256VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Short256VectorTests::allTrue); } - @Test(dataProvider = "shortUnaryOpProvider") - static void withShort256VectorTests(IntFunction fa) { + @Test(dataProvider = "shortBinaryOpProvider") + static void withShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); short[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (short)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (short)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(short a) { @@ -4689,7 +4660,7 @@ public class Short256VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Short256VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "shortUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Short512VectorTests.java b/test/jdk/jdk/incubator/vector/Short512VectorTests.java index 5453c19149c..8e892a8a48e 100644 --- a/test/jdk/jdk/incubator/vector/Short512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short512VectorTests.java @@ -67,6 +67,14 @@ public class Short512VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 512); + static void assertArraysStrictlyEquals(short[] r, short[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { short apply(short a); } @@ -231,25 +239,6 @@ public class Short512VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(short[] r, short[] a, short element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(short[] r, short[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Short512VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - short apply(short[] a, int b); - } - - static void assertArraysEquals(short[] r, short[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { short[] apply(short[] a, int ix, int[] b, int iy); } @@ -1202,10 +1176,6 @@ public class Short512VectorTests extends AbstractVectorTest { } } - static short get(short[] a, int i) { - return (short) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new short[length]; @@ -3739,22 +3709,23 @@ public class Short512VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Short512VectorTests::allTrue); } - @Test(dataProvider = "shortUnaryOpProvider") - static void withShort512VectorTests(IntFunction fa) { + @Test(dataProvider = "shortBinaryOpProvider") + static void withShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); short[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (short)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (short)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(short a) { @@ -4689,7 +4660,7 @@ public class Short512VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Short512VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "shortUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/Short64VectorTests.java b/test/jdk/jdk/incubator/vector/Short64VectorTests.java index 8ba47569595..97658d4257d 100644 --- a/test/jdk/jdk/incubator/vector/Short64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short64VectorTests.java @@ -67,6 +67,14 @@ public class Short64VectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / 64); + static void assertArraysStrictlyEquals(short[] r, short[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { short apply(short a); } @@ -231,25 +239,6 @@ public class Short64VectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(short[] r, short[] a, short element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(short[] r, short[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -704,21 +693,6 @@ public class Short64VectorTests extends AbstractVectorTest { - interface FBinArrayOp { - short apply(short[] a, int b); - } - - static void assertArraysEquals(short[] r, short[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { short[] apply(short[] a, int ix, int[] b, int iy); } @@ -1202,10 +1176,6 @@ public class Short64VectorTests extends AbstractVectorTest { } } - static short get(short[] a, int i) { - return (short) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new short[length]; @@ -3739,22 +3709,23 @@ public class Short64VectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, Short64VectorTests::allTrue); } - @Test(dataProvider = "shortUnaryOpProvider") - static void withShort64VectorTests(IntFunction fa) { + @Test(dataProvider = "shortBinaryOpProvider") + static void withShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); short[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (short)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (short)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(short a) { @@ -4689,7 +4660,7 @@ public class Short64VectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, Short64VectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "shortUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java b/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java index 7b00638878d..0857c13ef3c 100644 --- a/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java @@ -72,6 +72,14 @@ public class ShortMaxVectorTests extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / Max); + static void assertArraysStrictlyEquals(short[] r, short[] a) { + for (int i = 0; i < a.length; i++) { + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } + } + } + interface FUnOp { short apply(short a); } @@ -236,25 +244,6 @@ public class ShortMaxVectorTests extends AbstractVectorTest { } } - static void assertInsertArraysEquals(short[] r, short[] a, short element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals(short[] r, short[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -709,21 +698,6 @@ public class ShortMaxVectorTests extends AbstractVectorTest { - interface FBinArrayOp { - short apply(short[] a, int b); - } - - static void assertArraysEquals(short[] r, short[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { short[] apply(short[] a, int ix, int[] b, int iy); } @@ -1207,10 +1181,6 @@ public class ShortMaxVectorTests extends AbstractVectorTest { } } - static short get(short[] a, int i) { - return (short) a[i]; - } - static final IntFunction fr = (vl) -> { int length = BUFFER_REPS * vl; return new short[length]; @@ -3744,22 +3714,23 @@ public class ShortMaxVectorTests extends AbstractVectorTest { assertReductionBoolArraysEquals(r, mask, ShortMaxVectorTests::allTrue); } - @Test(dataProvider = "shortUnaryOpProvider") - static void withShortMaxVectorTests(IntFunction fa) { + @Test(dataProvider = "shortBinaryOpProvider") + static void withShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); short[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); - av.withLane((j++ & (SPECIES.length()-1)), (short)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) & (SPECIES.length() - 1); } } - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, (short)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } static boolean testIS_DEFAULT(short a) { @@ -4694,7 +4665,7 @@ public class ShortMaxVectorTests extends AbstractVectorTest { } } - assertArraysEquals(r, a, ShortMaxVectorTests::get); + assertArraysStrictlyEquals(r, a); } @Test(dataProvider = "shortUnaryOpProvider") diff --git a/test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template b/test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template index 95d74b84860..261535317c6 100644 --- a/test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template +++ b/test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template @@ -1,10 +1,13 @@ $type$[] a = fa.apply(SPECIES.length()); + $type$[] b = fb.apply(SPECIES.length()); $type$[] r = fr.apply(SPECIES.length()); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { $abstractvectortype$ av = $abstractvectortype$.fromArray(SPECIES, a, i); - av.withLane((j++ \& (SPECIES.length()-1)), ($type$)(65535+i)).intoArray(r, i); + av.withLane(j, b[i + j]).intoArray(r, i); + a[i + j] = b[i + j]; + j = (j + 1) \& (SPECIES.length() - 1); } } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-Get-op.template b/test/jdk/jdk/incubator/vector/templates/Unit-Get-op.template index ec311693f4c..b60ff50076e 100644 --- a/test/jdk/jdk/incubator/vector/templates/Unit-Get-op.template +++ b/test/jdk/jdk/incubator/vector/templates/Unit-Get-op.template @@ -2,5 +2,5 @@ @Test(dataProvider = "$type$UnaryOpProvider") static void get$vectorteststype$(IntFunction<$type$[]> fa) { [[KERNEL]] - assertArraysEquals(r, a, $vectorteststype$::get); + assertArraysStrictlyEquals(r, a); } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template b/test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template index c41bd05f20e..5a889ceb8b9 100644 --- a/test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template +++ b/test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template @@ -1,9 +1,7 @@ - @Test(dataProvider = "$type$UnaryOpProvider") - static void with$vectorteststype$(IntFunction<$type$ []> fa) { + @Test(dataProvider = "$type$BinaryOpProvider") + static void with$vectorteststype$(IntFunction<$type$ []> fa, IntFunction<$type$ []> fb) { [[KERNEL]] - for (int i = 0, j = 0; i < a.length; i += SPECIES.length()) { - assertInsertArraysEquals(r, a, ($type$)(65535+i), (j++ & (SPECIES.length()-1)), i , i + SPECIES.length()); - } + assertArraysStrictlyEquals(r, a); } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-header.template b/test/jdk/jdk/incubator/vector/templates/Unit-header.template index 38ab6178244..42440881771 100644 --- a/test/jdk/jdk/incubator/vector/templates/Unit-header.template +++ b/test/jdk/jdk/incubator/vector/templates/Unit-header.template @@ -105,6 +105,26 @@ public class $vectorteststype$ extends AbstractVectorTest { static final int BUFFER_REPS = Integer.getInteger("jdk.incubator.vector.test.buffer-vectors", 25000 / $bits$); + static void assertArraysStrictlyEquals($type$[] r, $type$[] a) { + for (int i = 0; i < a.length; i++) { +#if[FP] + $bitstype$ ir = $Wideboxtype$.$type$ToRaw$Bitstype$Bits(r[i]); + $bitstype$ ia = $Wideboxtype$.$type$ToRaw$Bitstype$Bits(a[i]); + if (ir != ia) { +#if[Float] + Assert.fail(String.format("at index #%d, expected = %08X, actual = %08X", i, ia, ir)); +#else[Float] + Assert.fail(String.format("at index #%d, expected = %016X, actual = %016X", i, ia, ir)); +#end[Float] + } +#else[FP] + if (r[i] != a[i]) { + Assert.fail("at index #" + i + ", expected = " + a[i] + ", actual = " + r[i]); + } +#end[FP] + } + } + interface FUnOp { $type$ apply($type$ a); } @@ -314,25 +334,6 @@ relativeError)); } } - static void assertInsertArraysEquals($type$[] r, $type$[] a, $type$ element, int index, int start, int end) { - int i = start; - try { - for (; i < end; i += 1) { - if(i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element); - } else { - Assert.assertEquals(r[i], a[i]); - } - } - } catch (AssertionError e) { - if (i%SPECIES.length() == index) { - Assert.assertEquals(r[i], element, "at index #" + i); - } else { - Assert.assertEquals(r[i], a[i], "at index #" + i); - } - } - } - static void assertRearrangeArraysEquals($type$[] r, $type$[] a, int[] order, int vector_len) { int i = 0, j = 0; try { @@ -863,21 +864,6 @@ relativeError)); } #end[FP] - interface FBinArrayOp { - $type$ apply($type$[] a, int b); - } - - static void assertArraysEquals($type$[] r, $type$[] a, FBinArrayOp f) { - int i = 0; - try { - for (; i < a.length; i++) { - Assert.assertEquals(r[i], f.apply(a, i)); - } - } catch (AssertionError e) { - Assert.assertEquals(r[i], f.apply(a,i), "at index #" + i); - } - } - interface FGatherScatterOp { $type$[] apply($type$[] a, int ix, int[] b, int iy); } @@ -1472,22 +1458,20 @@ relativeError)); static $type$ cornerCaseValue(int i) { #if[FP] - switch(i % 7) { - case 0: - return $Wideboxtype$.MAX_VALUE; - case 1: - return $Wideboxtype$.MIN_VALUE; - case 2: - return $Wideboxtype$.NEGATIVE_INFINITY; - case 3: - return $Wideboxtype$.POSITIVE_INFINITY; - case 4: - return $Wideboxtype$.NaN; - case 5: - return ($type$)0.0; - default: - return ($type$)-0.0; - } + return switch(i % 8) { + case 0 -> $Wideboxtype$.MAX_VALUE; + case 1 -> $Wideboxtype$.MIN_VALUE; + case 2 -> $Wideboxtype$.NEGATIVE_INFINITY; + case 3 -> $Wideboxtype$.POSITIVE_INFINITY; + case 4 -> $Wideboxtype$.NaN; +#if[Float] + case 5 -> Float.intBitsToFloat(0x7F812345); +#else[Float] + case 5 -> Double.longBitsToDouble(0x7FF123456789ABCDL); +#end[Float] + case 6 -> ($type$)0.0; + default -> ($type$)-0.0; + }; #else[FP] switch(i % 5) { case 0: @@ -1504,10 +1488,6 @@ relativeError)); #end[FP] } - static $type$ get($type$[] a, int i) { - return ($type$) a[i]; - } - static final IntFunction<$type$[]> fr = (vl) -> { int length = BUFFER_REPS * vl; return new $type$[length];