[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