RFR: 8350835: C2 SuperWord: assert/wrong result when using Float.float16ToFloat with byte instead of short input [v2]

Jatin Bhateja jbhateja at openjdk.org
Wed Mar 12 03:40:57 UTC 2025


On Mon, 10 Mar 2025 21:26:41 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> Float.float16ToFloat generates wrong vectorized code in product build and asserts in fastdebug/debug when argument is of type byte, int, or long array. The short term solution is to not auto vectorize in these cases.
>> 
>> Review comments are welcome.
>> 
>> Best Regards,
>> Sandhya
>
> Sandhya Viswanathan has updated the pull request incrementally with one additional commit since the last revision:
> 
>   review comments

test/hotspot/jtreg/compiler/vectorization/TestFloat16ToFloatConv.java line 78:

> 76:     @IR(counts = {IRNode.VECTOR_CAST_HF2F, "> 0"},
> 77:         applyIfOr = {"UseCompactObjectHeaders", "false", "AlignVector", "false"},
> 78:         applyIfPlatformOr = {"x64", "true", "aarch64", "true", "riscv64", "true"},

Can you kindly justify the need for compressed object header usage,  it will mainly impact the pre-loop trip count compuation. AlignVector should be sufficient since it's a whitelisted option

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23939#discussion_r1990497448


More information about the hotspot-compiler-dev mailing list