Verify Intrinsic::dbg_declare.
[oota-llvm.git] / test / DebugInfo / 2009-01-15-RecordVariableCrash.ll
1 ; RUN: llvm-as < %s | llc -f -o /dev/null
2         %llvm.dbg.anchor.type = type { i32, i32 }
3         %llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32, i8*, i8* }
4         %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
5         %llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, i8*, i8* }
6         %llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, i8*, i8* }
7         %llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }*, i8*, i8* }
8         %struct._RuneCharClass = type { [14 x i8], i32 }
9         %struct._RuneEntry = type { i32, i32, i32, i32* }
10         %struct._RuneLocale = type { [8 x i8], [32 x i8], i32 (i8*, i32, i8**)*, i32 (i32, i8*, i32, i8**)*, i32, [256 x i32], [256 x i32], [256 x i32], %struct._RuneRange, %struct._RuneRange, %struct._RuneRange, i8*, i32, i32, %struct._RuneCharClass* }
11         %struct._RuneRange = type { i32, %struct._RuneEntry* }
12 @llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"               ; <%llvm.dbg.anchor.type*> [#uses=1]
13 @.str = internal constant [4 x i8] c"x.c\00", section "llvm.metadata"           ; <[4 x i8]*> [#uses=1]
14 @.str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"         ; <[5 x i8]*> [#uses=1]
15 @.str2 = internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5628) (LLVM build 9999)\00", section "llvm.metadata"            ; <[57 x i8]*> [#uses=1]
16 @llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"                ; <%llvm.dbg.compile_unit.type*> [#uses=1]
17 @.str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"          ; <[4 x i8]*> [#uses=1]
18 @llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5, i8* null, i8* null }, section "llvm.metadata"            ; <%llvm.dbg.basictype.type*> [#uses=1]
19 @llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"         ; <%llvm.dbg.anchor.type*> [#uses=1]
20 @.str4 = internal constant [5 x i8] c"main\00", section "llvm.metadata"         ; <[5 x i8]*> [#uses=1]
21 @llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 21, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"               ; <%llvm.dbg.subprogram.type*> [#uses=1]
22 @.str5 = internal constant [2 x i8] c"i\00", section "llvm.metadata"            ; <[2 x i8]*> [#uses=1]
23 @llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459008, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([2 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 22, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"             ; <%llvm.dbg.variable.type*> [#uses=1]
24 @.str6 = internal constant [8 x i8] c"islower\00", section "llvm.metadata"              ; <[8 x i8]*> [#uses=1]
25 @.str7 = internal constant [8 x i8] c"ctype.h\00", section "llvm.metadata"              ; <[8 x i8]*> [#uses=1]
26 @.str8 = internal constant [13 x i8] c"/usr/include\00", section "llvm.metadata"                ; <[13 x i8]*> [#uses=1]
27 @llvm.dbg.subprogram9 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str6, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 267, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"            ; <%llvm.dbg.subprogram.type*> [#uses=1]
28 @.str10 = internal constant [3 x i8] c"_c\00", section "llvm.metadata"          ; <[3 x i8]*> [#uses=1]
29 @llvm.dbg.variable11 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram9 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 266, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"              ; <%llvm.dbg.variable.type*> [#uses=1]
30 @.str12 = internal constant [9 x i8] c"__istype\00", section "llvm.metadata"            ; <[9 x i8]*> [#uses=1]
31 @llvm.dbg.subprogram13 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([9 x i8]* @.str12, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str12, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 171, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"         ; <%llvm.dbg.subprogram.type*> [#uses=1]
32 @.str14 = internal constant [19 x i8] c"__darwin_ct_rune_t\00", section "llvm.metadata"         ; <[19 x i8]*> [#uses=1]
33 @.str15 = internal constant [9 x i8] c"_types.h\00", section "llvm.metadata"            ; <[9 x i8]*> [#uses=1]
34 @.str16 = internal constant [18 x i8] c"/usr/include/i386\00", section "llvm.metadata"          ; <[18 x i8]*> [#uses=1]
35 @llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458774, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([19 x i8]* @.str14, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 70, i64 0, i64 0, i64 0, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([9 x i8]* @.str15, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str16, i32 0, i32 0) }, section "llvm.metadata"         ; <%llvm.dbg.derivedtype.type*> [#uses=1]
36 @llvm.dbg.variable17 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 170, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*), i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"         ; <%llvm.dbg.variable.type*> [#uses=1]
37 @.str18 = internal constant [18 x i8] c"long unsigned int\00", section "llvm.metadata"          ; <[18 x i8]*> [#uses=1]
38 @llvm.dbg.basictype19 = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str18, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7, i8* null, i8* null }, section "llvm.metadata"                ; <%llvm.dbg.basictype.type*> [#uses=1]
39 @.str20 = internal constant [3 x i8] c"_f\00", section "llvm.metadata"          ; <[3 x i8]*> [#uses=1]
40 @llvm.dbg.variable21 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*), i8* getelementptr ([3 x i8]* @.str20, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 170, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype19 to { }*), i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"           ; <%llvm.dbg.variable.type*> [#uses=1]
41 @_DefaultRuneLocale = external global %struct._RuneLocale               ; <%struct._RuneLocale*> [#uses=1]
42 @.str22 = internal constant [8 x i8] c"isascii\00", section "llvm.metadata"             ; <[8 x i8]*> [#uses=1]
43 @llvm.dbg.subprogram23 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str22, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str22, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 153, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"         ; <%llvm.dbg.subprogram.type*> [#uses=1]
44 @llvm.dbg.variable24 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram23 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 152, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"             ; <%llvm.dbg.variable.type*> [#uses=1]
45 @.str25 = internal constant [8 x i8] c"toupper\00", section "llvm.metadata"             ; <[8 x i8]*> [#uses=1]
46 @llvm.dbg.subprogram26 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str25, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str25, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 316, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"         ; <%llvm.dbg.subprogram.type*> [#uses=1]
47 @llvm.dbg.variable27 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram26 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 315, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([8 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str8, i32 0, i32 0) }, section "llvm.metadata"             ; <%llvm.dbg.variable.type*> [#uses=1]
48
49 define i32 @main() nounwind {
50 entry:
51         %retval = alloca i32            ; <i32*> [#uses=1]
52         %i = alloca i32         ; <i32*> [#uses=16]
53         %iftmp.5 = alloca i32           ; <i32*> [#uses=3]
54         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
55         call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
56         %0 = bitcast i32* %i to { }*            ; <{ }*> [#uses=1]
57         call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*))
58         call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
59         store i32 0, i32* %i, align 4
60         br label %bb13
61                 ; No predecessors!
62         call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
63         br label %bb
64
65 bb:             ; preds = %bb13, %1
66         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
67         %2 = load i32* %i, align 4              ; <i32> [#uses=1]
68         %3 = call i32 @islower(i32 %2) nounwind         ; <i32> [#uses=1]
69         %4 = icmp eq i32 %3, 0          ; <i1> [#uses=1]
70         br i1 %4, label %bb3, label %bb1
71                 ; No predecessors!
72         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
73         br label %bb1
74
75 bb1:            ; preds = %5, %bb
76         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
77         %6 = load i32* %i, align 4              ; <i32> [#uses=1]
78         %7 = icmp sle i32 %6, 96                ; <i1> [#uses=1]
79         br i1 %7, label %bb11, label %bb2
80                 ; No predecessors!
81         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
82         br label %bb2
83
84 bb2:            ; preds = %8, %bb1
85         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
86         %9 = load i32* %i, align 4              ; <i32> [#uses=1]
87         %10 = icmp sgt i32 %9, 122              ; <i1> [#uses=1]
88         br i1 %10, label %bb11, label %bb3
89                 ; No predecessors!
90         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
91         br label %bb3
92
93 bb3:            ; preds = %11, %bb2, %bb
94         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
95         %12 = load i32* %i, align 4             ; <i32> [#uses=1]
96         %13 = call i32 @islower(i32 %12) nounwind               ; <i32> [#uses=1]
97         %14 = icmp ne i32 %13, 0                ; <i1> [#uses=1]
98         br i1 %14, label %bb6, label %bb4
99                 ; No predecessors!
100         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
101         br label %bb4
102
103 bb4:            ; preds = %15, %bb3
104         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
105         %16 = load i32* %i, align 4             ; <i32> [#uses=1]
106         %17 = icmp sle i32 %16, 96              ; <i1> [#uses=1]
107         br i1 %17, label %bb6, label %bb5
108                 ; No predecessors!
109         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
110         br label %bb5
111
112 bb5:            ; preds = %18, %bb4
113         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
114         %19 = load i32* %i, align 4             ; <i32> [#uses=1]
115         %20 = icmp sle i32 %19, 122             ; <i1> [#uses=1]
116         br i1 %20, label %bb11, label %bb6
117                 ; No predecessors!
118         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
119         br label %bb6
120
121 bb6:            ; preds = %21, %bb5, %bb4, %bb3
122         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
123         %22 = load i32* %i, align 4             ; <i32> [#uses=1]
124         %23 = call i32 @toupper(i32 %22) nounwind               ; <i32> [#uses=1]
125         %24 = load i32* %i, align 4             ; <i32> [#uses=1]
126         %25 = icmp sle i32 %24, 96              ; <i1> [#uses=1]
127         br i1 %25, label %bb9, label %bb7
128                 ; No predecessors!
129         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
130         br label %bb7
131
132 bb7:            ; preds = %26, %bb6
133         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
134         %27 = load i32* %i, align 4             ; <i32> [#uses=1]
135         %28 = icmp sgt i32 %27, 122             ; <i1> [#uses=1]
136         br i1 %28, label %bb9, label %bb8
137                 ; No predecessors!
138         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
139         br label %bb8
140
141 bb8:            ; preds = %29, %bb7
142         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
143         %30 = load i32* %i, align 4             ; <i32> [#uses=1]
144         %31 = sub i32 %30, 32           ; <i32> [#uses=1]
145         store i32 %31, i32* %iftmp.5, align 4
146         br label %bb10
147                 ; No predecessors!
148         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
149         br label %bb9
150
151 bb9:            ; preds = %32, %bb7, %bb6
152         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
153         %33 = load i32* %i, align 4             ; <i32> [#uses=1]
154         store i32 %33, i32* %iftmp.5, align 4
155         br label %bb10
156
157 bb10:           ; preds = %bb9, %bb8
158         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
159         %34 = load i32* %iftmp.5, align 4               ; <i32> [#uses=1]
160         %35 = icmp ne i32 %23, %34              ; <i1> [#uses=1]
161         br i1 %35, label %bb11, label %bb12
162                 ; No predecessors!
163         call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
164         br label %bb11
165
166 bb11:           ; preds = %36, %bb10, %bb5, %bb2, %bb1
167         call void @llvm.dbg.stoppoint(i32 26, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
168         call void @exit(i32 2) noreturn nounwind
169         unreachable
170                 ; No predecessors!
171         call void @llvm.dbg.stoppoint(i32 26, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
172         br label %bb12
173
174 bb12:           ; preds = %37, %bb10
175         call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
176         %38 = load i32* %i, align 4             ; <i32> [#uses=1]
177         %39 = add i32 %38, 1            ; <i32> [#uses=1]
178         store i32 %39, i32* %i, align 4
179         br label %bb13
180
181 bb13:           ; preds = %bb12, %entry
182         call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
183         %40 = load i32* %i, align 4             ; <i32> [#uses=1]
184         %41 = icmp sle i32 %40, 255             ; <i1> [#uses=1]
185         br i1 %41, label %bb, label %bb14
186                 ; No predecessors!
187         call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
188         br label %bb14
189
190 bb14:           ; preds = %42, %bb13
191         call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
192         call void @exit(i32 0) noreturn nounwind
193         unreachable
194
195 return:         ; No predecessors!
196         %retval15 = load i32* %retval           ; <i32> [#uses=1]
197         call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
198         call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
199         ret i32 %retval15
200 }
201
202 declare void @llvm.dbg.func.start({ }*) nounwind
203
204 declare void @llvm.dbg.declare({ }*, { }*) nounwind
205
206 declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
207
208 define internal i32 @islower(i32 %_c) nounwind {
209 entry:
210         %_c_addr = alloca i32           ; <i32*> [#uses=3]
211         %retval = alloca i32            ; <i32*> [#uses=2]
212         %0 = alloca i32         ; <i32*> [#uses=2]
213         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
214         call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram9 to { }*))
215         %1 = bitcast i32* %_c_addr to { }*              ; <{ }*> [#uses=1]
216         call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable11 to { }*))
217         store i32 %_c, i32* %_c_addr
218         call void @llvm.dbg.stoppoint(i32 268, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
219         %2 = load i32* %_c_addr, align 4                ; <i32> [#uses=1]
220         %3 = call i32 @__istype(i32 %2, i32 4096) nounwind              ; <i32> [#uses=1]
221         store i32 %3, i32* %0, align 4
222         %4 = load i32* %0, align 4              ; <i32> [#uses=1]
223         store i32 %4, i32* %retval, align 4
224         br label %return
225
226 return:         ; preds = %entry
227         %retval1 = load i32* %retval            ; <i32> [#uses=1]
228         call void @llvm.dbg.stoppoint(i32 268, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
229         call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram9 to { }*))
230         ret i32 %retval1
231 }
232
233 define internal i32 @toupper(i32 %_c) nounwind {
234 entry:
235         %_c_addr = alloca i32           ; <i32*> [#uses=3]
236         %retval = alloca i32            ; <i32*> [#uses=2]
237         %0 = alloca i32         ; <i32*> [#uses=2]
238         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
239         call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram26 to { }*))
240         %1 = bitcast i32* %_c_addr to { }*              ; <{ }*> [#uses=1]
241         call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable27 to { }*))
242         store i32 %_c, i32* %_c_addr
243         call void @llvm.dbg.stoppoint(i32 317, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
244         %2 = load i32* %_c_addr, align 4                ; <i32> [#uses=1]
245         %3 = call i32 @__toupper(i32 %2) nounwind               ; <i32> [#uses=1]
246         store i32 %3, i32* %0, align 4
247         %4 = load i32* %0, align 4              ; <i32> [#uses=1]
248         store i32 %4, i32* %retval, align 4
249         br label %return
250
251 return:         ; preds = %entry
252         %retval1 = load i32* %retval            ; <i32> [#uses=1]
253         call void @llvm.dbg.stoppoint(i32 317, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
254         call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram26 to { }*))
255         ret i32 %retval1
256 }
257
258 declare void @exit(i32) noreturn nounwind
259
260 declare void @llvm.dbg.region.end({ }*) nounwind
261
262 define internal i32 @__istype(i32 %_c, i32 %_f) nounwind {
263 entry:
264         %_c_addr = alloca i32           ; <i32*> [#uses=5]
265         %_f_addr = alloca i32           ; <i32*> [#uses=4]
266         %retval = alloca i32            ; <i32*> [#uses=2]
267         %iftmp.0 = alloca i32           ; <i32*> [#uses=3]
268         %0 = alloca i32         ; <i32*> [#uses=2]
269         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
270         call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*))
271         %1 = bitcast i32* %_c_addr to { }*              ; <{ }*> [#uses=1]
272         call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable17 to { }*))
273         store i32 %_c, i32* %_c_addr
274         %2 = bitcast i32* %_f_addr to { }*              ; <{ }*> [#uses=1]
275         call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable21 to { }*))
276         store i32 %_f, i32* %_f_addr
277         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
278         %3 = load i32* %_c_addr, align 4                ; <i32> [#uses=1]
279         %4 = call i32 @isascii(i32 %3) nounwind         ; <i32> [#uses=1]
280         %5 = icmp ne i32 %4, 0          ; <i1> [#uses=1]
281         br i1 %5, label %bb, label %bb1
282                 ; No predecessors!
283         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
284         br label %bb
285
286 bb:             ; preds = %6, %entry
287         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
288         %7 = load i32* %_c_addr, align 4                ; <i32> [#uses=1]
289         %8 = getelementptr [256 x i32]* getelementptr (%struct._RuneLocale* @_DefaultRuneLocale, i32 0, i32 5), i32 0, i32 %7           ; <i32*> [#uses=1]
290         %9 = load i32* %8, align 4              ; <i32> [#uses=1]
291         %10 = load i32* %_f_addr, align 4               ; <i32> [#uses=1]
292         %11 = and i32 %9, %10           ; <i32> [#uses=1]
293         %12 = icmp ne i32 %11, 0                ; <i1> [#uses=1]
294         %13 = zext i1 %12 to i32                ; <i32> [#uses=1]
295         store i32 %13, i32* %iftmp.0, align 4
296         br label %bb2
297                 ; No predecessors!
298         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
299         br label %bb1
300
301 bb1:            ; preds = %14, %entry
302         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
303         %15 = load i32* %_c_addr, align 4               ; <i32> [#uses=1]
304         %16 = load i32* %_f_addr, align 4               ; <i32> [#uses=1]
305         %17 = call i32 @__maskrune(i32 %15, i32 %16) nounwind           ; <i32> [#uses=1]
306         %18 = icmp ne i32 %17, 0                ; <i1> [#uses=1]
307         %19 = zext i1 %18 to i32                ; <i32> [#uses=1]
308         store i32 %19, i32* %iftmp.0, align 4
309         br label %bb2
310
311 bb2:            ; preds = %bb1, %bb
312         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
313         %20 = load i32* %iftmp.0, align 4               ; <i32> [#uses=1]
314         store i32 %20, i32* %0, align 4
315         %21 = load i32* %0, align 4             ; <i32> [#uses=1]
316         store i32 %21, i32* %retval, align 4
317         br label %return
318
319 return:         ; preds = %bb2
320         %retval3 = load i32* %retval            ; <i32> [#uses=1]
321         call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
322         call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*))
323         ret i32 %retval3
324 }
325
326 define internal i32 @isascii(i32 %_c) nounwind {
327 entry:
328         %_c_addr = alloca i32           ; <i32*> [#uses=3]
329         %retval = alloca i32            ; <i32*> [#uses=2]
330         %0 = alloca i32         ; <i32*> [#uses=2]
331         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
332         call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram23 to { }*))
333         %1 = bitcast i32* %_c_addr to { }*              ; <{ }*> [#uses=1]
334         call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable24 to { }*))
335         store i32 %_c, i32* %_c_addr
336         call void @llvm.dbg.stoppoint(i32 154, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
337         %2 = load i32* %_c_addr, align 4                ; <i32> [#uses=1]
338         %3 = and i32 %2, -128           ; <i32> [#uses=1]
339         %4 = icmp eq i32 %3, 0          ; <i1> [#uses=1]
340         %5 = zext i1 %4 to i32          ; <i32> [#uses=1]
341         store i32 %5, i32* %0, align 4
342         %6 = load i32* %0, align 4              ; <i32> [#uses=1]
343         store i32 %6, i32* %retval, align 4
344         br label %return
345
346 return:         ; preds = %entry
347         %retval1 = load i32* %retval            ; <i32> [#uses=1]
348         call void @llvm.dbg.stoppoint(i32 154, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
349         call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram23 to { }*))
350         ret i32 %retval1
351 }
352
353 declare i32 @__maskrune(i32, i32)
354
355 declare i32 @__toupper(i32)