; RUN: opt -early-cse -S < %s | FileCheck %s

; Can we CSE a known condition to a constant?
define i1 @test(i8* %p) {
; CHECK-LABEL: @test
entry:
  %cnd1 = icmp eq i8* %p, null
  br i1 %cnd1, label %taken, label %untaken

taken:
; CHECK-LABEL: taken:
; CHECK-NEXT: ret i1 true
  %cnd2 = icmp eq i8* %p, null
  ret i1 %cnd2

untaken:
; CHECK-LABEL: untaken:
; CHECK-NEXT: ret i1 false
  %cnd3 = icmp eq i8* %p, null
  ret i1 %cnd3
}

; We can CSE the condition, but we *don't* know it's value after the merge
define i1 @test_neg1(i8* %p) {
; CHECK-LABEL: @test_neg1
entry:
  %cnd1 = icmp eq i8* %p, null
  br i1 %cnd1, label %taken, label %untaken

taken:
  br label %merge

untaken:
  br label %merge

merge:
; CHECK-LABEL: merge:
; CHECK-NEXT: ret i1 %cnd1
  %cnd3 = icmp eq i8* %p, null
  ret i1 %cnd3
}

; Check specifically for a case where we have a unique predecessor, but
; not a single predecessor.  We can not know the value of the condition here.
define i1 @test_neg2(i8* %p) {
; CHECK-LABEL: @test_neg2
entry:
  %cnd1 = icmp eq i8* %p, null
  br i1 %cnd1, label %merge, label %merge

merge:
; CHECK-LABEL: merge:
; CHECK-NEXT: ret i1 %cnd1
  %cnd3 = icmp eq i8* %p, null
  ret i1 %cnd3
}

; Replace a use rather than CSE
define i1 @test2(i8* %p) {
; CHECK-LABEL: @test2
entry:
  %cnd = icmp eq i8* %p, null
  br i1 %cnd, label %taken, label %untaken

taken:
; CHECK-LABEL: taken:
; CHECK-NEXT: ret i1 true
  ret i1 %cnd

untaken:
; CHECK-LABEL: untaken:
; CHECK-NEXT: ret i1 false
  ret i1 %cnd
}

; Not legal to replace use given it's not dominated by edge
define i1 @test2_neg1(i8* %p) {
; CHECK-LABEL: @test2_neg1
entry:
  %cnd1 = icmp eq i8* %p, null
  br i1 %cnd1, label %taken, label %untaken

taken:
  br label %merge

untaken:
  br label %merge

merge:
; CHECK-LABEL: merge:
; CHECK-NEXT: ret i1 %cnd1
  ret i1 %cnd1
}

; Another single predecessor test, but for dominated use
define i1 @test2_neg2(i8* %p) {
; CHECK-LABEL: @test2_neg2
entry:
  %cnd1 = icmp eq i8* %p, null
  br i1 %cnd1, label %merge, label %merge

merge:
; CHECK-LABEL: merge:
; CHECK-NEXT: ret i1 %cnd1
  ret i1 %cnd1
}

