1; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7 2 3target 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-n8:16:32:64-S128" 4target triple = "x86_64-apple-macosx10.8.0" 5 6%"struct.btTypedConstraint::btConstraintInfo1.17.157.357.417.477.960" = type { i32, i32 } 7 8define void @_ZN23btGeneric6DofConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(%"struct.btTypedConstraint::btConstraintInfo1.17.157.357.417.477.960"* nocapture %info) { 9entry: 10 br i1 undef, label %if.else, label %if.then 11 12if.then: ; preds = %entry 13 ret void 14 15if.else: ; preds = %entry 16 %m_numConstraintRows4 = getelementptr inbounds %"struct.btTypedConstraint::btConstraintInfo1.17.157.357.417.477.960", %"struct.btTypedConstraint::btConstraintInfo1.17.157.357.417.477.960"* %info, i64 0, i32 0 17 %nub5 = getelementptr inbounds %"struct.btTypedConstraint::btConstraintInfo1.17.157.357.417.477.960", %"struct.btTypedConstraint::btConstraintInfo1.17.157.357.417.477.960"* %info, i64 0, i32 1 18 br i1 undef, label %land.lhs.true.i.1, label %if.then7.1 19 20land.lhs.true.i.1: ; preds = %if.else 21 br i1 undef, label %for.inc.1, label %if.then7.1 22 23if.then7.1: ; preds = %land.lhs.true.i.1, %if.else 24 %inc.1 = add nsw i32 0, 1 25 store i32 %inc.1, i32* %m_numConstraintRows4, align 4 26 %dec.1 = add nsw i32 6, -1 27 store i32 %dec.1, i32* %nub5, align 4 28 br label %for.inc.1 29 30for.inc.1: ; preds = %if.then7.1, %land.lhs.true.i.1 31 %0 = phi i32 [ %dec.1, %if.then7.1 ], [ 6, %land.lhs.true.i.1 ] 32 %1 = phi i32 [ %inc.1, %if.then7.1 ], [ 0, %land.lhs.true.i.1 ] 33 %inc.2 = add nsw i32 %1, 1 34 store i32 %inc.2, i32* %m_numConstraintRows4, align 4 35 %dec.2 = add nsw i32 %0, -1 36 store i32 %dec.2, i32* %nub5, align 4 37 unreachable 38} 39 40%class.GIM_TRIANGLE_CALCULATION_CACHE.9.34.69.94.119.144.179.189.264.284.332 = type { float, [3 x %class.btVector3.5.30.65.90.115.140.175.185.260.280.330], [3 x %class.btVector3.5.30.65.90.115.140.175.185.260.280.330], %class.btVector4.7.32.67.92.117.142.177.187.262.282.331, %class.btVector4.7.32.67.92.117.142.177.187.262.282.331, %class.btVector3.5.30.65.90.115.140.175.185.260.280.330, %class.btVector3.5.30.65.90.115.140.175.185.260.280.330, %class.btVector3.5.30.65.90.115.140.175.185.260.280.330, %class.btVector3.5.30.65.90.115.140.175.185.260.280.330, [4 x float], float, float, [4 x float], float, float, [16 x %class.btVector3.5.30.65.90.115.140.175.185.260.280.330], [16 x %class.btVector3.5.30.65.90.115.140.175.185.260.280.330], [16 x %class.btVector3.5.30.65.90.115.140.175.185.260.280.330] } 41%class.btVector3.5.30.65.90.115.140.175.185.260.280.330 = type { [4 x float] } 42%class.btVector4.7.32.67.92.117.142.177.187.262.282.331 = type { %class.btVector3.5.30.65.90.115.140.175.185.260.280.330 } 43 44define void @_ZN30GIM_TRIANGLE_CALCULATION_CACHE18triangle_collisionERK9btVector3S2_S2_fS2_S2_S2_fR25GIM_TRIANGLE_CONTACT_DATA(%class.GIM_TRIANGLE_CALCULATION_CACHE.9.34.69.94.119.144.179.189.264.284.332* %this) { 45entry: 46 %arrayidx26 = getelementptr inbounds %class.GIM_TRIANGLE_CALCULATION_CACHE.9.34.69.94.119.144.179.189.264.284.332, %class.GIM_TRIANGLE_CALCULATION_CACHE.9.34.69.94.119.144.179.189.264.284.332* %this, i64 0, i32 2, i64 0, i32 0, i64 1 47 %arrayidx36 = getelementptr inbounds %class.GIM_TRIANGLE_CALCULATION_CACHE.9.34.69.94.119.144.179.189.264.284.332, %class.GIM_TRIANGLE_CALCULATION_CACHE.9.34.69.94.119.144.179.189.264.284.332* %this, i64 0, i32 2, i64 0, i32 0, i64 2 48 %0 = load float, float* %arrayidx36, align 4 49 %add587 = fadd float undef, undef 50 %sub600 = fsub float %add587, undef 51 store float %sub600, float* undef, align 4 52 %sub613 = fsub float %add587, %sub600 53 store float %sub613, float* %arrayidx26, align 4 54 %add626 = fadd float %0, undef 55 %sub639 = fsub float %add626, undef 56 %sub652 = fsub float %add626, %sub639 57 store float %sub652, float* %arrayidx36, align 4 58 br i1 undef, label %if.else1609, label %if.then1595 59 60if.then1595: ; preds = %entry 61 br i1 undef, label %return, label %for.body.lr.ph.i.i1702 62 63for.body.lr.ph.i.i1702: ; preds = %if.then1595 64 unreachable 65 66if.else1609: ; preds = %entry 67 unreachable 68 69return: ; preds = %if.then1595 70 ret void 71} 72 73define void @_Z8dBoxBox2RK9btVector3PKfS1_S1_S3_S1_RS_PfPiiP12dContactGeomiRN36btDiscreteCollisionDetectorInterface6ResultE() { 74entry: 75 %add8.i2343 = fadd float undef, undef 76 %add8.i2381 = fadd float undef, undef 77 br i1 undef, label %return, label %if.end 78 79if.end: ; preds = %entry 80 br i1 undef, label %return, label %if.end111 81 82if.end111: ; preds = %if.end 83 br i1 undef, label %return, label %if.end136 84 85if.end136: ; preds = %if.end111 86 br i1 undef, label %return, label %if.end162 87 88if.end162: ; preds = %if.end136 89 br i1 undef, label %return, label %if.end189 90 91if.end189: ; preds = %if.end162 92 br i1 undef, label %return, label %if.end216 93 94if.end216: ; preds = %if.end189 95 br i1 undef, label %if.then218, label %if.end225 96 97if.then218: ; preds = %if.end216 98 br label %if.end225 99 100if.end225: ; preds = %if.then218, %if.end216 101 br i1 undef, label %return, label %if.end248 102 103if.end248: ; preds = %if.end225 104 br i1 undef, label %return, label %if.end304 105 106if.end304: ; preds = %if.end248 107 %mul341 = fmul float undef, %add8.i2343 108 %mul344 = fmul float undef, %add8.i2381 109 %sub345 = fsub float %mul341, %mul344 110 br i1 undef, label %return, label %if.end361 111 112if.end361: ; preds = %if.end304 113 %mul364 = fmul float %add8.i2381, %add8.i2381 114 br i1 undef, label %if.then370, label %if.end395 115 116if.then370: ; preds = %if.end361 117 br i1 undef, label %if.then374, label %if.end395 118 119if.then374: ; preds = %if.then370 120 %cmp392 = fcmp olt float %sub345, 0.000000e+00 121 br label %if.end395 122 123if.end395: ; preds = %if.then374, %if.then370, %if.end361 124 unreachable 125 126return: ; preds = %if.end304, %if.end248, %if.end225, %if.end189, %if.end162, %if.end136, %if.end111, %if.end, %entry 127 ret void 128} 129