[LLVMbugs] [Bug 9601] New: inline asm with float constant triggers assertion
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Mar 31 17:10:47 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=9601
Summary: inline asm with float constant triggers assertion
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: nlewycky at google.com
CC: llvmbugs at cs.uiuc.edu
This bugpoint produced module:
target datalayout =
"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"
define void @test() {
entry:
%0 = call float asm sideeffect "xchg $0, $1",
"=r,*m,0,~{memory},~{dirflag},~{fpsr},~{flags}"(i32* undef, float 2.000000e+00)
nounwind
unreachable
}
triggers an assertion in the backend:
$ llvm/Debug+Asserts/bin/llc b.ll
llc: SelectionDAGBuilder.cpp:334: void getCopyToParts(llvm::SelectionDAG&,
llvm::DebugLoc, llvm::SDValue, llvm::SDValue*, unsigned int, llvm::EVT,
llvm::ISD::NodeType): Assertion `PartVT.isInteger() && ValueVT.isInteger() &&
"Unknown mismatch!"' failed.
0 llc 0x00000000014af34d
1 llc 0x00000000014af140
2 libpthread.so.0 0x00007fa5a0c308f0
3 libc.so.6 0x00007fa59ff1fa75 gsignal + 53
4 libc.so.6 0x00007fa59ff235c0 abort + 384
5 libc.so.6 0x00007fa59ff18941 __assert_fail + 241
6 llc 0x0000000000eb41eb
7 llc 0x0000000000eb6921
8 llc 0x0000000000ee0d31
llvm::SelectionDAGBuilder::visitInlineAsm(llvm::ImmutableCallSite) + 5965
9 llc 0x0000000000edd1b7
llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) + 107
10 llc 0x0000000000eb7b02 llvm::SelectionDAGBuilder::visit(unsigned
int, llvm::User const&) + 1260
11 llc 0x0000000000eb7580
llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) + 128
12 llc 0x0000000000ef8d96
llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction
const>, llvm::ilist_iterator<llvm::Instruction const>, bool&) + 68
13 llc 0x0000000000efb71a
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 2604
14 llc 0x0000000000ef83c1
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 731
15 llc 0x0000000001056a29
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 95
16 llc 0x00000000013dcfbc
llvm::FPPassManager::runOnFunction(llvm::Function&) + 448
17 llc 0x00000000013dd202
llvm::FPPassManager::runOnModule(llvm::Module&) + 102
18 llc 0x00000000013dd535
llvm::MPPassManager::runOnModule(llvm::Module&) + 459
19 llc 0x00000000013dda38 llvm::PassManagerImpl::run(llvm::Module&)
+ 130
20 llc 0x00000000013ddf8d llvm::PassManager::run(llvm::Module&) +
39
21 llc 0x0000000000a19b6f main + 2455
22 libc.so.6 0x00007fa59ff0ac4d __libc_start_main + 253
23 llc 0x0000000000a18ac9
Stack dump:
0. Program arguments: llvm/Debug+Asserts/bin/llc b.ll
1. Running pass 'Function Pass Manager' on module 'b.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@test'
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list