@@ -5,188 +5,8 @@ target datalayout = "A5"
5
5
6
6
; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
7
7
8
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_uniform ( i32 %n ) {
8
+ define amdgpu_kernel void @test_dynamic_stackalloc ( ptr addrspace ( 1 ) %out , i32 %n ) {
9
9
%alloca = alloca i32 , i32 %n , addrspace (5 )
10
- store volatile i32 123 , ptr addrspace (5 ) %alloca
11
- ret void
12
- }
13
-
14
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
15
-
16
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_uniform_over_aligned (i32 %n ) {
17
- %alloca = alloca i32 , i32 %n , align 128 , addrspace (5 )
18
- store volatile i32 10 , ptr addrspace (5 ) %alloca
19
- ret void
20
- }
21
-
22
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
23
-
24
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_uniform_under_aligned (i32 %n ) {
25
- %alloca = alloca i32 , i32 %n , align 2 , addrspace (5 )
26
- store volatile i32 22 , ptr addrspace (5 ) %alloca
27
- ret void
28
- }
29
-
30
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
31
-
32
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_divergent () {
33
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
34
- %alloca = alloca float , i32 %idx , addrspace (5 )
35
- store volatile i32 123 , ptr addrspace (5 ) %alloca
36
- ret void
37
- }
38
-
39
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
40
-
41
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_divergent_over_aligned () {
42
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
43
- %alloca = alloca i32 , i32 %idx , align 128 , addrspace (5 )
44
- store volatile i32 444 , ptr addrspace (5 ) %alloca
45
- ret void
46
- }
47
-
48
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
49
-
50
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_divergent_under_aligned () {
51
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
52
- %alloca = alloca i128 , i32 %idx , align 2 , addrspace (5 )
53
- store volatile i32 666 , ptr addrspace (5 ) %alloca
54
- ret void
55
- }
56
-
57
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
58
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
59
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
60
-
61
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_multiple_allocas (i32 %n , i32 %m ) {
62
- entry:
63
- %cond = icmp eq i32 %n , 0
64
- %alloca1 = alloca i32 , i32 8 , addrspace (5 )
65
- %alloca2 = alloca i17 , i32 %n , addrspace (5 )
66
- br i1 %cond , label %bb.0 , label %bb.1
67
- bb.0 :
68
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
69
- %alloca3 = alloca i32 , i32 %m , align 64 , addrspace (5 )
70
- %alloca4 = alloca i32 , i32 %idx , align 4 , addrspace (5 )
71
- store volatile i32 3 , ptr addrspace (5 ) %alloca3
72
- store volatile i32 4 , ptr addrspace (5 ) %alloca4
73
- br label %bb.1
74
- bb.1 :
75
- store volatile i32 1 , ptr addrspace (5 ) %alloca1
76
- store volatile i32 2 , ptr addrspace (5 ) %alloca2
77
- ret void
78
- }
79
-
80
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
81
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
82
-
83
- define amdgpu_kernel void @test_dynamic_stackalloc_kernel_control_flow (i32 %n , i32 %m ) {
84
- entry:
85
- %cond = icmp eq i32 %n , 0
86
- br i1 %cond , label %bb.0 , label %bb.1
87
- bb.0 :
88
- %alloca2 = alloca i32 , i32 %m , align 64 , addrspace (5 )
89
- store volatile i32 2 , ptr addrspace (5 ) %alloca2
90
- br label %bb.2
91
- bb.1 :
92
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
93
- %alloca1 = alloca i32 , i32 %idx , align 4 , addrspace (5 )
94
- store volatile i32 1 , ptr addrspace (5 ) %alloca1
95
- br label %bb.2
96
- bb.2 :
97
- ret void
98
- }
99
-
100
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
101
-
102
- define void @test_dynamic_stackalloc_device_uniform (i32 %n ) {
103
- %alloca = alloca i32 , i32 %n , addrspace (5 )
104
- store volatile i32 123 , ptr addrspace (5 ) %alloca
105
- ret void
106
- }
107
-
108
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
109
-
110
- define void @test_dynamic_stackalloc_device_uniform_over_aligned (i32 %n ) {
111
- %alloca = alloca i32 , i32 %n , align 128 , addrspace (5 )
112
- store volatile i32 10 , ptr addrspace (5 ) %alloca
113
- ret void
114
- }
115
-
116
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
117
-
118
- define void @test_dynamic_stackalloc_device_uniform_under_aligned (i32 %n ) {
119
- %alloca = alloca i32 , i32 %n , align 2 , addrspace (5 )
120
- store volatile i32 22 , ptr addrspace (5 ) %alloca
121
- ret void
122
- }
123
-
124
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
125
-
126
- define void @test_dynamic_stackalloc_device_divergent () {
127
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
128
- %alloca = alloca i32 , i32 %idx , addrspace (5 )
129
- store volatile i32 123 , ptr addrspace (5 ) %alloca
130
- ret void
131
- }
132
-
133
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
134
-
135
- define void @test_dynamic_stackalloc_device_divergent_over_aligned () {
136
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
137
- %alloca = alloca i32 , i32 %idx , align 128 , addrspace (5 )
138
- store volatile i32 444 , ptr addrspace (5 ) %alloca
139
- ret void
140
- }
141
-
142
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
143
-
144
- define void @test_dynamic_stackalloc_device_divergent_under_aligned () {
145
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
146
- %alloca = alloca i32 , i32 %idx , align 2 , addrspace (5 )
147
- store volatile i32 666 , ptr addrspace (5 ) %alloca
148
- ret void
149
- }
150
-
151
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
152
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
153
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
154
-
155
- define void @test_dynamic_stackalloc_device_multiple_allocas (i32 %n , i32 %m ) {
156
- entry:
157
- %cond = icmp eq i32 %n , 0
158
- %alloca1 = alloca i32 , i32 8 , addrspace (5 )
159
- %alloca2 = alloca i32 , i32 %n , addrspace (5 )
160
- br i1 %cond , label %bb.0 , label %bb.1
161
- bb.0 :
162
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
163
- %alloca3 = alloca i32 , i32 %m , align 64 , addrspace (5 )
164
- %alloca4 = alloca i32 , i32 %idx , align 4 , addrspace (5 )
165
- store volatile i32 3 , ptr addrspace (5 ) %alloca3
166
- store volatile i32 4 , ptr addrspace (5 ) %alloca4
167
- br label %bb.1
168
- bb.1 :
169
- store volatile i32 1 , ptr addrspace (5 ) %alloca1
170
- store volatile i32 2 , ptr addrspace (5 ) %alloca2
171
- ret void
172
- }
173
-
174
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
175
- ; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
176
-
177
- define void @test_dynamic_stackalloc_device_control_flow (i32 %n , i32 %m ) {
178
- entry:
179
- %cond = icmp eq i32 %n , 0
180
- br i1 %cond , label %bb.0 , label %bb.1
181
- bb.0 :
182
- %idx = call i32 @llvm.amdgcn.workitem.id.x ()
183
- %alloca1 = alloca i32 , i32 %idx , align 4 , addrspace (5 )
184
- store volatile i32 1 , ptr addrspace (5 ) %alloca1
185
- br label %bb.2
186
- bb.1 :
187
- %alloca2 = alloca i32 , i32 %m , align 64 , addrspace (5 )
188
- store volatile i32 2 , ptr addrspace (5 ) %alloca2
189
- br label %bb.2
190
- bb.2 :
10
+ store volatile i32 0 , ptr addrspace (5 ) %alloca
191
11
ret void
192
12
}
0 commit comments