RFR: 8370691: Add new Float16Vector type and enable intrinsification of vector operations supported by auto-vectorizer [v9]
Fei Yang
fyang at openjdk.org
Tue Jan 13 10:14:33 UTC 2026
On Wed, 7 Jan 2026 09:03:03 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> test/jdk/jdk/incubator/vector/Float16Vector64Tests.java line 1893:
>>
>>> 1891: VectorMask<Float16> m = three.compare(VectorOperators.LE, higher);
>>> 1892: assert(m.allTrue());
>>> 1893: m = higher.min((short)-1).test(VectorOperators.IS_NEGATIVE);
>>
>> I find that `higher.min((short)-1)` produces a float16 vector of 4 NaNs. So are we testing for negative NaNs with `VectorOperators.IS_NEGATIVE`? Is it more reasonable to test `VectorOperators.IS_NAN` instead?
>
> Thanks for catching this, all the Float16Vector lanes and short argument passed to shorthand APIs are assumed to be encoded in IEEE 754 binary 16 format, we should be passing Float16 bit representation of -1 here.
Thanks for confirming this. And I see similar occurrences in Float / Double varients of the tests.
Maybe we should fix them as well?
test/jdk/jdk/incubator/vector/FloatVector256Tests.java
test/jdk/jdk/incubator/vector/FloatVector128Tests.java
test/jdk/jdk/incubator/vector/FloatVector64Tests.java
test/jdk/jdk/incubator/vector/FloatVector512Tests.java
test/jdk/jdk/incubator/vector/FloatVectorMaxTests.java
test/jdk/jdk/incubator/vector/DoubleVector128Tests.java
test/jdk/jdk/incubator/vector/DoubleVector64Tests.java
test/jdk/jdk/incubator/vector/DoubleVector256Tests.java
test/jdk/jdk/incubator/vector/DoubleVector512Tests.java
test/jdk/jdk/incubator/vector/DoubleVectorMaxTests.java
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r2685722818
More information about the hotspot-compiler-dev
mailing list