47 lines · plain
1; RUN: llc %s -mtriple=armv7-linux-gnueabi -o - | \2; RUN: FileCheck -check-prefix=ELFASM %s 3; RUN: llc %s -mtriple=armv7-linux-gnueabi -filetype=obj -o - | \4; RUN: llvm-readobj -S --sd - | FileCheck -check-prefix=ELFOBJ %s5 6;; Make sure that bl __aeabi_read_tp is materialized and fixed up correctly7;; in the obj case. 8 9@i = external thread_local global i3210@a = external global i811@b = external global [10 x i8]12 13define arm_aapcs_vfpcc i32 @main() nounwind {14entry:15 %0 = load i32, ptr @i, align 416 switch i32 %0, label %bb2 [17 i32 12, label %bb18 i32 13, label %bb119 ]20 21bb: ; preds = %entry22 %1 = tail call arm_aapcs_vfpcc i32 @foo(ptr @a) nounwind23 ret i32 %124; ELFASM: bl __aeabi_read_tp25 26 27; ELFOBJ: Sections [28; ELFOBJ: Section {29; ELFOBJ: Name: .text30; ELFOBJ: SectionData (31;;; BL __aeabi_read_tp is ---------+32;;; V33; ELFOBJ-NEXT: 0000: 00482DE9 3C009FE5 00109FE7 FEFFFFEB34 35 36bb1: ; preds = %entry37 %2 = tail call arm_aapcs_vfpcc i32 @bar(ptr @b) nounwind38 ret i32 %239 40bb2: ; preds = %entry41 ret i32 -142}43 44declare arm_aapcs_vfpcc i32 @foo(ptr)45 46declare arm_aapcs_vfpcc i32 @bar(ptr)47