Home | History | Annotate | Download | only in X86
      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 
     19 declare void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(%"struct.std::ASN1ObjList"* nocapture, i64, %struct.ASN1Object** nocapture)
     20 
     21 declare i32 @_Z17LoadObjectFromBERR8xmstreamPP10ASN1ObjectPPF10ASN1StatusP13ASN1ObjHeaderS3_E(%struct.xmstream*, %struct.ASN1Object**, i32 (%struct.ASN1ObjHeader*, %struct.ASN1Object**)**)
     22 
     23 define i32 @_ZN8ASN1Unit4loadER8xmstreamjm18ASN1LengthEncoding(%struct.ASN1Unit* %this, %struct.xmstream* nocapture %stream, i32 %numObjects, i64 %size, i32 %lEncoding) {
     24 entry:
     25   br label %meshBB85
     26 
     27 bb5:                                              ; 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 
     31 bb10.fragment:                                    ; preds = %bb13.fragment.bbcl.disp
     32   br i1 undef, label %bb1.i.fragment.bbcl.disp, label %bb.i.i.bbcl.disp
     33 
     34 bb1.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 
     38 bb13.fragment:                                    ; preds = %bb13.fragment.bbcl.disp
     39   br i1 undef, label %meshBB81.bbcl.disp, label %bb5
     40 
     41 bb.i4:                                            ; preds = %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp
     42   ret i32 undef
     43 
     44 bb1.i5:                                           ; preds = %bb.i1
     45   ret i32 undef
     46 
     47 lpad:                                             ; 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   %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
     50             cleanup
     51   %1 = load i8, i8* %.SV10.phi807, align 8            ; <i8> [#uses=0]
     52   br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp
     53 
     54 bb.i1:                                            ; preds = %bb.i.i.bbcl.disp
     55   br i1 undef, label %meshBB81.bbcl.disp, label %bb1.i5
     56 
     57 meshBB81:                                         ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp
     58   br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp
     59 
     60 meshBB85:                                         ; preds = %meshBB81.bbcl.disp, %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp, %bb.i.i.bbcl.disp, %entry
     61   br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp
     62 
     63 bb.i.i.bbcl.disp:                                 ; preds = %bb10.fragment
     64   switch i8 undef, label %meshBB85 [
     65     i8 123, label %bb.i1
     66     i8 97, label %bb5
     67     i8 44, label %meshBB81
     68     i8 1, label %meshBB81.cl
     69     i8 51, label %meshBB81.cl141
     70   ]
     71 
     72 bb1.i.fragment.cl:                                ; preds = %bb1.i.fragment.bbcl.disp
     73   invoke void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(%"struct.std::ASN1ObjList"* undef, i64 undef, %struct.ASN1Object** undef)
     74           to label %meshBB81.bbcl.disp unwind label %lpad
     75 
     76 bb1.i.fragment.bbcl.disp:                         ; preds = %bb10.fragment
     77   switch i8 undef, label %bb.i4 [
     78     i8 97, label %bb1.i.fragment
     79     i8 7, label %bb1.i.fragment.cl
     80     i8 35, label %bb.i4.cl
     81     i8 77, label %meshBB85
     82   ]
     83 
     84 bb13.fragment.cl:                                 ; preds = %bb13.fragment.bbcl.disp
     85   br i1 undef, label %meshBB81.bbcl.disp, label %bb5
     86 
     87 bb13.fragment.cl135:                              ; preds = %bb13.fragment.bbcl.disp
     88   br i1 undef, label %meshBB81.bbcl.disp, label %bb5
     89 
     90 bb13.fragment.bbcl.disp:                          ; preds = %meshBB85, %lpad
     91   switch i8 undef, label %bb10.fragment [
     92     i8 67, label %bb13.fragment.cl
     93     i8 108, label %bb13.fragment
     94     i8 58, label %bb13.fragment.cl135
     95   ]
     96 
     97 bb.i4.cl:                                         ; preds = %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp
     98   ret i32 undef
     99 
    100 bb.i4.bbcl.disp:                                  ; preds = %meshBB81.cl141, %meshBB81.cl, %meshBB81
    101   switch i8 undef, label %bb.i4 [
    102     i8 35, label %bb.i4.cl
    103     i8 77, label %meshBB85
    104   ]
    105 
    106 meshBB81.cl:                                      ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp
    107   br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp
    108 
    109 meshBB81.cl141:                                   ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp
    110   br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp
    111 
    112 meshBB81.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
    113   switch i8 undef, label %meshBB85 [
    114     i8 44, label %meshBB81
    115     i8 1, label %meshBB81.cl
    116     i8 51, label %meshBB81.cl141
    117   ]
    118 }
    119 
    120 declare i32 @__gxx_personality_v0(...)
    121