; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -global-isel=1 -global-isel-abort=1 | FileCheck %s

; Issue #120029
define i16 @use_carry_bit(i16 %2) {
; CHECK-LABEL: use_carry_bit:
; CHECK:       # %bb.0:
; CHECK-NEXT:    movw $1, %ax
; CHECK-NEXT:    xorl %ecx, %ecx
; CHECK-NEXT:    addw %di, %ax
; CHECK-NEXT:    setb %cl
; CHECK-NEXT:    andl $1, %ecx
; CHECK-NEXT:    cmovnew %di, %ax
; CHECK-NEXT:    retq
  %uadd = call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %2, i16 1)
  %res = extractvalue { i16, i1 } %uadd, 0
  %carry = extractvalue { i16, i1 } %uadd, 1
  %ret = select i1 %carry, i16 %2, i16 %res
  ret i16 %ret
}

