Index: test/Transforms/GuardWidening/basic.ll =================================================================== --- test/Transforms/GuardWidening/basic.ll +++ test/Transforms/GuardWidening/basic.ll @@ -271,20 +271,25 @@ define void @f_11(i32 %a, i1 %cond_0, i1 %cond_1) { ; CHECK-LABEL: @f_11( entry: - br label %inner + br label %outer_header -inner: -; CHECK: inner: -; CHECK: %wide.chk = and i1 %cond_0, %cond_1 -; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 %wide.chk) [ "deopt"() ] -; CHECK: br i1 undef, label %inner, label %outer +outer_header: +; CHECK: outer_header: +; CHECK-NEXT: %wide.chk = and i1 %cond_0, %cond_1 +; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 %wide.chk) [ "deopt"() ] call void(i1, ...) @llvm.experimental.guard(i1 %cond_0) [ "deopt"() ] - br i1 undef, label %inner, label %outer + br label %inner -outer: +inner: call void(i1, ...) @llvm.experimental.guard(i1 %cond_1) [ "deopt"() ] - br label %inner + br i1 undef, label %inner, label %outer_latch + +outer_latch: + br i1 undef, label %outer_header, label %exit + +exit: + ret void } ; Checks that we are adequately guarded against exponential-time