[LLVMbugs] [Bug 14705] New: loop vectorizer crash
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Dec 24 00:39:56 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=14705
Bug #: 14705
Summary: loop vectorizer crash
Product: libraries
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P
Component: Loop Optimizer
AssignedTo: unassignedbugs at nondot.org
ReportedBy: nlewycky at google.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
This testcase crashes under "opt -loop-vectorize -mtriple
x86_64-unknown-linux-gnu":
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-S128"
target triple = "x86_64-unknown-linux-gnu"
@glbl = external global [16 x { i64, i64 }], align 16
declare void @fn()
define void @test() {
entry:
br label %loop
loop:
%indvars.iv = phi i64 [ %indvars.iv.next, %loop ], [ 0, %entry ]
%tmp = getelementptr inbounds [16 x { i64, i64 }]* @glbl, i64 0, i64
%indvars.iv
store { i64, i64 } { i64 ptrtoint (void ()* @fn to i64), i64 0 }, { i64, i64
}* %tmp, align 16
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp ne i32 %lftr.wideiv, 16
br i1 %exitcond, label %loop, label %exit
exit:
ret void
}
with a stacktrace like:
Unknown type!
UNREACHABLE executed at ValueTypes.cpp:229!
0 opt 0x00000000016b597e
1 opt 0x00000000016b5654
2 libpthread.so.0 0x00007fc10b96fcb0
3 libc.so.6 0x00007fc10abc1425 gsignal + 53
4 libc.so.6 0x00007fc10abc4b8b abort + 379
5 opt 0x000000000169ccaf
6 opt 0x00000000016649d2 llvm::MVT::getVT(llvm::Type*, bool) + 146
7 opt 0x0000000001664b6e llvm::EVT::getEVT(llvm::Type*, bool) + 62
8 opt 0x000000000093e3d4
9 opt 0x00000000014827fc
llvm::VectorTargetTransformImpl::getTypeLegalizationCost(llvm::Type*) const +
60
10 opt 0x0000000000c58a1d
llvm::X86VectorTargetTransformInfo::getMemoryOpCost(unsigned int, llvm::Type*,
unsigned int, unsigned int) const + 45
11 opt 0x00000000010f6a9c
llvm::LoopVectorizationCostModel::getInstructionCost(llvm::Instruction*,
unsigned int) + 990
12 opt 0x00000000010f6570
llvm::LoopVectorizationCostModel::expectedCost(unsigned int) + 162
13 opt 0x00000000010f62b6
llvm::LoopVectorizationCostModel::selectVectorizationFactor(bool, unsigned int)
+ 752
14 opt 0x00000000010ee3d3
15 opt 0x00000000013c0c18
llvm::LPPassManager::runOnFunction(llvm::Function&) + 1020
16 opt 0x00000000016436d8
llvm::FPPassManager::runOnFunction(llvm::Function&) + 390
17 opt 0x00000000016438d3
llvm::FPPassManager::runOnModule(llvm::Module&) + 89
18 opt 0x0000000001643c4b
llvm::MPPassManager::runOnModule(llvm::Module&) + 573
19 opt 0x0000000001644260 llvm::PassManagerImpl::run(llvm::Module&)
+ 254
20 opt 0x0000000001644473 llvm::PassManager::run(llvm::Module&) +
39
21 opt 0x00000000008c14fe main + 5346
22 libc.so.6 0x00007fc10abac76d __libc_start_main + 237
23 opt 0x00000000008b1499
Stack dump:
0. Program arguments: llvm/Debug+Asserts/bin/opt -loop-vectorize -mtriple
x86_64-unknown-linux-gnu b.bc
1. Running pass 'Function Pass Manager' on module 'b.bc'.
2. Running pass 'Loop Pass Manager' on function
'@_ZN12quickrelease12UpdateHandle16InitStateMachineEv'
3. Running pass 'Loop Vectorization' on basic block '%bb1'
--
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