[LLVMdev] how can I create an SSE instrinsics sqrt?
zhi chen
zchenhn at gmail.com
Fri Apr 17 17:21:54 PDT 2015
I want to create a vector version sqrt as the following.
Value *Approx::CreateFSqrt(IRBuilder<> &builder, Value *v, const char*
Name) {
Type *tys[] = {v->getType()};
Module* M = currF->getParent();
Value* sqrtv = Intrinsic::getDeclaration(M, Intrinsic::x86_sse2_sqrt_pd);
CallInst *CI = builder.CreateCall(sqrtv, v, Name);
return CI;
}
Here is Value *v is <2 x double>
However, it outputs Assertion `isa<X>(Val) && "cast<Ty>() argument of
incompatible type! any idea?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150417/c36b9fbf/attachment.html>
More information about the llvm-dev
mailing list