summaryrefslogtreecommitdiff
path: root/test/CodeGen/AMDGPU/nullptr.ll
blob: 0df16da1356226147fd848bcaa2b1e2f29e9c374 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
;RUN: llc < %s -march=amdgcn -verify-machineinstrs | FileCheck %s

%struct.S = type { i32*, i32 addrspace(1)*, i32 addrspace(2)*, i32 addrspace(3)*, i32 addrspace(4)*, i32 addrspace(5)*}

; CHECK-LABEL: nullptr_priv:
; CHECK-NEXT: .long 0
@nullptr_priv = global i32* addrspacecast (i32 addrspace(4)* null to i32*)

; CHECK-LABEL: nullptr_glob:
; CHECK-NEXT: .quad 0
@nullptr_glob = global i32 addrspace(1)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(1)*)

; CHECK-LABEL: nullptr_const:
; CHECK-NEXT: .quad 0
@nullptr_const = global i32 addrspace(2)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(2)*)

; CHECK-LABEL: nullptr_local:
; CHECK-NEXT: .long -1
@nullptr_local = global i32 addrspace(3)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(3)*)

; CHECK-LABEL: nullptr_region:
; CHECK-NEXT: .long -1
@nullptr_region = global i32 addrspace(5)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(5)*)

; CHECK-LABEL: nullptr6:
; CHECK-NEXT: .long 0
@nullptr6 = global i32 addrspace(6)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(6)*)

; CHECK-LABEL: nullptr7:
; CHECK-NEXT: .long 0
@nullptr7 = global i32 addrspace(7)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(7)*)

; CHECK-LABEL: nullptr8:
; CHECK-NEXT: .long 0
@nullptr8 = global i32 addrspace(8)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(8)*)

; CHECK-LABEL: nullptr9:
; CHECK-NEXT: .long 0
@nullptr9 = global i32 addrspace(9)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(9)*)

; CHECK-LABEL: nullptr10:
; CHECK-NEXT: .long 0
@nullptr10 = global i32 addrspace(10)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(10)*)

; CHECK-LABEL: nullptr11:
; CHECK-NEXT: .long 0
@nullptr11 = global i32 addrspace(11)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(11)*)

; CHECK-LABEL: nullptr12:
; CHECK-NEXT: .long 0
@nullptr12 = global i32 addrspace(12)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(12)*)

; CHECK-LABEL: nullptr13:
; CHECK-NEXT: .long 0
@nullptr13 = global i32 addrspace(13)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(13)*)

; CHECK-LABEL: nullptr14:
; CHECK-NEXT: .long 0
@nullptr14 = global i32 addrspace(14)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(14)*)

; CHECK-LABEL: nullptr15:
; CHECK-NEXT: .long 0
@nullptr15 = global i32 addrspace(15)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(15)*)

; CHECK-LABEL: nullptr16:
; CHECK-NEXT: .long 0
@nullptr16 = global i32 addrspace(16)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(16)*)

; CHECK-LABEL: nullptr17:
; CHECK-NEXT: .long 0
@nullptr17 = global i32 addrspace(17)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(17)*)

; CHECK-LABEL: nullptr18:
; CHECK-NEXT: .long 0
@nullptr18 = global i32 addrspace(18)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(18)*)

; CHECK-LABEL: nullptr19:
; CHECK-NEXT: .long 0
@nullptr19 = global i32 addrspace(19)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(19)*)

; CHECK-LABEL: nullptr20:
; CHECK-NEXT: .long 0
@nullptr20 = global i32 addrspace(20)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(20)*)

; CHECK-LABEL: nullptr21:
; CHECK-NEXT: .long 0
@nullptr21 = global i32 addrspace(21)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(21)*)

; CHECK-LABEL: nullptr22:
; CHECK-NEXT: .long 0
@nullptr22 = global i32 addrspace(22)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(22)*)

; CHECK-LABEL: nullptr23:
; CHECK-NEXT: .long 0
@nullptr23 = global i32 addrspace(23)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(23)*)

; CHECK-LABEL: structWithPointers:
; CHECK-NEXT: .long 0
; CHECK-NEXT: .zero 4
; CHECK-NEXT: .quad 0
; CHECK-NEXT: .quad 0
; CHECK-NEXT: .long -1
; CHECK-NEXT: .zero 4
; CHECK-NEXT: .quad 0
; CHECK-NEXT: .long -1
; CHECK-NEXT: .zero 4
@structWithPointers = addrspace(1) global %struct.S {
  i32* addrspacecast (i32 addrspace(4)* null to i32*),
  i32 addrspace(1)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(1)*),
  i32 addrspace(2)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(2)*),
  i32 addrspace(3)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(3)*),
  i32 addrspace(4)* null,
  i32 addrspace(5)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(5)*)}, align 4