On Thu, 9 Jan 2025 13:13:30 GMT, Emanuel Peter <[email protected]> wrote:
>> Jatin Bhateja has refreshed the contents of this pull request, and previous
>> commits have been removed. The incremental views will show differences
>> compared to the previous content of the PR. The pull request contains one
>> new commit since the last revision:
>>
>> Updating copyright year of modified files.
>
> src/hotspot/share/opto/superword.cpp line 2567:
>
>> 2565: // half float to float, in such a case back propagation of narrow
>> type (SHORT)
>> 2566: // may not be possible.
>> 2567: if (n->Opcode() == Op_ConvF2HF || n->Opcode() ==
>> Op_ReinterpretHF2S) {
>
> Is this relevant, or does that belong to a different (vector) RFE?
It makes sure to assign a SHORT container type to the ReinterpretHF2S node
which could be succeeded by a ConvHF2F IR which expects its inputs to be of
SHORT type. During early phase of SLP extraction we get into a control flow
querying the implemented vector IR opcode through
split_packs_only_implemented_with_smaller_size
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/vectornode.cpp#L1446
This scenario is tested by following JTREG
[test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java](https://github.com/openjdk/jdk/pull/22754/files#diff-7e7404a977d8ca567f8005b80bd840ea2e722c022e7187fa2dd21df4a5837faaR49)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22754#discussion_r1912858395