; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
; RUN: opt < %s -S -passes='simplifycfg<speculate-blocks>' | FileCheck %s --check-prefix=YES
; RUN: opt < %s -S -passes='simplifycfg<no-speculate-blocks>' | FileCheck %s --check-prefix=NO

define i32 @f(i1 %a) {
; YES-LABEL: define i32 @f
; YES-SAME: (i1 [[A:%.*]]) {
; YES-NEXT:  entry:
; YES-NEXT:    [[SPEC_SELECT:%.*]] = select i1 [[A]], i32 5, i32 2
; YES-NEXT:    ret i32 [[SPEC_SELECT]]
;
; NO-LABEL: define i32 @f
; NO-SAME: (i1 [[A:%.*]]) {
; NO-NEXT:  entry:
; NO-NEXT:    br i1 [[A]], label [[BB:%.*]], label [[BB2:%.*]]
; NO:       bb:
; NO-NEXT:    br label [[BB2]]
; NO:       bb2:
; NO-NEXT:    [[R:%.*]] = phi i32 [ 2, [[ENTRY:%.*]] ], [ 5, [[BB]] ]
; NO-NEXT:    ret i32 [[R]]
;
entry:
  br i1 %a, label %bb, label %bb2
bb:
  br label %bb2
bb2:
  %r = phi i32 [ 2, %entry ], [ 5, %bb ]
  ret i32 %r
}

define void @fold_branch_to_common_dest(i8 %v0, i8 %v1) {
; YES-LABEL: define void @fold_branch_to_common_dest
; YES-SAME: (i8 [[V0:%.*]], i8 [[V1:%.*]]) {
; YES-NEXT:  pred:
; YES-NEXT:    [[C0:%.*]] = icmp eq i8 [[V0]], 0
; YES-NEXT:    [[C1:%.*]] = icmp eq i8 [[V1]], 0
; YES-NEXT:    [[OR_COND:%.*]] = select i1 [[C0]], i1 [[C1]], i1 false
; YES-NEXT:    br i1 [[OR_COND]], label [[FINAL_LEFT:%.*]], label [[FINAL_RIGHT:%.*]]
; YES:       common.ret:
; YES-NEXT:    ret void
; YES:       final_left:
; YES-NEXT:    call void @sideeffect0()
; YES-NEXT:    br label [[COMMON_RET:%.*]]
; YES:       final_right:
; YES-NEXT:    call void @sideeffect1()
; YES-NEXT:    br label [[COMMON_RET]]
;
; NO-LABEL: define void @fold_branch_to_common_dest
; NO-SAME: (i8 [[V0:%.*]], i8 [[V1:%.*]]) {
; NO-NEXT:  pred:
; NO-NEXT:    [[C0:%.*]] = icmp eq i8 [[V0]], 0
; NO-NEXT:    br i1 [[C0]], label [[DISPATCH:%.*]], label [[FINAL_RIGHT:%.*]]
; NO:       dispatch:
; NO-NEXT:    [[C1:%.*]] = icmp eq i8 [[V1]], 0
; NO-NEXT:    br i1 [[C1]], label [[FINAL_LEFT:%.*]], label [[FINAL_RIGHT]]
; NO:       common.ret:
; NO-NEXT:    ret void
; NO:       final_left:
; NO-NEXT:    call void @sideeffect0()
; NO-NEXT:    br label [[COMMON_RET:%.*]]
; NO:       final_right:
; NO-NEXT:    call void @sideeffect1()
; NO-NEXT:    br label [[COMMON_RET]]
;
pred:
  %c0 = icmp eq i8 %v0, 0
  br i1 %c0, label %dispatch, label %final_right
dispatch:
  %c1 = icmp eq i8 %v1, 0
  br i1 %c1, label %final_left, label %final_right
final_left:
  call void @sideeffect0()
  ret void
final_right:
  call void @sideeffect1()
  ret void
}

declare void @sideeffect0()
declare void @sideeffect1()
