[X86] X86DAGToDAGISel - attempt to merge XMM/YMM loads with YMM/ZMM loads of the...
[llvm-project.git] / llvm / test / CodeGen / Thumb2 / constant-islands.ll
blob0fab3d04fa43e7268207934ed9ba02a9a1b379dc
1 ; RUN: llc < %s -mtriple=arm-apple-ios   -mcpu=cortex-a8 -O0 -filetype=obj -verify-machine-dom-info -o %t.o
2 ; RUN: llc < %s -mtriple=thumb-apple-ios -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
3 ; RUN: llc < %s -mtriple=arm-apple-ios   -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
4 ; RUN: llc < %s -mtriple=thumb-apple-ios -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
5 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
7 ; This function comes from the Bullet test.  It is quite big, and exercises the
8 ; constant island pass a bit.  It has caused failures, including
9 ; <rdar://problem/10670199>
11 ; It is unlikely that this code will continue to create the exact conditions
12 ; that broke the arm constant island pass in the past, but it is still useful to
13 ; force the pass to split basic blocks etc.
15 ; The run lines above force the integrated assembler to be enabled so it can
16 ; catch any illegal displacements.  Other than that, we depend on the constant
17 ; island pass assertions.
19 %class.btVector3 = type { [4 x float] }
20 %class.btTransform = type { %class.btMatrix3x3, %class.btVector3 }
21 %class.btMatrix3x3 = type { [3 x %class.btVector3] }
22 %class.btCapsuleShape = type { %class.btConvexInternalShape, i32 }
23 %class.btConvexInternalShape = type { %class.btConvexShape, %class.btVector3, %class.btVector3, float, float }
24 %class.btConvexShape = type { %class.btCollisionShape }
25 %class.btCollisionShape = type { ptr, i32, ptr }
26 %class.RagDoll = type { ptr, ptr, [11 x ptr], [11 x ptr], [10 x ptr] }
27 %class.btDynamicsWorld = type { %class.btCollisionWorld, ptr, ptr, ptr, %struct.btContactSolverInfo }
28 %class.btCollisionWorld = type { ptr, %class.btAlignedObjectArray, ptr, %struct.btDispatcherInfo, ptr, ptr, ptr, i8 }
29 %class.btAlignedObjectArray = type { %class.btAlignedAllocator, i32, i32, ptr, i8 }
30 %class.btAlignedAllocator = type { i8 }
31 %class.btCollisionObject = type { ptr, %class.btTransform, %class.btTransform, %class.btVector3, %class.btVector3, %class.btVector3, i8, float, ptr, ptr, ptr, i32, i32, i32, i32, float, float, float, ptr, i32, float, float, float, i8, [7 x i8] }
32 %struct.btBroadphaseProxy = type { ptr, i16, i16, ptr, i32, %class.btVector3, %class.btVector3 }
33 %class.btDispatcher = type { ptr }
34 %struct.btDispatcherInfo = type { float, i32, i32, float, i8, ptr, i8, i8, i8, float, i8, float, ptr }
35 %class.btIDebugDraw = type { ptr }
36 %class.btStackAlloc = type opaque
37 %class.btBroadphaseInterface = type { ptr }
38 %struct.btContactSolverInfo = type { %struct.btContactSolverInfoData }
39 %struct.btContactSolverInfoData = type { float, float, float, float, float, i32, float, float, float, float, float, i32, float, float, float, i32, i32 }
40 %class.btRigidBody = type { %class.btCollisionObject, %class.btMatrix3x3, %class.btVector3, %class.btVector3, float, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, float, float, i8, float, float, float, float, float, float, ptr, %class.btAlignedObjectArray.22, i32, i32, i32 }
41 %class.btMotionState = type { ptr }
42 %class.btAlignedObjectArray.22 = type { %class.btAlignedAllocator.23, i32, i32, ptr, i8 }
43 %class.btAlignedAllocator.23 = type { i8 }
44 %class.btTypedConstraint = type { ptr, %struct.btTypedObject, i32, i32, i8, ptr, ptr, float, float, %class.btVector3, %class.btVector3, %class.btVector3 }
45 %struct.btTypedObject = type { i32 }
46 %class.btHingeConstraint = type { %class.btTypedConstraint, [3 x %class.btJacobianEntry], [3 x %class.btJacobianEntry], %class.btTransform, %class.btTransform, float, float, float, float, float, float, float, float, float, float, float, float, float, i8, i8, i8, i8, i8, float }
47 %class.btJacobianEntry = type { %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, float }
48 %class.btConeTwistConstraint = type { %class.btTypedConstraint, [3 x %class.btJacobianEntry], %class.btTransform, %class.btTransform, float, float, float, float, float, float, float, float, %class.btVector3, %class.btVector3, float, float, float, float, float, float, float, float, i8, i8, i8, i8, float, float, %class.btVector3, i8, i8, %class.btQuaternion, float, %class.btVector3 }
49 %class.btQuaternion = type { %class.btQuadWord }
50 %class.btQuadWord = type { [4 x float] }
52 @_ZTV7RagDoll = external unnamed_addr constant [4 x ptr]
54 declare noalias ptr @_Znwm(i32)
56 declare i32 @__gxx_personality_sj0(...)
58 declare void @_ZdlPv(ptr) nounwind
60 declare ptr @_ZN9btVector3C1ERKfS1_S1_(ptr, ptr, ptr, ptr) unnamed_addr inlinehint ssp align 2
62 declare void @_ZSt9terminatev()
64 declare ptr @_ZN11btTransformC1Ev(ptr) unnamed_addr ssp align 2
66 declare void @_ZN11btTransform11setIdentityEv(ptr) ssp align 2
68 declare void @_ZN11btTransform9setOriginERK9btVector3(ptr, ptr) nounwind inlinehint ssp align 2
70 declare ptr @_ZN13btConvexShapenwEm(i32) inlinehint ssp align 2
72 declare void @_ZN13btConvexShapedlEPv(ptr) inlinehint ssp align 2
74 declare ptr @_ZN14btCapsuleShapeC1Eff(ptr, float, float)
76 declare ptr @_ZN11btTransform8getBasisEv(ptr) nounwind inlinehint ssp align 2
78 define ptr @_ZN7RagDollC2EP15btDynamicsWorldRK9btVector3f(ptr %this, ptr %ownerWorld, ptr %positionOffset, float %scale) unnamed_addr ssp align 2 personality ptr @__gxx_personality_sj0 {
79 entry:
80   %retval = alloca ptr, align 4
81   %this.addr = alloca ptr, align 4
82   %ownerWorld.addr = alloca ptr, align 4
83   %positionOffset.addr = alloca ptr, align 4
84   %scale.addr = alloca float, align 4
85   %exn.slot = alloca ptr
86   %ehselector.slot = alloca i32
87   %offset = alloca %class.btTransform, align 4
88   %transform = alloca %class.btTransform, align 4
89   %ref.tmp = alloca %class.btVector3, align 4
90   %ref.tmp97 = alloca %class.btVector3, align 4
91   %ref.tmp98 = alloca float, align 4
92   %ref.tmp99 = alloca float, align 4
93   %ref.tmp100 = alloca float, align 4
94   %ref.tmp102 = alloca %class.btTransform, align 4
95   %ref.tmp107 = alloca %class.btVector3, align 4
96   %ref.tmp108 = alloca %class.btVector3, align 4
97   %ref.tmp109 = alloca float, align 4
98   %ref.tmp110 = alloca float, align 4
99   %ref.tmp111 = alloca float, align 4
100   %ref.tmp113 = alloca %class.btTransform, align 4
101   %ref.tmp119 = alloca %class.btVector3, align 4
102   %ref.tmp120 = alloca %class.btVector3, align 4
103   %ref.tmp121 = alloca float, align 4
104   %ref.tmp122 = alloca float, align 4
105   %ref.tmp123 = alloca float, align 4
106   %ref.tmp125 = alloca %class.btTransform, align 4
107   %ref.tmp131 = alloca %class.btVector3, align 4
108   %ref.tmp132 = alloca %class.btVector3, align 4
109   %ref.tmp133 = alloca float, align 4
110   %ref.tmp134 = alloca float, align 4
111   %ref.tmp135 = alloca float, align 4
112   %ref.tmp137 = alloca %class.btTransform, align 4
113   %ref.tmp143 = alloca %class.btVector3, align 4
114   %ref.tmp144 = alloca %class.btVector3, align 4
115   %ref.tmp145 = alloca float, align 4
116   %ref.tmp146 = alloca float, align 4
117   %ref.tmp147 = alloca float, align 4
118   %ref.tmp149 = alloca %class.btTransform, align 4
119   %ref.tmp155 = alloca %class.btVector3, align 4
120   %ref.tmp156 = alloca %class.btVector3, align 4
121   %ref.tmp157 = alloca float, align 4
122   %ref.tmp158 = alloca float, align 4
123   %ref.tmp159 = alloca float, align 4
124   %ref.tmp161 = alloca %class.btTransform, align 4
125   %ref.tmp167 = alloca %class.btVector3, align 4
126   %ref.tmp168 = alloca %class.btVector3, align 4
127   %ref.tmp169 = alloca float, align 4
128   %ref.tmp170 = alloca float, align 4
129   %ref.tmp171 = alloca float, align 4
130   %ref.tmp173 = alloca %class.btTransform, align 4
131   %ref.tmp179 = alloca %class.btVector3, align 4
132   %ref.tmp180 = alloca %class.btVector3, align 4
133   %ref.tmp181 = alloca float, align 4
134   %ref.tmp182 = alloca float, align 4
135   %ref.tmp183 = alloca float, align 4
136   %ref.tmp186 = alloca %class.btTransform, align 4
137   %ref.tmp192 = alloca %class.btVector3, align 4
138   %ref.tmp193 = alloca %class.btVector3, align 4
139   %ref.tmp194 = alloca float, align 4
140   %ref.tmp195 = alloca float, align 4
141   %ref.tmp196 = alloca float, align 4
142   %ref.tmp199 = alloca %class.btTransform, align 4
143   %ref.tmp205 = alloca %class.btVector3, align 4
144   %ref.tmp206 = alloca %class.btVector3, align 4
145   %ref.tmp207 = alloca float, align 4
146   %ref.tmp208 = alloca float, align 4
147   %ref.tmp209 = alloca float, align 4
148   %ref.tmp212 = alloca %class.btTransform, align 4
149   %ref.tmp218 = alloca %class.btVector3, align 4
150   %ref.tmp219 = alloca %class.btVector3, align 4
151   %ref.tmp220 = alloca float, align 4
152   %ref.tmp221 = alloca float, align 4
153   %ref.tmp222 = alloca float, align 4
154   %ref.tmp225 = alloca %class.btTransform, align 4
155   %i = alloca i32, align 4
156   %hingeC = alloca ptr, align 4
157   %coneC = alloca ptr, align 4
158   %localA = alloca %class.btTransform, align 4
159   %localB = alloca %class.btTransform, align 4
160   %ref.tmp240 = alloca %class.btVector3, align 4
161   %ref.tmp241 = alloca %class.btVector3, align 4
162   %ref.tmp242 = alloca float, align 4
163   %ref.tmp243 = alloca float, align 4
164   %ref.tmp244 = alloca float, align 4
165   %ref.tmp247 = alloca %class.btVector3, align 4
166   %ref.tmp248 = alloca %class.btVector3, align 4
167   %ref.tmp249 = alloca float, align 4
168   %ref.tmp250 = alloca float, align 4
169   %ref.tmp251 = alloca float, align 4
170   %ref.tmp266 = alloca %class.btVector3, align 4
171   %ref.tmp267 = alloca %class.btVector3, align 4
172   %ref.tmp268 = alloca float, align 4
173   %ref.tmp269 = alloca float, align 4
174   %ref.tmp270 = alloca float, align 4
175   %ref.tmp273 = alloca %class.btVector3, align 4
176   %ref.tmp274 = alloca %class.btVector3, align 4
177   %ref.tmp275 = alloca float, align 4
178   %ref.tmp276 = alloca float, align 4
179   %ref.tmp277 = alloca float, align 4
180   %ref.tmp295 = alloca %class.btVector3, align 4
181   %ref.tmp296 = alloca %class.btVector3, align 4
182   %ref.tmp297 = alloca float, align 4
183   %ref.tmp298 = alloca float, align 4
184   %ref.tmp299 = alloca float, align 4
185   %ref.tmp302 = alloca %class.btVector3, align 4
186   %ref.tmp303 = alloca %class.btVector3, align 4
187   %ref.tmp304 = alloca float, align 4
188   %ref.tmp305 = alloca float, align 4
189   %ref.tmp306 = alloca float, align 4
190   %ref.tmp324 = alloca %class.btVector3, align 4
191   %ref.tmp325 = alloca %class.btVector3, align 4
192   %ref.tmp326 = alloca float, align 4
193   %ref.tmp327 = alloca float, align 4
194   %ref.tmp328 = alloca float, align 4
195   %ref.tmp331 = alloca %class.btVector3, align 4
196   %ref.tmp332 = alloca %class.btVector3, align 4
197   %ref.tmp333 = alloca float, align 4
198   %ref.tmp334 = alloca float, align 4
199   %ref.tmp335 = alloca float, align 4
200   %ref.tmp353 = alloca %class.btVector3, align 4
201   %ref.tmp354 = alloca %class.btVector3, align 4
202   %ref.tmp355 = alloca float, align 4
203   %ref.tmp356 = alloca float, align 4
204   %ref.tmp357 = alloca float, align 4
205   %ref.tmp360 = alloca %class.btVector3, align 4
206   %ref.tmp361 = alloca %class.btVector3, align 4
207   %ref.tmp362 = alloca float, align 4
208   %ref.tmp363 = alloca float, align 4
209   %ref.tmp364 = alloca float, align 4
210   %ref.tmp382 = alloca %class.btVector3, align 4
211   %ref.tmp383 = alloca %class.btVector3, align 4
212   %ref.tmp384 = alloca float, align 4
213   %ref.tmp385 = alloca float, align 4
214   %ref.tmp386 = alloca float, align 4
215   %ref.tmp389 = alloca %class.btVector3, align 4
216   %ref.tmp390 = alloca %class.btVector3, align 4
217   %ref.tmp391 = alloca float, align 4
218   %ref.tmp392 = alloca float, align 4
219   %ref.tmp393 = alloca float, align 4
220   %ref.tmp411 = alloca %class.btVector3, align 4
221   %ref.tmp412 = alloca %class.btVector3, align 4
222   %ref.tmp413 = alloca float, align 4
223   %ref.tmp414 = alloca float, align 4
224   %ref.tmp415 = alloca float, align 4
225   %ref.tmp418 = alloca %class.btVector3, align 4
226   %ref.tmp419 = alloca %class.btVector3, align 4
227   %ref.tmp420 = alloca float, align 4
228   %ref.tmp421 = alloca float, align 4
229   %ref.tmp422 = alloca float, align 4
230   %ref.tmp440 = alloca %class.btVector3, align 4
231   %ref.tmp441 = alloca %class.btVector3, align 4
232   %ref.tmp442 = alloca float, align 4
233   %ref.tmp443 = alloca float, align 4
234   %ref.tmp444 = alloca float, align 4
235   %ref.tmp447 = alloca %class.btVector3, align 4
236   %ref.tmp448 = alloca %class.btVector3, align 4
237   %ref.tmp449 = alloca float, align 4
238   %ref.tmp450 = alloca float, align 4
239   %ref.tmp451 = alloca float, align 4
240   %ref.tmp469 = alloca %class.btVector3, align 4
241   %ref.tmp470 = alloca %class.btVector3, align 4
242   %ref.tmp471 = alloca float, align 4
243   %ref.tmp472 = alloca float, align 4
244   %ref.tmp473 = alloca float, align 4
245   %ref.tmp476 = alloca %class.btVector3, align 4
246   %ref.tmp477 = alloca %class.btVector3, align 4
247   %ref.tmp478 = alloca float, align 4
248   %ref.tmp479 = alloca float, align 4
249   %ref.tmp480 = alloca float, align 4
250   %ref.tmp498 = alloca %class.btVector3, align 4
251   %ref.tmp499 = alloca %class.btVector3, align 4
252   %ref.tmp500 = alloca float, align 4
253   %ref.tmp501 = alloca float, align 4
254   %ref.tmp502 = alloca float, align 4
255   %ref.tmp505 = alloca %class.btVector3, align 4
256   %ref.tmp506 = alloca %class.btVector3, align 4
257   %ref.tmp507 = alloca float, align 4
258   %ref.tmp508 = alloca float, align 4
259   %ref.tmp509 = alloca float, align 4
260   store ptr %this, ptr %this.addr, align 4
261   store ptr %ownerWorld, ptr %ownerWorld.addr, align 4
262   store ptr %positionOffset, ptr %positionOffset.addr, align 4
263   store float %scale, ptr %scale.addr, align 4
264   %this1 = load ptr, ptr %this.addr
265   store ptr %this1, ptr %retval
266   store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV7RagDoll, i64 0, i64 2), ptr %this1
267   %m_ownerWorld = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
268   %0 = load ptr, ptr %ownerWorld.addr, align 4
269   store ptr %0, ptr %m_ownerWorld, align 4
270   %call = call ptr @_ZN13btConvexShapenwEm(i32 56)
271   %1 = load float, ptr %scale.addr, align 4
272   %mul = fmul float 0x3FC3333340000000, %1
273   %2 = load float, ptr %scale.addr, align 4
274   %mul2 = fmul float 0x3FC99999A0000000, %2
275   %call3 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call, float %mul, float %mul2)
276           to label %invoke.cont unwind label %lpad
278 invoke.cont:                                      ; preds = %entry
279   %m_shapes = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
280   store ptr %call, ptr %m_shapes, align 4
281   %call5 = call ptr @_ZN13btConvexShapenwEm(i32 56)
282   %3 = load float, ptr %scale.addr, align 4
283   %mul6 = fmul float 0x3FC3333340000000, %3
284   %4 = load float, ptr %scale.addr, align 4
285   %mul7 = fmul float 0x3FD1EB8520000000, %4
286   %call10 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call5, float %mul6, float %mul7)
287           to label %invoke.cont9 unwind label %lpad8
289 invoke.cont9:                                     ; preds = %invoke.cont
290   %m_shapes12 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
291   %arrayidx13 = getelementptr inbounds [11 x ptr], ptr %m_shapes12, i32 0, i32 1
292   store ptr %call5, ptr %arrayidx13, align 4
293   %call14 = call ptr @_ZN13btConvexShapenwEm(i32 56)
294   %5 = load float, ptr %scale.addr, align 4
295   %mul15 = fmul float 0x3FB99999A0000000, %5
296   %6 = load float, ptr %scale.addr, align 4
297   %mul16 = fmul float 0x3FA99999A0000000, %6
298   %call19 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call14, float %mul15, float %mul16)
299           to label %invoke.cont18 unwind label %lpad17
301 invoke.cont18:                                    ; preds = %invoke.cont9
302   %m_shapes21 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
303   %arrayidx22 = getelementptr inbounds [11 x ptr], ptr %m_shapes21, i32 0, i32 2
304   store ptr %call14, ptr %arrayidx22, align 4
305   %call23 = call ptr @_ZN13btConvexShapenwEm(i32 56)
306   %7 = load float, ptr %scale.addr, align 4
307   %mul24 = fmul float 0x3FB1EB8520000000, %7
308   %8 = load float, ptr %scale.addr, align 4
309   %mul25 = fmul float 0x3FDCCCCCC0000000, %8
310   %call28 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call23, float %mul24, float %mul25)
311           to label %invoke.cont27 unwind label %lpad26
313 invoke.cont27:                                    ; preds = %invoke.cont18
314   %m_shapes30 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
315   %arrayidx31 = getelementptr inbounds [11 x ptr], ptr %m_shapes30, i32 0, i32 3
316   store ptr %call23, ptr %arrayidx31, align 4
317   %call32 = call ptr @_ZN13btConvexShapenwEm(i32 56)
318   %9 = load float, ptr %scale.addr, align 4
319   %mul33 = fmul float 0x3FA99999A0000000, %9
320   %10 = load float, ptr %scale.addr, align 4
321   %mul34 = fmul float 0x3FD7AE1480000000, %10
322   %call37 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call32, float %mul33, float %mul34)
323           to label %invoke.cont36 unwind label %lpad35
325 invoke.cont36:                                    ; preds = %invoke.cont27
326   %m_shapes39 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
327   %arrayidx40 = getelementptr inbounds [11 x ptr], ptr %m_shapes39, i32 0, i32 4
328   store ptr %call32, ptr %arrayidx40, align 4
329   %call41 = call ptr @_ZN13btConvexShapenwEm(i32 56)
330   %11 = load float, ptr %scale.addr, align 4
331   %mul42 = fmul float 0x3FB1EB8520000000, %11
332   %12 = load float, ptr %scale.addr, align 4
333   %mul43 = fmul float 0x3FDCCCCCC0000000, %12
334   %call46 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call41, float %mul42, float %mul43)
335           to label %invoke.cont45 unwind label %lpad44
337 invoke.cont45:                                    ; preds = %invoke.cont36
338   %m_shapes48 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
339   %arrayidx49 = getelementptr inbounds [11 x ptr], ptr %m_shapes48, i32 0, i32 5
340   store ptr %call41, ptr %arrayidx49, align 4
341   %call50 = call ptr @_ZN13btConvexShapenwEm(i32 56)
342   %13 = load float, ptr %scale.addr, align 4
343   %mul51 = fmul float 0x3FA99999A0000000, %13
344   %14 = load float, ptr %scale.addr, align 4
345   %mul52 = fmul float 0x3FD7AE1480000000, %14
346   %call55 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call50, float %mul51, float %mul52)
347           to label %invoke.cont54 unwind label %lpad53
349 invoke.cont54:                                    ; preds = %invoke.cont45
350   %m_shapes57 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
351   %arrayidx58 = getelementptr inbounds [11 x ptr], ptr %m_shapes57, i32 0, i32 6
352   store ptr %call50, ptr %arrayidx58, align 4
353   %call59 = call ptr @_ZN13btConvexShapenwEm(i32 56)
354   %15 = load float, ptr %scale.addr, align 4
355   %mul60 = fmul float 0x3FA99999A0000000, %15
356   %16 = load float, ptr %scale.addr, align 4
357   %mul61 = fmul float 0x3FD51EB860000000, %16
358   %call64 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call59, float %mul60, float %mul61)
359           to label %invoke.cont63 unwind label %lpad62
361 invoke.cont63:                                    ; preds = %invoke.cont54
362   %m_shapes66 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
363   %arrayidx67 = getelementptr inbounds [11 x ptr], ptr %m_shapes66, i32 0, i32 7
364   store ptr %call59, ptr %arrayidx67, align 4
365   %call68 = call ptr @_ZN13btConvexShapenwEm(i32 56)
366   %17 = load float, ptr %scale.addr, align 4
367   %mul69 = fmul float 0x3FA47AE140000000, %17
368   %18 = load float, ptr %scale.addr, align 4
369   %mul70 = fmul float 2.500000e-01, %18
370   %call73 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call68, float %mul69, float %mul70)
371           to label %invoke.cont72 unwind label %lpad71
373 invoke.cont72:                                    ; preds = %invoke.cont63
374   %m_shapes75 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
375   %arrayidx76 = getelementptr inbounds [11 x ptr], ptr %m_shapes75, i32 0, i32 8
376   store ptr %call68, ptr %arrayidx76, align 4
377   %call77 = call ptr @_ZN13btConvexShapenwEm(i32 56)
378   %19 = load float, ptr %scale.addr, align 4
379   %mul78 = fmul float 0x3FA99999A0000000, %19
380   %20 = load float, ptr %scale.addr, align 4
381   %mul79 = fmul float 0x3FD51EB860000000, %20
382   %call82 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call77, float %mul78, float %mul79)
383           to label %invoke.cont81 unwind label %lpad80
385 invoke.cont81:                                    ; preds = %invoke.cont72
386   %m_shapes84 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
387   %arrayidx85 = getelementptr inbounds [11 x ptr], ptr %m_shapes84, i32 0, i32 9
388   store ptr %call77, ptr %arrayidx85, align 4
389   %call86 = call ptr @_ZN13btConvexShapenwEm(i32 56)
390   %21 = load float, ptr %scale.addr, align 4
391   %mul87 = fmul float 0x3FA47AE140000000, %21
392   %22 = load float, ptr %scale.addr, align 4
393   %mul88 = fmul float 2.500000e-01, %22
394   %call91 = invoke ptr @_ZN14btCapsuleShapeC1Eff(ptr %call86, float %mul87, float %mul88)
395           to label %invoke.cont90 unwind label %lpad89
397 invoke.cont90:                                    ; preds = %invoke.cont81
398   %m_shapes93 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
399   %arrayidx94 = getelementptr inbounds [11 x ptr], ptr %m_shapes93, i32 0, i32 10
400   store ptr %call86, ptr %arrayidx94, align 4
401   %call95 = call ptr @_ZN11btTransformC1Ev(ptr %offset)
402   call void @_ZN11btTransform11setIdentityEv(ptr %offset)
403   %23 = load ptr, ptr %positionOffset.addr, align 4
404   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %offset, ptr %23)
405   %call96 = call ptr @_ZN11btTransformC1Ev(ptr %transform)
406   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
407   store float 0.000000e+00, ptr %ref.tmp98, align 4
408   store float 1.000000e+00, ptr %ref.tmp99, align 4
409   store float 0.000000e+00, ptr %ref.tmp100, align 4
410   %call101 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp97, ptr %ref.tmp98, ptr %ref.tmp99, ptr %ref.tmp100)
411   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp, ptr %scale.addr, ptr %ref.tmp97)
412   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp)
413   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp102, ptr %offset, ptr %transform)
414   %m_shapes103 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
415   %24 = load ptr, ptr %m_shapes103, align 4
416   %call105 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp102, ptr %24)
417   %m_bodies = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
418   store ptr %call105, ptr %m_bodies, align 4
419   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
420   store float 0.000000e+00, ptr %ref.tmp109, align 4
421   store float 0x3FF3333340000000, ptr %ref.tmp110, align 4
422   store float 0.000000e+00, ptr %ref.tmp111, align 4
423   %call112 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp108, ptr %ref.tmp109, ptr %ref.tmp110, ptr %ref.tmp111)
424   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp107, ptr %scale.addr, ptr %ref.tmp108)
425   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp107)
426   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp113, ptr %offset, ptr %transform)
427   %m_shapes114 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
428   %arrayidx115 = getelementptr inbounds [11 x ptr], ptr %m_shapes114, i32 0, i32 1
429   %25 = load ptr, ptr %arrayidx115, align 4
430   %call116 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp113, ptr %25)
431   %m_bodies117 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
432   %arrayidx118 = getelementptr inbounds [11 x ptr], ptr %m_bodies117, i32 0, i32 1
433   store ptr %call116, ptr %arrayidx118, align 4
434   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
435   store float 0.000000e+00, ptr %ref.tmp121, align 4
436   store float 0x3FF99999A0000000, ptr %ref.tmp122, align 4
437   store float 0.000000e+00, ptr %ref.tmp123, align 4
438   %call124 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp120, ptr %ref.tmp121, ptr %ref.tmp122, ptr %ref.tmp123)
439   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp119, ptr %scale.addr, ptr %ref.tmp120)
440   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp119)
441   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp125, ptr %offset, ptr %transform)
442   %m_shapes126 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
443   %arrayidx127 = getelementptr inbounds [11 x ptr], ptr %m_shapes126, i32 0, i32 2
444   %26 = load ptr, ptr %arrayidx127, align 4
445   %call128 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp125, ptr %26)
446   %m_bodies129 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
447   %arrayidx130 = getelementptr inbounds [11 x ptr], ptr %m_bodies129, i32 0, i32 2
448   store ptr %call128, ptr %arrayidx130, align 4
449   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
450   store float 0xBFC70A3D80000000, ptr %ref.tmp133, align 4
451   store float 0x3FE4CCCCC0000000, ptr %ref.tmp134, align 4
452   store float 0.000000e+00, ptr %ref.tmp135, align 4
453   %call136 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp132, ptr %ref.tmp133, ptr %ref.tmp134, ptr %ref.tmp135)
454   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp131, ptr %scale.addr, ptr %ref.tmp132)
455   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp131)
456   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp137, ptr %offset, ptr %transform)
457   %m_shapes138 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
458   %arrayidx139 = getelementptr inbounds [11 x ptr], ptr %m_shapes138, i32 0, i32 3
459   %27 = load ptr, ptr %arrayidx139, align 4
460   %call140 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp137, ptr %27)
461   %m_bodies141 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
462   %arrayidx142 = getelementptr inbounds [11 x ptr], ptr %m_bodies141, i32 0, i32 3
463   store ptr %call140, ptr %arrayidx142, align 4
464   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
465   store float 0xBFC70A3D80000000, ptr %ref.tmp145, align 4
466   store float 0x3FC99999A0000000, ptr %ref.tmp146, align 4
467   store float 0.000000e+00, ptr %ref.tmp147, align 4
468   %call148 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp144, ptr %ref.tmp145, ptr %ref.tmp146, ptr %ref.tmp147)
469   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp143, ptr %scale.addr, ptr %ref.tmp144)
470   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp143)
471   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp149, ptr %offset, ptr %transform)
472   %m_shapes150 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
473   %arrayidx151 = getelementptr inbounds [11 x ptr], ptr %m_shapes150, i32 0, i32 4
474   %28 = load ptr, ptr %arrayidx151, align 4
475   %call152 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp149, ptr %28)
476   %m_bodies153 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
477   %arrayidx154 = getelementptr inbounds [11 x ptr], ptr %m_bodies153, i32 0, i32 4
478   store ptr %call152, ptr %arrayidx154, align 4
479   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
480   store float 0x3FC70A3D80000000, ptr %ref.tmp157, align 4
481   store float 0x3FE4CCCCC0000000, ptr %ref.tmp158, align 4
482   store float 0.000000e+00, ptr %ref.tmp159, align 4
483   %call160 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp156, ptr %ref.tmp157, ptr %ref.tmp158, ptr %ref.tmp159)
484   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp155, ptr %scale.addr, ptr %ref.tmp156)
485   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp155)
486   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp161, ptr %offset, ptr %transform)
487   %m_shapes162 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
488   %arrayidx163 = getelementptr inbounds [11 x ptr], ptr %m_shapes162, i32 0, i32 5
489   %29 = load ptr, ptr %arrayidx163, align 4
490   %call164 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp161, ptr %29)
491   %m_bodies165 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
492   %arrayidx166 = getelementptr inbounds [11 x ptr], ptr %m_bodies165, i32 0, i32 5
493   store ptr %call164, ptr %arrayidx166, align 4
494   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
495   store float 0x3FC70A3D80000000, ptr %ref.tmp169, align 4
496   store float 0x3FC99999A0000000, ptr %ref.tmp170, align 4
497   store float 0.000000e+00, ptr %ref.tmp171, align 4
498   %call172 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp168, ptr %ref.tmp169, ptr %ref.tmp170, ptr %ref.tmp171)
499   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp167, ptr %scale.addr, ptr %ref.tmp168)
500   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp167)
501   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp173, ptr %offset, ptr %transform)
502   %m_shapes174 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
503   %arrayidx175 = getelementptr inbounds [11 x ptr], ptr %m_shapes174, i32 0, i32 6
504   %30 = load ptr, ptr %arrayidx175, align 4
505   %call176 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp173, ptr %30)
506   %m_bodies177 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
507   %arrayidx178 = getelementptr inbounds [11 x ptr], ptr %m_bodies177, i32 0, i32 6
508   store ptr %call176, ptr %arrayidx178, align 4
509   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
510   store float 0xBFD6666660000000, ptr %ref.tmp181, align 4
511   store float 0x3FF7333340000000, ptr %ref.tmp182, align 4
512   store float 0.000000e+00, ptr %ref.tmp183, align 4
513   %call184 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp180, ptr %ref.tmp181, ptr %ref.tmp182, ptr %ref.tmp183)
514   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp179, ptr %scale.addr, ptr %ref.tmp180)
515   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp179)
516   %call185 = call ptr @_ZN11btTransform8getBasisEv(ptr %transform)
517   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call185, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
518   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp186, ptr %offset, ptr %transform)
519   %m_shapes187 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
520   %arrayidx188 = getelementptr inbounds [11 x ptr], ptr %m_shapes187, i32 0, i32 7
521   %31 = load ptr, ptr %arrayidx188, align 4
522   %call189 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp186, ptr %31)
523   %m_bodies190 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
524   %arrayidx191 = getelementptr inbounds [11 x ptr], ptr %m_bodies190, i32 0, i32 7
525   store ptr %call189, ptr %arrayidx191, align 4
526   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
527   store float 0xBFE6666660000000, ptr %ref.tmp194, align 4
528   store float 0x3FF7333340000000, ptr %ref.tmp195, align 4
529   store float 0.000000e+00, ptr %ref.tmp196, align 4
530   %call197 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp193, ptr %ref.tmp194, ptr %ref.tmp195, ptr %ref.tmp196)
531   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp192, ptr %scale.addr, ptr %ref.tmp193)
532   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp192)
533   %call198 = call ptr @_ZN11btTransform8getBasisEv(ptr %transform)
534   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call198, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
535   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp199, ptr %offset, ptr %transform)
536   %m_shapes200 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
537   %arrayidx201 = getelementptr inbounds [11 x ptr], ptr %m_shapes200, i32 0, i32 8
538   %32 = load ptr, ptr %arrayidx201, align 4
539   %call202 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp199, ptr %32)
540   %m_bodies203 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
541   %arrayidx204 = getelementptr inbounds [11 x ptr], ptr %m_bodies203, i32 0, i32 8
542   store ptr %call202, ptr %arrayidx204, align 4
543   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
544   store float 0x3FD6666660000000, ptr %ref.tmp207, align 4
545   store float 0x3FF7333340000000, ptr %ref.tmp208, align 4
546   store float 0.000000e+00, ptr %ref.tmp209, align 4
547   %call210 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp206, ptr %ref.tmp207, ptr %ref.tmp208, ptr %ref.tmp209)
548   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp205, ptr %scale.addr, ptr %ref.tmp206)
549   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp205)
550   %call211 = call ptr @_ZN11btTransform8getBasisEv(ptr %transform)
551   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call211, float 0.000000e+00, float 0.000000e+00, float 0xBFF921FB60000000)
552   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp212, ptr %offset, ptr %transform)
553   %m_shapes213 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
554   %arrayidx214 = getelementptr inbounds [11 x ptr], ptr %m_shapes213, i32 0, i32 9
555   %33 = load ptr, ptr %arrayidx214, align 4
556   %call215 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp212, ptr %33)
557   %m_bodies216 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
558   %arrayidx217 = getelementptr inbounds [11 x ptr], ptr %m_bodies216, i32 0, i32 9
559   store ptr %call215, ptr %arrayidx217, align 4
560   call void @_ZN11btTransform11setIdentityEv(ptr %transform)
561   store float 0x3FE6666660000000, ptr %ref.tmp220, align 4
562   store float 0x3FF7333340000000, ptr %ref.tmp221, align 4
563   store float 0.000000e+00, ptr %ref.tmp222, align 4
564   %call223 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp219, ptr %ref.tmp220, ptr %ref.tmp221, ptr %ref.tmp222)
565   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp218, ptr %scale.addr, ptr %ref.tmp219)
566   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %transform, ptr %ref.tmp218)
567   %call224 = call ptr @_ZN11btTransform8getBasisEv(ptr %transform)
568   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call224, float 0.000000e+00, float 0.000000e+00, float 0xBFF921FB60000000)
569   call void @_ZNK11btTransformmlERKS_(ptr sret(%class.btTransform) %ref.tmp225, ptr %offset, ptr %transform)
570   %m_shapes226 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 2
571   %arrayidx227 = getelementptr inbounds [11 x ptr], ptr %m_shapes226, i32 0, i32 10
572   %34 = load ptr, ptr %arrayidx227, align 4
573   %call228 = call ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr %this1, float 1.000000e+00, ptr %ref.tmp225, ptr %34)
574   %m_bodies229 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
575   %arrayidx230 = getelementptr inbounds [11 x ptr], ptr %m_bodies229, i32 0, i32 10
576   store ptr %call228, ptr %arrayidx230, align 4
577   store i32 0, ptr %i, align 4
578   br label %for.cond
580 for.cond:                                         ; preds = %for.inc, %invoke.cont90
581   %35 = load i32, ptr %i, align 4
582   %cmp = icmp slt i32 %35, 11
583   br i1 %cmp, label %for.body, label %for.end
585 for.body:                                         ; preds = %for.cond
586   %36 = load i32, ptr %i, align 4
587   %m_bodies231 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
588   %arrayidx232 = getelementptr inbounds [11 x ptr], ptr %m_bodies231, i32 0, i32 %36
589   %37 = load ptr, ptr %arrayidx232, align 4
590   call void @_ZN11btRigidBody10setDampingEff(ptr %37, float 0x3FA99999A0000000, float 0x3FEB333340000000)
591   %38 = load i32, ptr %i, align 4
592   %m_bodies233 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
593   %arrayidx234 = getelementptr inbounds [11 x ptr], ptr %m_bodies233, i32 0, i32 %38
594   %39 = load ptr, ptr %arrayidx234, align 4
595   call void @_ZN17btCollisionObject19setDeactivationTimeEf(ptr %39, float 0x3FE99999A0000000)
596   %40 = load i32, ptr %i, align 4
597   %m_bodies235 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
598   %arrayidx236 = getelementptr inbounds [11 x ptr], ptr %m_bodies235, i32 0, i32 %40
599   %41 = load ptr, ptr %arrayidx236, align 4
600   call void @_ZN11btRigidBody21setSleepingThresholdsEff(ptr %41, float 0x3FF99999A0000000, float 2.500000e+00)
601   br label %for.inc
603 for.inc:                                          ; preds = %for.body
604   %42 = load i32, ptr %i, align 4
605   %inc = add nsw i32 %42, 1
606   store i32 %inc, ptr %i, align 4
607   br label %for.cond
609 lpad:                                             ; preds = %entry
610   %43 = landingpad { ptr, i32 }
611           cleanup
612   %44 = extractvalue { ptr, i32 } %43, 0
613   store ptr %44, ptr %exn.slot
614   %45 = extractvalue { ptr, i32 } %43, 1
615   store i32 %45, ptr %ehselector.slot
616   invoke void @_ZN13btConvexShapedlEPv(ptr %call)
617           to label %invoke.cont4 unwind label %terminate.lpad
619 invoke.cont4:                                     ; preds = %lpad
620   br label %eh.resume
622 lpad8:                                            ; preds = %invoke.cont
623   %46 = landingpad { ptr, i32 }
624           cleanup
625   %47 = extractvalue { ptr, i32 } %46, 0
626   store ptr %47, ptr %exn.slot
627   %48 = extractvalue { ptr, i32 } %46, 1
628   store i32 %48, ptr %ehselector.slot
629   invoke void @_ZN13btConvexShapedlEPv(ptr %call5)
630           to label %invoke.cont11 unwind label %terminate.lpad
632 invoke.cont11:                                    ; preds = %lpad8
633   br label %eh.resume
635 lpad17:                                           ; preds = %invoke.cont9
636   %49 = landingpad { ptr, i32 }
637           cleanup
638   %50 = extractvalue { ptr, i32 } %49, 0
639   store ptr %50, ptr %exn.slot
640   %51 = extractvalue { ptr, i32 } %49, 1
641   store i32 %51, ptr %ehselector.slot
642   invoke void @_ZN13btConvexShapedlEPv(ptr %call14)
643           to label %invoke.cont20 unwind label %terminate.lpad
645 invoke.cont20:                                    ; preds = %lpad17
646   br label %eh.resume
648 lpad26:                                           ; preds = %invoke.cont18
649   %52 = landingpad { ptr, i32 }
650           cleanup
651   %53 = extractvalue { ptr, i32 } %52, 0
652   store ptr %53, ptr %exn.slot
653   %54 = extractvalue { ptr, i32 } %52, 1
654   store i32 %54, ptr %ehselector.slot
655   invoke void @_ZN13btConvexShapedlEPv(ptr %call23)
656           to label %invoke.cont29 unwind label %terminate.lpad
658 invoke.cont29:                                    ; preds = %lpad26
659   br label %eh.resume
661 lpad35:                                           ; preds = %invoke.cont27
662   %55 = landingpad { ptr, i32 }
663           cleanup
664   %56 = extractvalue { ptr, i32 } %55, 0
665   store ptr %56, ptr %exn.slot
666   %57 = extractvalue { ptr, i32 } %55, 1
667   store i32 %57, ptr %ehselector.slot
668   invoke void @_ZN13btConvexShapedlEPv(ptr %call32)
669           to label %invoke.cont38 unwind label %terminate.lpad
671 invoke.cont38:                                    ; preds = %lpad35
672   br label %eh.resume
674 lpad44:                                           ; preds = %invoke.cont36
675   %58 = landingpad { ptr, i32 }
676           cleanup
677   %59 = extractvalue { ptr, i32 } %58, 0
678   store ptr %59, ptr %exn.slot
679   %60 = extractvalue { ptr, i32 } %58, 1
680   store i32 %60, ptr %ehselector.slot
681   invoke void @_ZN13btConvexShapedlEPv(ptr %call41)
682           to label %invoke.cont47 unwind label %terminate.lpad
684 invoke.cont47:                                    ; preds = %lpad44
685   br label %eh.resume
687 lpad53:                                           ; preds = %invoke.cont45
688   %61 = landingpad { ptr, i32 }
689           cleanup
690   %62 = extractvalue { ptr, i32 } %61, 0
691   store ptr %62, ptr %exn.slot
692   %63 = extractvalue { ptr, i32 } %61, 1
693   store i32 %63, ptr %ehselector.slot
694   invoke void @_ZN13btConvexShapedlEPv(ptr %call50)
695           to label %invoke.cont56 unwind label %terminate.lpad
697 invoke.cont56:                                    ; preds = %lpad53
698   br label %eh.resume
700 lpad62:                                           ; preds = %invoke.cont54
701   %64 = landingpad { ptr, i32 }
702           cleanup
703   %65 = extractvalue { ptr, i32 } %64, 0
704   store ptr %65, ptr %exn.slot
705   %66 = extractvalue { ptr, i32 } %64, 1
706   store i32 %66, ptr %ehselector.slot
707   invoke void @_ZN13btConvexShapedlEPv(ptr %call59)
708           to label %invoke.cont65 unwind label %terminate.lpad
710 invoke.cont65:                                    ; preds = %lpad62
711   br label %eh.resume
713 lpad71:                                           ; preds = %invoke.cont63
714   %67 = landingpad { ptr, i32 }
715           cleanup
716   %68 = extractvalue { ptr, i32 } %67, 0
717   store ptr %68, ptr %exn.slot
718   %69 = extractvalue { ptr, i32 } %67, 1
719   store i32 %69, ptr %ehselector.slot
720   invoke void @_ZN13btConvexShapedlEPv(ptr %call68)
721           to label %invoke.cont74 unwind label %terminate.lpad
723 invoke.cont74:                                    ; preds = %lpad71
724   br label %eh.resume
726 lpad80:                                           ; preds = %invoke.cont72
727   %70 = landingpad { ptr, i32 }
728           cleanup
729   %71 = extractvalue { ptr, i32 } %70, 0
730   store ptr %71, ptr %exn.slot
731   %72 = extractvalue { ptr, i32 } %70, 1
732   store i32 %72, ptr %ehselector.slot
733   invoke void @_ZN13btConvexShapedlEPv(ptr %call77)
734           to label %invoke.cont83 unwind label %terminate.lpad
736 invoke.cont83:                                    ; preds = %lpad80
737   br label %eh.resume
739 lpad89:                                           ; preds = %invoke.cont81
740   %73 = landingpad { ptr, i32 }
741           cleanup
742   %74 = extractvalue { ptr, i32 } %73, 0
743   store ptr %74, ptr %exn.slot
744   %75 = extractvalue { ptr, i32 } %73, 1
745   store i32 %75, ptr %ehselector.slot
746   invoke void @_ZN13btConvexShapedlEPv(ptr %call86)
747           to label %invoke.cont92 unwind label %terminate.lpad
749 invoke.cont92:                                    ; preds = %lpad89
750   br label %eh.resume
752 for.end:                                          ; preds = %for.cond
753   %call237 = call ptr @_ZN11btTransformC1Ev(ptr %localA)
754   %call238 = call ptr @_ZN11btTransformC1Ev(ptr %localB)
755   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
756   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
757   %call239 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
758   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call239, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
759   store float 0.000000e+00, ptr %ref.tmp242, align 4
760   store float 0x3FC3333340000000, ptr %ref.tmp243, align 4
761   store float 0.000000e+00, ptr %ref.tmp244, align 4
762   %call245 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp241, ptr %ref.tmp242, ptr %ref.tmp243, ptr %ref.tmp244)
763   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp240, ptr %scale.addr, ptr %ref.tmp241)
764   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp240)
765   %call246 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
766   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call246, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
767   store float 0.000000e+00, ptr %ref.tmp249, align 4
768   store float 0xBFC3333340000000, ptr %ref.tmp250, align 4
769   store float 0.000000e+00, ptr %ref.tmp251, align 4
770   %call252 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp248, ptr %ref.tmp249, ptr %ref.tmp250, ptr %ref.tmp251)
771   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp247, ptr %scale.addr, ptr %ref.tmp248)
772   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp247)
773   %call253 = call noalias ptr @_Znwm(i32 780)
774   %m_bodies254 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
775   %76 = load ptr, ptr %m_bodies254, align 4
776   %m_bodies256 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
777   %arrayidx257 = getelementptr inbounds [11 x ptr], ptr %m_bodies256, i32 0, i32 1
778   %77 = load ptr, ptr %arrayidx257, align 4
779   %call260 = invoke ptr @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(ptr %call253, ptr %76, ptr %77, ptr %localA, ptr %localB, i1 zeroext false)
780           to label %invoke.cont259 unwind label %lpad258
782 invoke.cont259:                                   ; preds = %for.end
783   store ptr %call253, ptr %hingeC, align 4
784   %78 = load ptr, ptr %hingeC, align 4
785   call void @_ZN17btHingeConstraint8setLimitEfffff(ptr %78, float 0xBFE921FB60000000, float 0x3FF921FB60000000, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
786   %79 = load ptr, ptr %hingeC, align 4
787   %m_joints = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
788   store ptr %79, ptr %m_joints, align 4
789   %m_ownerWorld262 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
790   %80 = load ptr, ptr %m_ownerWorld262, align 4
791   %vtable = load ptr, ptr %80
792   %vfn = getelementptr inbounds ptr, ptr %vtable, i64 10
793   %81 = load ptr, ptr %vfn
794   %m_joints263 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
795   %82 = load ptr, ptr %m_joints263, align 4
796   call void %81(ptr %80, ptr %82, i1 zeroext true)
797   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
798   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
799   %call265 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
800   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call265, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
801   store float 0.000000e+00, ptr %ref.tmp268, align 4
802   store float 0x3FD3333340000000, ptr %ref.tmp269, align 4
803   store float 0.000000e+00, ptr %ref.tmp270, align 4
804   %call271 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp267, ptr %ref.tmp268, ptr %ref.tmp269, ptr %ref.tmp270)
805   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp266, ptr %scale.addr, ptr %ref.tmp267)
806   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp266)
807   %call272 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
808   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call272, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
809   store float 0.000000e+00, ptr %ref.tmp275, align 4
810   store float 0xBFC1EB8520000000, ptr %ref.tmp276, align 4
811   store float 0.000000e+00, ptr %ref.tmp277, align 4
812   %call278 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp274, ptr %ref.tmp275, ptr %ref.tmp276, ptr %ref.tmp277)
813   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp273, ptr %scale.addr, ptr %ref.tmp274)
814   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp273)
815   %call279 = call noalias ptr @_Znwm(i32 628)
816   %m_bodies280 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
817   %arrayidx281 = getelementptr inbounds [11 x ptr], ptr %m_bodies280, i32 0, i32 1
818   %83 = load ptr, ptr %arrayidx281, align 4
819   %m_bodies282 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
820   %arrayidx283 = getelementptr inbounds [11 x ptr], ptr %m_bodies282, i32 0, i32 2
821   %84 = load ptr, ptr %arrayidx283, align 4
822   %call286 = invoke ptr @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(ptr %call279, ptr %83, ptr %84, ptr %localA, ptr %localB)
823           to label %invoke.cont285 unwind label %lpad284
825 invoke.cont285:                                   ; preds = %invoke.cont259
826   store ptr %call279, ptr %coneC, align 4
827   %85 = load ptr, ptr %coneC, align 4
828   call void @_ZN21btConeTwistConstraint8setLimitEffffff(ptr %85, float 0x3FE921FB60000000, float 0x3FE921FB60000000, float 0x3FF921FB60000000, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
829   %86 = load ptr, ptr %coneC, align 4
830   %m_joints287 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
831   %arrayidx288 = getelementptr inbounds [10 x ptr], ptr %m_joints287, i32 0, i32 1
832   store ptr %86, ptr %arrayidx288, align 4
833   %m_ownerWorld289 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
834   %87 = load ptr, ptr %m_ownerWorld289, align 4
835   %vtable290 = load ptr, ptr %87
836   %vfn291 = getelementptr inbounds ptr, ptr %vtable290, i64 10
837   %88 = load ptr, ptr %vfn291
838   %m_joints292 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
839   %arrayidx293 = getelementptr inbounds [10 x ptr], ptr %m_joints292, i32 0, i32 1
840   %89 = load ptr, ptr %arrayidx293, align 4
841   call void %88(ptr %87, ptr %89, i1 zeroext true)
842   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
843   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
844   %call294 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
845   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call294, float 0.000000e+00, float 0.000000e+00, float 0xC00F6A7A20000000)
846   store float 0xBFC70A3D80000000, ptr %ref.tmp297, align 4
847   store float 0xBFB99999A0000000, ptr %ref.tmp298, align 4
848   store float 0.000000e+00, ptr %ref.tmp299, align 4
849   %call300 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp296, ptr %ref.tmp297, ptr %ref.tmp298, ptr %ref.tmp299)
850   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp295, ptr %scale.addr, ptr %ref.tmp296)
851   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp295)
852   %call301 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
853   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call301, float 0.000000e+00, float 0.000000e+00, float 0xC00F6A7A20000000)
854   store float 0.000000e+00, ptr %ref.tmp304, align 4
855   store float 0x3FCCCCCCC0000000, ptr %ref.tmp305, align 4
856   store float 0.000000e+00, ptr %ref.tmp306, align 4
857   %call307 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp303, ptr %ref.tmp304, ptr %ref.tmp305, ptr %ref.tmp306)
858   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp302, ptr %scale.addr, ptr %ref.tmp303)
859   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp302)
860   %call308 = call noalias ptr @_Znwm(i32 628)
861   %m_bodies309 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
862   %90 = load ptr, ptr %m_bodies309, align 4
863   %m_bodies311 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
864   %arrayidx312 = getelementptr inbounds [11 x ptr], ptr %m_bodies311, i32 0, i32 3
865   %91 = load ptr, ptr %arrayidx312, align 4
866   %call315 = invoke ptr @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(ptr %call308, ptr %90, ptr %91, ptr %localA, ptr %localB)
867           to label %invoke.cont314 unwind label %lpad313
869 invoke.cont314:                                   ; preds = %invoke.cont285
870   store ptr %call308, ptr %coneC, align 4
871   %92 = load ptr, ptr %coneC, align 4
872   call void @_ZN21btConeTwistConstraint8setLimitEffffff(ptr %92, float 0x3FE921FB60000000, float 0x3FE921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
873   %93 = load ptr, ptr %coneC, align 4
874   %m_joints316 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
875   %arrayidx317 = getelementptr inbounds [10 x ptr], ptr %m_joints316, i32 0, i32 2
876   store ptr %93, ptr %arrayidx317, align 4
877   %m_ownerWorld318 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
878   %94 = load ptr, ptr %m_ownerWorld318, align 4
879   %vtable319 = load ptr, ptr %94
880   %vfn320 = getelementptr inbounds ptr, ptr %vtable319, i64 10
881   %95 = load ptr, ptr %vfn320
882   %m_joints321 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
883   %arrayidx322 = getelementptr inbounds [10 x ptr], ptr %m_joints321, i32 0, i32 2
884   %96 = load ptr, ptr %arrayidx322, align 4
885   call void %95(ptr %94, ptr %96, i1 zeroext true)
886   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
887   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
888   %call323 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
889   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call323, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
890   store float 0.000000e+00, ptr %ref.tmp326, align 4
891   store float 0xBFCCCCCCC0000000, ptr %ref.tmp327, align 4
892   store float 0.000000e+00, ptr %ref.tmp328, align 4
893   %call329 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp325, ptr %ref.tmp326, ptr %ref.tmp327, ptr %ref.tmp328)
894   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp324, ptr %scale.addr, ptr %ref.tmp325)
895   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp324)
896   %call330 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
897   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call330, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
898   store float 0.000000e+00, ptr %ref.tmp333, align 4
899   store float 0x3FC7AE1480000000, ptr %ref.tmp334, align 4
900   store float 0.000000e+00, ptr %ref.tmp335, align 4
901   %call336 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp332, ptr %ref.tmp333, ptr %ref.tmp334, ptr %ref.tmp335)
902   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp331, ptr %scale.addr, ptr %ref.tmp332)
903   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp331)
904   %call337 = call noalias ptr @_Znwm(i32 780)
905   %m_bodies338 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
906   %arrayidx339 = getelementptr inbounds [11 x ptr], ptr %m_bodies338, i32 0, i32 3
907   %97 = load ptr, ptr %arrayidx339, align 4
908   %m_bodies340 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
909   %arrayidx341 = getelementptr inbounds [11 x ptr], ptr %m_bodies340, i32 0, i32 4
910   %98 = load ptr, ptr %arrayidx341, align 4
911   %call344 = invoke ptr @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(ptr %call337, ptr %97, ptr %98, ptr %localA, ptr %localB, i1 zeroext false)
912           to label %invoke.cont343 unwind label %lpad342
914 invoke.cont343:                                   ; preds = %invoke.cont314
915   store ptr %call337, ptr %hingeC, align 4
916   %99 = load ptr, ptr %hingeC, align 4
917   call void @_ZN17btHingeConstraint8setLimitEfffff(ptr %99, float 0.000000e+00, float 0x3FF921FB60000000, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
918   %100 = load ptr, ptr %hingeC, align 4
919   %m_joints345 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
920   %arrayidx346 = getelementptr inbounds [10 x ptr], ptr %m_joints345, i32 0, i32 3
921   store ptr %100, ptr %arrayidx346, align 4
922   %m_ownerWorld347 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
923   %101 = load ptr, ptr %m_ownerWorld347, align 4
924   %vtable348 = load ptr, ptr %101
925   %vfn349 = getelementptr inbounds ptr, ptr %vtable348, i64 10
926   %102 = load ptr, ptr %vfn349
927   %m_joints350 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
928   %arrayidx351 = getelementptr inbounds [10 x ptr], ptr %m_joints350, i32 0, i32 3
929   %103 = load ptr, ptr %arrayidx351, align 4
930   call void %102(ptr %101, ptr %103, i1 zeroext true)
931   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
932   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
933   %call352 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
934   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call352, float 0.000000e+00, float 0.000000e+00, float 0x3FE921FB60000000)
935   store float 0x3FC70A3D80000000, ptr %ref.tmp355, align 4
936   store float 0xBFB99999A0000000, ptr %ref.tmp356, align 4
937   store float 0.000000e+00, ptr %ref.tmp357, align 4
938   %call358 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp354, ptr %ref.tmp355, ptr %ref.tmp356, ptr %ref.tmp357)
939   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp353, ptr %scale.addr, ptr %ref.tmp354)
940   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp353)
941   %call359 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
942   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call359, float 0.000000e+00, float 0.000000e+00, float 0x3FE921FB60000000)
943   store float 0.000000e+00, ptr %ref.tmp362, align 4
944   store float 0x3FCCCCCCC0000000, ptr %ref.tmp363, align 4
945   store float 0.000000e+00, ptr %ref.tmp364, align 4
946   %call365 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp361, ptr %ref.tmp362, ptr %ref.tmp363, ptr %ref.tmp364)
947   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp360, ptr %scale.addr, ptr %ref.tmp361)
948   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp360)
949   %call366 = call noalias ptr @_Znwm(i32 628)
950   %m_bodies367 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
951   %104 = load ptr, ptr %m_bodies367, align 4
952   %m_bodies369 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
953   %arrayidx370 = getelementptr inbounds [11 x ptr], ptr %m_bodies369, i32 0, i32 5
954   %105 = load ptr, ptr %arrayidx370, align 4
955   %call373 = invoke ptr @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(ptr %call366, ptr %104, ptr %105, ptr %localA, ptr %localB)
956           to label %invoke.cont372 unwind label %lpad371
958 invoke.cont372:                                   ; preds = %invoke.cont343
959   store ptr %call366, ptr %coneC, align 4
960   %106 = load ptr, ptr %coneC, align 4
961   call void @_ZN21btConeTwistConstraint8setLimitEffffff(ptr %106, float 0x3FE921FB60000000, float 0x3FE921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
962   %107 = load ptr, ptr %coneC, align 4
963   %m_joints374 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
964   %arrayidx375 = getelementptr inbounds [10 x ptr], ptr %m_joints374, i32 0, i32 4
965   store ptr %107, ptr %arrayidx375, align 4
966   %m_ownerWorld376 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
967   %108 = load ptr, ptr %m_ownerWorld376, align 4
968   %vtable377 = load ptr, ptr %108
969   %vfn378 = getelementptr inbounds ptr, ptr %vtable377, i64 10
970   %109 = load ptr, ptr %vfn378
971   %m_joints379 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
972   %arrayidx380 = getelementptr inbounds [10 x ptr], ptr %m_joints379, i32 0, i32 4
973   %110 = load ptr, ptr %arrayidx380, align 4
974   call void %109(ptr %108, ptr %110, i1 zeroext true)
975   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
976   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
977   %call381 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
978   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call381, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
979   store float 0.000000e+00, ptr %ref.tmp384, align 4
980   store float 0xBFCCCCCCC0000000, ptr %ref.tmp385, align 4
981   store float 0.000000e+00, ptr %ref.tmp386, align 4
982   %call387 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp383, ptr %ref.tmp384, ptr %ref.tmp385, ptr %ref.tmp386)
983   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp382, ptr %scale.addr, ptr %ref.tmp383)
984   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp382)
985   %call388 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
986   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call388, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
987   store float 0.000000e+00, ptr %ref.tmp391, align 4
988   store float 0x3FC7AE1480000000, ptr %ref.tmp392, align 4
989   store float 0.000000e+00, ptr %ref.tmp393, align 4
990   %call394 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp390, ptr %ref.tmp391, ptr %ref.tmp392, ptr %ref.tmp393)
991   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp389, ptr %scale.addr, ptr %ref.tmp390)
992   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp389)
993   %call395 = call noalias ptr @_Znwm(i32 780)
994   %m_bodies396 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
995   %arrayidx397 = getelementptr inbounds [11 x ptr], ptr %m_bodies396, i32 0, i32 5
996   %111 = load ptr, ptr %arrayidx397, align 4
997   %m_bodies398 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
998   %arrayidx399 = getelementptr inbounds [11 x ptr], ptr %m_bodies398, i32 0, i32 6
999   %112 = load ptr, ptr %arrayidx399, align 4
1000   %call402 = invoke ptr @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(ptr %call395, ptr %111, ptr %112, ptr %localA, ptr %localB, i1 zeroext false)
1001           to label %invoke.cont401 unwind label %lpad400
1003 invoke.cont401:                                   ; preds = %invoke.cont372
1004   store ptr %call395, ptr %hingeC, align 4
1005   %113 = load ptr, ptr %hingeC, align 4
1006   call void @_ZN17btHingeConstraint8setLimitEfffff(ptr %113, float 0.000000e+00, float 0x3FF921FB60000000, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
1007   %114 = load ptr, ptr %hingeC, align 4
1008   %m_joints403 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1009   %arrayidx404 = getelementptr inbounds [10 x ptr], ptr %m_joints403, i32 0, i32 5
1010   store ptr %114, ptr %arrayidx404, align 4
1011   %m_ownerWorld405 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
1012   %115 = load ptr, ptr %m_ownerWorld405, align 4
1013   %vtable406 = load ptr, ptr %115
1014   %vfn407 = getelementptr inbounds ptr, ptr %vtable406, i64 10
1015   %116 = load ptr, ptr %vfn407
1016   %m_joints408 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1017   %arrayidx409 = getelementptr inbounds [10 x ptr], ptr %m_joints408, i32 0, i32 5
1018   %117 = load ptr, ptr %arrayidx409, align 4
1019   call void %116(ptr %115, ptr %117, i1 zeroext true)
1020   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
1021   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
1022   %call410 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
1023   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call410, float 0.000000e+00, float 0.000000e+00, float 0x400921FB60000000)
1024   store float 0xBFC99999A0000000, ptr %ref.tmp413, align 4
1025   store float 0x3FC3333340000000, ptr %ref.tmp414, align 4
1026   store float 0.000000e+00, ptr %ref.tmp415, align 4
1027   %call416 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp412, ptr %ref.tmp413, ptr %ref.tmp414, ptr %ref.tmp415)
1028   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp411, ptr %scale.addr, ptr %ref.tmp412)
1029   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp411)
1030   %call417 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
1031   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call417, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
1032   store float 0.000000e+00, ptr %ref.tmp420, align 4
1033   store float 0xBFC70A3D80000000, ptr %ref.tmp421, align 4
1034   store float 0.000000e+00, ptr %ref.tmp422, align 4
1035   %call423 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp419, ptr %ref.tmp420, ptr %ref.tmp421, ptr %ref.tmp422)
1036   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp418, ptr %scale.addr, ptr %ref.tmp419)
1037   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp418)
1038   %call424 = call noalias ptr @_Znwm(i32 628)
1039   %m_bodies425 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1040   %arrayidx426 = getelementptr inbounds [11 x ptr], ptr %m_bodies425, i32 0, i32 1
1041   %118 = load ptr, ptr %arrayidx426, align 4
1042   %m_bodies427 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1043   %arrayidx428 = getelementptr inbounds [11 x ptr], ptr %m_bodies427, i32 0, i32 7
1044   %119 = load ptr, ptr %arrayidx428, align 4
1045   %call431 = invoke ptr @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(ptr %call424, ptr %118, ptr %119, ptr %localA, ptr %localB)
1046           to label %invoke.cont430 unwind label %lpad429
1048 invoke.cont430:                                   ; preds = %invoke.cont401
1049   store ptr %call424, ptr %coneC, align 4
1050   %120 = load ptr, ptr %coneC, align 4
1051   call void @_ZN21btConeTwistConstraint8setLimitEffffff(ptr %120, float 0x3FF921FB60000000, float 0x3FF921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
1052   %121 = load ptr, ptr %coneC, align 4
1053   %m_joints432 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1054   %arrayidx433 = getelementptr inbounds [10 x ptr], ptr %m_joints432, i32 0, i32 6
1055   store ptr %121, ptr %arrayidx433, align 4
1056   %m_ownerWorld434 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
1057   %122 = load ptr, ptr %m_ownerWorld434, align 4
1058   %vtable435 = load ptr, ptr %122
1059   %vfn436 = getelementptr inbounds ptr, ptr %vtable435, i64 10
1060   %123 = load ptr, ptr %vfn436
1061   %m_joints437 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1062   %arrayidx438 = getelementptr inbounds [10 x ptr], ptr %m_joints437, i32 0, i32 6
1063   %124 = load ptr, ptr %arrayidx438, align 4
1064   call void %123(ptr %122, ptr %124, i1 zeroext true)
1065   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
1066   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
1067   %call439 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
1068   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call439, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
1069   store float 0.000000e+00, ptr %ref.tmp442, align 4
1070   store float 0x3FC70A3D80000000, ptr %ref.tmp443, align 4
1071   store float 0.000000e+00, ptr %ref.tmp444, align 4
1072   %call445 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp441, ptr %ref.tmp442, ptr %ref.tmp443, ptr %ref.tmp444)
1073   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp440, ptr %scale.addr, ptr %ref.tmp441)
1074   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp440)
1075   %call446 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
1076   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call446, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
1077   store float 0.000000e+00, ptr %ref.tmp449, align 4
1078   store float 0xBFC1EB8520000000, ptr %ref.tmp450, align 4
1079   store float 0.000000e+00, ptr %ref.tmp451, align 4
1080   %call452 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp448, ptr %ref.tmp449, ptr %ref.tmp450, ptr %ref.tmp451)
1081   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp447, ptr %scale.addr, ptr %ref.tmp448)
1082   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp447)
1083   %call453 = call noalias ptr @_Znwm(i32 780)
1084   %m_bodies454 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1085   %arrayidx455 = getelementptr inbounds [11 x ptr], ptr %m_bodies454, i32 0, i32 7
1086   %125 = load ptr, ptr %arrayidx455, align 4
1087   %m_bodies456 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1088   %arrayidx457 = getelementptr inbounds [11 x ptr], ptr %m_bodies456, i32 0, i32 8
1089   %126 = load ptr, ptr %arrayidx457, align 4
1090   %call460 = invoke ptr @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(ptr %call453, ptr %125, ptr %126, ptr %localA, ptr %localB, i1 zeroext false)
1091           to label %invoke.cont459 unwind label %lpad458
1093 invoke.cont459:                                   ; preds = %invoke.cont430
1094   store ptr %call453, ptr %hingeC, align 4
1095   %127 = load ptr, ptr %hingeC, align 4
1096   call void @_ZN17btHingeConstraint8setLimitEfffff(ptr %127, float 0xBFF921FB60000000, float 0.000000e+00, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
1097   %128 = load ptr, ptr %hingeC, align 4
1098   %m_joints461 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1099   %arrayidx462 = getelementptr inbounds [10 x ptr], ptr %m_joints461, i32 0, i32 7
1100   store ptr %128, ptr %arrayidx462, align 4
1101   %m_ownerWorld463 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
1102   %129 = load ptr, ptr %m_ownerWorld463, align 4
1103   %vtable464 = load ptr, ptr %129
1104   %vfn465 = getelementptr inbounds ptr, ptr %vtable464, i64 10
1105   %130 = load ptr, ptr %vfn465
1106   %m_joints466 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1107   %arrayidx467 = getelementptr inbounds [10 x ptr], ptr %m_joints466, i32 0, i32 7
1108   %131 = load ptr, ptr %arrayidx467, align 4
1109   call void %130(ptr %129, ptr %131, i1 zeroext true)
1110   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
1111   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
1112   %call468 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
1113   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call468, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00)
1114   store float 0x3FC99999A0000000, ptr %ref.tmp471, align 4
1115   store float 0x3FC3333340000000, ptr %ref.tmp472, align 4
1116   store float 0.000000e+00, ptr %ref.tmp473, align 4
1117   %call474 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp470, ptr %ref.tmp471, ptr %ref.tmp472, ptr %ref.tmp473)
1118   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp469, ptr %scale.addr, ptr %ref.tmp470)
1119   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp469)
1120   %call475 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
1121   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call475, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
1122   store float 0.000000e+00, ptr %ref.tmp478, align 4
1123   store float 0xBFC70A3D80000000, ptr %ref.tmp479, align 4
1124   store float 0.000000e+00, ptr %ref.tmp480, align 4
1125   %call481 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp477, ptr %ref.tmp478, ptr %ref.tmp479, ptr %ref.tmp480)
1126   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp476, ptr %scale.addr, ptr %ref.tmp477)
1127   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp476)
1128   %call482 = call noalias ptr @_Znwm(i32 628)
1129   %m_bodies483 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1130   %arrayidx484 = getelementptr inbounds [11 x ptr], ptr %m_bodies483, i32 0, i32 1
1131   %132 = load ptr, ptr %arrayidx484, align 4
1132   %m_bodies485 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1133   %arrayidx486 = getelementptr inbounds [11 x ptr], ptr %m_bodies485, i32 0, i32 9
1134   %133 = load ptr, ptr %arrayidx486, align 4
1135   %call489 = invoke ptr @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(ptr %call482, ptr %132, ptr %133, ptr %localA, ptr %localB)
1136           to label %invoke.cont488 unwind label %lpad487
1138 invoke.cont488:                                   ; preds = %invoke.cont459
1139   store ptr %call482, ptr %coneC, align 4
1140   %134 = load ptr, ptr %coneC, align 4
1141   call void @_ZN21btConeTwistConstraint8setLimitEffffff(ptr %134, float 0x3FF921FB60000000, float 0x3FF921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
1142   %135 = load ptr, ptr %coneC, align 4
1143   %m_joints490 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1144   %arrayidx491 = getelementptr inbounds [10 x ptr], ptr %m_joints490, i32 0, i32 8
1145   store ptr %135, ptr %arrayidx491, align 4
1146   %m_ownerWorld492 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
1147   %136 = load ptr, ptr %m_ownerWorld492, align 4
1148   %vtable493 = load ptr, ptr %136
1149   %vfn494 = getelementptr inbounds ptr, ptr %vtable493, i64 10
1150   %137 = load ptr, ptr %vfn494
1151   %m_joints495 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1152   %arrayidx496 = getelementptr inbounds [10 x ptr], ptr %m_joints495, i32 0, i32 8
1153   %138 = load ptr, ptr %arrayidx496, align 4
1154   call void %137(ptr %136, ptr %138, i1 zeroext true)
1155   call void @_ZN11btTransform11setIdentityEv(ptr %localA)
1156   call void @_ZN11btTransform11setIdentityEv(ptr %localB)
1157   %call497 = call ptr @_ZN11btTransform8getBasisEv(ptr %localA)
1158   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call497, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
1159   store float 0.000000e+00, ptr %ref.tmp500, align 4
1160   store float 0x3FC70A3D80000000, ptr %ref.tmp501, align 4
1161   store float 0.000000e+00, ptr %ref.tmp502, align 4
1162   %call503 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp499, ptr %ref.tmp500, ptr %ref.tmp501, ptr %ref.tmp502)
1163   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp498, ptr %scale.addr, ptr %ref.tmp499)
1164   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localA, ptr %ref.tmp498)
1165   %call504 = call ptr @_ZN11btTransform8getBasisEv(ptr %localB)
1166   call void @_ZN11btMatrix3x311setEulerZYXEfff(ptr %call504, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
1167   store float 0.000000e+00, ptr %ref.tmp507, align 4
1168   store float 0xBFC1EB8520000000, ptr %ref.tmp508, align 4
1169   store float 0.000000e+00, ptr %ref.tmp509, align 4
1170   %call510 = call ptr @_ZN9btVector3C1ERKfS1_S1_(ptr %ref.tmp506, ptr %ref.tmp507, ptr %ref.tmp508, ptr %ref.tmp509)
1171   call void @_ZmlRKfRK9btVector3(ptr sret(%class.btVector3) %ref.tmp505, ptr %scale.addr, ptr %ref.tmp506)
1172   call void @_ZN11btTransform9setOriginERK9btVector3(ptr %localB, ptr %ref.tmp505)
1173   %call511 = call noalias ptr @_Znwm(i32 780)
1174   %m_bodies512 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1175   %arrayidx513 = getelementptr inbounds [11 x ptr], ptr %m_bodies512, i32 0, i32 9
1176   %139 = load ptr, ptr %arrayidx513, align 4
1177   %m_bodies514 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 3
1178   %arrayidx515 = getelementptr inbounds [11 x ptr], ptr %m_bodies514, i32 0, i32 10
1179   %140 = load ptr, ptr %arrayidx515, align 4
1180   %call518 = invoke ptr @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(ptr %call511, ptr %139, ptr %140, ptr %localA, ptr %localB, i1 zeroext false)
1181           to label %invoke.cont517 unwind label %lpad516
1183 invoke.cont517:                                   ; preds = %invoke.cont488
1184   store ptr %call511, ptr %hingeC, align 4
1185   %141 = load ptr, ptr %hingeC, align 4
1186   call void @_ZN17btHingeConstraint8setLimitEfffff(ptr %141, float 0xBFF921FB60000000, float 0.000000e+00, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
1187   %142 = load ptr, ptr %hingeC, align 4
1188   %m_joints519 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1189   %arrayidx520 = getelementptr inbounds [10 x ptr], ptr %m_joints519, i32 0, i32 9
1190   store ptr %142, ptr %arrayidx520, align 4
1191   %m_ownerWorld521 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 1
1192   %143 = load ptr, ptr %m_ownerWorld521, align 4
1193   %vtable522 = load ptr, ptr %143
1194   %vfn523 = getelementptr inbounds ptr, ptr %vtable522, i64 10
1195   %144 = load ptr, ptr %vfn523
1196   %m_joints524 = getelementptr inbounds %class.RagDoll, ptr %this1, i32 0, i32 4
1197   %arrayidx525 = getelementptr inbounds [10 x ptr], ptr %m_joints524, i32 0, i32 9
1198   %145 = load ptr, ptr %arrayidx525, align 4
1199   call void %144(ptr %143, ptr %145, i1 zeroext true)
1200   %146 = load ptr, ptr %retval
1201   ret ptr %146
1203 lpad258:                                          ; preds = %for.end
1204   %147 = landingpad { ptr, i32 }
1205           cleanup
1206   %148 = extractvalue { ptr, i32 } %147, 0
1207   store ptr %148, ptr %exn.slot
1208   %149 = extractvalue { ptr, i32 } %147, 1
1209   store i32 %149, ptr %ehselector.slot
1210   call void @_ZdlPv(ptr %call253) nounwind
1211   br label %eh.resume
1213 lpad284:                                          ; preds = %invoke.cont259
1214   %150 = landingpad { ptr, i32 }
1215           cleanup
1216   %151 = extractvalue { ptr, i32 } %150, 0
1217   store ptr %151, ptr %exn.slot
1218   %152 = extractvalue { ptr, i32 } %150, 1
1219   store i32 %152, ptr %ehselector.slot
1220   call void @_ZdlPv(ptr %call279) nounwind
1221   br label %eh.resume
1223 lpad313:                                          ; preds = %invoke.cont285
1224   %153 = landingpad { ptr, i32 }
1225           cleanup
1226   %154 = extractvalue { ptr, i32 } %153, 0
1227   store ptr %154, ptr %exn.slot
1228   %155 = extractvalue { ptr, i32 } %153, 1
1229   store i32 %155, ptr %ehselector.slot
1230   call void @_ZdlPv(ptr %call308) nounwind
1231   br label %eh.resume
1233 lpad342:                                          ; preds = %invoke.cont314
1234   %156 = landingpad { ptr, i32 }
1235           cleanup
1236   %157 = extractvalue { ptr, i32 } %156, 0
1237   store ptr %157, ptr %exn.slot
1238   %158 = extractvalue { ptr, i32 } %156, 1
1239   store i32 %158, ptr %ehselector.slot
1240   call void @_ZdlPv(ptr %call337) nounwind
1241   br label %eh.resume
1243 lpad371:                                          ; preds = %invoke.cont343
1244   %159 = landingpad { ptr, i32 }
1245           cleanup
1246   %160 = extractvalue { ptr, i32 } %159, 0
1247   store ptr %160, ptr %exn.slot
1248   %161 = extractvalue { ptr, i32 } %159, 1
1249   store i32 %161, ptr %ehselector.slot
1250   call void @_ZdlPv(ptr %call366) nounwind
1251   br label %eh.resume
1253 lpad400:                                          ; preds = %invoke.cont372
1254   %162 = landingpad { ptr, i32 }
1255           cleanup
1256   %163 = extractvalue { ptr, i32 } %162, 0
1257   store ptr %163, ptr %exn.slot
1258   %164 = extractvalue { ptr, i32 } %162, 1
1259   store i32 %164, ptr %ehselector.slot
1260   call void @_ZdlPv(ptr %call395) nounwind
1261   br label %eh.resume
1263 lpad429:                                          ; preds = %invoke.cont401
1264   %165 = landingpad { ptr, i32 }
1265           cleanup
1266   %166 = extractvalue { ptr, i32 } %165, 0
1267   store ptr %166, ptr %exn.slot
1268   %167 = extractvalue { ptr, i32 } %165, 1
1269   store i32 %167, ptr %ehselector.slot
1270   call void @_ZdlPv(ptr %call424) nounwind
1271   br label %eh.resume
1273 lpad458:                                          ; preds = %invoke.cont430
1274   %168 = landingpad { ptr, i32 }
1275           cleanup
1276   %169 = extractvalue { ptr, i32 } %168, 0
1277   store ptr %169, ptr %exn.slot
1278   %170 = extractvalue { ptr, i32 } %168, 1
1279   store i32 %170, ptr %ehselector.slot
1280   call void @_ZdlPv(ptr %call453) nounwind
1281   br label %eh.resume
1283 lpad487:                                          ; preds = %invoke.cont459
1284   %171 = landingpad { ptr, i32 }
1285           cleanup
1286   %172 = extractvalue { ptr, i32 } %171, 0
1287   store ptr %172, ptr %exn.slot
1288   %173 = extractvalue { ptr, i32 } %171, 1
1289   store i32 %173, ptr %ehselector.slot
1290   call void @_ZdlPv(ptr %call482) nounwind
1291   br label %eh.resume
1293 lpad516:                                          ; preds = %invoke.cont488
1294   %174 = landingpad { ptr, i32 }
1295           cleanup
1296   %175 = extractvalue { ptr, i32 } %174, 0
1297   store ptr %175, ptr %exn.slot
1298   %176 = extractvalue { ptr, i32 } %174, 1
1299   store i32 %176, ptr %ehselector.slot
1300   call void @_ZdlPv(ptr %call511) nounwind
1301   br label %eh.resume
1303 eh.resume:                                        ; preds = %lpad516, %lpad487, %lpad458, %lpad429, %lpad400, %lpad371, %lpad342, %lpad313, %lpad284, %lpad258, %invoke.cont92, %invoke.cont83, %invoke.cont74, %invoke.cont65, %invoke.cont56, %invoke.cont47, %invoke.cont38, %invoke.cont29, %invoke.cont20, %invoke.cont11, %invoke.cont4
1304   %exn = load ptr, ptr %exn.slot
1305   %sel = load i32, ptr %ehselector.slot
1306   %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn, 0
1307   %lpad.val526 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1
1308   resume { ptr, i32 } %lpad.val526
1310 terminate.lpad:                                   ; preds = %lpad89, %lpad80, %lpad71, %lpad62, %lpad53, %lpad44, %lpad35, %lpad26, %lpad17, %lpad8, %lpad
1311   %177 = landingpad { ptr, i32 }
1312           catch ptr null
1313   call void @_ZSt9terminatev() noreturn nounwind
1314   unreachable
1317 declare void @_ZmlRKfRK9btVector3(ptr noalias sret(%class.btVector3), ptr, ptr) inlinehint ssp
1319 declare ptr @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(ptr, float, ptr, ptr) ssp align 2
1321 declare void @_ZNK11btTransformmlERKS_(ptr noalias sret(%class.btTransform), ptr, ptr) inlinehint ssp align 2
1323 declare void @_ZN11btMatrix3x311setEulerZYXEfff(ptr, float, float, float) ssp align 2
1325 declare void @_ZN11btRigidBody10setDampingEff(ptr, float, float)
1327 declare void @_ZN17btCollisionObject19setDeactivationTimeEf(ptr, float) nounwind ssp align 2
1329 declare void @_ZN11btRigidBody21setSleepingThresholdsEff(ptr, float, float) nounwind ssp align 2
1331 declare ptr @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(ptr, ptr, ptr, ptr, ptr, i1 zeroext)
1333 declare void @_ZN17btHingeConstraint8setLimitEfffff(ptr, float, float, float, float, float) ssp align 2
1335 declare ptr @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(ptr, ptr, ptr, ptr, ptr)
1337 declare void @_ZN21btConeTwistConstraint8setLimitEffffff(ptr, float, float, float, float, float, float) nounwind ssp align 2