1; RUN: llc < %s -march=xcore -mcpu=xs1b-generic | FileCheck %s
2
3define i32 *@addr_G1() {
4entry:
5; CHECK-LABEL: addr_G1:
6; CHECK: ldaw r0, dp[G1]
7	ret i32* @G1
8}
9
10define i32 *@addr_G2() {
11entry:
12; CHECK-LABEL: addr_G2:
13; CHECK: ldaw r0, dp[G2]
14	ret i32* @G2
15}
16
17define i32 *@addr_G3() {
18entry:
19; CHECK-LABEL: addr_G3:
20; CHECK: ldaw r11, cp[G3]
21; CHECK: mov r0, r11
22	ret i32* @G3
23}
24
25define i32 **@addr_G4() {
26entry:
27; CHECK-LABEL: addr_G4:
28; CHECK: ldaw r0, dp[G4]
29	ret i32** @G4
30}
31
32define i32 **@addr_G5() {
33entry:
34; CHECK-LABEL: addr_G5:
35; CHECK: ldaw r11, cp[G5]
36; CHECK: mov r0, r11
37	ret i32** @G5
38}
39
40define i32 **@addr_G6() {
41entry:
42; CHECK-LABEL: addr_G6:
43; CHECK: ldaw r0, dp[G6]
44	ret i32** @G6
45}
46
47define i32 **@addr_G7() {
48entry:
49; CHECK-LABEL: addr_G7:
50; CHECK: ldaw r11, cp[G7]
51; CHECK: mov r0, r11
52	ret i32** @G7
53}
54
55define i32 *@addr_G8() {
56entry:
57; CHECK-LABEL: addr_G8:
58; CHECK: ldaw r0, dp[G8]
59	ret i32* @G8
60}
61
62@G1 = global i32 4712
63; CHECK: .section .dp.data,"awd",@progbits
64; CHECK: G1:
65
66@G2 = global i32 0
67; CHECK: .section .dp.bss,"awd",@nobits
68; CHECK: G2:
69
70@G3 = unnamed_addr constant i32 9401
71; CHECK: .section .cp.rodata.cst4,"aMc",@progbits,4
72; CHECK: G3:
73
74@G4 = global i32* @G1
75; CHECK: .section .dp.data,"awd",@progbits
76; CHECK: G4:
77
78@G5 = unnamed_addr constant i32* @G1
79; CHECK: .section .cp.rodata,"ac",@progbits
80; CHECK: G5:
81
82@G6 = global i32* @G8
83; CHECK: .section .dp.data,"awd",@progbits
84; CHECK: G6:
85
86@G7 = unnamed_addr constant i32* @G8
87; CHECK: .section .cp.rodata,"ac",@progbits
88; CHECK: G7:
89
90@G8 = internal global i32 9312
91; CHECK: .section .dp.data,"awd",@progbits
92; CHECK: G8:
93
94@array = global [10 x i16] zeroinitializer, align 2
95; CHECK: .globl  array.globound
96; CHECK:  array.globound = 10
97