xref: /aosp_15_r20/external/llvm/test/CodeGen/Hexagon/early-if-conversion-bug1.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -O2 -march=hexagon -mcpu=hexagonv5 < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; we do not want to see a segv.
3*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: segmentation
4*9880d681SAndroid Build Coastguard Worker; CHECK: call
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-p:32:32-i1:32-i64:64-a:0-v32:32-n16:32"
7*9880d681SAndroid Build Coastguard Workertarget triple = "hexagon"
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker%"class.std::__1::basic_string" = type { %"class.std::__1::__compressed_pair" }
10*9880d681SAndroid Build Coastguard Worker%"class.std::__1::__compressed_pair" = type { %"class.std::__1::__libcpp_compressed_pair_imp" }
11*9880d681SAndroid Build Coastguard Worker%"class.std::__1::__libcpp_compressed_pair_imp" = type { %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep" }
12*9880d681SAndroid Build Coastguard Worker%"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep" = type { %union.anon }
13*9880d681SAndroid Build Coastguard Worker%union.anon = type { %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long" }
14*9880d681SAndroid Build Coastguard Worker%"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long" = type { i32, i32, i8* }
15*9880d681SAndroid Build Coastguard Worker%"class.std::__1::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, i8*, i8*, void (i8, %"class.std::__1::ios_base"*, i32)**, i32*, i32, i32, i32*, i32, i32, i8**, i32, i32 }
16*9880d681SAndroid Build Coastguard Worker%"class.std::__1::basic_streambuf" = type { i32 (...)**, %"class.std::__1::locale", i8*, i8*, i8*, i8*, i8*, i8* }
17*9880d681SAndroid Build Coastguard Worker%"class.std::__1::locale" = type { %"class.std::__1::locale::__imp"* }
18*9880d681SAndroid Build Coastguard Worker%"class.std::__1::locale::__imp" = type opaque
19*9880d681SAndroid Build Coastguard Worker%"class.std::__1::allocator" = type { i8 }
20*9880d681SAndroid Build Coastguard Worker%"class.std::__1::ostreambuf_iterator" = type { %"class.std::__1::basic_streambuf"* }
21*9880d681SAndroid Build Coastguard Worker%"class.std::__1::__basic_string_common" = type { i8 }
22*9880d681SAndroid Build Coastguard Worker%"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short" = type { %union.anon.0, [11 x i8] }
23*9880d681SAndroid Build Coastguard Worker%union.anon.0 = type { i8 }
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
26*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i32, i1) #0
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
31*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"*) #1
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerdefine weak_odr hidden i32 @_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_(i32 %__s.coerce, i8* %__ob, i8* %__op, i8* %__oe, %"class.std::__1::ios_base"* nonnull %__iob, i8 zeroext %__fl) #2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
34*9880d681SAndroid Build Coastguard Workerentry:
35*9880d681SAndroid Build Coastguard Worker  %this.addr.i66 = alloca %"class.std::__1::basic_streambuf"*, align 4
36*9880d681SAndroid Build Coastguard Worker  %__s.addr.i67 = alloca i8*, align 4
37*9880d681SAndroid Build Coastguard Worker  %__n.addr.i68 = alloca i32, align 4
38*9880d681SAndroid Build Coastguard Worker  %__p.addr.i.i = alloca i8*, align 4
39*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i13.i.i = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 4
40*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i14.i.i = alloca %"class.std::__1::__compressed_pair"*, align 4
41*9880d681SAndroid Build Coastguard Worker  %this.addr.i15.i.i = alloca %"class.std::__1::basic_string"*, align 4
42*9880d681SAndroid Build Coastguard Worker  %__x.addr.i.i.i.i.i = alloca i8*, align 4
43*9880d681SAndroid Build Coastguard Worker  %__r.addr.i.i.i.i = alloca i8*, align 4
44*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i4.i.i = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 4
45*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i5.i.i = alloca %"class.std::__1::__compressed_pair"*, align 4
46*9880d681SAndroid Build Coastguard Worker  %this.addr.i6.i.i = alloca %"class.std::__1::basic_string"*, align 4
47*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i.i.i56 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 4
48*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i.i57 = alloca %"class.std::__1::__compressed_pair"*, align 4
49*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i58 = alloca %"class.std::__1::basic_string"*, align 4
50*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i59 = alloca %"class.std::__1::basic_string"*, align 4
51*9880d681SAndroid Build Coastguard Worker  %this.addr.i60 = alloca %"class.std::__1::basic_string"*, align 4
52*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i.i.i = alloca %"class.std::__1::allocator"*, align 4
53*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i.i = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 4
54*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i.i = alloca %"class.std::__1::__compressed_pair"*, align 4
55*9880d681SAndroid Build Coastguard Worker  %this.addr.i.i = alloca %"class.std::__1::basic_string"*, align 4
56*9880d681SAndroid Build Coastguard Worker  %__n.addr.i.i = alloca i32, align 4
57*9880d681SAndroid Build Coastguard Worker  %__c.addr.i.i = alloca i8, align 1
58*9880d681SAndroid Build Coastguard Worker  %this.addr.i53 = alloca %"class.std::__1::basic_string"*, align 4
59*9880d681SAndroid Build Coastguard Worker  %__n.addr.i54 = alloca i32, align 4
60*9880d681SAndroid Build Coastguard Worker  %__c.addr.i = alloca i8, align 1
61*9880d681SAndroid Build Coastguard Worker  %this.addr.i46 = alloca %"class.std::__1::basic_streambuf"*, align 4
62*9880d681SAndroid Build Coastguard Worker  %__s.addr.i47 = alloca i8*, align 4
63*9880d681SAndroid Build Coastguard Worker  %__n.addr.i48 = alloca i32, align 4
64*9880d681SAndroid Build Coastguard Worker  %this.addr.i44 = alloca %"class.std::__1::basic_streambuf"*, align 4
65*9880d681SAndroid Build Coastguard Worker  %__s.addr.i = alloca i8*, align 4
66*9880d681SAndroid Build Coastguard Worker  %__n.addr.i = alloca i32, align 4
67*9880d681SAndroid Build Coastguard Worker  %this.addr.i41 = alloca %"class.std::__1::ios_base"*, align 4
68*9880d681SAndroid Build Coastguard Worker  %__wide.addr.i = alloca i32, align 4
69*9880d681SAndroid Build Coastguard Worker  %__r.i = alloca i32, align 4
70*9880d681SAndroid Build Coastguard Worker  %this.addr.i = alloca %"class.std::__1::ios_base"*, align 4
71*9880d681SAndroid Build Coastguard Worker  %retval = alloca %"class.std::__1::ostreambuf_iterator", align 4
72*9880d681SAndroid Build Coastguard Worker  %__s = alloca %"class.std::__1::ostreambuf_iterator", align 4
73*9880d681SAndroid Build Coastguard Worker  %__ob.addr = alloca i8*, align 4
74*9880d681SAndroid Build Coastguard Worker  %__op.addr = alloca i8*, align 4
75*9880d681SAndroid Build Coastguard Worker  %__oe.addr = alloca i8*, align 4
76*9880d681SAndroid Build Coastguard Worker  %__iob.addr = alloca %"class.std::__1::ios_base"*, align 4
77*9880d681SAndroid Build Coastguard Worker  %__fl.addr = alloca i8, align 1
78*9880d681SAndroid Build Coastguard Worker  %__sz = alloca i32, align 4
79*9880d681SAndroid Build Coastguard Worker  %__ns = alloca i32, align 4
80*9880d681SAndroid Build Coastguard Worker  %__np = alloca i32, align 4
81*9880d681SAndroid Build Coastguard Worker  %__sp = alloca %"class.std::__1::basic_string", align 4
82*9880d681SAndroid Build Coastguard Worker  %exn.slot = alloca i8*
83*9880d681SAndroid Build Coastguard Worker  %ehselector.slot = alloca i32
84*9880d681SAndroid Build Coastguard Worker  %cleanup.dest.slot = alloca i32
85*9880d681SAndroid Build Coastguard Worker  %coerce.dive = getelementptr %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
86*9880d681SAndroid Build Coastguard Worker  %coerce.val.ip = inttoptr i32 %__s.coerce to %"class.std::__1::basic_streambuf"*
87*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* %coerce.val.ip, %"class.std::__1::basic_streambuf"** %coerce.dive
88*9880d681SAndroid Build Coastguard Worker  store i8* %__ob, i8** %__ob.addr, align 4
89*9880d681SAndroid Build Coastguard Worker  store i8* %__op, i8** %__op.addr, align 4
90*9880d681SAndroid Build Coastguard Worker  store i8* %__oe, i8** %__oe.addr, align 4
91*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::ios_base"* %__iob, %"class.std::__1::ios_base"** %__iob.addr, align 4
92*9880d681SAndroid Build Coastguard Worker  store i8 %__fl, i8* %__fl.addr, align 1
93*9880d681SAndroid Build Coastguard Worker  %__sbuf_ = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
94*9880d681SAndroid Build Coastguard Worker  %0 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %__sbuf_, align 4
95*9880d681SAndroid Build Coastguard Worker  %cmp = icmp eq %"class.std::__1::basic_streambuf"* %0, null
96*9880d681SAndroid Build Coastguard Worker  br i1 %cmp, label %if.then, label %if.end
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %entry
99*9880d681SAndroid Build Coastguard Worker  %1 = bitcast %"class.std::__1::ostreambuf_iterator"* %retval to i8*
100*9880d681SAndroid Build Coastguard Worker  %2 = bitcast %"class.std::__1::ostreambuf_iterator"* %__s to i8*
101*9880d681SAndroid Build Coastguard Worker  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
102*9880d681SAndroid Build Coastguard Worker  br label %return
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerif.end:                                           ; preds = %entry
105*9880d681SAndroid Build Coastguard Worker  %3 = load i8*, i8** %__oe.addr, align 4
106*9880d681SAndroid Build Coastguard Worker  %4 = load i8*, i8** %__ob.addr, align 4
107*9880d681SAndroid Build Coastguard Worker  %sub.ptr.lhs.cast = ptrtoint i8* %3 to i32
108*9880d681SAndroid Build Coastguard Worker  %sub.ptr.rhs.cast = ptrtoint i8* %4 to i32
109*9880d681SAndroid Build Coastguard Worker  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
110*9880d681SAndroid Build Coastguard Worker  store i32 %sub.ptr.sub, i32* %__sz, align 4
111*9880d681SAndroid Build Coastguard Worker  %5 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %__iob.addr, align 4
112*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::ios_base"* %5, %"class.std::__1::ios_base"** %this.addr.i, align 4
113*9880d681SAndroid Build Coastguard Worker  %this1.i = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %this.addr.i
114*9880d681SAndroid Build Coastguard Worker  %__width_.i = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %this1.i, i32 0, i32 3
115*9880d681SAndroid Build Coastguard Worker  %6 = load i32, i32* %__width_.i, align 4
116*9880d681SAndroid Build Coastguard Worker  store i32 %6, i32* %__ns, align 4
117*9880d681SAndroid Build Coastguard Worker  %7 = load i32, i32* %__ns, align 4
118*9880d681SAndroid Build Coastguard Worker  %8 = load i32, i32* %__sz, align 4
119*9880d681SAndroid Build Coastguard Worker  %cmp1 = icmp sgt i32 %7, %8
120*9880d681SAndroid Build Coastguard Worker  br i1 %cmp1, label %if.then2, label %if.else
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Workerif.then2:                                         ; preds = %if.end
123*9880d681SAndroid Build Coastguard Worker  %9 = load i32, i32* %__sz, align 4
124*9880d681SAndroid Build Coastguard Worker  %10 = load i32, i32* %__ns, align 4
125*9880d681SAndroid Build Coastguard Worker  %sub = sub nsw i32 %10, %9
126*9880d681SAndroid Build Coastguard Worker  store i32 %sub, i32* %__ns, align 4
127*9880d681SAndroid Build Coastguard Worker  br label %if.end3
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Workerif.else:                                          ; preds = %if.end
130*9880d681SAndroid Build Coastguard Worker  store i32 0, i32* %__ns, align 4
131*9880d681SAndroid Build Coastguard Worker  br label %if.end3
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Workerif.end3:                                          ; preds = %if.else, %if.then2
134*9880d681SAndroid Build Coastguard Worker  %11 = load i8*, i8** %__op.addr, align 4
135*9880d681SAndroid Build Coastguard Worker  %12 = load i8*, i8** %__ob.addr, align 4
136*9880d681SAndroid Build Coastguard Worker  %sub.ptr.lhs.cast4 = ptrtoint i8* %11 to i32
137*9880d681SAndroid Build Coastguard Worker  %sub.ptr.rhs.cast5 = ptrtoint i8* %12 to i32
138*9880d681SAndroid Build Coastguard Worker  %sub.ptr.sub6 = sub i32 %sub.ptr.lhs.cast4, %sub.ptr.rhs.cast5
139*9880d681SAndroid Build Coastguard Worker  store i32 %sub.ptr.sub6, i32* %__np, align 4
140*9880d681SAndroid Build Coastguard Worker  %13 = load i32, i32* %__np, align 4
141*9880d681SAndroid Build Coastguard Worker  %cmp7 = icmp sgt i32 %13, 0
142*9880d681SAndroid Build Coastguard Worker  br i1 %cmp7, label %if.then8, label %if.end15
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Workerif.then8:                                         ; preds = %if.end3
145*9880d681SAndroid Build Coastguard Worker  %__sbuf_9 = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
146*9880d681SAndroid Build Coastguard Worker  %14 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %__sbuf_9, align 4
147*9880d681SAndroid Build Coastguard Worker  %15 = load i8*, i8** %__ob.addr, align 4
148*9880d681SAndroid Build Coastguard Worker  %16 = load i32, i32* %__np, align 4
149*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* %14, %"class.std::__1::basic_streambuf"** %this.addr.i46, align 4
150*9880d681SAndroid Build Coastguard Worker  store i8* %15, i8** %__s.addr.i47, align 4
151*9880d681SAndroid Build Coastguard Worker  store i32 %16, i32* %__n.addr.i48, align 4
152*9880d681SAndroid Build Coastguard Worker  %this1.i49 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %this.addr.i46
153*9880d681SAndroid Build Coastguard Worker  %17 = bitcast %"class.std::__1::basic_streambuf"* %this1.i49 to i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)***
154*9880d681SAndroid Build Coastguard Worker  %vtable.i50 = load i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)**, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*** %17
155*9880d681SAndroid Build Coastguard Worker  %vfn.i51 = getelementptr inbounds i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)** %vtable.i50, i64 12
156*9880d681SAndroid Build Coastguard Worker  %18 = load i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)** %vfn.i51
157*9880d681SAndroid Build Coastguard Worker  %19 = load i8*, i8** %__s.addr.i47, align 4
158*9880d681SAndroid Build Coastguard Worker  %20 = load i32, i32* %__n.addr.i48, align 4
159*9880d681SAndroid Build Coastguard Worker  %call.i52 = call i32 %18(%"class.std::__1::basic_streambuf"* %this1.i49, i8* %19, i32 %20)
160*9880d681SAndroid Build Coastguard Worker  %21 = load i32, i32* %__np, align 4
161*9880d681SAndroid Build Coastguard Worker  %cmp11 = icmp ne i32 %call.i52, %21
162*9880d681SAndroid Build Coastguard Worker  br i1 %cmp11, label %if.then12, label %if.end14
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Workerif.then12:                                        ; preds = %if.then8
165*9880d681SAndroid Build Coastguard Worker  %__sbuf_13 = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
166*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* null, %"class.std::__1::basic_streambuf"** %__sbuf_13, align 4
167*9880d681SAndroid Build Coastguard Worker  %22 = bitcast %"class.std::__1::ostreambuf_iterator"* %retval to i8*
168*9880d681SAndroid Build Coastguard Worker  %23 = bitcast %"class.std::__1::ostreambuf_iterator"* %__s to i8*
169*9880d681SAndroid Build Coastguard Worker  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %22, i8* %23, i32 4, i32 4, i1 false)
170*9880d681SAndroid Build Coastguard Worker  br label %return
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Workerif.end14:                                         ; preds = %if.then8
173*9880d681SAndroid Build Coastguard Worker  br label %if.end15
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Workerif.end15:                                         ; preds = %if.end14, %if.end3
176*9880d681SAndroid Build Coastguard Worker  %24 = load i32, i32* %__ns, align 4
177*9880d681SAndroid Build Coastguard Worker  %cmp16 = icmp sgt i32 %24, 0
178*9880d681SAndroid Build Coastguard Worker  br i1 %cmp16, label %if.then17, label %if.end25
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerif.then17:                                        ; preds = %if.end15
181*9880d681SAndroid Build Coastguard Worker  %25 = load i32, i32* %__ns, align 4
182*9880d681SAndroid Build Coastguard Worker  %26 = load i8, i8* %__fl.addr, align 1
183*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %__sp, %"class.std::__1::basic_string"** %this.addr.i53, align 4
184*9880d681SAndroid Build Coastguard Worker  store i32 %25, i32* %__n.addr.i54, align 4
185*9880d681SAndroid Build Coastguard Worker  store i8 %26, i8* %__c.addr.i, align 1
186*9880d681SAndroid Build Coastguard Worker  %this1.i55 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i53
187*9880d681SAndroid Build Coastguard Worker  %27 = load i32, i32* %__n.addr.i54, align 4
188*9880d681SAndroid Build Coastguard Worker  %28 = load i8, i8* %__c.addr.i, align 1
189*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %this1.i55, %"class.std::__1::basic_string"** %this.addr.i.i, align 4
190*9880d681SAndroid Build Coastguard Worker  store i32 %27, i32* %__n.addr.i.i, align 4
191*9880d681SAndroid Build Coastguard Worker  store i8 %28, i8* %__c.addr.i.i, align 1
192*9880d681SAndroid Build Coastguard Worker  %this1.i.i = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i.i
193*9880d681SAndroid Build Coastguard Worker  %29 = bitcast %"class.std::__1::basic_string"* %this1.i.i to %"class.std::__1::__basic_string_common"*
194*9880d681SAndroid Build Coastguard Worker  %__r_.i.i = getelementptr inbounds %"class.std::__1::basic_string", %"class.std::__1::basic_string"* %this1.i.i, i32 0, i32 0
195*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__compressed_pair"* %__r_.i.i, %"class.std::__1::__compressed_pair"** %this.addr.i.i.i, align 4
196*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %this.addr.i.i.i
197*9880d681SAndroid Build Coastguard Worker  %30 = bitcast %"class.std::__1::__compressed_pair"* %this1.i.i.i to %"class.std::__1::__libcpp_compressed_pair_imp"*
198*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__libcpp_compressed_pair_imp"* %30, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i.i, align 4
199*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i.i = load %"class.std::__1::__libcpp_compressed_pair_imp"*, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i.i
200*9880d681SAndroid Build Coastguard Worker  %31 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %this1.i.i.i.i to %"class.std::__1::allocator"*
201*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::allocator"* %31, %"class.std::__1::allocator"** %this.addr.i.i.i.i.i, align 4
202*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i.i.i = load %"class.std::__1::allocator"*, %"class.std::__1::allocator"** %this.addr.i.i.i.i.i
203*9880d681SAndroid Build Coastguard Worker  %__first_.i.i.i.i = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp", %"class.std::__1::__libcpp_compressed_pair_imp"* %this1.i.i.i.i, i32 0, i32 0
204*9880d681SAndroid Build Coastguard Worker  %32 = load i32, i32* %__n.addr.i.i, align 4
205*9880d681SAndroid Build Coastguard Worker  %33 = load i8, i8* %__c.addr.i.i, align 1
206*9880d681SAndroid Build Coastguard Worker  call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc(%"class.std::__1::basic_string"* %this1.i.i, i32 %32, i8 zeroext %33)
207*9880d681SAndroid Build Coastguard Worker  %__sbuf_18 = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
208*9880d681SAndroid Build Coastguard Worker  %34 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %__sbuf_18, align 4
209*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %__sp, %"class.std::__1::basic_string"** %this.addr.i60, align 4
210*9880d681SAndroid Build Coastguard Worker  %this1.i61 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i60
211*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %this1.i61, %"class.std::__1::basic_string"** %this.addr.i.i59, align 4
212*9880d681SAndroid Build Coastguard Worker  %this1.i.i62 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i.i59
213*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %this1.i.i62, %"class.std::__1::basic_string"** %this.addr.i.i.i58, align 4
214*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i63 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i.i.i58
215*9880d681SAndroid Build Coastguard Worker  %__r_.i.i.i = getelementptr inbounds %"class.std::__1::basic_string", %"class.std::__1::basic_string"* %this1.i.i.i63, i32 0, i32 0
216*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__compressed_pair"* %__r_.i.i.i, %"class.std::__1::__compressed_pair"** %this.addr.i.i.i.i57, align 4
217*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i.i64 = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %this.addr.i.i.i.i57
218*9880d681SAndroid Build Coastguard Worker  %35 = bitcast %"class.std::__1::__compressed_pair"* %this1.i.i.i.i64 to %"class.std::__1::__libcpp_compressed_pair_imp"*
219*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__libcpp_compressed_pair_imp"* %35, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i.i.i56, align 4
220*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i.i.i65 = load %"class.std::__1::__libcpp_compressed_pair_imp"*, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i.i.i56
221*9880d681SAndroid Build Coastguard Worker  %__first_.i.i.i.i.i = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp", %"class.std::__1::__libcpp_compressed_pair_imp"* %this1.i.i.i.i.i65, i32 0, i32 0
222*9880d681SAndroid Build Coastguard Worker  %36 = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %__first_.i.i.i.i.i, i32 0, i32 0
223*9880d681SAndroid Build Coastguard Worker  %__s.i.i.i = bitcast %union.anon* %36 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"*
224*9880d681SAndroid Build Coastguard Worker  %37 = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"* %__s.i.i.i, i32 0, i32 0
225*9880d681SAndroid Build Coastguard Worker  %__size_.i.i.i = bitcast %union.anon.0* %37 to i8*
226*9880d681SAndroid Build Coastguard Worker  %38 = load i8, i8* %__size_.i.i.i, align 1
227*9880d681SAndroid Build Coastguard Worker  %conv.i.i.i = zext i8 %38 to i32
228*9880d681SAndroid Build Coastguard Worker  %and.i.i.i = and i32 %conv.i.i.i, 1
229*9880d681SAndroid Build Coastguard Worker  %tobool.i.i.i = icmp ne i32 %and.i.i.i, 0
230*9880d681SAndroid Build Coastguard Worker  br i1 %tobool.i.i.i, label %cond.true.i.i, label %cond.false.i.i
231*9880d681SAndroid Build Coastguard Worker
232*9880d681SAndroid Build Coastguard Workercond.true.i.i:                                    ; preds = %if.then17
233*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %this1.i.i62, %"class.std::__1::basic_string"** %this.addr.i15.i.i, align 4
234*9880d681SAndroid Build Coastguard Worker  %this1.i16.i.i = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i15.i.i
235*9880d681SAndroid Build Coastguard Worker  %__r_.i17.i.i = getelementptr inbounds %"class.std::__1::basic_string", %"class.std::__1::basic_string"* %this1.i16.i.i, i32 0, i32 0
236*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__compressed_pair"* %__r_.i17.i.i, %"class.std::__1::__compressed_pair"** %this.addr.i.i14.i.i, align 4
237*9880d681SAndroid Build Coastguard Worker  %this1.i.i18.i.i = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %this.addr.i.i14.i.i
238*9880d681SAndroid Build Coastguard Worker  %39 = bitcast %"class.std::__1::__compressed_pair"* %this1.i.i18.i.i to %"class.std::__1::__libcpp_compressed_pair_imp"*
239*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__libcpp_compressed_pair_imp"* %39, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i13.i.i, align 4
240*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i19.i.i = load %"class.std::__1::__libcpp_compressed_pair_imp"*, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i13.i.i
241*9880d681SAndroid Build Coastguard Worker  %__first_.i.i.i20.i.i = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp", %"class.std::__1::__libcpp_compressed_pair_imp"* %this1.i.i.i19.i.i, i32 0, i32 0
242*9880d681SAndroid Build Coastguard Worker  %40 = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %__first_.i.i.i20.i.i, i32 0, i32 0
243*9880d681SAndroid Build Coastguard Worker  %__l.i.i.i = bitcast %union.anon* %40 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long"*
244*9880d681SAndroid Build Coastguard Worker  %__data_.i21.i.i = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long"* %__l.i.i.i, i32 0, i32 2
245*9880d681SAndroid Build Coastguard Worker  %41 = load i8*, i8** %__data_.i21.i.i, align 4
246*9880d681SAndroid Build Coastguard Worker  br label %_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv.exit
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Workercond.false.i.i:                                   ; preds = %if.then17
249*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_string"* %this1.i.i62, %"class.std::__1::basic_string"** %this.addr.i6.i.i, align 4
250*9880d681SAndroid Build Coastguard Worker  %this1.i7.i.i = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %this.addr.i6.i.i
251*9880d681SAndroid Build Coastguard Worker  %__r_.i8.i.i = getelementptr inbounds %"class.std::__1::basic_string", %"class.std::__1::basic_string"* %this1.i7.i.i, i32 0, i32 0
252*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__compressed_pair"* %__r_.i8.i.i, %"class.std::__1::__compressed_pair"** %this.addr.i.i5.i.i, align 4
253*9880d681SAndroid Build Coastguard Worker  %this1.i.i9.i.i = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %this.addr.i.i5.i.i
254*9880d681SAndroid Build Coastguard Worker  %42 = bitcast %"class.std::__1::__compressed_pair"* %this1.i.i9.i.i to %"class.std::__1::__libcpp_compressed_pair_imp"*
255*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::__libcpp_compressed_pair_imp"* %42, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i4.i.i, align 4
256*9880d681SAndroid Build Coastguard Worker  %this1.i.i.i10.i.i = load %"class.std::__1::__libcpp_compressed_pair_imp"*, %"class.std::__1::__libcpp_compressed_pair_imp"** %this.addr.i.i.i4.i.i
257*9880d681SAndroid Build Coastguard Worker  %__first_.i.i.i11.i.i = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp", %"class.std::__1::__libcpp_compressed_pair_imp"* %this1.i.i.i10.i.i, i32 0, i32 0
258*9880d681SAndroid Build Coastguard Worker  %43 = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %__first_.i.i.i11.i.i, i32 0, i32 0
259*9880d681SAndroid Build Coastguard Worker  %__s.i12.i.i = bitcast %union.anon* %43 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"*
260*9880d681SAndroid Build Coastguard Worker  %__data_.i.i.i = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"* %__s.i12.i.i, i32 0, i32 1
261*9880d681SAndroid Build Coastguard Worker  %arrayidx.i.i.i = getelementptr inbounds [11 x i8], [11 x i8]* %__data_.i.i.i, i32 0, i32 0
262*9880d681SAndroid Build Coastguard Worker  store i8* %arrayidx.i.i.i, i8** %__r.addr.i.i.i.i, align 4
263*9880d681SAndroid Build Coastguard Worker  %44 = load i8*, i8** %__r.addr.i.i.i.i, align 4
264*9880d681SAndroid Build Coastguard Worker  store i8* %44, i8** %__x.addr.i.i.i.i.i, align 4
265*9880d681SAndroid Build Coastguard Worker  %45 = load i8*, i8** %__x.addr.i.i.i.i.i, align 4
266*9880d681SAndroid Build Coastguard Worker  br label %_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv.exit
267*9880d681SAndroid Build Coastguard Worker
268*9880d681SAndroid Build Coastguard Worker_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv.exit: ; preds = %cond.false.i.i, %cond.true.i.i
269*9880d681SAndroid Build Coastguard Worker  %cond.i.i = phi i8* [ %41, %cond.true.i.i ], [ %45, %cond.false.i.i ]
270*9880d681SAndroid Build Coastguard Worker  store i8* %cond.i.i, i8** %__p.addr.i.i, align 4
271*9880d681SAndroid Build Coastguard Worker  %46 = load i8*, i8** %__p.addr.i.i, align 4
272*9880d681SAndroid Build Coastguard Worker  %47 = load i32, i32* %__ns, align 4
273*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* %34, %"class.std::__1::basic_streambuf"** %this.addr.i66, align 4
274*9880d681SAndroid Build Coastguard Worker  store i8* %46, i8** %__s.addr.i67, align 4
275*9880d681SAndroid Build Coastguard Worker  store i32 %47, i32* %__n.addr.i68, align 4
276*9880d681SAndroid Build Coastguard Worker  %this1.i69 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %this.addr.i66
277*9880d681SAndroid Build Coastguard Worker  %48 = bitcast %"class.std::__1::basic_streambuf"* %this1.i69 to i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)***
278*9880d681SAndroid Build Coastguard Worker  %vtable.i70 = load i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)**, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*** %48
279*9880d681SAndroid Build Coastguard Worker  %vfn.i71 = getelementptr inbounds i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)** %vtable.i70, i64 12
280*9880d681SAndroid Build Coastguard Worker  %49 = load i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)** %vfn.i71
281*9880d681SAndroid Build Coastguard Worker  %50 = load i8*, i8** %__s.addr.i67, align 4
282*9880d681SAndroid Build Coastguard Worker  %51 = load i32, i32* %__n.addr.i68, align 4
283*9880d681SAndroid Build Coastguard Worker  %call.i7273 = invoke i32 %49(%"class.std::__1::basic_streambuf"* %this1.i69, i8* %50, i32 %51)
284*9880d681SAndroid Build Coastguard Worker          to label %_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKci.exit unwind label %lpad
285*9880d681SAndroid Build Coastguard Worker
286*9880d681SAndroid Build Coastguard Worker_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKci.exit: ; preds = %_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv.exit
287*9880d681SAndroid Build Coastguard Worker  br label %invoke.cont
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Workerinvoke.cont:                                      ; preds = %_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKci.exit
290*9880d681SAndroid Build Coastguard Worker  %52 = load i32, i32* %__ns, align 4
291*9880d681SAndroid Build Coastguard Worker  %cmp21 = icmp ne i32 %call.i7273, %52
292*9880d681SAndroid Build Coastguard Worker  br i1 %cmp21, label %if.then22, label %if.end24
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Workerif.then22:                                        ; preds = %invoke.cont
295*9880d681SAndroid Build Coastguard Worker  %__sbuf_23 = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
296*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* null, %"class.std::__1::basic_streambuf"** %__sbuf_23, align 4
297*9880d681SAndroid Build Coastguard Worker  %53 = bitcast %"class.std::__1::ostreambuf_iterator"* %retval to i8*
298*9880d681SAndroid Build Coastguard Worker  %54 = bitcast %"class.std::__1::ostreambuf_iterator"* %__s to i8*
299*9880d681SAndroid Build Coastguard Worker  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %53, i8* %54, i32 4, i32 4, i1 false)
300*9880d681SAndroid Build Coastguard Worker  store i32 1, i32* %cleanup.dest.slot
301*9880d681SAndroid Build Coastguard Worker  br label %cleanup
302*9880d681SAndroid Build Coastguard Worker
303*9880d681SAndroid Build Coastguard Workerlpad:                                             ; preds = %_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv.exit
304*9880d681SAndroid Build Coastguard Worker  %55 = landingpad { i8*, i32 }
305*9880d681SAndroid Build Coastguard Worker          cleanup
306*9880d681SAndroid Build Coastguard Worker  %56 = extractvalue { i8*, i32 } %55, 0
307*9880d681SAndroid Build Coastguard Worker  store i8* %56, i8** %exn.slot
308*9880d681SAndroid Build Coastguard Worker  %57 = extractvalue { i8*, i32 } %55, 1
309*9880d681SAndroid Build Coastguard Worker  store i32 %57, i32* %ehselector.slot
310*9880d681SAndroid Build Coastguard Worker  call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"* %__sp) #0
311*9880d681SAndroid Build Coastguard Worker  br label %eh.resume
312*9880d681SAndroid Build Coastguard Worker
313*9880d681SAndroid Build Coastguard Workerif.end24:                                         ; preds = %invoke.cont
314*9880d681SAndroid Build Coastguard Worker  store i32 0, i32* %cleanup.dest.slot
315*9880d681SAndroid Build Coastguard Worker  br label %cleanup
316*9880d681SAndroid Build Coastguard Worker
317*9880d681SAndroid Build Coastguard Workercleanup:                                          ; preds = %if.end24, %if.then22
318*9880d681SAndroid Build Coastguard Worker  call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"* %__sp) #0
319*9880d681SAndroid Build Coastguard Worker  %cleanup.dest = load i32, i32* %cleanup.dest.slot
320*9880d681SAndroid Build Coastguard Worker  switch i32 %cleanup.dest, label %unreachable [
321*9880d681SAndroid Build Coastguard Worker    i32 0, label %cleanup.cont
322*9880d681SAndroid Build Coastguard Worker    i32 1, label %return
323*9880d681SAndroid Build Coastguard Worker  ]
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Workercleanup.cont:                                     ; preds = %cleanup
326*9880d681SAndroid Build Coastguard Worker  br label %if.end25
327*9880d681SAndroid Build Coastguard Worker
328*9880d681SAndroid Build Coastguard Workerif.end25:                                         ; preds = %cleanup.cont, %if.end15
329*9880d681SAndroid Build Coastguard Worker  %58 = load i8*, i8** %__oe.addr, align 4
330*9880d681SAndroid Build Coastguard Worker  %59 = load i8*, i8** %__op.addr, align 4
331*9880d681SAndroid Build Coastguard Worker  %sub.ptr.lhs.cast26 = ptrtoint i8* %58 to i32
332*9880d681SAndroid Build Coastguard Worker  %sub.ptr.rhs.cast27 = ptrtoint i8* %59 to i32
333*9880d681SAndroid Build Coastguard Worker  %sub.ptr.sub28 = sub i32 %sub.ptr.lhs.cast26, %sub.ptr.rhs.cast27
334*9880d681SAndroid Build Coastguard Worker  store i32 %sub.ptr.sub28, i32* %__np, align 4
335*9880d681SAndroid Build Coastguard Worker  %60 = load i32, i32* %__np, align 4
336*9880d681SAndroid Build Coastguard Worker  %cmp29 = icmp sgt i32 %60, 0
337*9880d681SAndroid Build Coastguard Worker  br i1 %cmp29, label %if.then30, label %if.end37
338*9880d681SAndroid Build Coastguard Worker
339*9880d681SAndroid Build Coastguard Workerif.then30:                                        ; preds = %if.end25
340*9880d681SAndroid Build Coastguard Worker  %__sbuf_31 = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
341*9880d681SAndroid Build Coastguard Worker  %61 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %__sbuf_31, align 4
342*9880d681SAndroid Build Coastguard Worker  %62 = load i8*, i8** %__op.addr, align 4
343*9880d681SAndroid Build Coastguard Worker  %63 = load i32, i32* %__np, align 4
344*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* %61, %"class.std::__1::basic_streambuf"** %this.addr.i44, align 4
345*9880d681SAndroid Build Coastguard Worker  store i8* %62, i8** %__s.addr.i, align 4
346*9880d681SAndroid Build Coastguard Worker  store i32 %63, i32* %__n.addr.i, align 4
347*9880d681SAndroid Build Coastguard Worker  %this1.i45 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %this.addr.i44
348*9880d681SAndroid Build Coastguard Worker  %64 = bitcast %"class.std::__1::basic_streambuf"* %this1.i45 to i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)***
349*9880d681SAndroid Build Coastguard Worker  %vtable.i = load i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)**, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*** %64
350*9880d681SAndroid Build Coastguard Worker  %vfn.i = getelementptr inbounds i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)** %vtable.i, i64 12
351*9880d681SAndroid Build Coastguard Worker  %65 = load i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)*, i32 (%"class.std::__1::basic_streambuf"*, i8*, i32)** %vfn.i
352*9880d681SAndroid Build Coastguard Worker  %66 = load i8*, i8** %__s.addr.i, align 4
353*9880d681SAndroid Build Coastguard Worker  %67 = load i32, i32* %__n.addr.i, align 4
354*9880d681SAndroid Build Coastguard Worker  %call.i = call i32 %65(%"class.std::__1::basic_streambuf"* %this1.i45, i8* %66, i32 %67)
355*9880d681SAndroid Build Coastguard Worker  %68 = load i32, i32* %__np, align 4
356*9880d681SAndroid Build Coastguard Worker  %cmp33 = icmp ne i32 %call.i, %68
357*9880d681SAndroid Build Coastguard Worker  br i1 %cmp33, label %if.then34, label %if.end36
358*9880d681SAndroid Build Coastguard Worker
359*9880d681SAndroid Build Coastguard Workerif.then34:                                        ; preds = %if.then30
360*9880d681SAndroid Build Coastguard Worker  %__sbuf_35 = getelementptr inbounds %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %__s, i32 0, i32 0
361*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::basic_streambuf"* null, %"class.std::__1::basic_streambuf"** %__sbuf_35, align 4
362*9880d681SAndroid Build Coastguard Worker  %69 = bitcast %"class.std::__1::ostreambuf_iterator"* %retval to i8*
363*9880d681SAndroid Build Coastguard Worker  %70 = bitcast %"class.std::__1::ostreambuf_iterator"* %__s to i8*
364*9880d681SAndroid Build Coastguard Worker  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %69, i8* %70, i32 4, i32 4, i1 false)
365*9880d681SAndroid Build Coastguard Worker  br label %return
366*9880d681SAndroid Build Coastguard Worker
367*9880d681SAndroid Build Coastguard Workerif.end36:                                         ; preds = %if.then30
368*9880d681SAndroid Build Coastguard Worker  br label %if.end37
369*9880d681SAndroid Build Coastguard Worker
370*9880d681SAndroid Build Coastguard Workerif.end37:                                         ; preds = %if.end36, %if.end25
371*9880d681SAndroid Build Coastguard Worker  %71 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %__iob.addr, align 4
372*9880d681SAndroid Build Coastguard Worker  store %"class.std::__1::ios_base"* %71, %"class.std::__1::ios_base"** %this.addr.i41, align 4
373*9880d681SAndroid Build Coastguard Worker  store i32 0, i32* %__wide.addr.i, align 4
374*9880d681SAndroid Build Coastguard Worker  %this1.i42 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %this.addr.i41
375*9880d681SAndroid Build Coastguard Worker  %__width_.i43 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %this1.i42, i32 0, i32 3
376*9880d681SAndroid Build Coastguard Worker  %72 = load i32, i32* %__width_.i43, align 4
377*9880d681SAndroid Build Coastguard Worker  store i32 %72, i32* %__r.i, align 4
378*9880d681SAndroid Build Coastguard Worker  %73 = load i32, i32* %__wide.addr.i, align 4
379*9880d681SAndroid Build Coastguard Worker  %__width_2.i = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %this1.i42, i32 0, i32 3
380*9880d681SAndroid Build Coastguard Worker  store i32 %73, i32* %__width_2.i, align 4
381*9880d681SAndroid Build Coastguard Worker  %74 = load i32, i32* %__r.i, align 4
382*9880d681SAndroid Build Coastguard Worker  %75 = bitcast %"class.std::__1::ostreambuf_iterator"* %retval to i8*
383*9880d681SAndroid Build Coastguard Worker  %76 = bitcast %"class.std::__1::ostreambuf_iterator"* %__s to i8*
384*9880d681SAndroid Build Coastguard Worker  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %75, i8* %76, i32 4, i32 4, i1 false)
385*9880d681SAndroid Build Coastguard Worker  br label %return
386*9880d681SAndroid Build Coastguard Worker
387*9880d681SAndroid Build Coastguard Workerreturn:                                           ; preds = %if.end37, %if.then34, %cleanup, %if.then12, %if.then
388*9880d681SAndroid Build Coastguard Worker  %coerce.dive39 = getelementptr %"class.std::__1::ostreambuf_iterator", %"class.std::__1::ostreambuf_iterator"* %retval, i32 0, i32 0
389*9880d681SAndroid Build Coastguard Worker  %77 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %coerce.dive39
390*9880d681SAndroid Build Coastguard Worker  %coerce.val.pi = ptrtoint %"class.std::__1::basic_streambuf"* %77 to i32
391*9880d681SAndroid Build Coastguard Worker  ret i32 %coerce.val.pi
392*9880d681SAndroid Build Coastguard Worker
393*9880d681SAndroid Build Coastguard Workereh.resume:                                        ; preds = %lpad
394*9880d681SAndroid Build Coastguard Worker  %exn = load i8*, i8** %exn.slot
395*9880d681SAndroid Build Coastguard Worker  %sel = load i32, i32* %ehselector.slot
396*9880d681SAndroid Build Coastguard Worker  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
397*9880d681SAndroid Build Coastguard Worker  %lpad.val40 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
398*9880d681SAndroid Build Coastguard Worker  resume { i8*, i32 } %lpad.val40
399*9880d681SAndroid Build Coastguard Worker
400*9880d681SAndroid Build Coastguard Workerunreachable:                                      ; preds = %cleanup
401*9880d681SAndroid Build Coastguard Worker  unreachable
402*9880d681SAndroid Build Coastguard Worker}
403*9880d681SAndroid Build Coastguard Worker
404*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc(%"class.std::__1::basic_string"*, i32, i8 zeroext) #2
405*9880d681SAndroid Build Coastguard Worker
406*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind }
407*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
408*9880d681SAndroid Build Coastguard Workerattributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
409*9880d681SAndroid Build Coastguard Worker
410*9880d681SAndroid Build Coastguard Worker!llvm.ident = !{!0}
411*9880d681SAndroid Build Coastguard Worker
412*9880d681SAndroid Build Coastguard Worker!0 = !{!"Clang 3.1"}
413