[vector] RFR: Fix FMA intrinsic

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu May 17 22:43:45 UTC 2018


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