[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