[LLVMdev] Making use of SSE intrinsics

Nicolas Capens nicolas at capens.net
Tue May 20 05:03:50 PDT 2008


Hi all,

 

I'd like to make use of some specific x86 Streaming SIMD Extension
instructions, but I don't know where to start. For instance the 'rcpps'
instructions computes a low precision but fast reciprocal. I've noticed that
LLVM supports intrinsics, but I couldn't find any information on how to use
them. I've tried digging through the LLVM-GCC code but it's just too complex
for me. I would be very grateful if someone could complete this code:

 

LoadInst *x = new LoadInst(ptr_x, "", false, basicBlock);

// y = rcpps(x)   // FIXME

StoreInst *storeResult = new StoreInst(y, ptr_y, false, basicBlock);

 

Somewhat related to this, I'd also like to know how to 'reinterpret_cast'
values. It can be quite useful to sometimes interpret a vector of
floating-point values as a vector of integers (for instance to extract the
sign, exponent and/or mantissa bits). Any information on how to do that
would be much appreciated.

 

Thanks,

 

Nicolas Capens

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080520/a1db13b6/attachment.html>


More information about the llvm-dev mailing list