1; RUN: llc -mtriple=x86_64-unknown-unknown -code-model=large < %s | FileCheck %s 2 3; In large code model indirect branches are needed when branching to addresses 4; whose offset from the current instruction pointer is unknown. 5;CHECK-COUNT-3: endbr 6 7@a = dso_local local_unnamed_addr global i32 1, align 4 8 9; Function Attrs: nofree noinline norecurse nounwind uwtable writeonly 10define dso_local void @ext() local_unnamed_addr #0 { 11entry: 12 store i32 0, ptr @a, align 4 13 ret void 14} 15 16; Function Attrs: nofree norecurse nounwind uwtable 17define dso_local i32 @main() local_unnamed_addr #1 { 18entry: 19 tail call fastcc void @foo() 20 %0 = load i32, ptr @a, align 4 21 ret i32 %0 22} 23 24; Function Attrs: nofree noinline norecurse nounwind uwtable writeonly 25define internal fastcc void @foo() unnamed_addr #0 { 26entry: 27 tail call void @ext() 28 ret void 29} 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