1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4 2; RUN: opt < %s -passes=newgvn -disable-output 3; PR3775 4 5; ModuleID = 'bugpoint-reduced-simplified.bc' 6target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" 7target triple = "i386-pc-linux-gnu" 8 %llvm.dbg.anchor.type = type { i32, i32 } 9 %"struct.__gnu_cxx::hash<ptr>" = type <{ i8 }> 10 %struct.__sched_param = type { i32 } 11 %struct._pthread_descr_struct = type opaque 12 %struct.pthread_attr_t = type { i32, i32, %struct.__sched_param, i32, i32, i32, i32, ptr, i32 } 13 %struct.pthread_mutex_t = type { i32, i32, ptr, i32, %llvm.dbg.anchor.type } 14 %"struct.std::_Rb_tree<ptr,std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<ptr>,std::allocator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >" = type { %"struct.std::_Rb_tree<ptr,std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<ptr>,std::allocator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >::_Rb_tree_impl<std::less<ptr>,false>" } 15 %"struct.std::_Rb_tree<ptr,std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<ptr>,std::allocator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >::_Rb_tree_impl<std::less<ptr>,false>" = type { %"struct.__gnu_cxx::hash<ptr>", %"struct.std::_Rb_tree_node_base", i32 } 16 %"struct.std::_Rb_tree_iterator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >" = type { ptr } 17 %"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr } 18 %"struct.std::pair<std::_Rb_tree_iterator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,bool>" = type { %"struct.std::_Rb_tree_iterator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >", i8 } 19 %"struct.std::pair<ptr const,ptr>" = type { ptr, ptr } 20 21@_ZL20__gthrw_pthread_oncePiPFvvE = weak alias i32 (ptr, ptr), ptr @pthread_once ; <ptr> [#uses=0] 22@_ZL27__gthrw_pthread_getspecificj = weak alias ptr (i32), ptr @pthread_getspecific ; <ptr> [#uses=0] 23@_ZL27__gthrw_pthread_setspecificjPKv = weak alias i32 (i32, ptr), ptr @pthread_setspecific ; <ptr> [#uses=0] 24@_ZL22__gthrw_pthread_createPmPK16__pthread_attr_sPFPvS3_ES3_ = weak alias i32 (ptr, ptr, ptr, ptr), ptr @pthread_create ; <ptr> [#uses=0] 25@_ZL22__gthrw_pthread_cancelm = weak alias i32 (i32), ptr @pthread_cancel ; <ptr> [#uses=0] 26@_ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = weak alias i32 (ptr), ptr @pthread_mutex_lock ; <ptr> [#uses=0] 27@_ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = weak alias i32 (ptr), ptr @pthread_mutex_trylock ; <ptr> [#uses=0] 28@_ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = weak alias i32 (ptr), ptr @pthread_mutex_unlock ; <ptr> [#uses=0] 29@_ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = weak alias i32 (ptr, ptr), ptr @pthread_mutex_init ; <ptr> [#uses=0] 30@_ZL26__gthrw_pthread_key_createPjPFvPvE = weak alias i32 (ptr, ptr), ptr @pthread_key_create ; <ptr> [#uses=0] 31@_ZL26__gthrw_pthread_key_deletej = weak alias i32 (i32), ptr @pthread_key_delete ; <ptr> [#uses=0] 32@_ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = weak alias i32 (ptr), ptr @pthread_mutexattr_init ; <ptr> [#uses=0] 33@_ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = weak alias i32 (ptr, i32), ptr @pthread_mutexattr_settype ; <ptr> [#uses=0] 34@_ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = weak alias i32 (ptr), ptr @pthread_mutexattr_destroy ; <ptr> [#uses=0] 35 36declare fastcc void @_ZNSt10_Select1stISt4pairIKPvS1_EEC1Ev() nounwind readnone 37 38define fastcc void @_ZNSt8_Rb_treeIPvSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE16_M_insert_uniqueERKS3_(ptr noalias nocapture sret(%"struct.std::pair<std::_Rb_tree_iterator<std::pair<ptr const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,bool>") %agg.result, ptr %this, ptr %__v) nounwind { 39entry: 40 br i1 false, label %bb7, label %bb 41 42bb: ; preds = %bb, %entry 43 br i1 false, label %bb5, label %bb 44 45bb5: ; preds = %bb 46 call fastcc void @_ZNSt10_Select1stISt4pairIKPvS1_EEC1Ev() nounwind 47 br i1 false, label %bb11, label %bb7 48 49bb7: ; preds = %bb5, %entry 50 br label %bb11 51 52bb11: ; preds = %bb7, %bb5 53 call fastcc void @_ZNSt10_Select1stISt4pairIKPvS1_EEC1Ev() nounwind 54 unreachable 55} 56 57define i32 @pthread_once(ptr, ptr) { 58 ret i32 0 59} 60 61define ptr @pthread_getspecific(i32) { 62 ret ptr null 63} 64 65define i32 @pthread_setspecific(i32, ptr) { 66 ret i32 0 67} 68 69define i32 @pthread_create(ptr, ptr, ptr, ptr) { 70 ret i32 0 71} 72 73define i32 @pthread_cancel(i32) { 74 ret i32 0 75} 76 77define i32 @pthread_mutex_lock(ptr) { 78 ret i32 0 79} 80 81define i32 @pthread_mutex_trylock(ptr) { 82 ret i32 0 83} 84 85define i32 @pthread_mutex_unlock(ptr) { 86 ret i32 0 87} 88 89define i32 @pthread_mutex_init(ptr, ptr) { 90 ret i32 0 91} 92 93define i32 @pthread_key_create(ptr, ptr) { 94 ret i32 0 95} 96 97define i32 @pthread_key_delete(i32) { 98 ret i32 0 99} 100 101define i32 @pthread_mutexattr_init(ptr) { 102 ret i32 0 103} 104 105define i32 @pthread_mutexattr_settype(ptr, i32) { 106 ret i32 0 107} 108 109define i32 @pthread_mutexattr_destroy(ptr) { 110 ret i32 0 111} 112