xref: /llvm-project/llvm/test/CodeGen/AMDGPU/nullptr.ll (revision 2cbfe4a823020b2efe53d32ad7eccbc5a037943f)
1;RUN: llc < %s -mtriple=amdgcn-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,GCN %s
2;RUN: llc < %s -mtriple=r600-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,R600 %s
3
4%struct.S = type { ptr addrspace(5), ptr addrspace(1), ptr addrspace(4), ptr addrspace(3), ptr, ptr addrspace(2)}
5
6; CHECK-LABEL: nullptr_priv:
7; CHECK-NEXT: .long -1
8@nullptr_priv = global ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5))
9
10; CHECK-LABEL: nullptr_glob:
11; GCN-NEXT: .quad 0
12; R600-NEXT: .long 0
13@nullptr_glob = global ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1))
14
15; CHECK-LABEL: nullptr_const:
16; GCN-NEXT: .quad 0
17; R600-NEXT: .long 0
18@nullptr_const = global ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4))
19
20; CHECK-LABEL: nullptr_local:
21; CHECK-NEXT: .long -1
22@nullptr_local = global ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3))
23
24; CHECK-LABEL: nullptr_region:
25; CHECK-NEXT: .long -1
26@nullptr_region = global ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2))
27
28; CHECK-LABEL: nullptr6:
29; R600-NEXT: .long 0
30@nullptr6 = global ptr addrspace(6) addrspacecast (ptr null to ptr addrspace(6))
31
32; FIXME: AsmPrinter can't handle 128-bit constants
33; FIXME-LABEL: nullptr7:
34; FIXME-R600-NEXT: .long 0
35; FIXME @nullptr7 = global ptr addrspace(7) addrspacecast (ptr null to ptr addrspace(7))
36
37; FIXME-LABEL: nullptr8:
38; FIXME-R600-NEXT: .long 0
39; FIXME @nullptr8 = global ptr addrspace(8) addrspacecast (ptr null to ptr addrspace(8))
40
41; FIXME-LABEL: nullptr9:
42; FIXME-R600-NEXT: .long 0
43; FIXME @nullptr9 = global ptr addrspace(9) addrspacecast (ptr null to ptr addrspace(9))
44
45; CHECK-LABEL: nullptr10:
46; R600-NEXT: .long 0
47@nullptr10 = global ptr addrspace(10) addrspacecast (ptr null to ptr addrspace(10))
48
49; CHECK-LABEL: nullptr11:
50; R600-NEXT: .long 0
51@nullptr11 = global ptr addrspace(11) addrspacecast (ptr null to ptr addrspace(11))
52
53; CHECK-LABEL: nullptr12:
54; R600-NEXT: .long 0
55@nullptr12 = global ptr addrspace(12) addrspacecast (ptr null to ptr addrspace(12))
56
57; CHECK-LABEL: nullptr13:
58; R600-NEXT: .long 0
59@nullptr13 = global ptr addrspace(13) addrspacecast (ptr null to ptr addrspace(13))
60
61; CHECK-LABEL: nullptr14:
62; R600-NEXT: .long 0
63@nullptr14 = global ptr addrspace(14) addrspacecast (ptr null to ptr addrspace(14))
64
65; CHECK-LABEL: nullptr15:
66; R600-NEXT: .long 0
67@nullptr15 = global ptr addrspace(15) addrspacecast (ptr null to ptr addrspace(15))
68
69; CHECK-LABEL: nullptr16:
70; R600-NEXT: .long 0
71@nullptr16 = global ptr addrspace(16) addrspacecast (ptr null to ptr addrspace(16))
72
73; CHECK-LABEL: nullptr17:
74; R600-NEXT: .long 0
75@nullptr17 = global ptr addrspace(17) addrspacecast (ptr null to ptr addrspace(17))
76
77; CHECK-LABEL: nullptr18:
78; R600-NEXT: .long 0
79@nullptr18 = global ptr addrspace(18) addrspacecast (ptr null to ptr addrspace(18))
80
81; CHECK-LABEL: nullptr19:
82; R600-NEXT: .long 0
83@nullptr19 = global ptr addrspace(19) addrspacecast (ptr null to ptr addrspace(19))
84
85; CHECK-LABEL: nullptr20:
86; R600-NEXT: .long 0
87@nullptr20 = global ptr addrspace(20) addrspacecast (ptr null to ptr addrspace(20))
88
89; CHECK-LABEL: nullptr21:
90; R600-NEXT: .long 0
91@nullptr21 = global ptr addrspace(21) addrspacecast (ptr null to ptr addrspace(21))
92
93; CHECK-LABEL: nullptr22:
94; R600-NEXT: .long 0
95@nullptr22 = global ptr addrspace(22) addrspacecast (ptr null to ptr addrspace(22))
96
97; CHECK-LABEL: nullptr23:
98; R600-NEXT: .long 0
99@nullptr23 = global ptr addrspace(23) addrspacecast (ptr null to ptr addrspace(23))
100
101; CHECK-LABEL: structWithPointers:
102; CHECK-NEXT: .long -1
103; GCN-NEXT:   .zero 4
104; GCN-NEXT:   .quad 0
105; R600-NEXT:  .long 0
106; GCN-NEXT:   .quad 0
107; R600-NEXT:  .long 0
108; CHECK-NEXT: .long -1
109; GCN-NEXT:   .zero 4
110; GCN-NEXT:   .quad 0
111; R600-NEXT:  .long 0
112; CHECK-NEXT: .long -1
113; GCN-NEXT:   .zero 4
114@structWithPointers = addrspace(1) global %struct.S {
115  ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5)),
116  ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)),
117  ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4)),
118  ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3)),
119  ptr null,
120  ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2))}, align 4
121