1; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu 2; pr5600 3 4%struct..0__pthread_mutex_s = type { i32, i32, i32, i32, i32, i32, %struct.__pthread_list_t } 5%struct.ASN1ObjHeader = type { i8, %"struct.__gmp_expr<__mpz_struct [1],__mpz_struct [1]>", i64, i32, i32, i32 } 6%struct.ASN1Object = type { i32 (...)**, i32, i32, i64 } 7%struct.ASN1Unit = type { [4 x i32 (%struct.ASN1ObjHeader*, %struct.ASN1Object**)*], %"struct.std::ASN1ObjList" } 8%"struct.__gmp_expr<__mpz_struct [1],__mpz_struct [1]>" = type { [1 x %struct.__mpz_struct] } 9%struct.__mpz_struct = type { i32, i32, i64* } 10%struct.__pthread_list_t = type { %struct.__pthread_list_t*, %struct.__pthread_list_t* } 11%struct.pthread_attr_t = type { i64, [48 x i8] } 12%struct.pthread_mutex_t = type { %struct..0__pthread_mutex_s } 13%struct.pthread_mutexattr_t = type { i32 } 14%"struct.std::ASN1ObjList" = type { %"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >" } 15%"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >" = type { %"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >::_Vector_impl" } 16%"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >::_Vector_impl" = type { %struct.ASN1Object**, %struct.ASN1Object**, %struct.ASN1Object** } 17%struct.xmstream = type { i8*, i64, i64, i64, i8 } 18 19declare void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(%"struct.std::ASN1ObjList"* nocapture, i64, %struct.ASN1Object** nocapture) 20 21declare i32 @_Z17LoadObjectFromBERR8xmstreamPP10ASN1ObjectPPF10ASN1StatusP13ASN1ObjHeaderS3_E(%struct.xmstream*, %struct.ASN1Object**, i32 (%struct.ASN1ObjHeader*, %struct.ASN1Object**)**) 22 23define i32 @_ZN8ASN1Unit4loadER8xmstreamjm18ASN1LengthEncoding(%struct.ASN1Unit* %this, %struct.xmstream* nocapture %stream, i32 %numObjects, i64 %size, i32 %lEncoding) { 24entry: 25 br label %meshBB85 26 27bb5: ; preds = %bb13.fragment.cl135, %bb13.fragment.cl, %bb.i.i.bbcl.disp, %bb13.fragment 28 %0 = invoke i32 @_Z17LoadObjectFromBERR8xmstreamPP10ASN1ObjectPPF10ASN1StatusP13ASN1ObjHeaderS3_E(%struct.xmstream* undef, %struct.ASN1Object** undef, i32 (%struct.ASN1ObjHeader*, %struct.ASN1Object**)** undef) 29 to label %meshBB81.bbcl.disp unwind label %lpad ; <i32> [#uses=0] 30 31bb10.fragment: ; preds = %bb13.fragment.bbcl.disp 32 br i1 undef, label %bb1.i.fragment.bbcl.disp, label %bb.i.i.bbcl.disp 33 34bb1.i.fragment: ; preds = %bb1.i.fragment.bbcl.disp 35 invoke void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(%"struct.std::ASN1ObjList"* undef, i64 undef, %struct.ASN1Object** undef) 36 to label %meshBB81.bbcl.disp unwind label %lpad 37 38bb13.fragment: ; preds = %bb13.fragment.bbcl.disp 39 br i1 undef, label %meshBB81.bbcl.disp, label %bb5 40 41bb.i4: ; preds = %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp 42 ret i32 undef 43 44bb1.i5: ; preds = %bb.i1 45 ret i32 undef 46 47lpad: ; preds = %bb1.i.fragment.cl, %bb1.i.fragment, %bb5 48 %.SV10.phi807 = phi i8* [ undef, %bb1.i.fragment.cl ], [ undef, %bb1.i.fragment ], [ undef, %bb5 ] ; <i8*> [#uses=1] 49 %1 = load i8* %.SV10.phi807, align 8 ; <i8> [#uses=0] 50 br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp 51 52bb.i1: ; preds = %bb.i.i.bbcl.disp 53 br i1 undef, label %meshBB81.bbcl.disp, label %bb1.i5 54 55meshBB81: ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp 56 br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp 57 58meshBB85: ; preds = %meshBB81.bbcl.disp, %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp, %bb.i.i.bbcl.disp, %entry 59 br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp 60 61bb.i.i.bbcl.disp: ; preds = %bb10.fragment 62 switch i8 undef, label %meshBB85 [ 63 i8 123, label %bb.i1 64 i8 97, label %bb5 65 i8 44, label %meshBB81 66 i8 1, label %meshBB81.cl 67 i8 51, label %meshBB81.cl141 68 ] 69 70bb1.i.fragment.cl: ; preds = %bb1.i.fragment.bbcl.disp 71 invoke void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(%"struct.std::ASN1ObjList"* undef, i64 undef, %struct.ASN1Object** undef) 72 to label %meshBB81.bbcl.disp unwind label %lpad 73 74bb1.i.fragment.bbcl.disp: ; preds = %bb10.fragment 75 switch i8 undef, label %bb.i4 [ 76 i8 97, label %bb1.i.fragment 77 i8 7, label %bb1.i.fragment.cl 78 i8 35, label %bb.i4.cl 79 i8 77, label %meshBB85 80 ] 81 82bb13.fragment.cl: ; preds = %bb13.fragment.bbcl.disp 83 br i1 undef, label %meshBB81.bbcl.disp, label %bb5 84 85bb13.fragment.cl135: ; preds = %bb13.fragment.bbcl.disp 86 br i1 undef, label %meshBB81.bbcl.disp, label %bb5 87 88bb13.fragment.bbcl.disp: ; preds = %meshBB85, %lpad 89 switch i8 undef, label %bb10.fragment [ 90 i8 67, label %bb13.fragment.cl 91 i8 108, label %bb13.fragment 92 i8 58, label %bb13.fragment.cl135 93 ] 94 95bb.i4.cl: ; preds = %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp 96 ret i32 undef 97 98bb.i4.bbcl.disp: ; preds = %meshBB81.cl141, %meshBB81.cl, %meshBB81 99 switch i8 undef, label %bb.i4 [ 100 i8 35, label %bb.i4.cl 101 i8 77, label %meshBB85 102 ] 103 104meshBB81.cl: ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp 105 br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp 106 107meshBB81.cl141: ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp 108 br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp 109 110meshBB81.bbcl.disp: ; preds = %meshBB81.cl141, %meshBB81.cl, %bb13.fragment.cl135, %bb13.fragment.cl, %bb1.i.fragment.cl, %meshBB85, %meshBB81, %bb.i1, %lpad, %bb13.fragment, %bb1.i.fragment, %bb5 111 switch i8 undef, label %meshBB85 [ 112 i8 44, label %meshBB81 113 i8 1, label %meshBB81.cl 114 i8 51, label %meshBB81.cl141 115 ] 116} 117