[LLVMbugs] [Bug 12602] New: An assertion is triggered when function return <4 x i1>
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Apr 20 07:57:05 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=12602
Bug #: 12602
Summary: An assertion is triggered when function return <4 x
i1>
Product: libraries
Version: 3.0
Platform: PC
OS/Version: other
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: wuye9036 at gmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 8413
--> http://llvm.org/bugs/attachment.cgi?id=8413
LLVM 3.0 IR
Hi Guys,
If I write a function return <4 x i1>, an assertion was triggered.
(windows 7 x64, msvc 2010 sp1 x86 debug)
Assertion failed: !VT.isVector() && "getZeroExtendInReg should use the vector
el
ement type instead of " "the vector type!", file
D:\Programming\salvia\3rd_party
\llvm\lib\CodeGen\SelectionDAG\SelectionDAG.cpp, line 905
And call stacks are:
> sasl_driver_d.dll!llvm::SelectionDAG::getZeroExtendInReg(llvm::SDValue Op={...}, llvm::DebugLoc DL={...}, llvm::EVT VT={...}) Line 905 + 0x2f bytes C++
sasl_driver_d.dll!`anonymous
namespace'::SelectionDAGLegalize::LegalizeOp(llvm::SDValue Op={...}) Line 1549
+ 0x30 bytes C++
sasl_driver_d.dll!`anonymous
namespace'::SelectionDAGLegalize::LegalizeDAG() Line 210 + 0x26 bytes C++
sasl_driver_d.dll!llvm::SelectionDAG::Legalize() Line 3961 + 0x24 bytes
C++
sasl_driver_d.dll!llvm::SelectionDAGISel::CodeGenAndEmitDAG() Line 557
C++
sasl_driver_d.dll!llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction
const > Begin={...}, llvm::ilist_iterator<llvm::Instruction const > End={...},
bool & HadTailCall=false) Line 422 C++
sasl_driver_d.dll!llvm::SelectionDAGISel::SelectAllBasicBlocks(const
llvm::Function & Fn={...}) Line 992 C++
sasl_driver_d.dll!llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction
& mf={...}) Line 294 C++
sasl_driver_d.dll!llvm::MachineFunctionPass::runOnFunction(llvm::Function
& F={...}) Line 33 + 0x13 bytes C++
sasl_driver_d.dll!llvm::FPPassManager::runOnFunction(llvm::Function &
F={...}) Line 1512 + 0x17 bytes C++
sasl_driver_d.dll!llvm::FunctionPassManagerImpl::run(llvm::Function &
F={...}) Line 1462 + 0x1b bytes C++
sasl_driver_d.dll!llvm::FunctionPassManager::run(llvm::Function & F={...})
Line 1392 C++
sasl_driver_d.dll!llvm::JIT::jitTheFunction(llvm::Function * F=0x03498568,
const llvm::MutexGuard & locked={...}) Line 640 C++
sasl_driver_d.dll!llvm::JIT::runJITOnFunctionUnlocked(llvm::Function *
F=0x03499250, const llvm::MutexGuard & locked={...}) Line 633 C++
sasl_driver_d.dll!llvm::JIT::getPointerToFunction(llvm::Function *
F=0x03499250) Line 677 C++
Attachement is full ir.
If I changed %40 = call <4 x i1> @"Mbool4@@QBB@@QBB@@QBB@@QBB@@"(i1 %9, i1 %19,
i1 %29, i1 %39) and function signature to <3 x i1>, it works well.
The key codes are line 93 and line 46-49.
I think it's a general defect in x86.
Thanks.
--
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