xref: /llvm-project/llvm/test/MC/ARM/arm-thumb-tail-call.ll (revision 98a4289810ba49cea6f9a9be6d902e72f0c0d0e7)
19afd9d92SFlorian Hahn; RUN: llc -O0 < %s -mtriple armv7-linux-gnueabi -o - \
29afd9d92SFlorian Hahn; RUN:   | llvm-mc -triple armv7-linux-gnueabi -filetype=obj -o - \
3b36a3e61SElvina Yakubova; RUN:    | llvm-readobj -r - | FileCheck %s
49afd9d92SFlorian Hahn
59afd9d92SFlorian Hahntarget datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
69afd9d92SFlorian Hahntarget triple = "armv7--linux-gnueabihf"
79afd9d92SFlorian Hahn
89afd9d92SFlorian Hahndefine internal i32 @arm_fn() #1 {
99afd9d92SFlorian Hahn  %1 = tail call i32 @thumb_fn()
109afd9d92SFlorian Hahn  ret i32 %1
119afd9d92SFlorian Hahn}
129afd9d92SFlorian Hahn
139afd9d92SFlorian Hahndefine internal i32 @thumb_fn() #2 {
149afd9d92SFlorian Hahn  %1 = tail call i32 @arm_fn()
159afd9d92SFlorian Hahn  ret i32 %1
169afd9d92SFlorian Hahn}
179afd9d92SFlorian Hahn
189afd9d92SFlorian Hahnattributes #1 = { "target-features"="-thumb-mode" }
199afd9d92SFlorian Hahnattributes #2 = { "target-features"="+thumb-mode" }
209afd9d92SFlorian Hahn
219afd9d92SFlorian Hahn; CHECK: Relocations [
229afd9d92SFlorian Hahn; CHECK-NEXT: Section (3) .rel.text {
23*98a42898SGeorgii Rymar; CHECK-NEXT: 0x0 R_ARM_JUMP24 thumb_fn
24*98a42898SGeorgii Rymar; CHECK-NEXT: 0x4 R_ARM_THM_JUMP24 arm_fn
259afd9d92SFlorian Hahn; CHECK-NEXT: }
26