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