RFR: 8352585: Add special case handling for Float16.max/min x86 backend [v3]

Emanuel Peter epeter at openjdk.org
Tue Mar 25 16:50:07 UTC 2025


On Tue, 25 Mar 2025 08:34:27 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> This bugfix patch adds the special handling as per x86 AVX512-FP16 ISA specification[1][2] to compute max/min operations with +/-0.0 or NaN operands.
>> 
>> Special handling leverage the instruction semantic, central idea is to shuffle the operands such that smaller input gets assigned to second operand for min operation or a larger input gets assigned to second operand for max operation, in addition result equals NaN if an unordered comparison detects first input as a NaN value else we return the result of min/max operation. 
>> 
>> Kindly review and share your feedback.
>> 
>> Best Regards,
>> Jatin
>> 
>> [1] https://www.felixcloutier.com/x86/vminsh
>> [2] https://www.felixcloutier.com/x86/vmaxsh
>
> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Review comments resolutions

test/hotspot/jtreg/compiler/intrinsics/float16/TestFloat16MaxMinSpecialValues.java line 33:

> 31:  * @library /test/lib /
> 32:  * @summary Add special case handling for Float16.max/min x86 backend
> 33:  * @requires (os.simpleArch == "x64" & vm.cpu.features ~= ".*avx512_fp16.*" & vm.cpu.features ~= ".*avx512bw.*" & vm.cpu.features ~= ".*avx512vl.*")

Can you please add restrictions to the IR rules, so that the test can run on all platforms?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24169#discussion_r2012521761


More information about the hotspot-compiler-dev mailing list