Compiler projects using llvm
; RUN: llc -O0 < %s | FileCheck %s

; For noreturn function with StackAlignment 8 (function contains call/alloc),
; check that lr is saved to keep the stack aligned.
; CHECK: push    {lr}

target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv5e-none-linux-gnueabi"

define dso_local i32 @f() noreturn nounwind {
entry:
  call i32 @llvm.arm.space(i32 2048, i32 undef)
  tail call i32 @exit(i32 0)
  unreachable
}

declare i32 @llvm.arm.space(i32, i32)
declare dso_local i32 @exit(i32)