; RUN: llc < %s -march=x86 -mattr=+cmov -x86-cmov-converter=false | FileCheck %s
;
; Test scheduling a multi-use compare. We should neither spill flags
; nor clone the compare.
; CHECK: cmp
; CHECK-NOT: pushf
; CHECK: cmov
; CHECK-NOT: cmp
; CHECK: cmov

	%struct.indexentry = type { i32, i8*, i8*, i8*, i8*, i8* }

define i32 @_bfd_stab_section_find_nearest_line(i32 %offset, i1 %cond) nounwind  {
entry:
	%tmp910 = add i32 0, %offset		; <i32> [#uses=1]
	br i1 %cond, label %bb951, label %bb917

bb917:		; preds = %entry
	ret i32 0

bb951:		; preds = %bb986, %entry
	%tmp955 = sdiv i32 %offset, 2		; <i32> [#uses=3]
	%tmp961 = getelementptr %struct.indexentry, %struct.indexentry* null, i32 %tmp955, i32 0		; <i32*> [#uses=1]
	br i1 %cond, label %bb986, label %bb967

bb967:		; preds = %bb951
	ret i32 0

bb986:		; preds = %bb951
	%tmp993 = load i32, i32* %tmp961, align 4		; <i32> [#uses=1]
	%tmp995 = icmp ugt i32 %tmp993, %tmp910		; <i1> [#uses=2]
	%tmp1002 = add i32 %tmp955, 1		; <i32> [#uses=1]
	%low.0 = select i1 %tmp995, i32 0, i32 %tmp1002		; <i32> [#uses=1]
	%high.0 = select i1 %tmp995, i32 %tmp955, i32 0		; <i32> [#uses=1]
	%tmp1006 = icmp eq i32 %low.0, %high.0		; <i1> [#uses=1]
	br i1 %tmp1006, label %UnifiedReturnBlock, label %bb951

UnifiedReturnBlock:		; preds = %bb986
	ret i32 1
}
