Fix PR4639, a ELF-TLS regression from some of my refactoring.
[oota-llvm.git] / test / CodeGen / X86 / scev-interchange.ll
1 ; RUN: llvm-as < %s | llc -march=x86-64
2
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
4         %struct..0__pthread_mutex_s = type { i32, i32, i32, i32, i32, i32, %struct.__pthread_list_t }
5         %"struct.DataOutBase::GmvFlags" = type { i32 }
6         %"struct.FE_DGPNonparametric<3>" = type { [1156 x i8], i32, %"struct.PolynomialSpace<1>" }
7         %"struct.FE_Q<3>" = type { %"struct.FE_DGPNonparametric<3>", %"struct.std::vector<int,std::allocator<int> >" }
8         %"struct.FiniteElementData<1>" = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
9         %struct.Line = type { [2 x i32] }
10         %"struct.PolynomialSpace<1>" = type { %"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >", i32, %"struct.std::vector<int,std::allocator<int> >", %"struct.std::vector<int,std::allocator<int> >" }
11         %"struct.Polynomials::Polynomial<double>" = type { %struct.Subscriptor, %"struct.std::vector<double,std::allocator<double> >" }
12         %struct.Subscriptor = type { i32 (...)**, i32, %"struct.std::type_info"* }
13         %"struct.TableBase<2,double>" = type { %struct.Subscriptor, double*, i32, %"struct.TableIndices<2>" }
14         %"struct.TableIndices<2>" = type { %struct.Line }
15         %struct.__pthread_list_t = type { %struct.__pthread_list_t*, %struct.__pthread_list_t* }
16         %struct.pthread_attr_t = type { i64, [48 x i8] }
17         %struct.pthread_mutex_t = type { %struct..0__pthread_mutex_s }
18         %"struct.std::_Bit_const_iterator" = type { %"struct.std::_Bit_iterator_base" }
19         %"struct.std::_Bit_iterator_base" = type { i64*, i32 }
20         %"struct.std::_Bvector_base<std::allocator<bool> >" = type { %"struct.std::_Bvector_base<std::allocator<bool> >::_Bvector_impl" }
21         %"struct.std::_Bvector_base<std::allocator<bool> >::_Bvector_impl" = type { %"struct.std::_Bit_const_iterator", %"struct.std::_Bit_const_iterator", i64* }
22         %"struct.std::_Vector_base<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >" = type { %"struct.std::_Vector_base<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >::_Vector_impl" }
23         %"struct.std::_Vector_base<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >::_Vector_impl" = type { %"struct.Polynomials::Polynomial<double>"*, %"struct.Polynomials::Polynomial<double>"*, %"struct.Polynomials::Polynomial<double>"* }
24         %"struct.std::_Vector_base<double,std::allocator<double> >" = type { %"struct.std::_Vector_base<double,std::allocator<double> >::_Vector_impl" }
25         %"struct.std::_Vector_base<double,std::allocator<double> >::_Vector_impl" = type { double*, double*, double* }
26         %"struct.std::_Vector_base<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" }
27         %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* }
28         %"struct.std::_Vector_base<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >" = type { %"struct.std::_Vector_base<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >::_Vector_impl" }
29         %"struct.std::_Vector_base<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >::_Vector_impl" = type { %"struct.std::vector<bool,std::allocator<bool> >"*, %"struct.std::vector<bool,std::allocator<bool> >"*, %"struct.std::vector<bool,std::allocator<bool> >"* }
30         %"struct.std::type_info" = type { i32 (...)**, i8* }
31         %"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >" = type { %"struct.std::_Vector_base<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >" }
32         %"struct.std::vector<bool,std::allocator<bool> >" = type { %"struct.std::_Bvector_base<std::allocator<bool> >" }
33         %"struct.std::vector<double,std::allocator<double> >" = type { %"struct.std::_Vector_base<double,std::allocator<double> >" }
34         %"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" }
35         %"struct.std::vector<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >" = type { %"struct.std::_Vector_base<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >" }
36
37 @_ZL20__gthrw_pthread_oncePiPFvvE = alias weak i32 (i32*, void ()*)* @pthread_once              ; <i32 (i32*, void ()*)*> [#uses=0]
38 @_ZL27__gthrw_pthread_getspecificj = alias weak i8* (i32)* @pthread_getspecific         ; <i8* (i32)*> [#uses=0]
39 @_ZL27__gthrw_pthread_setspecificjPKv = alias weak i32 (i32, i8*)* @pthread_setspecific         ; <i32 (i32, i8*)*> [#uses=0]
40 @_ZL22__gthrw_pthread_createPmPK14pthread_attr_tPFPvS3_ES3_ = alias weak i32 (i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)* @pthread_create          ; <i32 (i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)*> [#uses=0]
41 @_ZL22__gthrw_pthread_cancelm = alias weak i32 (i64)* @pthread_cancel           ; <i32 (i64)*> [#uses=0]
42 @_ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_lock             ; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
43 @_ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_trylock               ; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
44 @_ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_unlock         ; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
45 @_ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = alias weak i32 (%struct.pthread_mutex_t*, %"struct.DataOutBase::GmvFlags"*)* @pthread_mutex_init            ; <i32 (%struct.pthread_mutex_t*, %"struct.DataOutBase::GmvFlags"*)*> [#uses=0]
46 @_ZL26__gthrw_pthread_key_createPjPFvPvE = alias weak i32 (i32*, void (i8*)*)* @pthread_key_create              ; <i32 (i32*, void (i8*)*)*> [#uses=0]
47 @_ZL26__gthrw_pthread_key_deletej = alias weak i32 (i32)* @pthread_key_delete           ; <i32 (i32)*> [#uses=0]
48 @_ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = alias weak i32 (%"struct.DataOutBase::GmvFlags"*)* @pthread_mutexattr_init         ; <i32 (%"struct.DataOutBase::GmvFlags"*)*> [#uses=0]
49 @_ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = alias weak i32 (%"struct.DataOutBase::GmvFlags"*, i32)* @pthread_mutexattr_settype             ; <i32 (%"struct.DataOutBase::GmvFlags"*, i32)*> [#uses=0]
50 @_ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = alias weak i32 (%"struct.DataOutBase::GmvFlags"*)* @pthread_mutexattr_destroy           ; <i32 (%"struct.DataOutBase::GmvFlags"*)*> [#uses=0]
51
52 declare void @_Unwind_Resume(i8*)
53
54 declare i8* @_Znwm(i64)
55
56 declare fastcc void @_ZNSt6vectorIjSaIjEEaSERKS1_(%"struct.std::vector<int,std::allocator<int> >"*, %"struct.std::vector<int,std::allocator<int> >"*)
57
58 declare fastcc void @_ZN9TableBaseILi2EdE6reinitERK12TableIndicesILi2EE(%"struct.TableBase<2,double>"* nocapture, i32, i32)
59
60 declare fastcc void @_ZNSt6vectorIbSaIbEEC1EmRKbRKS0_(%"struct.std::vector<bool,std::allocator<bool> >"* nocapture, i64, i8* nocapture)
61
62 declare fastcc void @_ZNSt6vectorIS_IbSaIbEESaIS1_EEC2EmRKS1_RKS2_(%"struct.std::vector<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >"* nocapture, i64, %"struct.std::vector<bool,std::allocator<bool> >"* nocapture)
63
64 declare fastcc void @_ZNSt6vectorIN11Polynomials10PolynomialIdEESaIS2_EED1Ev(%"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* nocapture)
65
66 declare fastcc void @_ZN24TensorProductPolynomialsILi3EEC2IN11Polynomials10PolynomialIdEEEERKSt6vectorIT_SaIS6_EE(%"struct.PolynomialSpace<1>"* nocapture, %"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* nocapture)
67
68 declare fastcc void @_ZN7FE_PolyI24TensorProductPolynomialsILi3EELi3EEC2EjRKS1_RK17FiniteElementDataILi3EERKSt6vectorIbSaIbEERKS9_ISB_SaISB_EE(%"struct.FE_DGPNonparametric<3>"*, i32, %"struct.PolynomialSpace<1>"* nocapture, %"struct.FiniteElementData<1>"* nocapture, %"struct.std::vector<bool,std::allocator<bool> >"* nocapture, %"struct.std::vector<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >"* nocapture)
69
70 declare fastcc void @_ZN11FE_Q_Helper12_GLOBAL__N_116invert_numberingERKSt6vectorIjSaIjEE(%"struct.std::vector<int,std::allocator<int> >"* noalias nocapture sret, %"struct.std::vector<int,std::allocator<int> >"* nocapture)
71
72 declare fastcc void @_ZN4FE_QILi3EE14get_dpo_vectorEj(%"struct.std::vector<int,std::allocator<int> >"* noalias nocapture sret, i32)
73
74 define fastcc void @_ZN4FE_QILi3EEC1Ej(%"struct.FE_Q<3>"* %this, i32 %degree) {
75 entry:
76         invoke fastcc void @_ZNSt6vectorIbSaIbEEC1EmRKbRKS0_(%"struct.std::vector<bool,std::allocator<bool> >"* undef, i64 1, i8* undef)
77                         to label %invcont.i unwind label %lpad.i
78
79 invcont.i:              ; preds = %entry
80         invoke fastcc void @_ZN4FE_QILi3EE14get_dpo_vectorEj(%"struct.std::vector<int,std::allocator<int> >"* noalias sret undef, i32 %degree)
81                         to label %invcont1.i unwind label %lpad120.i
82
83 invcont1.i:             ; preds = %invcont.i
84         invoke fastcc void @_ZNSt6vectorIS_IbSaIbEESaIS1_EEC2EmRKS1_RKS2_(%"struct.std::vector<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >"* undef, i64 undef, %"struct.std::vector<bool,std::allocator<bool> >"* undef)
85                         to label %invcont3.i unwind label %lpad124.i
86
87 invcont3.i:             ; preds = %invcont1.i
88         invoke fastcc void @_ZN4FE_QILi3EE14get_dpo_vectorEj(%"struct.std::vector<int,std::allocator<int> >"* noalias sret undef, i32 %degree)
89                         to label %invcont4.i unwind label %lpad128.i
90
91 invcont4.i:             ; preds = %invcont3.i
92         invoke fastcc void @_ZNSt6vectorIbSaIbEEC1EmRKbRKS0_(%"struct.std::vector<bool,std::allocator<bool> >"* undef, i64 undef, i8* undef)
93                         to label %invcont6.i unwind label %lpad132.i
94
95 invcont6.i:             ; preds = %invcont4.i
96         invoke fastcc void @_ZN4FE_QILi3EE14get_dpo_vectorEj(%"struct.std::vector<int,std::allocator<int> >"* noalias sret undef, i32 %degree)
97                         to label %invcont7.i unwind label %lpad136.i
98
99 invcont7.i:             ; preds = %invcont6.i
100         invoke fastcc void @_ZN11Polynomials19LagrangeEquidistant23generate_complete_basisEj(%"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* noalias sret undef, i32 %degree)
101                         to label %invcont9.i unwind label %lpad140.i
102
103 invcont9.i:             ; preds = %invcont7.i
104         invoke fastcc void @_ZN24TensorProductPolynomialsILi3EEC2IN11Polynomials10PolynomialIdEEEERKSt6vectorIT_SaIS6_EE(%"struct.PolynomialSpace<1>"* undef, %"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* undef)
105                         to label %invcont10.i unwind label %lpad144.i
106
107 invcont10.i:            ; preds = %invcont9.i
108         invoke fastcc void @_ZN7FE_PolyI24TensorProductPolynomialsILi3EELi3EEC2EjRKS1_RK17FiniteElementDataILi3EERKSt6vectorIbSaIbEERKS9_ISB_SaISB_EE(%"struct.FE_DGPNonparametric<3>"* undef, i32 %degree, %"struct.PolynomialSpace<1>"* undef, %"struct.FiniteElementData<1>"* undef, %"struct.std::vector<bool,std::allocator<bool> >"* undef, %"struct.std::vector<std::vector<bool, std::allocator<bool> >,std::allocator<std::vector<bool, std::allocator<bool> > > >"* undef)
109                         to label %bb14.i unwind label %lpad148.i
110
111 bb14.i:         ; preds = %invcont10.i
112         br i1 false, label %bb3.i164.i, label %bb.i.i.i.i160.i
113
114 bb.i.i.i.i160.i:                ; preds = %bb14.i
115         unreachable
116
117 bb3.i164.i:             ; preds = %bb14.i
118         br i1 undef, label %bb10.i168.i, label %bb.i.i.i20.i166.i
119
120 bb.i.i.i20.i166.i:              ; preds = %bb3.i164.i
121         unreachable
122
123 bb10.i168.i:            ; preds = %bb3.i164.i
124         invoke fastcc void @_ZNSt6vectorIN11Polynomials10PolynomialIdEESaIS2_EED1Ev(%"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* undef)
125                         to label %bb21.i unwind label %lpad144.i
126
127 bb21.i:         ; preds = %bb10.i168.i
128         invoke fastcc void @_ZNSt6vectorIN11Polynomials10PolynomialIdEESaIS2_EED1Ev(%"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* undef)
129                         to label %bb28.i unwind label %lpad140.i
130
131 bb28.i:         ; preds = %bb21.i
132         br i1 undef, label %bb35.i, label %bb.i.i.i175.i
133
134 bb.i.i.i175.i:          ; preds = %bb28.i
135         br label %bb35.i
136
137 bb35.i:         ; preds = %bb.i.i.i175.i, %bb28.i
138         br i1 undef, label %bb42.i, label %bb.i.i.i205.i
139
140 bb.i.i.i205.i:          ; preds = %bb35.i
141         unreachable
142
143 bb42.i:         ; preds = %bb35.i
144         br i1 undef, label %bb47.i, label %bb.i.i.i213.i
145
146 bb.i.i.i213.i:          ; preds = %bb42.i
147         unreachable
148
149 bb47.i:         ; preds = %bb42.i
150         br i1 undef, label %bb59.i, label %bb.i.i.i247.i
151
152 bb.i.i.i247.i:          ; preds = %bb47.i
153         unreachable
154
155 bb59.i:         ; preds = %bb47.i
156         br i1 undef, label %bb66.i, label %bb.i.i.i255.i
157
158 bb.i.i.i255.i:          ; preds = %bb59.i
159         unreachable
160
161 bb66.i:         ; preds = %bb59.i
162         br i1 undef, label %bb71.i, label %bb.i.i.i262.i
163
164 bb.i.i.i262.i:          ; preds = %bb66.i
165         br label %bb71.i
166
167 bb71.i:         ; preds = %bb.i.i.i262.i, %bb66.i
168         %tmp11.i.i29.i.i.i.i.i.i = invoke i8* @_Znwm(i64 12)
169                         to label %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i.i unwind label %lpad.i.i.i.i.i.i            ; <i8*> [#uses=0]
170
171 lpad.i.i.i.i.i.i:               ; preds = %bb71.i
172         unreachable
173
174 _ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i.i:            ; preds = %bb71.i
175         br i1 undef, label %_ZNSt6vectorIjSaIjEED1Ev.exit.i.i, label %bb.i.i.i.i94.i
176
177 bb.i.i.i.i94.i:         ; preds = %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i.i
178         unreachable
179
180 _ZNSt6vectorIjSaIjEED1Ev.exit.i.i:              ; preds = %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i.i
181         %tmp11.i.i29.i.i.i.i5.i.i = invoke i8* @_Znwm(i64 undef)
182                         to label %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i12.i.i unwind label %lpad.i.i.i.i8.i.i         ; <i8*> [#uses=0]
183
184 lpad.i.i.i.i8.i.i:              ; preds = %_ZNSt6vectorIjSaIjEED1Ev.exit.i.i
185         invoke void @_Unwind_Resume(i8* undef)
186                         to label %.noexc.i9.i.i unwind label %lpad.i19.i.i
187
188 .noexc.i9.i.i:          ; preds = %lpad.i.i.i.i8.i.i
189         unreachable
190
191 _ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i12.i.i:          ; preds = %_ZNSt6vectorIjSaIjEED1Ev.exit.i.i
192         br i1 undef, label %bb50.i.i.i, label %bb.i.i.i.i.i.i.i.i.i.i
193
194 bb.i.i.i.i.i.i.i.i.i.i:         ; preds = %bb.i.i.i.i.i.i.i.i.i.i, %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i12.i.i
195         br i1 undef, label %bb50.i.i.i, label %bb.i.i.i.i.i.i.i.i.i.i
196
197 bb50.i.i.i:             ; preds = %bb.i.i.i.i.i.i.i.i.i.i, %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i12.i.i
198         invoke fastcc void @_ZN11FE_Q_Helper12_GLOBAL__N_116invert_numberingERKSt6vectorIjSaIjEE(%"struct.std::vector<int,std::allocator<int> >"* noalias sret undef, %"struct.std::vector<int,std::allocator<int> >"* undef)
199                         to label %bb83.i unwind label %lpad188.i
200
201 lpad.i19.i.i:           ; preds = %lpad.i.i.i.i8.i.i
202         unreachable
203
204 bb83.i:         ; preds = %bb50.i.i.i
205         br i1 undef, label %invcont84.i, label %bb.i.i.i221.i
206
207 bb.i.i.i221.i:          ; preds = %bb83.i
208         unreachable
209
210 invcont84.i:            ; preds = %bb83.i
211         %tmp11.i.i29.i.i.i.i.i = invoke i8* @_Znwm(i64 undef)
212                         to label %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i unwind label %lpad.i.i.i.i315.i             ; <i8*> [#uses=0]
213
214 lpad.i.i.i.i315.i:              ; preds = %invcont84.i
215         invoke void @_Unwind_Resume(i8* undef)
216                         to label %.noexc.i316.i unwind label %lpad.i352.i
217
218 .noexc.i316.i:          ; preds = %lpad.i.i.i.i315.i
219         unreachable
220
221 _ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i:              ; preds = %invcont84.i
222         br i1 undef, label %bb50.i.i, label %bb.i.i.i.i.i.i.i.i320.i
223
224 bb.i.i.i.i.i.i.i.i320.i:                ; preds = %bb.i.i.i.i.i.i.i.i320.i, %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i
225         br i1 undef, label %bb50.i.i, label %bb.i.i.i.i.i.i.i.i320.i
226
227 bb50.i.i:               ; preds = %bb.i.i.i.i.i.i.i.i320.i, %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i
228         invoke fastcc void @_ZN11FE_Q_Helper12_GLOBAL__N_116invert_numberingERKSt6vectorIjSaIjEE(%"struct.std::vector<int,std::allocator<int> >"* noalias sret undef, %"struct.std::vector<int,std::allocator<int> >"* undef)
229                         to label %invcont86.i unwind label %lpad200.i
230
231 lpad.i352.i:            ; preds = %lpad.i.i.i.i315.i
232         unreachable
233
234 invcont86.i:            ; preds = %bb50.i.i
235         invoke fastcc void @_ZNSt6vectorIjSaIjEEaSERKS1_(%"struct.std::vector<int,std::allocator<int> >"* undef, %"struct.std::vector<int,std::allocator<int> >"* undef)
236                         to label %.noexc380.i unwind label %lpad204.i
237
238 .noexc380.i:            ; preds = %invcont86.i
239         br i1 undef, label %bb100.i, label %bb.i.i.i198.i
240
241 bb.i.i.i198.i:          ; preds = %.noexc380.i
242         unreachable
243
244 bb100.i:                ; preds = %.noexc380.i
245         br i1 undef, label %invcont101.i, label %bb.i.i.i190.i
246
247 bb.i.i.i190.i:          ; preds = %bb100.i
248         unreachable
249
250 invcont101.i:           ; preds = %bb100.i
251         invoke fastcc void @_ZN9TableBaseILi2EdE6reinitERK12TableIndicesILi2EE(%"struct.TableBase<2,double>"* undef, i32 undef, i32 undef)
252                         to label %_ZN10FullMatrixIdEC1Ejj.exit.i.i unwind label %lpad.i.i.i.i.i
253
254 lpad.i.i.i.i.i:         ; preds = %invcont101.i
255         unreachable
256
257 _ZN10FullMatrixIdEC1Ejj.exit.i.i:               ; preds = %invcont101.i
258         invoke fastcc void @_ZN9TableBaseILi2EdE6reinitERK12TableIndicesILi2EE(%"struct.TableBase<2,double>"* undef, i32 undef, i32 undef)
259                         to label %_ZN10FullMatrixIdEC1Ejj.exit28.i.i unwind label %lpad.i.i.i27.i.i
260
261 lpad.i.i.i27.i.i:               ; preds = %_ZN10FullMatrixIdEC1Ejj.exit.i.i
262         invoke void @_Unwind_Resume(i8* undef)
263                         to label %.noexc.i.i unwind label %lpad.i.i
264
265 .noexc.i.i:             ; preds = %lpad.i.i.i27.i.i
266         unreachable
267
268 _ZN10FullMatrixIdEC1Ejj.exit28.i.i:             ; preds = %_ZN10FullMatrixIdEC1Ejj.exit.i.i
269         br i1 undef, label %bb58.i.i, label %bb.i.i.i304.i.i
270
271 bb.i.i.i304.i.i:                ; preds = %_ZN10FullMatrixIdEC1Ejj.exit28.i.i
272         unreachable
273
274 bb58.i.i:               ; preds = %_ZN10FullMatrixIdEC1Ejj.exit28.i.i
275         br i1 false, label %bb.i191.i, label %bb.i.i.i297.i.i
276
277 bb.i.i.i297.i.i:                ; preds = %bb58.i.i
278         unreachable
279
280 lpad.i.i:               ; preds = %lpad.i.i.i27.i.i
281         unreachable
282
283 bb.i191.i:              ; preds = %.noexc232.i, %bb58.i.i
284         invoke fastcc void @_ZN9TableBaseILi2EdE6reinitERK12TableIndicesILi2EE(%"struct.TableBase<2,double>"* undef, i32 undef, i32 undef)
285                         to label %.noexc232.i unwind label %lpad196.i
286
287 .noexc232.i:            ; preds = %bb.i191.i
288         br i1 undef, label %bb29.loopexit.i.i, label %bb.i191.i
289
290 bb7.i215.i:             ; preds = %bb9.i216.i
291         br i1 undef, label %bb16.preheader.i.i, label %bb8.i.i
292
293 bb8.i.i:                ; preds = %bb7.i215.i
294         %tmp60.i.i = add i32 %0, 1              ; <i32> [#uses=1]
295         br label %bb9.i216.i
296
297 bb9.i216.i:             ; preds = %bb29.loopexit.i.i, %bb8.i.i
298         %0 = phi i32 [ 0, %bb29.loopexit.i.i ], [ %tmp60.i.i, %bb8.i.i ]                ; <i32> [#uses=2]
299         br i1 undef, label %bb7.i215.i, label %bb16.preheader.i.i
300
301 bb15.i.i:               ; preds = %bb16.preheader.i.i, %bb15.i.i
302         %j1.0212.i.i = phi i32 [ %1, %bb15.i.i ], [ 0, %bb16.preheader.i.i ]            ; <i32> [#uses=2]
303         %tmp6.i.i195.i.i = load i32* undef, align 4             ; <i32> [#uses=1]
304         %tmp231.i.i = mul i32 %0, %tmp6.i.i195.i.i              ; <i32> [#uses=1]
305         %tmp13.i197.i.i = add i32 %j1.0212.i.i, %tmp231.i.i             ; <i32> [#uses=0]
306         %1 = add i32 %j1.0212.i.i, 1            ; <i32> [#uses=1]
307         br i1 undef, label %bb15.i.i, label %bb17.i.i
308
309 bb17.i.i:               ; preds = %bb16.preheader.i.i, %bb15.i.i
310         br label %bb16.preheader.i.i
311
312 bb16.preheader.i.i:             ; preds = %bb17.i.i, %bb9.i216.i, %bb7.i215.i
313         br i1 undef, label %bb17.i.i, label %bb15.i.i
314
315 bb29.loopexit.i.i:              ; preds = %.noexc232.i
316         br label %bb9.i216.i
317
318 lpad.i:         ; preds = %entry
319         unreachable
320
321 lpad120.i:              ; preds = %invcont.i
322         unreachable
323
324 lpad124.i:              ; preds = %invcont1.i
325         unreachable
326
327 lpad128.i:              ; preds = %invcont3.i
328         unreachable
329
330 lpad132.i:              ; preds = %invcont4.i
331         unreachable
332
333 lpad136.i:              ; preds = %invcont6.i
334         unreachable
335
336 lpad140.i:              ; preds = %bb21.i, %invcont7.i
337         unreachable
338
339 lpad144.i:              ; preds = %bb10.i168.i, %invcont9.i
340         unreachable
341
342 lpad148.i:              ; preds = %invcont10.i
343         unreachable
344
345 lpad188.i:              ; preds = %bb50.i.i.i
346         unreachable
347
348 lpad196.i:              ; preds = %bb.i191.i
349         unreachable
350
351 lpad200.i:              ; preds = %bb50.i.i
352         unreachable
353
354 lpad204.i:              ; preds = %invcont86.i
355         unreachable
356 }
357
358 declare fastcc void @_ZN11Polynomials19LagrangeEquidistant23generate_complete_basisEj(%"struct.std::vector<Polynomials::Polynomial<double>,std::allocator<Polynomials::Polynomial<double> > >"* noalias nocapture sret, i32)
359
360 declare i32 @pthread_once(i32*, void ()*)
361
362 declare i8* @pthread_getspecific(i32)
363
364 declare i32 @pthread_setspecific(i32, i8*)
365
366 declare i32 @pthread_create(i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)
367
368 declare i32 @pthread_cancel(i64)
369
370 declare i32 @pthread_mutex_lock(%struct.pthread_mutex_t*)
371
372 declare i32 @pthread_mutex_trylock(%struct.pthread_mutex_t*)
373
374 declare i32 @pthread_mutex_unlock(%struct.pthread_mutex_t*)
375
376 declare i32 @pthread_mutex_init(%struct.pthread_mutex_t*, %"struct.DataOutBase::GmvFlags"*)
377
378 declare i32 @pthread_key_create(i32*, void (i8*)*)
379
380 declare i32 @pthread_key_delete(i32)
381
382 declare i32 @pthread_mutexattr_init(%"struct.DataOutBase::GmvFlags"*)
383
384 declare i32 @pthread_mutexattr_settype(%"struct.DataOutBase::GmvFlags"*, i32)
385
386 declare i32 @pthread_mutexattr_destroy(%"struct.DataOutBase::GmvFlags"*)