; SROA fails to rewrite allocs but does rewrite some phis and delete ; dead instructions. Ensure that this invalidates analyses required ; for other passes. ; RUN: opt < %s -passes=bdce,sroa,bdce -o %t -debug-pass-manager 2>&1 | FileCheck %s ; CHECK: Running pass: BDCEPass on H ; CHECK: Running analysis: DemandedBitsAnalysis on H ; CHECK: Running pass: SROA on H ; CHECK: Invalidating analysis: DemandedBitsAnalysis on H ; CHECK: Running pass: BDCEPass on H ; CHECK: Running analysis: DemandedBitsAnalysis on H ; CHECK: Finished llvm::Function pass manager run. target datalayout = "e-m:e-i64:64-n32:64" target triple = "powerpc64le-grtev4-linux-gnu" %class.b = type { i64 } declare void @D(%class.b* sret(%class.b), %class.b* dereferenceable(32)) local_unnamed_addr ; Function Attrs: nounwind define hidden fastcc void @H(%class.b* noalias nocapture readnone, [2 x i64]) unnamed_addr { %3 = alloca %class.b, align 8 %.sroa.0 = alloca i64, align 8 store i64 0, i64* %.sroa.0, align 8 %4 = extractvalue [2 x i64] %1, 1 switch i64 %4, label %6 [ i64 4, label %foo i64 5, label %5 ] ;