131 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=slp-vectorizer,dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7 | FileCheck %s3 4target 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"5target triple = "x86_64-apple-macosx10.8.0"6 7%class.btVector3.23.221.463.485.507.573.595.683.727.749.815.837.991.1585.1607.1629.1651.1849.2047.2069.2091.2113 = type { [4 x float] }8 9; Function Attrs: ssp uwtable10define void @_ZN11HullLibrary15CleanupVerticesEjPK9btVector3jRjPS0_fRS0_(ptr %vertices, i1 %arg) align 2 {11; CHECK-LABEL: @_ZN11HullLibrary15CleanupVerticesEjPK9btVector3jRjPS0_fRS0_(12; CHECK-NEXT: entry:13; CHECK-NEXT: br i1 [[ARG:%.*]], label [[RETURN:%.*]], label [[IF_END:%.*]]14; CHECK: if.end:15; CHECK-NEXT: br label [[FOR_BODY:%.*]]16; CHECK: for.body:17; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN17_1:%.*]], label [[IF_END22_1:%.*]]18; CHECK: for.end36:19; CHECK-NEXT: br label [[FOR_BODY144:%.*]]20; CHECK: for.body144:21; CHECK-NEXT: br i1 [[ARG]], label [[FOR_END227:%.*]], label [[FOR_BODY144]]22; CHECK: for.end227:23; CHECK-NEXT: br i1 [[ARG]], label [[FOR_END271:%.*]], label [[FOR_BODY233:%.*]]24; CHECK: for.body233:25; CHECK-NEXT: br i1 [[ARG]], label [[FOR_BODY233]], label [[FOR_END271]]26; CHECK: for.end271:27; CHECK-NEXT: [[TMP0:%.*]] = phi <2 x float> [ splat (float 0x47EFFFFFE0000000), [[FOR_END227]] ], [ undef, [[FOR_BODY233]] ]28; CHECK-NEXT: [[TMP1:%.*]] = fsub <2 x float> undef, [[TMP0]]29; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN291:%.*]], label [[RETURN]]30; CHECK: if.then291:31; CHECK-NEXT: [[TMP2:%.*]] = fmul <2 x float> [[TMP1]], splat (float 5.000000e-01)32; CHECK-NEXT: [[TMP3:%.*]] = fadd <2 x float> [[TMP0]], [[TMP2]]33; CHECK-NEXT: br i1 [[ARG]], label [[IF_END332:%.*]], label [[IF_ELSE319:%.*]]34; CHECK: if.else319:35; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN325:%.*]], label [[IF_END327:%.*]]36; CHECK: if.then325:37; CHECK-NEXT: br label [[IF_END327]]38; CHECK: if.end327:39; CHECK-NEXT: [[TMP6:%.*]] = shufflevector <2 x float> [[TMP1]], <2 x float> <float poison, float undef>, <2 x i32> <i32 0, i32 3>40; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN329:%.*]], label [[IF_END332]]41; CHECK: if.then329:42; CHECK-NEXT: br label [[IF_END332]]43; CHECK: if.end332:44; CHECK-NEXT: [[TMP4:%.*]] = phi <2 x float> [ [[TMP6]], [[IF_THEN329]] ], [ [[TMP6]], [[IF_END327]] ], [ splat (float 0x3F847AE140000000), [[IF_THEN291]] ]45; CHECK-NEXT: [[TMP5:%.*]] = fsub <2 x float> [[TMP3]], [[TMP4]]46; CHECK-NEXT: store <2 x float> [[TMP5]], ptr [[VERTICES:%.*]], align 447; CHECK-NEXT: br label [[RETURN]]48; CHECK: return:49; CHECK-NEXT: ret void50; CHECK: if.then17.1:51; CHECK-NEXT: br label [[IF_END22_1]]52; CHECK: if.end22.1:53; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN17_2:%.*]], label [[IF_END22_2:%.*]]54; CHECK: if.then17.2:55; CHECK-NEXT: br label [[IF_END22_2]]56; CHECK: if.end22.2:57; CHECK-NEXT: br i1 [[ARG]], label [[FOR_END36:%.*]], label [[FOR_BODY]]58;59entry:60 br i1 %arg, label %return, label %if.end61 62if.end: ; preds = %entry63 br label %for.body64 65for.body: ; preds = %if.end22.2, %if.end66 br i1 %arg, label %if.then17.1, label %if.end22.167 68for.end36: ; preds = %if.end22.269 br label %for.body14470 71for.body144: ; preds = %for.body144, %for.end3672 br i1 %arg, label %for.end227, label %for.body14473 74for.end227: ; preds = %for.body14475 br i1 %arg, label %for.end271, label %for.body23376 77for.body233: ; preds = %for.body233, %for.end22778 br i1 %arg, label %for.body233, label %for.end27179 80for.end271: ; preds = %for.body233, %for.end22781 %0 = phi float [ 0x47EFFFFFE0000000, %for.end227 ], [ undef, %for.body233 ]82 %1 = phi float [ 0x47EFFFFFE0000000, %for.end227 ], [ undef, %for.body233 ]83 %sub275 = fsub float undef, %184 %sub279 = fsub float undef, %085 br i1 %arg, label %if.then291, label %return86 87if.then291: ; preds = %for.end27188 %mul292 = fmul float %sub275, 5.000000e-0189 %add294 = fadd float %1, %mul29290 %mul295 = fmul float %sub279, 5.000000e-0191 %add297 = fadd float %0, %mul29592 br i1 %arg, label %if.end332, label %if.else31993 94if.else319: ; preds = %if.then29195 br i1 %arg, label %if.then325, label %if.end32796 97if.then325: ; preds = %if.else31998 br label %if.end32799 100if.end327: ; preds = %if.then325, %if.else319101 br i1 %arg, label %if.then329, label %if.end332102 103if.then329: ; preds = %if.end327104 br label %if.end332105 106if.end332: ; preds = %if.then329, %if.end327, %if.then291107 %dx272.1 = phi float [ %sub275, %if.then329 ], [ %sub275, %if.end327 ], [ 0x3F847AE140000000, %if.then291 ]108 %dy276.1 = phi float [ undef, %if.then329 ], [ undef, %if.end327 ], [ 0x3F847AE140000000, %if.then291 ]109 %sub334 = fsub float %add294, %dx272.1110 %sub338 = fsub float %add297, %dy276.1111 store float %sub334, ptr %vertices, align 4112 %arrayidx3.i607 = getelementptr inbounds %class.btVector3.23.221.463.485.507.573.595.683.727.749.815.837.991.1585.1607.1629.1651.1849.2047.2069.2091.2113, ptr %vertices, i64 0, i32 0, i64 1113 store float %sub338, ptr %arrayidx3.i607, align 4114 br label %return115 116return: ; preds = %if.end332, %for.end271, %entry117 ret void118 119if.then17.1: ; preds = %for.body120 br label %if.end22.1121 122if.end22.1: ; preds = %if.then17.1, %for.body123 br i1 %arg, label %if.then17.2, label %if.end22.2124 125if.then17.2: ; preds = %if.end22.1126 br label %if.end22.2127 128if.end22.2: ; preds = %if.then17.2, %if.end22.1129 br i1 %arg, label %for.end36, label %for.body130}131