1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
; RUN: llc < %s -mtriple=powerpc-apple-darwin8
%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
%struct.__gcov_var = type { %struct.FILE*, i32, i32, i32, i32, i32, i32, [1025 x i32] }
%struct.__sFILEX = type opaque
%struct.__sbuf = type { i8*, i32 }
%struct.gcov_ctr_info = type { i32, i64*, void (i64*, i32)* }
%struct.gcov_ctr_summary = type { i32, i32, i64, i64, i64 }
%struct.gcov_fn_info = type { i32, i32, [0 x i32] }
%struct.gcov_info = type { i32, %struct.gcov_info*, i32, i8*, i32, %struct.gcov_fn_info*, i32, [0 x %struct.gcov_ctr_info] }
%struct.gcov_summary = type { i32, [1 x %struct.gcov_ctr_summary] }
@__gcov_var = external global %struct.__gcov_var ; <%struct.__gcov_var*> [#uses=1]
@__sF = external global [0 x %struct.FILE] ; <[0 x %struct.FILE]*> [#uses=1]
@.str = external constant [56 x i8], align 4 ; <[56 x i8]*> [#uses=1]
@gcov_list = external global %struct.gcov_info* ; <%struct.gcov_info**> [#uses=1]
@.str7 = external constant [35 x i8], align 4 ; <[35 x i8]*> [#uses=1]
@.str8 = external constant [9 x i8], align 4 ; <[9 x i8]*> [#uses=1]
@.str9 = external constant [10 x i8], align 4 ; <[10 x i8]*> [#uses=1]
@.str10 = external constant [36 x i8], align 4 ; <[36 x i8]*> [#uses=1]
declare i32 @"\01_fprintf$LDBL128"(%struct.FILE*, i8*, ...) nounwind
define void @gcov_exit() nounwind {
entry:
%gi_ptr.0357 = load %struct.gcov_info** @gcov_list, align 4 ; <%struct.gcov_info*> [#uses=1]
%0 = alloca i8, i32 undef, align 1 ; <i8*> [#uses=3]
br i1 undef, label %return, label %bb.nph341
bb.nph341: ; preds = %entry
%object27 = bitcast %struct.gcov_summary* undef to i8* ; <i8*> [#uses=1]
br label %bb25
bb25: ; preds = %read_fatal, %bb.nph341
%gi_ptr.1329 = phi %struct.gcov_info* [ %gi_ptr.0357, %bb.nph341 ], [ undef, %read_fatal ] ; <%struct.gcov_info*> [#uses=1]
call void @llvm.memset.i32(i8* %object27, i8 0, i32 36, i32 8)
br i1 undef, label %bb49.1, label %bb48
bb48: ; preds = %bb25
br label %bb49.1
bb51: ; preds = %bb48.4, %bb49.3
switch i32 undef, label %bb58 [
i32 0, label %rewrite
i32 1734567009, label %bb59
]
bb58: ; preds = %bb51
%1 = call i32 (%struct.FILE*, i8*, ...)* @"\01_fprintf$LDBL128"(%struct.FILE* getelementptr inbounds ([0 x %struct.FILE]* @__sF, i32 0, i32 2), i8* getelementptr inbounds ([35 x i8]* @.str7, i32 0, i32 0), i8* %0) nounwind ; <i32> [#uses=0]
br label %read_fatal
bb59: ; preds = %bb51
br i1 undef, label %bb60, label %bb3.i156
bb3.i156: ; preds = %bb59
store i8 52, i8* undef, align 1
store i8 42, i8* undef, align 1
%2 = call i32 (%struct.FILE*, i8*, ...)* @"\01_fprintf$LDBL128"(%struct.FILE* getelementptr inbounds ([0 x %struct.FILE]* @__sF, i32 0, i32 2), i8* getelementptr inbounds ([56 x i8]* @.str, i32 0, i32 0), i8* %0, i8* undef, i8* undef) nounwind ; <i32> [#uses=0]
br label %read_fatal
bb60: ; preds = %bb59
br i1 undef, label %bb78.preheader, label %rewrite
bb78.preheader: ; preds = %bb60
br i1 undef, label %bb62, label %bb80
bb62: ; preds = %bb78.preheader
br i1 undef, label %bb64, label %read_mismatch
bb64: ; preds = %bb62
br i1 undef, label %bb65, label %read_mismatch
bb65: ; preds = %bb64
br i1 undef, label %bb75, label %read_mismatch
read_mismatch: ; preds = %bb98, %bb119.preheader, %bb72, %bb71, %bb65, %bb64, %bb62
%3 = icmp eq i32 undef, -1 ; <i1> [#uses=1]
%iftmp.11.0 = select i1 %3, i8* getelementptr inbounds ([10 x i8]* @.str9, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str8, i32 0, i32 0) ; <i8*> [#uses=1]
%4 = call i32 (%struct.FILE*, i8*, ...)* @"\01_fprintf$LDBL128"(%struct.FILE* getelementptr inbounds ([0 x %struct.FILE]* @__sF, i32 0, i32 2), i8* getelementptr inbounds ([36 x i8]* @.str10, i32 0, i32 0), i8* %0, i8* %iftmp.11.0) nounwind ; <i32> [#uses=0]
br label %read_fatal
bb71: ; preds = %bb75
%5 = load i32* undef, align 4 ; <i32> [#uses=1]
%6 = getelementptr inbounds %struct.gcov_info* %gi_ptr.1329, i32 0, i32 7, i32 undef, i32 2 ; <void (i64*, i32)**> [#uses=1]
%7 = load void (i64*, i32)** %6, align 4 ; <void (i64*, i32)*> [#uses=1]
%8 = call i32 @__gcov_read_unsigned() nounwind ; <i32> [#uses=1]
%9 = call i32 @__gcov_read_unsigned() nounwind ; <i32> [#uses=1]
%10 = icmp eq i32 %tmp386, %8 ; <i1> [#uses=1]
br i1 %10, label %bb72, label %read_mismatch
bb72: ; preds = %bb71
%11 = icmp eq i32 undef, %9 ; <i1> [#uses=1]
br i1 %11, label %bb73, label %read_mismatch
bb73: ; preds = %bb72
call void %7(i64* null, i32 %5) nounwind
unreachable
bb74: ; preds = %bb75
%12 = add i32 %13, 1 ; <i32> [#uses=1]
br label %bb75
bb75: ; preds = %bb74, %bb65
%13 = phi i32 [ %12, %bb74 ], [ 0, %bb65 ] ; <i32> [#uses=2]
%tmp386 = add i32 0, 27328512 ; <i32> [#uses=1]
%14 = shl i32 1, %13 ; <i32> [#uses=1]
%15 = load i32* undef, align 4 ; <i32> [#uses=1]
%16 = and i32 %15, %14 ; <i32> [#uses=1]
%17 = icmp eq i32 %16, 0 ; <i1> [#uses=1]
br i1 %17, label %bb74, label %bb71
bb80: ; preds = %bb78.preheader
unreachable
read_fatal: ; preds = %read_mismatch, %bb3.i156, %bb58
br i1 undef, label %return, label %bb25
rewrite: ; preds = %bb60, %bb51
store i32 -1, i32* getelementptr inbounds (%struct.__gcov_var* @__gcov_var, i32 0, i32 6), align 4
br i1 undef, label %bb94, label %bb119.preheader
bb94: ; preds = %rewrite
unreachable
bb119.preheader: ; preds = %rewrite
br i1 undef, label %read_mismatch, label %bb98
bb98: ; preds = %bb119.preheader
br label %read_mismatch
return: ; preds = %read_fatal, %entry
ret void
bb49.1: ; preds = %bb48, %bb25
br i1 undef, label %bb49.2, label %bb48.2
bb49.2: ; preds = %bb48.2, %bb49.1
br i1 undef, label %bb49.3, label %bb48.3
bb48.2: ; preds = %bb49.1
br label %bb49.2
bb49.3: ; preds = %bb48.3, %bb49.2
br i1 undef, label %bb51, label %bb48.4
bb48.3: ; preds = %bb49.2
br label %bb49.3
bb48.4: ; preds = %bb49.3
br label %bb51
}
declare i32 @__gcov_read_unsigned() nounwind
declare void @llvm.memset.i32(i8* nocapture, i8, i32, i32) nounwind
|