summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/2008-04-17-CoalescerBug.ll
blob: f244793e7a95d0979c93e973e66f7f95da21ab9e (plain)
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
; RUN: llc < %s -mtriple=i386-apple-darwin | grep xorl | grep "%e"
; Make sure xorl operands are 32-bit registers.

	%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
	%struct.wxDateTime = type { %struct.wxLongLong }
	%"struct.wxDateTime::TimeZone" = type { i32 }
	%struct.wxLongLong = type { i64 }
	%struct.wxString = type { %struct.wxStringBase }
	%struct.wxStringBase = type { i32* }
@.str = external constant [27 x i32]		; <[27 x i32]*> [#uses=1]
@.str4 = external constant [14 x i32]		; <[14 x i32]*> [#uses=1]
@_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__ = external constant [6 x i8]		; <[6 x i8]*> [#uses=1]
@.str33 = external constant [29 x i32]		; <[29 x i32]*> [#uses=1]
@.str89 = external constant [5 x i32]		; <[5 x i32]*> [#uses=1]

define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(%struct.wxString* noalias sret  %agg.result, %struct.wxDateTime* %this, i32* %format, %"struct.wxDateTime::TimeZone"* %tz, i1 %foo) {
entry:
	br i1 %foo, label %bb116.i, label %bb115.critedge.i
bb115.critedge.i:		; preds = %entry
	ret void
bb116.i:		; preds = %entry
	br i1 %foo, label %bb52.i.i, label %bb3118
bb3118:		; preds = %bb116.i
	ret void
bb52.i.i:		; preds = %bb116.i
	br i1 %foo, label %bb142.i, label %bb115.critedge.i.i
bb115.critedge.i.i:		; preds = %bb52.i.i
	ret void
bb142.i:		; preds = %bb52.i.i
	br i1 %foo, label %bb161.i, label %bb182.i
bb161.i:		; preds = %bb142.i
	br label %bb3261
bb182.i:		; preds = %bb142.i
	ret void
bb3261:		; preds = %bb7834, %bb161.i
	%tmp3263 = load i32* null, align 4		; <i32> [#uses=1]
	%tmp3264 = icmp eq i32 %tmp3263, 37		; <i1> [#uses=1]
	br i1 %tmp3264, label %bb3306, label %bb3267
bb3267:		; preds = %bb3261
	ret void
bb3306:		; preds = %bb3261
	%tmp3310 = invoke %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw( %struct.wxStringBase* null, i32* getelementptr ([5 x i32]* @.str89, i32 0, i32 0) )
			to label %bb3314 unwind label %lpad		; <%struct.wxStringBase*> [#uses=0]
bb3314:		; preds = %bb3306
	%tmp3316 = load i32* null, align 4		; <i32> [#uses=1]
	switch i32 %tmp3316, label %bb7595 [
		 i32 0, label %bb7819
		 i32 37, label %bb7806
		 i32 66, label %bb3477
		 i32 72, label %bb5334
		 i32 73, label %bb5484
		 i32 77, label %bb6118
		 i32 83, label %bb6406
		 i32 85, label %bb6556
		 i32 87, label %bb6708
		 i32 89, label %bb7308
		 i32 98, label %bb3477
		 i32 99, label %bb3626
		 i32 100, label %bb5184
		 i32 106, label %bb5657
		 i32 108, label %bb5809
		 i32 109, label %bb5968
		 i32 119, label %bb6860
		 i32 120, label %bb3626
		 i32 121, label %bb7158
	]
bb3477:		; preds = %bb3314, %bb3314
	ret void
bb3626:		; preds = %bb3314, %bb3314
	ret void
bb5184:		; preds = %bb3314
	ret void
bb5334:		; preds = %bb3314
	ret void
bb5484:		; preds = %bb3314
	ret void
bb5657:		; preds = %bb3314
	%tmp5661 = invoke zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE( %struct.wxDateTime* %this, %"struct.wxDateTime::TimeZone"* %tz )  
			to label %invcont5660 unwind label %lpad		; <i16> [#uses=0]
invcont5660:		; preds = %bb5657
	ret void
bb5809:		; preds = %bb3314
	%tmp61.i.i8486 = icmp sgt i64 0, -1		; <i1> [#uses=1]
	%tmp95.i.i8490 = icmp slt i64 0, 2147483647000		; <i1> [#uses=1]
	%bothcond9308 = and i1 %tmp61.i.i8486, %tmp95.i.i8490		; <i1> [#uses=1]
	br i1 %bothcond9308, label %bb91.i8504, label %bb115.critedge.i.i8492
bb115.critedge.i.i8492:		; preds = %bb5809
	ret void
bb91.i8504:		; preds = %bb5809
	br i1 %foo, label %bb155.i8541, label %bb182.i8560
bb155.i8541:		; preds = %bb91.i8504
	%tmp156.i85398700 = invoke %struct.tm* @gmtime_r( i32* null, %struct.tm* null )
			to label %bb182.i8560 unwind label %lpad		; <%struct.tm*> [#uses=1]
bb182.i8560:		; preds = %bb155.i8541, %bb91.i8504
	%tm48.0.i8558 = phi %struct.tm* [ null, %bb91.i8504 ], [ %tmp156.i85398700, %bb155.i8541 ]		; <%struct.tm*> [#uses=0]
	br i1 %foo, label %bb278.i8617, label %bb187.i8591
bb187.i8591:		; preds = %bb182.i8560
	%tmp245.i8588 = srem i64 0, 86400000		; <i64> [#uses=1]
	br i1 %foo, label %bb264.i8592, label %bb265.i8606
bb264.i8592:		; preds = %bb187.i8591
	ret void
bb265.i8606:		; preds = %bb187.i8591
	%tmp268269.i8593 = trunc i64 %tmp245.i8588 to i32		; <i32> [#uses=1]
	%tmp273.i8594 = srem i32 %tmp268269.i8593, 1000		; <i32> [#uses=1]
	%tmp273274.i8595 = trunc i32 %tmp273.i8594 to i16		; <i16> [#uses=1]
	br label %invcont5814
bb278.i8617:		; preds = %bb182.i8560
	%timeOnly50.0.i8622 = add i32 0, 0		; <i32> [#uses=1]
	br i1 %foo, label %bb440.i8663, label %bb448.i8694
bb440.i8663:		; preds = %bb278.i8617
	invoke void @_Z10wxOnAssertPKwiPKcS0_S0_( i32* getelementptr ([27 x i32]* @.str, i32 0, i32 0), i32 1717, i8* getelementptr ([6 x i8]* @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__, i32 0, i32 0), i32* getelementptr ([29 x i32]* @.str33, i32 0, i32 0), i32* getelementptr ([14 x i32]* @.str4, i32 0, i32 0) )
			to label %bb448.i8694 unwind label %lpad
bb448.i8694:		; preds = %bb440.i8663, %bb278.i8617
	%tmp477.i8669 = srem i32 %timeOnly50.0.i8622, 1000		; <i32> [#uses=1]
	%tmp477478.i8670 = trunc i32 %tmp477.i8669 to i16		; <i16> [#uses=1]
	br label %invcont5814
invcont5814:		; preds = %bb448.i8694, %bb265.i8606
	%tmp812.0.0 = phi i16 [ %tmp477478.i8670, %bb448.i8694 ], [ %tmp273274.i8595, %bb265.i8606 ]		; <i16> [#uses=1]
	%tmp58165817 = zext i16 %tmp812.0.0 to i32		; <i32> [#uses=1]
	invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret  null, i32* null, i32 %tmp58165817 )
			to label %invcont5831 unwind label %lpad
invcont5831:		; preds = %invcont5814
	%tmp5862 = invoke zeroext  i8 @_ZN12wxStringBase10ConcatSelfEmPKwm( %struct.wxStringBase* null, i32 0, i32* null, i32 0 ) 
			to label %bb7834 unwind label %lpad8185		; <i8> [#uses=0]
bb5968:		; preds = %bb3314
	invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret  null, i32* null, i32 0 )
			to label %invcont5981 unwind label %lpad
invcont5981:		; preds = %bb5968
	ret void
bb6118:		; preds = %bb3314
	ret void
bb6406:		; preds = %bb3314
	ret void
bb6556:		; preds = %bb3314
	ret void
bb6708:		; preds = %bb3314
	ret void
bb6860:		; preds = %bb3314
	ret void
bb7158:		; preds = %bb3314
	ret void
bb7308:		; preds = %bb3314
	ret void
bb7595:		; preds = %bb3314
	ret void
bb7806:		; preds = %bb3314
	%tmp7814 = invoke %struct.wxStringBase* @_ZN12wxStringBase6appendEmw( %struct.wxStringBase* null, i32 1, i32 0 )
			to label %bb7834 unwind label %lpad		; <%struct.wxStringBase*> [#uses=0]
bb7819:		; preds = %bb3314
	ret void
bb7834:		; preds = %bb7806, %invcont5831
	br label %bb3261
lpad:		; preds = %bb7806, %bb5968, %invcont5814, %bb440.i8663, %bb155.i8541, %bb5657, %bb3306
        %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
                 cleanup
	ret void
lpad8185:		; preds = %invcont5831
        %exn8185 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
                 cleanup
	ret void
}

declare void @_Z10wxOnAssertPKwiPKcS0_S0_(i32*, i32, i8*, i32*, i32*)

declare zeroext  i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(%struct.wxStringBase*, i32, i32*, i32) 

declare %struct.tm* @gmtime_r(i32*, %struct.tm*)

declare zeroext  i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE(%struct.wxDateTime*, %"struct.wxDateTime::TimeZone"*) 

declare %struct.wxStringBase* @_ZN12wxStringBase6appendEmw(%struct.wxStringBase*, i32, i32)

declare %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw(%struct.wxStringBase*, i32*)

declare void @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret , i32*, ...)

declare i32 @__gxx_personality_v0(...)