[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
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
def int_CNOT: Intrinsic<, [llvm_anyint_ty,
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: ../ArrayRef.h:129: const T &llvm::ArrayRef<llvm::Type
*>::operator(size_t) const [T = llvm::Type *]: Assertion `Index < Length
&& "Invalid index!"' failed.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev