RFR: 8294588: Auto vectorize half precision floating point conversion APIs [v7]
Sandhya Viswanathan
sviswanathan at openjdk.org
Thu Dec 8 00:30:01 UTC 2022
On Wed, 7 Dec 2022 23:54:50 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
>>> @vnkozlov I have addressed comments from Fei Gao and Xiaohong Gong. I have limited vectorization to avx2 and higher. If the changes look good to you, could you kindly run the tests? Thanks for all your help.
>>
>> @smita-kamath, can you explain why it does not work with AVX1? If it really requires AVX2 then you should just disable F16C for `(AVX < 2)` instead of current `(AVX < 1)` in `vm_version_x86.cpp`. And you would not need to modify `.ad` file and test.
>
>> @vnkozlov I have updated the test case to work with AVX=1.
>
> Can you explain what was wrong with AVX1 and what change fixed the issue?
> I see you renamed classes and addressed @fg1417 comment about `opcode`. It is not clear to me what fixed AVX1 issue.
@vnkozlov The test was failing earlier with -XX:UseAVX=1 because the right implemented() check was not happening as Fei Gao explained. In vectornode.cpp, method VectorCastNode::implemented() was not getting the right vopc (VectorCastF2X, VectorCastS2X instead of VectorCastF2HF and VectorCastHF2F) after call to VectorCastNode::opcode() and so the Matcher::match_rule_supported_superword() was called with wrong vopc. This is now fixed as Smita has fixed the VectorCastNode::opcode() and VectorCastNode::implemented().
-------------
PR: https://git.openjdk.org/jdk/pull/11471
More information about the hotspot-compiler-dev
mailing list