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