; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S -passes='sroa' < %s | FileCheck %s --check-prefixes=CHECK,CHECK-PRESERVE-CFG ; RUN: opt -S -passes='sroa' < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MODIFY-CFG ; Make sure we don't crash on this one. target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-apple-macosx10.8.0" define void @foo(i1 %c1, i1 %c2) { ; CHECK-LABEL: @foo( ; CHECK-NEXT: entry: ; CHECK-NEXT: br i1 [[C1:%.*]], label [[BB0_EXIT158:%.*]], label [[IF_THEN_I_I_I_I_I138:%.*]] ; CHECK: if.then.i.i.i.i.i138: ; CHECK-NEXT: ret void ; CHECK: bb0.exit158: ; CHECK-NEXT: br i1 [[C2:%.*]], label [[BB0_EXIT257:%.*]], label [[IF_THEN_I_I_I_I_I237:%.*]] ; CHECK: if.then.i.i.i.i.i237: ; CHECK-NEXT: unreachable ; CHECK: bb0.exit257: ; CHECK-NEXT: ret void ; entry: %Args.i = alloca <2 x ptr>, align 16 br i1 %c1, label %bb0.exit158, label %if.then.i.i.i.i.i138 if.then.i.i.i.i.i138: ret void bb0.exit158: br i1 %c2, label %bb0.exit257, label %if.then.i.i.i.i.i237 if.then.i.i.i.i.i237: unreachable bb0.exit257: %0 = load <2 x ptr>, ptr %Args.i, align 16 ret void } ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: ; CHECK-MODIFY-CFG: {{.*}} ; CHECK-PRESERVE-CFG: {{.*}}