Compiler projects using llvm
; RUN: llc -mtriple thumbv7--windows-itanium -filetype asm -o - %s | FileCheck %s

declare void @llvm.trap()
declare arm_aapcs_vfpcc zeroext i1 @g()

define arm_aapcs_vfpcc i8* @f() {
entry:
  %call = tail call arm_aapcs_vfpcc zeroext i1 @g()
  br i1 %call, label %if.then, label %if.end

if.then:
  ret i8* bitcast (i1 ()* @g to i8*)

if.end:
  tail call void @llvm.trap()
  unreachable
}

; CHECK: push.w {r11, lr}
; CHECK: bl g
; CHECK: movw [[REG:r[0-9]+]], :lower16:g
; CHECK: movt [[REG]], :upper16:g
; CHECK: pop.w {r11, pc}