Matt, Is this an example you are talking about: LoadedVect = DAG.getNode <http://llvm.org/docs/doxygen/html/classllvm_1_1SelectionDAG.html#ab02868bea897db34232413f1929ade1d> (ISD::INTRINSIC_WO_CHAIN <http://llvm.org/docs/doxygen/html/namespacellvm_1_1ISD.html#a22ea9cec080dd5f4f47ba234c2f59110ac771b9cda3b889242d457cc4d9b2159c>, dl, MVT::v4f64, DAG.getConstant <http://llvm.org/docs/doxygen/html/classllvm_1_1SelectionDAG.html#adf7343dcb7fff67cf516abca4c1d6793>(Intrinsic::ppc_qpx_qvfcfidu, dl, MVT::i32), LoadedVect); Something like this? On Tue, Feb 2, 2016 at 12:55 PM, Matt Arsenault <arsenm2 at gmail.com> wrote:> > > On Feb 2, 2016, at 09:44, Ryan Taylor <ryta1203 at gmail.com> wrote: > > > > Matt, > > > > Thanks for the response. Is there an example in the code somewhere of > doing the intrinsic ID method? I don't need to put it a lot of places so > I'm not sure it warrants adding a node. > > > > Thanks. > > Just do a git grep “getNode(ISD::INTRINSIC_WO_CHAIN”. It looks like there > are a bunch in AArch64ISelLowering-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160202/555b3dde/attachment.html>
> On Feb 2, 2016, at 11:27, Ryan Taylor <ryta1203 at gmail.com> wrote: > > Matt, > > Is this an example you are talking about: > > LoadedVect = DAG.getNode <http://llvm.org/docs/doxygen/html/classllvm_1_1SelectionDAG.html#ab02868bea897db34232413f1929ade1d>(ISD::INTRINSIC_WO_CHAIN <http://llvm.org/docs/doxygen/html/namespacellvm_1_1ISD.html#a22ea9cec080dd5f4f47ba234c2f59110ac771b9cda3b889242d457cc4d9b2159c>, dl, MVT::v4f64, > <> DAG.getConstant <http://llvm.org/docs/doxygen/html/classllvm_1_1SelectionDAG.html#adf7343dcb7fff67cf516abca4c1d6793>(Intrinsic::ppc_qpx_qvfcfidu, dl, MVT::i32), > <> LoadedVect); > > Something like this?Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160202/8a9aceca/attachment.html>
Matt, This seems to generate llvm.my_intrinsic just fine in the DAG, so no DAG errors; however, it won't match. For example, if I call the intrinsic from C, the DAG node looks to be named the same in dotty file but it won't match... am I missing something? I've done it exactly the way it was done above. The DAG looks great but it won't match. Did I miss something? Thanks. On Tue, Feb 2, 2016 at 2:47 PM, Matt Arsenault <arsenm2 at gmail.com> wrote:> > On Feb 2, 2016, at 11:27, Ryan Taylor <ryta1203 at gmail.com> wrote: > > Matt, > > Is this an example you are talking about: > > LoadedVect = DAG.getNode > <http://llvm.org/docs/doxygen/html/classllvm_1_1SelectionDAG.html#ab02868bea897db34232413f1929ade1d> > (ISD::INTRINSIC_WO_CHAIN > <http://llvm.org/docs/doxygen/html/namespacellvm_1_1ISD.html#a22ea9cec080dd5f4f47ba234c2f59110ac771b9cda3b889242d457cc4d9b2159c>, > dl, MVT::v4f64, > DAG.getConstant > <http://llvm.org/docs/doxygen/html/classllvm_1_1SelectionDAG.html#adf7343dcb7fff67cf516abca4c1d6793>(Intrinsic::ppc_qpx_qvfcfidu, > dl, MVT::i32), > LoadedVect); > > Something like this? > > > Yes >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160202/3dfc6af6/attachment.html>