[PATCH] D88897: [AArch64] WIP for review D88742

Vinay Madhusudan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 7 03:21:50 PDT 2020


mivnay added a comment.

In D88897#2316214 <https://reviews.llvm.org/D88897#2316214>, @dmgreen wrote:

> Right. Because of Global ISel? I don't know that very well and if there's a similar place to do the same thing, converting an intrinsics to the kind of node that would be matched.
>
> My hope was that we would be able to make something that I could later lift to being target-independent and share across AArch64 and MVE.
>
> Replicating the patterns doesn't feel great though, and disabling the test feels a bit of a step backwards.  Perhaps make the pattern match either the node or the intrinsic:
>
>   def AArch64uabd_n   : SDNode<"AArch64ISD::UABD", SDT_AArch64binvec>;
>   def AArch64sabd_n   : SDNode<"AArch64ISD::SABD", SDT_AArch64binvec>;
>   def AArch64uabd     : PatFrags<(ops node:$lhs, node:$rhs),
>                                      [(AArch64uabd_n node:$lhs, node:$rhs),
>                                       (int_aarch64_neon_uabd node:$lhs, node:$rhs)]>;
>   def AArch64sabd     : PatFrags<(ops node:$lhs, node:$rhs),
>                                      [(AArch64sabd_n node:$lhs, node:$rhs),
>                                       (int_aarch64_neon_sabd node:$lhs, node:$rhs)]>;

Yes ,the issue is in Global ISel. Above change works but it also allows one to use the intrinsics instead of ISD nodes. I am closing this review and will push the changes to the original review D88742 <https://reviews.llvm.org/D88742>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88897/new/

https://reviews.llvm.org/D88897



More information about the llvm-commits mailing list