VectorOperators.IS_FINITE, IS_NAN, and IS_INFINITE are floating-point-only test
operators. Applying one of these operators to an integral vector currently
reaches the **_if (opKind(op, VO_SPECIAL)) {...}_** handing branch implemented
in testTemplate and throws AssertionError, instead of reporting an unsupported
operation.
This change:
- Checks VectorOperators.Test.compatibleWith(...) before executing specially
implemented test operations.
- Throws UnsupportedOperationException for incompatible element types in both
masked and unmasked test(...) operations.
- Documents UnsupportedOperationException in both public Vector.test(...)
overloads.
- Updates VectorLanewiseOpCompatibleWithTest to cover supported and unsupported
test operators, with and without masks, across the available vector species.
---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK
Interim AI Policy](https://openjdk.org/legal/ai).
-------------
Commit messages:
- 8391307: VectorAPI: Floating-point test operators throw AssertionError on
integral vectors
Changes: https://git.openjdk.org/jdk/pull/32633/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=32633&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8391307
Stats: 148 lines in 10 files changed: 132 ins; 7 del; 9 mod
Patch: https://git.openjdk.org/jdk/pull/32633.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/32633/head:pull/32633
PR: https://git.openjdk.org/jdk/pull/32633