1
- ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
1
+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2
2
; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s | FileCheck %s
3
3
4
4
; Not reached by a non-kernel function and therefore not changed by this pass
33
33
34
34
35
35
define amdgpu_kernel void @kernel_only () {
36
- ; CHECK-LABEL: @kernel_only() {
36
+ ; CHECK-LABEL: define amdgpu_kernel void @kernel_only() {
37
37
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [0 x double], ptr addrspace(3) @dynamic_kernel_only, i32 0, i32 0
38
38
; CHECK-NEXT: store double 3.140000e+00, ptr addrspace(3) [[ARRAYIDX]], align 8
39
39
; CHECK-NEXT: ret void
@@ -45,7 +45,7 @@ define amdgpu_kernel void @kernel_only() {
45
45
46
46
; The accesses from functions are rewritten to go through the llvm.amdgcn.dynlds.offset.table
47
47
define void @use_shared1 () {
48
- ; CHECK-LABEL: @use_shared1() {
48
+ ; CHECK-LABEL: define void @use_shared1() {
49
49
; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.amdgcn.lds.kernel.id()
50
50
; CHECK-NEXT: [[DYNAMIC_SHARED1:%.*]] = getelementptr inbounds [5 x i32], ptr addrspace(4) @llvm.amdgcn.dynlds.offset.table, i32 0, i32 [[TMP1]]
51
51
; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(4) [[DYNAMIC_SHARED1]], align 4
@@ -60,7 +60,8 @@ define void @use_shared1() {
60
60
}
61
61
62
62
define void @use_shared2 () #0 {
63
- ; CHECK-LABEL: @use_shared2() #0 {
63
+ ; CHECK-LABEL: define void @use_shared2(
64
+ ; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
64
65
; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.amdgcn.lds.kernel.id()
65
66
; CHECK-NEXT: [[DYNAMIC_SHARED2:%.*]] = getelementptr inbounds [5 x i32], ptr addrspace(4) @llvm.amdgcn.dynlds.offset.table, i32 0, i32 [[TMP1]]
66
67
; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(4) [[DYNAMIC_SHARED2]], align 4
@@ -77,7 +78,8 @@ define void @use_shared2() #0 {
77
78
; Include a normal variable so that the new variables aren't all at the same absolute_symbol
78
79
@static_shared = addrspace (3 ) global i32 poison
79
80
define void @use_shared4 () #0 {
80
- ; CHECK-LABEL: @use_shared4() #0 {
81
+ ; CHECK-LABEL: define void @use_shared4(
82
+ ; CHECK-SAME: ) #[[ATTR0]] {
81
83
; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.amdgcn.lds.kernel.id()
82
84
; CHECK-NEXT: store i32 4, ptr addrspace(3) @llvm.amdgcn.module.lds, align 4
83
85
; CHECK-NEXT: [[DYNAMIC_SHARED4:%.*]] = getelementptr inbounds [5 x i32], ptr addrspace(4) @llvm.amdgcn.dynlds.offset.table, i32 0, i32 [[TMP1]]
@@ -94,7 +96,8 @@ define void @use_shared4() #0 {
94
96
}
95
97
96
98
define void @use_shared8 () #0 {
97
- ; CHECK-LABEL: @use_shared8() #0 {
99
+ ; CHECK-LABEL: define void @use_shared8(
100
+ ; CHECK-SAME: ) #[[ATTR0]] {
98
101
; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.amdgcn.lds.kernel.id()
99
102
; CHECK-NEXT: [[DYNAMIC_SHARED8:%.*]] = getelementptr inbounds [5 x i32], ptr addrspace(4) @llvm.amdgcn.dynlds.offset.table, i32 0, i32 [[TMP1]]
100
103
; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(4) [[DYNAMIC_SHARED8]], align 4
@@ -110,7 +113,7 @@ define void @use_shared8() #0 {
110
113
111
114
; The kernels are annotated with kernel.id and llvm.donothing use of the corresponding variable
112
115
define amdgpu_kernel void @expect_align1 () {
113
- ; CHECK-LABEL: @expect_align1() !llvm.amdgcn.lds.kernel.id !2
116
+ ; CHECK-LABEL: define amdgpu_kernel void @expect_align1() !llvm.amdgcn.lds.kernel.id !2 {
114
117
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.expect_align1.dynlds) ]
115
118
; CHECK-NEXT: call void @use_shared1()
116
119
; CHECK-NEXT: ret void
@@ -120,7 +123,7 @@ define amdgpu_kernel void @expect_align1() {
120
123
}
121
124
122
125
define amdgpu_kernel void @expect_align2 () {
123
- ; CHECK-LABEL: @expect_align2() !llvm.amdgcn.lds.kernel.id !3
126
+ ; CHECK-LABEL: define amdgpu_kernel void @expect_align2() !llvm.amdgcn.lds.kernel.id !3 {
124
127
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.expect_align2.dynlds) ]
125
128
; CHECK-NEXT: call void @use_shared2()
126
129
; CHECK-NEXT: ret void
@@ -130,7 +133,8 @@ define amdgpu_kernel void @expect_align2() {
130
133
}
131
134
132
135
define amdgpu_kernel void @expect_align4 () {
133
- ; CHECK-LABEL: @expect_align4() #1 !llvm.amdgcn.lds.kernel.id !4 {
136
+ ; CHECK-LABEL: define amdgpu_kernel void @expect_align4(
137
+ ; CHECK-SAME: ) #[[ATTR1:[0-9]+]] !llvm.amdgcn.lds.kernel.id !4 {
134
138
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.expect_align4.dynlds) ]
135
139
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.module.lds) ]
136
140
; CHECK-NEXT: call void @use_shared4()
@@ -142,7 +146,7 @@ define amdgpu_kernel void @expect_align4() {
142
146
143
147
; Use dynamic_shared directly too.
144
148
define amdgpu_kernel void @expect_align8 () {
145
- ; CHECK-LABEL: @expect_align8() !llvm.amdgcn.lds.kernel.id !5 {
149
+ ; CHECK-LABEL: define amdgpu_kernel void @expect_align8() !llvm.amdgcn.lds.kernel.id !5 {
146
150
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.expect_align8.dynlds) ]
147
151
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [0 x i64], ptr addrspace(3) @dynamic_shared8, i32 0, i32 9
148
152
; CHECK-NEXT: store i64 3, ptr addrspace(3) [[ARRAYIDX]], align 4
@@ -157,7 +161,8 @@ define amdgpu_kernel void @expect_align8() {
157
161
158
162
; Note: use_shared4 uses module.lds so this will allocate at offset 4
159
163
define amdgpu_kernel void @expect_max_of_2_and_4 () {
160
- ; CHECK-LABEL: @expect_max_of_2_and_4() #1 !llvm.amdgcn.lds.kernel.id !6 {
164
+ ; CHECK-LABEL: define amdgpu_kernel void @expect_max_of_2_and_4(
165
+ ; CHECK-SAME: ) #[[ATTR1]] !llvm.amdgcn.lds.kernel.id !6 {
161
166
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.expect_max_of_2_and_4.dynlds) ]
162
167
; CHECK-NEXT: call void @llvm.donothing() [ "ExplicitUse"(ptr addrspace(3) @llvm.amdgcn.module.lds) ]
163
168
; CHECK-NEXT: call void @use_shared2()
0 commit comments