blob: 0df16da1356226147fd848bcaa2b1e2f29e9c374 [file] [log] [blame]
Yaxun Liu8f844f32017-02-07 00:43:21 +00001;RUN: llc < %s -march=amdgcn -verify-machineinstrs | FileCheck %s
2
3%struct.S = type { i32*, i32 addrspace(1)*, i32 addrspace(2)*, i32 addrspace(3)*, i32 addrspace(4)*, i32 addrspace(5)*}
4
5; CHECK-LABEL: nullptr_priv:
Matt Arsenault971c85e2017-03-13 19:47:31 +00006; CHECK-NEXT: .long 0
Yaxun Liu8f844f32017-02-07 00:43:21 +00007@nullptr_priv = global i32* addrspacecast (i32 addrspace(4)* null to i32*)
8
9; CHECK-LABEL: nullptr_glob:
10; CHECK-NEXT: .quad 0
11@nullptr_glob = global i32 addrspace(1)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(1)*)
12
13; CHECK-LABEL: nullptr_const:
14; CHECK-NEXT: .quad 0
15@nullptr_const = global i32 addrspace(2)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(2)*)
16
17; CHECK-LABEL: nullptr_local:
18; CHECK-NEXT: .long -1
19@nullptr_local = global i32 addrspace(3)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(3)*)
20
21; CHECK-LABEL: nullptr_region:
22; CHECK-NEXT: .long -1
23@nullptr_region = global i32 addrspace(5)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(5)*)
24
25; CHECK-LABEL: nullptr6:
26; CHECK-NEXT: .long 0
27@nullptr6 = global i32 addrspace(6)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(6)*)
28
29; CHECK-LABEL: nullptr7:
30; CHECK-NEXT: .long 0
31@nullptr7 = global i32 addrspace(7)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(7)*)
32
33; CHECK-LABEL: nullptr8:
34; CHECK-NEXT: .long 0
35@nullptr8 = global i32 addrspace(8)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(8)*)
36
37; CHECK-LABEL: nullptr9:
38; CHECK-NEXT: .long 0
39@nullptr9 = global i32 addrspace(9)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(9)*)
40
41; CHECK-LABEL: nullptr10:
42; CHECK-NEXT: .long 0
43@nullptr10 = global i32 addrspace(10)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(10)*)
44
45; CHECK-LABEL: nullptr11:
46; CHECK-NEXT: .long 0
47@nullptr11 = global i32 addrspace(11)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(11)*)
48
49; CHECK-LABEL: nullptr12:
50; CHECK-NEXT: .long 0
51@nullptr12 = global i32 addrspace(12)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(12)*)
52
53; CHECK-LABEL: nullptr13:
54; CHECK-NEXT: .long 0
55@nullptr13 = global i32 addrspace(13)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(13)*)
56
57; CHECK-LABEL: nullptr14:
58; CHECK-NEXT: .long 0
59@nullptr14 = global i32 addrspace(14)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(14)*)
60
61; CHECK-LABEL: nullptr15:
62; CHECK-NEXT: .long 0
63@nullptr15 = global i32 addrspace(15)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(15)*)
64
65; CHECK-LABEL: nullptr16:
66; CHECK-NEXT: .long 0
67@nullptr16 = global i32 addrspace(16)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(16)*)
68
69; CHECK-LABEL: nullptr17:
70; CHECK-NEXT: .long 0
71@nullptr17 = global i32 addrspace(17)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(17)*)
72
73; CHECK-LABEL: nullptr18:
74; CHECK-NEXT: .long 0
75@nullptr18 = global i32 addrspace(18)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(18)*)
76
77; CHECK-LABEL: nullptr19:
78; CHECK-NEXT: .long 0
79@nullptr19 = global i32 addrspace(19)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(19)*)
80
81; CHECK-LABEL: nullptr20:
82; CHECK-NEXT: .long 0
83@nullptr20 = global i32 addrspace(20)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(20)*)
84
85; CHECK-LABEL: nullptr21:
86; CHECK-NEXT: .long 0
87@nullptr21 = global i32 addrspace(21)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(21)*)
88
89; CHECK-LABEL: nullptr22:
90; CHECK-NEXT: .long 0
91@nullptr22 = global i32 addrspace(22)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(22)*)
92
93; CHECK-LABEL: nullptr23:
94; CHECK-NEXT: .long 0
95@nullptr23 = global i32 addrspace(23)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(23)*)
96
97; CHECK-LABEL: structWithPointers:
Matt Arsenault971c85e2017-03-13 19:47:31 +000098; CHECK-NEXT: .long 0
Yaxun Liu8f844f32017-02-07 00:43:21 +000099; CHECK-NEXT: .zero 4
100; CHECK-NEXT: .quad 0
101; CHECK-NEXT: .quad 0
102; CHECK-NEXT: .long -1
103; CHECK-NEXT: .zero 4
104; CHECK-NEXT: .quad 0
105; CHECK-NEXT: .long -1
106; CHECK-NEXT: .zero 4
107@structWithPointers = addrspace(1) global %struct.S {
108 i32* addrspacecast (i32 addrspace(4)* null to i32*),
109 i32 addrspace(1)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(1)*),
110 i32 addrspace(2)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(2)*),
111 i32 addrspace(3)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(3)*),
112 i32 addrspace(4)* null,
113 i32 addrspace(5)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(5)*)}, align 4