On Wed, 24 Aug 2022 23:48:36 GMT, Smita Kamath <[email protected]> wrote:
>> 8289552: Make intrinsic conversions between bit representations of half
>> precision values and floats
>
> Smita Kamath has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Updated copyright comment
src/hotspot/cpu/x86/x86.ad line 1686:
> 1684: case Op_ConvHF2F:
> 1685: if (!VM_Version::supports_f16c() && !VM_Version::supports_evex()
> &&
> 1686: !VM_Version::supports_avx512vl()) {
The condition should be:
if (!VM_Version::supports_f16c() &&
!(VM_Version::supports_evex() && VM_Version::supports_avx512vl())) {
return false;
}
For AVX-512 both evex and avx512vl are needed.
src/hotspot/cpu/x86/x86_64.ad line 11320:
> 11318: ins_pipe( pipe_slow );
> 11319: %}
> 11320:
For F2HF, good to also add optimized rule with StoreC to benefit from vcvtps2ph
memory destination form of instruction.
match(Set mem (StoreC mem (ConvF2HF src)));
src/hotspot/cpu/x86/x86_64.ad line 11330:
> 11328: ins_pipe( pipe_slow );
> 11329: %}
> 11330:
For HF2F, good to also add optimized rule with LoadS to benefit from vcvtph2ps
memory src form of instruction.
match(Set dst (ConvHF2F ( LoadS mem)));
-------------
PR: https://git.openjdk.org/jdk/pull/9781