RFR: 8353786: Migrate Vector API math library support to FFM API [v5]

Xiaohong Gong xgong at openjdk.org
Thu Apr 17 01:39:41 UTC 2025


On Wed, 16 Apr 2025 18:26:18 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMathLibrary.java line 240:
>> 
>>> 238:                 if (isAARCH64() && vspecies.vectorBitSize() > 128) {
>>> 239:                     return false; // FIXME: SVE support only for MAX shapes
>>> 240:                 }
>> 
>> SVE also supports operations for partial vector size, which means the vector size is smaller than MAX size. For example, if the max vector size of a SVE architecture is 512-bit, the FP vector operations with `VectorShape.S_256_BIT` are also supported. They are implemented with the same scalable math functions in SLEEF.
>> 
>> Hence, I think this check and the assertion in line-198 can be removed. Thanks!
>
> How does it work now? The code in `generate_vector_math_stubs()` in `stubGenerator_aarch64.cpp` only populates `VEC_SIZE_SCALABLE` shapes with SVE versions.

Please see the `addr` definition code in https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/vectorIntrinsics.cpp#L1877 . If queried `addr` returns `nullptr` for 256-bit vectors, and the arch supports scalable vector, then the `addr` will be assigned to the scalable ones.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24462#discussion_r2048052819


More information about the hotspot-dev mailing list