; 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 }