37 lines · plain
1; RUN: llc -mtriple=x86_64-unknown-unknown -code-model=large < %s | FileCheck %s2 3; In large code model indirect branches are needed when branching to addresses4; whose offset from the current instruction pointer is unknown.5;CHECK-COUNT-3: endbr6 7@a = dso_local local_unnamed_addr global i32 1, align 48 9; Function Attrs: nofree noinline norecurse nounwind uwtable writeonly10define dso_local void @ext() local_unnamed_addr #0 {11entry:12 store i32 0, ptr @a, align 413 ret void14}15 16; Function Attrs: nofree norecurse nounwind uwtable17define dso_local i32 @main() local_unnamed_addr #1 {18entry:19 tail call fastcc void @foo()20 %0 = load i32, ptr @a, align 421 ret i32 %022}23 24; Function Attrs: nofree noinline norecurse nounwind uwtable writeonly25define internal fastcc void @foo() unnamed_addr #0 {26entry:27 tail call void @ext()28 ret void29}30 31!llvm.module.flags = !{!0, !1, !2, !3}32 33!0 = !{i32 1, !"wchar_size", i32 4}34!1 = !{i32 8, !"cf-protection-return", i32 1}35!2 = !{i32 8, !"cf-protection-branch", i32 1}36!3 = !{i32 1, !"Code Model", i32 4}37