merge all the "crash tests" into crash.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124101 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2011-01-24 03:37:34 +00:00
parent 867be59684
commit 850bdd2fcc
15 changed files with 240 additions and 293 deletions

View File

@ -1,8 +0,0 @@
; RUN: opt < %s -scalarrepl
define void @main() {
%E = alloca { { i32, float, double, i64 }, { i32, float, double, i64 } } ; <{ { i32, float, double, i64 }, { i32, float, double, i64 } }*> [#uses=1]
%tmp.151 = getelementptr { { i32, float, double, i64 }, { i32, float, double, i64 } }* %E, i64 0, i32 1, i32 3 ; <i64*> [#uses=0]
ret void
}

View File

@ -1,10 +0,0 @@
; RUN: opt < %s -scalarrepl
define i32 @test() {
%X = alloca { [4 x i32] } ; <{ [4 x i32] }*> [#uses=1]
%Y = getelementptr { [4 x i32] }* %X, i64 0, i32 0, i64 2 ; <i32*> [#uses=2]
store i32 4, i32* %Y
%Z = load i32* %Y ; <i32> [#uses=1]
ret i32 %Z
}

View File

@ -1,28 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-output
target datalayout = "E-p:32:32"
%struct.rtx_def = type { [2 x i8], i32, [1 x %union.rtunion_def] }
%union.rtunion_def = type { i32 }
define void @find_reloads() {
entry:
%c_addr.i = alloca i8 ; <i8*> [#uses=1]
switch i32 0, label %return [
i32 36, label %label.7
i32 34, label %label.7
i32 41, label %label.5
]
label.5: ; preds = %entry
ret void
label.7: ; preds = %entry, %entry
br i1 false, label %then.4, label %switchexit.0
then.4: ; preds = %label.7
%tmp.0.i = bitcast i8* %c_addr.i to i32* ; <i32*> [#uses=1]
store i32 44, i32* %tmp.0.i
ret void
switchexit.0: ; preds = %label.7
ret void
return: ; preds = %entry
ret void
}

View File

@ -1,12 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-output
target datalayout = "E-p:32:32"
define i32 @test(i64 %L) {
%X = alloca i32 ; <i32*> [#uses=2]
%Y = bitcast i32* %X to i64* ; <i64*> [#uses=1]
store i64 0, i64* %Y
%Z = load i32* %X ; <i32> [#uses=1]
ret i32 %Z
}

View File

@ -1,18 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-output
define void @output_toc() {
entry:
%buf = alloca [256 x i8], align 16 ; <[256 x i8]*> [#uses=1]
%name = alloca i8*, align 4 ; <i8**> [#uses=1]
%real_name = alloca i8*, align 4 ; <i8**> [#uses=0]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
%buf.upgrd.1 = bitcast [256 x i8]* %buf to i8* ; <i8*> [#uses=1]
store i8* %buf.upgrd.1, i8** %name
call void @abort( )
unreachable
return: ; No predecessors!
ret void
}
declare void @abort()

View File

@ -1,57 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-output
; END.
target datalayout = "e-p:32:32"
target triple = "i686-apple-darwin8.7.2"
define void @glgProcessColor() {
entry:
%source_ptr = alloca i8*, align 4 ; <i8**> [#uses=2]
br i1 false, label %bb1357, label %cond_next583
cond_next583: ; preds = %entry
ret void
bb1357: ; preds = %entry
br i1 false, label %bb1365, label %bb27055
bb1365: ; preds = %bb1357
switch i32 0, label %cond_next10377 [
i32 0, label %bb4679
i32 1, label %bb4679
i32 2, label %bb4679
i32 3, label %bb4679
i32 4, label %bb5115
i32 5, label %bb6651
i32 6, label %bb7147
i32 7, label %bb8683
i32 8, label %bb9131
i32 9, label %bb9875
i32 10, label %bb4679
i32 11, label %bb4859
i32 12, label %bb4679
i32 16, label %bb10249
]
bb4679: ; preds = %bb1365, %bb1365, %bb1365, %bb1365, %bb1365, %bb1365
ret void
bb4859: ; preds = %bb1365
ret void
bb5115: ; preds = %bb1365
ret void
bb6651: ; preds = %bb1365
ret void
bb7147: ; preds = %bb1365
ret void
bb8683: ; preds = %bb1365
ret void
bb9131: ; preds = %bb1365
ret void
bb9875: ; preds = %bb1365
%source_ptr9884 = bitcast i8** %source_ptr to i8** ; <i8**> [#uses=1]
%tmp9885 = load i8** %source_ptr9884 ; <i8*> [#uses=0]
ret void
bb10249: ; preds = %bb1365
%source_ptr10257 = bitcast i8** %source_ptr to i16** ; <i16**> [#uses=1]
%tmp10258 = load i16** %source_ptr10257 ; <i16*> [#uses=0]
ret void
cond_next10377: ; preds = %bb1365
ret void
bb27055: ; preds = %bb1357
ret void
}

View File

@ -1,20 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-output
; PR1045
target datalayout = "e-p:32:32"
target triple = "i686-pc-linux-gnu"
%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>" = type { %"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"* }
%"struct.__gnu_cxx::bitmap_allocator<char>" = type { i8 }
%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block" = type { [8 x i8] }
define void @_ZN9__gnu_cxx16bitmap_allocatorIwE27_M_deallocate_single_objectEPw() {
entry:
%this_addr.i = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3]
%tmp = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4 ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
store %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i
%tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
%tmp.i.upgrd.1 = bitcast %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to %"struct.__gnu_cxx::bitmap_allocator<char>"* ; <%"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0]
%tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
%tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0 ; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0]
unreachable
}

View File

@ -1,44 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-output
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
target triple = "arm-apple-darwin8"
%struct.CGPoint = type { float, float }
%struct.aal_big_range_t = type { i32, i32 }
%struct.aal_callback_t = type { i8* (i8*, i32)*, void (i8*, i8*)* }
%struct.aal_edge_pool_t = type { %struct.aal_edge_pool_t*, i32, i32, [0 x %struct.aal_edge_t] }
%struct.aal_edge_t = type { %struct.CGPoint, %struct.CGPoint, i32 }
%struct.aal_range_t = type { i16, i16 }
%struct.aal_span_pool_t = type { %struct.aal_span_pool_t*, [341 x %struct.aal_span_t] }
%struct.aal_span_t = type { %struct.aal_span_t*, %struct.aal_big_range_t }
%struct.aal_spanarray_t = type { [2 x %struct.aal_range_t] }
%struct.aal_spanbucket_t = type { i16, [2 x i8], %struct.anon }
%struct.aal_state_t = type { %struct.CGPoint, %struct.CGPoint, %struct.CGPoint, i32, float, float, float, float, %struct.CGPoint, %struct.CGPoint, float, float, float, float, i32, i32, i32, i32, float, float, i8*, i32, i32, %struct.aal_edge_pool_t*, %struct.aal_edge_pool_t*, i8*, %struct.aal_callback_t*, i32, %struct.aal_span_t*, %struct.aal_span_t*, %struct.aal_span_t*, %struct.aal_span_pool_t*, i8, float, i8, i32 }
%struct.anon = type { %struct.aal_spanarray_t }
declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
define fastcc void @aal_insert_span() {
entry:
%SB = alloca %struct.aal_spanbucket_t, align 4 ; <%struct.aal_spanbucket_t*> [#uses=2]
br i1 false, label %cond_true, label %cond_next79
cond_true: ; preds = %entry
br i1 false, label %cond_next, label %cond_next114.i
cond_next114.i: ; preds = %cond_true
ret void
cond_next: ; preds = %cond_true
%SB19 = bitcast %struct.aal_spanbucket_t* %SB to i8* ; <i8*> [#uses=1]
call void @llvm.memcpy.i32( i8* %SB19, i8* null, i32 12, i32 0 )
br i1 false, label %cond_next34, label %cond_next79
cond_next34: ; preds = %cond_next
%i.2.reload22 = load i32* null ; <i32> [#uses=1]
%tmp51 = getelementptr %struct.aal_spanbucket_t* %SB, i32 0, i32 2, i32 0, i32 0, i32 %i.2.reload22, i32 1 ; <i16*> [#uses=0]
ret void
cond_next79: ; preds = %cond_next, %entry
ret void
}

View File

@ -1,15 +0,0 @@
; RUN: opt < %s -scalarrepl | llvm-dis
; PR3304
%struct.c37304a__vrec = type { i8, %struct.c37304a__vrec___disc___XVN }
%struct.c37304a__vrec___disc___XVN = type {
%struct.c37304a__vrec___disc___XVN___O }
%struct.c37304a__vrec___disc___XVN___O = type { }
define void @_ada_c37304a() {
entry:
%v = alloca %struct.c37304a__vrec
%0 = getelementptr %struct.c37304a__vrec* %v, i32 0, i32 0
store i8 8, i8* %0, align 1
unreachable
}

View File

@ -1,16 +0,0 @@
; RUN: opt < %s -scalarrepl | llvm-dis
; rdar://6808691
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-f80:128:128"
target triple = "x86_64-apple-darwin9.0"
type <{ i32, i16, i8, i8, i64, i64, i16, [0 x i16] }>
define i32 @foo() {
entry:
%.compoundliteral = alloca %0
%tmp228 = getelementptr %0* %.compoundliteral, i32 0, i32 7
%tmp229 = bitcast [0 x i16]* %tmp228 to i8*
call void @llvm.memset.i64(i8* %tmp229, i8 0, i64 0, i32 2)
unreachable
}
declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind

View File

@ -1,12 +0,0 @@
; RUN: opt < %s -scalarrepl | llvm-dis
; PR4146
%wrapper = type { i1 }
define void @f() {
entry:
%w = alloca %wrapper, align 8 ; <%wrapper*> [#uses=1]
%0 = getelementptr %wrapper* %w, i64 0, i32 0 ; <i1*>
store i1 true, i1* %0
ret void
}

View File

@ -1,17 +0,0 @@
; RUN: opt < %s -scalarrepl
; PR4286
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-f80:128:128"
target triple = "x86_64-undermydesk-freebsd8.0"
%struct.singlebool = type <{ i8 }>
define zeroext i8 @doit() nounwind {
entry:
%a = alloca %struct.singlebool, align 1 ; <%struct.singlebool*> [#uses=2]
%storetmp.i = bitcast %struct.singlebool* %a to i1* ; <i1*> [#uses=1]
store i1 true, i1* %storetmp.i
%tmp = getelementptr %struct.singlebool* %a, i64 0, i32 0 ; <i8*> [#uses=1]
%tmp1 = load i8* %tmp ; <i8> [#uses=1]
ret i8 %tmp1
}

View File

@ -1,23 +0,0 @@
; RUN: opt < %s -scalarrepl -disable-opt
%struct.Item = type { [4 x i16], %struct.rule* }
%struct.rule = type { [4 x i16], i32, i32, i32, %struct.nonterminal*, %struct.pattern*, i8 }
%struct.nonterminal = type { i8*, i32, i32, i32, %struct.plankMap*, %struct.rule* }
%struct.plankMap = type { %struct.list*, i32, %struct.stateMap* }
%struct.list = type { i8*, %struct.list* }
%struct.stateMap = type { i8*, %struct.plank*, i32, i16* }
%struct.plank = type { i8*, %struct.list*, i32 }
%struct.pattern = type { %struct.nonterminal*, %struct.operator*, [2 x %struct.nonterminal*] }
%struct.operator = type { i8*, i8, i32, i32, i32, i32, %struct.table* }
%struct.table = type { %struct.operator*, %struct.list*, i16*, [2 x %struct.dimension*], %struct.item_set** }
%struct.dimension = type { i16*, %struct.Index_Map, %struct.mapping*, i32, %struct.plankMap* }
%struct.Index_Map = type { i32, %struct.item_set** }
%struct.item_set = type { i32, i32, %struct.operator*, [2 x %struct.item_set*], %struct.item_set*, i16*, %struct.Item*, %struct.Item* }
%struct.mapping = type { %struct.list**, i32, i32, i32, %struct.item_set** }
define void @addHP_2_0() {
bb4.i:
%0 = malloc [0 x %struct.Item] ; <[0 x %struct.Item]*> [#uses=1]
%.sub.i.c.i = getelementptr [0 x %struct.Item]* %0, i32 0, i32 0 ; <%struct.Item*> [#uses=0]
unreachable
}

View File

@ -1,13 +0,0 @@
; RUN: opt -scalarrepl -disable-output %s
; PR8680
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"
define void @main() nounwind {
entry:
%memtmp = alloca i32, align 4
%0 = bitcast i32* %memtmp to void ()*
call void %0() nounwind
ret void
}

View File

@ -18,3 +18,243 @@ for.cond: ; preds = %for.cond
if.end: ; No predecessors!
ret void
}
define void @test2() {
%E = alloca { { i32, float, double, i64 }, { i32, float, double, i64 } } ; <{ { i32, float, double, i64 }, { i32, float, double, i64 } }*> [#uses=1]
%tmp.151 = getelementptr { { i32, float, double, i64 }, { i32, float, double, i64 } }* %E, i64 0, i32 1, i32 3 ; <i64*> [#uses=0]
ret void
}
define i32 @test3() {
%X = alloca { [4 x i32] } ; <{ [4 x i32] }*> [#uses=1]
%Y = getelementptr { [4 x i32] }* %X, i64 0, i32 0, i64 2 ; <i32*> [#uses=2]
store i32 4, i32* %Y
%Z = load i32* %Y ; <i32> [#uses=1]
ret i32 %Z
}
%struct.rtx_def = type { [2 x i8], i32, [1 x %union.rtunion_def] }
%union.rtunion_def = type { i32 }
define void @test4() {
entry:
%c_addr.i = alloca i8 ; <i8*> [#uses=1]
switch i32 0, label %return [
i32 36, label %label.7
i32 34, label %label.7
i32 41, label %label.5
]
label.5: ; preds = %entry
ret void
label.7: ; preds = %entry, %entry
br i1 false, label %then.4, label %switchexit.0
then.4: ; preds = %label.7
%tmp.0.i = bitcast i8* %c_addr.i to i32* ; <i32*> [#uses=1]
store i32 44, i32* %tmp.0.i
ret void
switchexit.0: ; preds = %label.7
ret void
return: ; preds = %entry
ret void
}
define void @test5() {
entry:
%source_ptr = alloca i8*, align 4 ; <i8**> [#uses=2]
br i1 false, label %bb1357, label %cond_next583
cond_next583: ; preds = %entry
ret void
bb1357: ; preds = %entry
br i1 false, label %bb1365, label %bb27055
bb1365: ; preds = %bb1357
switch i32 0, label %cond_next10377 [
i32 0, label %bb4679
i32 1, label %bb4679
i32 2, label %bb4679
i32 3, label %bb4679
i32 4, label %bb5115
i32 5, label %bb6651
i32 6, label %bb7147
i32 7, label %bb8683
i32 8, label %bb9131
i32 9, label %bb9875
i32 10, label %bb4679
i32 11, label %bb4859
i32 12, label %bb4679
i32 16, label %bb10249
]
bb4679: ; preds = %bb1365, %bb1365, %bb1365, %bb1365, %bb1365, %bb1365
ret void
bb4859: ; preds = %bb1365
ret void
bb5115: ; preds = %bb1365
ret void
bb6651: ; preds = %bb1365
ret void
bb7147: ; preds = %bb1365
ret void
bb8683: ; preds = %bb1365
ret void
bb9131: ; preds = %bb1365
ret void
bb9875: ; preds = %bb1365
%source_ptr9884 = bitcast i8** %source_ptr to i8** ; <i8**> [#uses=1]
%tmp9885 = load i8** %source_ptr9884 ; <i8*> [#uses=0]
ret void
bb10249: ; preds = %bb1365
%source_ptr10257 = bitcast i8** %source_ptr to i16** ; <i16**> [#uses=1]
%tmp10258 = load i16** %source_ptr10257 ; <i16*> [#uses=0]
ret void
cond_next10377: ; preds = %bb1365
ret void
bb27055: ; preds = %bb1357
ret void
}
%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>" = type { %"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"* }
%"struct.__gnu_cxx::bitmap_allocator<char>" = type { i8 }
%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block" = type { [8 x i8] }
; PR1045
define void @test6() {
entry:
%this_addr.i = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3]
%tmp = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4 ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
store %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i
%tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
%tmp.i.upgrd.1 = bitcast %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to %"struct.__gnu_cxx::bitmap_allocator<char>"* ; <%"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0]
%tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
%tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0 ; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0]
unreachable
}
%struct.CGPoint = type { float, float }
%struct.aal_big_range_t = type { i32, i32 } %struct.aal_callback_t = type { i8* (i8*, i32)*, void (i8*, i8*)* } %struct.aal_edge_pool_t = type { %struct.aal_edge_pool_t*, i32, i32, [0 x %struct.aal_edge_t] } %struct.aal_edge_t = type { %struct.CGPoint, %struct.CGPoint, i32 }
%struct.aal_range_t = type { i16, i16 }
%struct.aal_span_pool_t = type { %struct.aal_span_pool_t*, [341 x %struct.aal_span_t] }
%struct.aal_span_t = type { %struct.aal_span_t*, %struct.aal_big_range_t }
%struct.aal_spanarray_t = type { [2 x %struct.aal_range_t] }
%struct.aal_spanbucket_t = type { i16, [2 x i8], %struct.anon }
%struct.aal_state_t = type { %struct.CGPoint, %struct.CGPoint, %struct.CGPoint, i32, float, float, float, float, %struct.CGPoint, %struct.CGPoint, float, float, float, float, i32, i32, i32, i32, float, float, i8*, i32, i32, %struct.aal_edge_pool_t*, %struct.aal_edge_pool_t*, i8*, %struct.aal_callback_t*, i32, %struct.aal_span_t*, %struct.aal_span_t*, %struct.aal_span_t*, %struct.aal_span_pool_t*, i8, float, i8, i32 }
%struct.anon = type { %struct.aal_spanarray_t }
declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
define fastcc void @test7() {
entry:
%SB = alloca %struct.aal_spanbucket_t, align 4 ; <%struct.aal_spanbucket_t*> [#uses=2]
br i1 false, label %cond_true, label %cond_next79
cond_true: ; preds = %entry
br i1 false, label %cond_next, label %cond_next114.i
cond_next114.i: ; preds = %cond_true
ret void
cond_next: ; preds = %cond_true
%SB19 = bitcast %struct.aal_spanbucket_t* %SB to i8* ; <i8*> [#uses=1]
call void @llvm.memcpy.i32( i8* %SB19, i8* null, i32 12, i32 0 )
br i1 false, label %cond_next34, label %cond_next79
cond_next34: ; preds = %cond_next
%i.2.reload22 = load i32* null ; <i32> [#uses=1]
%tmp51 = getelementptr %struct.aal_spanbucket_t* %SB, i32 0, i32 2, i32 0, i32 0, i32 %i.2.reload22, i32 1
; <i16*> [#uses=0]
ret void
cond_next79: ; preds = %cond_next, %entry
ret void
}
%struct.c37304a__vrec = type { i8, %struct.c37304a__vrec___disc___XVN }
%struct.c37304a__vrec___disc___XVN = type {
%struct.c37304a__vrec___disc___XVN___O }
%struct.c37304a__vrec___disc___XVN___O = type { }
; PR3304
define void @test8() {
entry:
%v = alloca %struct.c37304a__vrec
%0 = getelementptr %struct.c37304a__vrec* %v, i32 0, i32 0
store i8 8, i8* %0, align 1
unreachable
}
; rdar://6808691 - ZeroLengthMemSet
type <{ i32, i16, i8, i8, i64, i64, i16, [0 x i16] }>
define i32 @test9() {
entry:
%.compoundliteral = alloca %0
%tmp228 = getelementptr %0* %.compoundliteral, i32 0, i32 7
%tmp229 = bitcast [0 x i16]* %tmp228 to i8*
call void @llvm.memset.i64(i8* %tmp229, i8 0, i64 0, i32 2)
unreachable
}
declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind
; PR4146 - i1 handling
%wrapper = type { i1 }
define void @test10() {
entry:
%w = alloca %wrapper, align 8 ; <%wrapper*> [#uses=1]
%0 = getelementptr %wrapper* %w, i64 0, i32 0 ; <i1*>
store i1 true, i1* %0
ret void
}
%struct.singlebool = type <{ i8 }>
; PR4286
define zeroext i8 @test11() nounwind {
entry:
%a = alloca %struct.singlebool, align 1 ; <%struct.singlebool*> [#uses=2]
%storetmp.i = bitcast %struct.singlebool* %a to i1* ; <i1*> [#uses=1]
store i1 true, i1* %storetmp.i
%tmp = getelementptr %struct.singlebool* %a, i64 0, i32 0 ; <i8*> [#uses=1]
%tmp1 = load i8* %tmp ; <i8> [#uses=1]
ret i8 %tmp1
}
%struct.Item = type { [4 x i16], %struct.rule* }
%struct.rule = type { [4 x i16], i32, i32, i32, %struct.nonterminal*, %struct.pattern*, i8 }
%struct.nonterminal = type { i8*, i32, i32, i32, %struct.plankMap*, %struct.rule* }
%struct.plankMap = type { %struct.list*, i32, %struct.stateMap* }
%struct.list = type { i8*, %struct.list* }
%struct.stateMap = type { i8*, %struct.plank*, i32, i16* }
%struct.plank = type { i8*, %struct.list*, i32 }
%struct.pattern = type { %struct.nonterminal*, %struct.operator*, [2 x %struct.nonterminal*] }
%struct.operator = type { i8*, i8, i32, i32, i32, i32, %struct.table* }
%struct.table = type { %struct.operator*, %struct.list*, i16*, [2 x %struct.dimension*], %struct.item_set** }
%struct.dimension = type { i16*, %struct.Index_Map, %struct.mapping*, i32, %struct.plankMap* }
%struct.Index_Map = type { i32, %struct.item_set** }
%struct.item_set = type { i32, i32, %struct.operator*, [2 x %struct.item_set*], %struct.item_set*, i16*, %struct.Item*, %struct.Item* }
%struct.mapping = type { %struct.list**, i32, i32, i32, %struct.item_set** }
; VLAs.
define void @test12() {
bb4.i:
%0 = malloc [0 x %struct.Item] ; <[0 x %struct.Item]*> [#uses=1]
%.sub.i.c.i = getelementptr [0 x %struct.Item]* %0, i32 0, i32 0 ; <%struct.Item*> [#uses=0]
unreachable
}
; PR8680
define void @test13() nounwind {
entry:
%memtmp = alloca i32, align 4
%0 = bitcast i32* %memtmp to void ()*
call void %0() nounwind
ret void
}