; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=i686-linux | FileCheck %s

@ok = internal constant [4 x i8] c"%d\0A\00"
@no = internal constant [4 x i8] c"no\0A\00"

define i1 @func1(i32 %v1, i32 %v2) nounwind {
; CHECK-LABEL: func1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    subl $12, %esp
; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT:    subl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT:    jno .LBB0_1
; CHECK-NEXT:  # %bb.2: # %overflow
; CHECK-NEXT:    movl $no, (%esp)
; CHECK-NEXT:    calll printf@PLT
; CHECK-NEXT:    xorl %eax, %eax
; CHECK-NEXT:    addl $12, %esp
; CHECK-NEXT:    retl
; CHECK-NEXT:  .LBB0_1: # %normal
; CHECK-NEXT:    movl %eax, {{[0-9]+}}(%esp)
; CHECK-NEXT:    movl $ok, (%esp)
; CHECK-NEXT:    calll printf@PLT
; CHECK-NEXT:    movb $1, %al
; CHECK-NEXT:    addl $12, %esp
; CHECK-NEXT:    retl
entry:
  %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %v1, i32 %v2)
  %sum = extractvalue {i32, i1} %t, 0
  %obit = extractvalue {i32, i1} %t, 1
  br i1 %obit, label %overflow, label %normal

normal:
  %t1 = tail call i32 (ptr, ...) @printf( ptr @ok, i32 %sum ) nounwind
  ret i1 true

overflow:
  %t2 = tail call i32 (ptr, ...) @printf( ptr @no ) nounwind
  ret i1 false

}

define i1 @func2(i32 %v1, i32 %v2) nounwind {
; CHECK-LABEL: func2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    subl $12, %esp
; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT:    subl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT:    jae .LBB1_1
; CHECK-NEXT:  # %bb.2: # %carry
; CHECK-NEXT:    movl $no, (%esp)
; CHECK-NEXT:    calll printf@PLT
; CHECK-NEXT:    xorl %eax, %eax
; CHECK-NEXT:    addl $12, %esp
; CHECK-NEXT:    retl
; CHECK-NEXT:  .LBB1_1: # %normal
; CHECK-NEXT:    movl %eax, {{[0-9]+}}(%esp)
; CHECK-NEXT:    movl $ok, (%esp)
; CHECK-NEXT:    calll printf@PLT
; CHECK-NEXT:    movb $1, %al
; CHECK-NEXT:    addl $12, %esp
; CHECK-NEXT:    retl
entry:
  %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %v1, i32 %v2)
  %sum = extractvalue {i32, i1} %t, 0
  %obit = extractvalue {i32, i1} %t, 1
  br i1 %obit, label %carry, label %normal

normal:
  %t1 = tail call i32 (ptr, ...) @printf( ptr @ok, i32 %sum ) nounwind
  ret i1 true

carry:
  %t2 = tail call i32 (ptr, ...) @printf( ptr @no ) nounwind
  ret i1 false

}

declare i32 @printf(ptr, ...) nounwind
declare {i32, i1} @llvm.ssub.with.overflow.i32(i32, i32)
declare {i32, i1} @llvm.usub.with.overflow.i32(i32, i32)

define i1 @func3(i32 %x) nounwind {
; CHECK-LABEL: func3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT:    decl %eax
; CHECK-NEXT:    seto %al
; CHECK-NEXT:    retl
entry:
  %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %x, i32 1)
  %obit = extractvalue {i32, i1} %t, 1
  ret i1 %obit

}
