Hi, The arguments to the 'and' instruction must be integer types or vectors of integer types. If I have a compiler whose source language has support for andps by having its own intrinsics, then I would have to generate code to convert the float vector into an int vector before passing it to llvm's and instruction, then convert the result back. Zoltan On Tue, Dec 8, 2009 at 8:20 PM, Evan Cheng <evan.cheng at apple.com> wrote:> > On Dec 8, 2009, at 11:18 AM, Zoltan Varga wrote: > > > Hi, > > > > LLVM is used to have an llvm.x86.and_ps instrinsic for the ANDPS > instruction, but it seems to be gone, and it is a bit hard to > > synthetize it from vector instructions, since 'and' only works on vectors > of integer types. Would a patch be accepted which adds this and related > instructions back ? > > No. It won't be. Why not just generate a llvm and instruction? > > Evan > > > > > Zoltan > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091208/a3c109dc/attachment.html>
Hi Zoltan, I think the bitcast operation is rather painless to use. And if you want to be able to execute it on a float vector you could try putting the and operation in a function with inline linkage and that would be all that's needed to convert over and back. BTW, bitcasting is a no-op conversion in actual code. --Sam Crow> >From: Zoltan Varga <vargaz at gmail.com> >To: Evan Cheng <evan.cheng at apple.com> >Cc: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> >Sent: Tue, December 8, 2009 1:39:18 PM >Subject: Re: [LLVMdev] LLVM intrinsic for SSE ANDPS instruction > >Hi, > > The arguments to the 'and' instruction must be integer types or vectors of integer types. If >I have a compiler whose source language has support for andps by having its own intrinsics, >then I would have to generate code to convert the float vector into an int vector before passing >>it to llvm's and instruction, then convert the result back. > > Zoltan > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091208/3f375b46/attachment.html>
Hi, That seems to work, thanks. Zoltan On Tue, Dec 8, 2009 at 8:57 PM, Samuel Crow <samuraileumas at yahoo.com> wrote:> Hi Zoltan, > > I think the bitcast operation is rather painless to use. And if you want > to be able to execute it on a float vector you could try putting the and > operation in a function with inline linkage and that would be all that's > needed to convert over and back. BTW, bitcasting is a no-op conversion in > actual code. > > --Sam Crow > > > *From:* Zoltan Varga <vargaz at gmail.com> > *To:* Evan Cheng <evan.cheng at apple.com> > *Cc:* LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> > *Sent:* Tue, December 8, 2009 1:39:18 PM > *Subject:* Re: [LLVMdev] LLVM intrinsic for SSE ANDPS instruction > > Hi, > > The arguments to the 'and' instruction must be integer types or vectors > of integer types. If > I have a compiler whose source language has support for andps by having its > own intrinsics, > then I would have to generate code to convert the float vector into an int > vector before passing > it to llvm's and instruction, then convert the result back. > > Zoltan > > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091208/4a852aa5/attachment.html>