1; RUN: llc < %s -mtriple=x86_64-apple-darwin -o %t1
2; RUN: grep GOTPCREL %t1 | count 4
3; RUN: grep %%rip      %t1 | count 6
4; RUN: grep movq     %t1 | count 6
5; RUN: grep leaq     %t1 | count 1
6; RUN: llc < %s -mtriple=x86_64-pc-linux -relocation-model=static -o %t2
7; RUN: grep movl %t2 | count 2
8; RUN: grep movq %t2 | count 2
9
10@ptr = external global i32*		; <i32**> [#uses=1]
11@src = external global [0 x i32]		; <[0 x i32]*> [#uses=1]
12@dst = external global [0 x i32]		; <[0 x i32]*> [#uses=1]
13@lptr = internal global i32* null		; <i32**> [#uses=1]
14@ldst = internal global [500 x i32] zeroinitializer, align 32		; <[500 x i32]*> [#uses=1]
15@lsrc = internal global [500 x i32] zeroinitializer, align 32		; <[500 x i32]*> [#uses=0]
16@bsrc = internal global [500000 x i32] zeroinitializer, align 32		; <[500000 x i32]*> [#uses=0]
17@bdst = internal global [500000 x i32] zeroinitializer, align 32		; <[500000 x i32]*> [#uses=0]
18
19define void @test1() nounwind {
20	%tmp = load i32* getelementptr ([0 x i32]* @src, i32 0, i32 0)		; <i32> [#uses=1]
21	store i32 %tmp, i32* getelementptr ([0 x i32]* @dst, i32 0, i32 0)
22	ret void
23}
24
25define void @test2() nounwind {
26	store i32* getelementptr ([0 x i32]* @dst, i32 0, i32 0), i32** @ptr
27	ret void
28}
29
30define void @test3() nounwind {
31	store i32* getelementptr ([500 x i32]* @ldst, i32 0, i32 0), i32** @lptr
32	br label %return
33
34return:		; preds = %0
35	ret void
36}
37