rajesh viswabramana
2012-Nov-20 10:18 UTC
[LLVMdev] Extended Inline asm with double data type crashes clang
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20121120/8a4361d7/attachment.html>
Rafael EspĂndola
2012-Nov-20 21:08 UTC
[LLVMdev] Extended Inline asm with double data type crashes clang
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 >
rajesh viswabramana
2012-Nov-21 09:49 UTC
[LLVMdev] Extended Inline asm with double data type crashes clang
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>
Reasonably Related Threads
- [LLVMdev] Extended Inline asm with double data type crashes clang
- [LLVMdev] Extended Inline asm with double data type crashes clang
- [LLVMdev] Extended Inline asm with double data type crashes clang
- [LLVMdev] Function inline causes crash in clang for .ast to .s
- [LLVMdev] libclang_rt.asan-x86_64.a: No such file or directory