[vector] RFR: Fix FMA intrinsic

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue May 29 16:36:30 UTC 2018


Thanks, Razvan.

Best regards,
Vladimir Ivanov

On 29/05/2018 19:33, Lupusoru, Razvan A wrote:
> Looks good to me. Thanks!
> 
> --Razvan
> 
> -----Original Message-----
> From: Vladimir Ivanov [mailto:vladimir.x.ivanov at oracle.com]
> Sent: Tuesday, May 29, 2018 4:15 AM
> To: Lupusoru, Razvan A <razvan.a.lupusoru at intel.com>; panama-dev at openjdk.java.net
> Subject: Re: [vector] RFR: Fix FMA intrinsic
> 
> Haven't pushed that one yet. Any objections to the proposed fix?
> 
> Best regards,
> Vladimir Ivanov
> 
> On 18/05/2018 01:43, Vladimir Ivanov wrote:
>> Yeah, spotted that inconsistency when running the tests :-)
>>
>> Here's what I ended up with:
>>     http://cr.openjdk.java.net/~vlivanov/panama/vector/fma/webrev.01/
>>
>> It passes scalar ops in all cases except VectorCast nodes.
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> On 5/17/18 11:45, Lupusoru, Razvan A wrote:
>>> The fix for fma looks fine. That said, it seems that you removed all
>>> vector opcodes from VectorNode::opcode. This is problematic because
>>> none of the other intrinsic implementations that call that method are
>>> updated to pass in opc instead of the "vopc".
>>>
>>> - Create a second version of VectorNode::make that takes in vopc
>>> instead of opc. Update the version that takes in opc to simply call
>>> VectorNode::opcode and then your new version of VectorNode::make
>>> - Update all intrinsic implementations to ensure that vopc is passed
>>> in to the second variant.
>>> OR
>>> - Update all calls to VectorNode::make to pass in opc instead of
>>> sopc/vopc.
>>>
>>> I prefer the first variant. Thanks!
>>>
>>> --Razvan
>>>
>>> -----Original Message-----
>>> From: panama-dev [mailto:panama-dev-bounces at openjdk.java.net] On
>>> Behalf Of Vladimir Ivanov
>>> Sent: Thursday, May 17, 2018 1:04 AM
>>> To: panama-dev at openjdk.java.net
>>> Subject: [vector] RFR: Fix FMA intrinsic
>>>
>>> http://cr.openjdk.java.net/~vlivanov/panama/vector/fma/webrev.00/
>>>
>>> There are 2 bug being fixed:
>>>      (1) 3rd argument of a ternary operation is always null in
>>> intrinsified version;
>>>
>>>      (2) VectorNode::make() accepts vector ops, but misses
>>> Op_FmaVF/Op_FmaVD in ternary case. Instead of adding them into the
>>> list, I propose to always pass scalar ops into the methods and get
>>> rid of the special cases for vector ops.
>>>
>>> Thanks!
>>>
>>> Best regards,
>>> Vladimir Ivanov
>>>


More information about the panama-dev mailing list