; Simple test of non-fused compare/branch.

; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \
; RUN:   | FileCheck %s
; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \
; RUN:   | FileCheck --check-prefix=OPTM1 %s

define void @testBool(i32 %a, i32 %b) {
entry:
  %cmp = icmp slt i32 %a, %b
  %cmp1 = icmp sgt i32 %a, %b
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %cmp_ext = zext i1 %cmp to i32
  tail call void @use(i32 %cmp_ext)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  br i1 %cmp1, label %if.then5, label %if.end7

if.then5:                                         ; preds = %if.end
  %cmp1_ext = zext i1 %cmp1 to i32
  tail call void @use(i32 %cmp1_ext)
  br label %if.end7

if.end7:                                          ; preds = %if.then5, %if.end
  ret void
}

declare void @use(i32)

; CHECK-LABEL: testBool
; Two bool computations
; CHECK:      cmp
; CHECK:      cmp
; Test first bool
; CHECK:      cmp
; CHECK:      call
; Test second bool
; CHECK:      cmp
; CHECK:      call
; CHECK:      ret
;
; OPTM1-LABEL: testBool
; Two bool computations
; OPTM1:      cmp
; OPTM1:      cmp
; Test first bool
; OPTM1:      cmp
; OPTM1:      call
; Test second bool
; OPTM1:      cmp
; OPTM1:      call
; OPTM1:      ret
