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

Reply via email to