; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -O2 -mtriple armv7a < %s | FileCheck --check-prefixes=ARM,ARMV7A %s

; RUN: llc -O2 -mtriple thumbv6m < %s | FileCheck --check-prefixes=THUMB1,THUMBV6M %s
; RUN: llc -O2 -mtriple thumbv8m.base < %s | FileCheck --check-prefixes=THUMB1,THUMBV8M-BASE %s

; RUN: llc -O2 -mtriple thumbv7a < %s | FileCheck --check-prefixes=THUMB,THUMBV7A %s
; RUN: llc -O2 -mtriple thumbv8m.main < %s | FileCheck --check-prefixes=THUMB,THUMBV8M-MAIN %s

define void @fn1(i32 %a, i32 %b, i32 %c) local_unnamed_addr #0 {
; ARM-LABEL: fn1:
; ARM:       @ %bb.0: @ %entry
; ARM-NEXT:    adds r0, r1, r0
; ARM-NEXT:    mov r3, #0
; ARM-NEXT:    adc r0, r3, #0
; ARM-NEXT:    movw r1, #65535
; ARM-NEXT:    sub r0, r0, r2
; ARM-NEXT:    uxth r0, r0
; ARM-NEXT:    cmp r0, r1
; ARM-NEXT:    bxeq lr
; ARM-NEXT:  .LBB0_1: @ %for.cond
; ARM-NEXT:    @ =>This Inner Loop Header: Depth=1
; ARM-NEXT:    b .LBB0_1
;
; THUMBV6M-LABEL: fn1:
; THUMBV6M:       @ %bb.0: @ %entry
; THUMBV6M-NEXT:    movs r3, #0
; THUMBV6M-NEXT:    adds r0, r1, r0
; THUMBV6M-NEXT:    adcs r3, r3
; THUMBV6M-NEXT:    subs r0, r3, r2
; THUMBV6M-NEXT:    uxth r0, r0
; THUMBV6M-NEXT:    ldr r1, .LCPI0_0
; THUMBV6M-NEXT:    cmp r0, r1
; THUMBV6M-NEXT:    beq .LBB0_2
; THUMBV6M-NEXT:  .LBB0_1: @ %for.cond
; THUMBV6M-NEXT:    @ =>This Inner Loop Header: Depth=1
; THUMBV6M-NEXT:    b .LBB0_1
; THUMBV6M-NEXT:  .LBB0_2: @ %if.end
; THUMBV6M-NEXT:    bx lr
; THUMBV6M-NEXT:    .p2align 2
; THUMBV6M-NEXT:  @ %bb.3:
; THUMBV6M-NEXT:  .LCPI0_0:
; THUMBV6M-NEXT:    .long 65535 @ 0xffff
;
; THUMBV8M-BASE-LABEL: fn1:
; THUMBV8M-BASE:       @ %bb.0: @ %entry
; THUMBV8M-BASE-NEXT:    movs r3, #0
; THUMBV8M-BASE-NEXT:    adds r0, r1, r0
; THUMBV8M-BASE-NEXT:    adcs r3, r3
; THUMBV8M-BASE-NEXT:    subs r0, r3, r2
; THUMBV8M-BASE-NEXT:    uxth r0, r0
; THUMBV8M-BASE-NEXT:    movw r1, #65535
; THUMBV8M-BASE-NEXT:    cmp r0, r1
; THUMBV8M-BASE-NEXT:    beq .LBB0_2
; THUMBV8M-BASE-NEXT:  .LBB0_1: @ %for.cond
; THUMBV8M-BASE-NEXT:    @ =>This Inner Loop Header: Depth=1
; THUMBV8M-BASE-NEXT:    b .LBB0_1
; THUMBV8M-BASE-NEXT:  .LBB0_2: @ %if.end
; THUMBV8M-BASE-NEXT:    bx lr
;
; THUMB-LABEL: fn1:
; THUMB:       @ %bb.0: @ %entry
; THUMB-NEXT:    adds r0, r0, r1
; THUMB-NEXT:    mov.w r3, #0
; THUMB-NEXT:    adc r0, r3, #0
; THUMB-NEXT:    movw r1, #65535
; THUMB-NEXT:    subs r0, r0, r2
; THUMB-NEXT:    uxth r0, r0
; THUMB-NEXT:    cmp r0, r1
; THUMB-NEXT:    it eq
; THUMB-NEXT:    bxeq lr
; THUMB-NEXT:  .LBB0_1: @ %for.cond
; THUMB-NEXT:    @ =>This Inner Loop Header: Depth=1
; THUMB-NEXT:    b .LBB0_1
entry:
  %add = add i32 %b, %a
  %cmp = icmp ult i32 %add, %b
  %conv = zext i1 %cmp to i32
  %sub = sub i32 1, %c
  %add1 = add i32 %sub, %conv
  %conv2 = trunc i32 %add1 to i16
  %tobool = icmp eq i16 %conv2, 0
  br i1 %tobool, label %if.end, label %for.cond.preheader

for.cond.preheader:                               ; preds = %entry
  br label %for.cond

for.cond:                                         ; preds = %for.cond.preheader, %for.cond
  br label %for.cond

if.end:                                           ; preds = %entry
  ret void
}
