1; RUN: llc < %s -mtriple x86_64-apple-darwin -mcpu=core2 | FileCheck %s 2 3%struct.A = type { [48 x i8], i32, i32, i32 } 4 5@c = external thread_local global %struct.A, align 4 6 7define void @main() nounwind ssp { 8entry: 9 call void @llvm.memset.p0i8.i64(i8* getelementptr inbounds (%struct.A* @c, i32 0, i32 0, i32 0), i8 0, i64 60, i32 1, i1 false) 10 unreachable 11 ; CHECK: movq _c@TLVP(%rip), %rdi 12 ; CHECK-NEXT: callq *(%rdi) 13 ; CHECK-NEXT: movl $0, 56(%rax) 14 ; CHECK-NEXT: movq $0, 48(%rax) 15} 16 17declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind 18 19@a = thread_local global i32 0 ; <i32*> [#uses=0] 20@b = thread_local global i32 0 ; <i32*> [#uses=0] 21 22; CHECK: .tbss _a$tlv$init, 4, 2 23; CHECK: .section __DATA,__thread_vars,thread_local_variables 24; CHECK: .globl _a 25; CHECK: _a: 26; CHECK: .quad __tlv_bootstrap 27; CHECK: .quad 0 28; CHECK: .quad _a$tlv$init 29 30; CHECK: .tbss _b$tlv$init, 4, 2 31; CHECK: .globl _b 32; CHECK: _b: 33; CHECK: .quad __tlv_bootstrap 34; CHECK: .quad 0 35; CHECK: .quad _b$tlv$init 36