[llvm-dev] Help wanted: Overloading an Intinsic
David Noursi via llvm-dev
llvm-dev at lists.llvm.org
Tue Jul 26 15:21:52 PDT 2016
Hello All,
I have been modifying LLVM a project of mine, and have encountered issues
with overloading an intrinsic function.
I have defined two types, abit (which is mapped, in Intrinsics.td, to i128)
and qbit (accordingly mapped to i16). I would like my intrinsic function,
CNOT(x,y), to accept either an abit or a qbit for each argument, so I
overload with iAny and llvm_anyint_ty, as seemed to be the method for other
intrinsics:
def int_CNOT: Intrinsic<[], [llvm_anyint_ty,
llvm_anyint_ty],[],["llvm.CNOT"]>;
My llvm/clang directory builds successfully, but I get an error on getType
from clang, which I believe is rooted in my llvm code. My question is
simply, are there any additional steps to overloading an intrinsic? I stand
to believe there is more to be done than what I did in the one line above,
but I cannot find where to do this.
For what its worth, I get this error in generating the initial IR through
clang:
clang: ../ArrayRef.h:129: const T &llvm::ArrayRef<llvm::Type
*>::operator[](size_t) const [T = llvm::Type *]: Assertion `Index < Length
&& "Invalid index!"' failed.
Many Thanks,
David Noursi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160726/a13f9f35/attachment.html>
More information about the llvm-dev
mailing list