[LLVMdev] Extended Inline asm with double data type crashes clang

rajesh viswabramana viswabramana.rajesh at gmail.com
Wed Nov 21 01:49:26 PST 2012


Thanks Rafael,

Hello All,

Could anyone please comment, which part in selectiondag need to be
understood/modified to fix this.

Regards,
Rajesh




On Wed, Nov 21, 2012 at 2:38 AM, Rafael EspĂ­ndola <
rafael.espindola at gmail.com> wrote:

> I reported http://llvm.org/pr14393 to track it.
>
> On 20 November 2012 05:18, rajesh viswabramana
>  <viswabramana.rajesh at gmail.com> wrote:
> > Hi,
> >
> > Clang crashes when below snippet of code is compiled (used latest svn
> > version)
> >
> > double func1()
> > {
> >   double x ;
> >   asm ( "" : "=r"(x) : "0"(x) );
> >   return x;
> > }
> >
> >> clang -S test1.c
> >> Assertion failed: (PartVT.isInteger() || PartVT == MVT::x86mmx) &&
> >> ValueVT.isInteger() && "Unknown mismatch!", file
> >> ..\..\..\..\lib\CodeGen\SelectionDAG\SelectionDAGBuilder.cpp, line 378
> >
> >
> > Compilation sucessful, If data type passed to inline asm is of float
> >   float x ;
> >   asm ( "" : "=r"(x) : "0"(x) );
> >
> > (or) If double data type passed to float type of registers
> > double x;
> > asm ( "" : "=t"(x) : "0"(x) );
> >
> > It seems currently LLVM (selectionDAG) doesn't handle double to general
> > purpose register storing.
> > Could anyone please comment on this.
> >
> > Regards,
> > Rajesh
> >
> >
> >
> > _______________________________________________
> > 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/20121121/4ebb7b1e/attachment.html>


More information about the llvm-dev mailing list