11; RUN: opt -S -mtriple=amdgcn-- -amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
22; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=SOUT %s
33
4- @bar2 = internal addrspace (3 ) global target ("amdgcn.named.barrier" , 0 ) poison
4+ %class.ExpAmdWorkgroupWaveBarrier = type { target ("amdgcn.named.barrier" , 0 ) }
5+
6+ @bar2 = internal addrspace (3 ) global [2 x target ("amdgcn.named.barrier" , 0 )] poison
57@bar3 = internal addrspace (3 ) global target ("amdgcn.named.barrier" , 0 ) poison
6- @bar1 = internal addrspace (3 ) global target ( "amdgcn.named.barrier" , 0 ) poison
8+ @bar1 = internal addrspace (3 ) global [ 4 x %class.ExpAmdWorkgroupWaveBarrier ] poison
79
8- ; CHECK: @bar2 = internal addrspace(3) global target("amdgcn.named.barrier", 0) poison, !absolute_symbol !0
10+ ; CHECK: @bar2 = internal addrspace(3) global [2 x target("amdgcn.named.barrier", 0)] poison, !absolute_symbol !0
911; CHECK-NEXT: @bar3 = internal addrspace(3) global target("amdgcn.named.barrier", 0) poison, !absolute_symbol !1
10- ; CHECK-NEXT: @bar1 = internal addrspace(3) global target("amdgcn.named.barrier", 0) poison, !absolute_symbol !2
11- ; CHECK-NEXT: @bar1.kernel1 = internal addrspace(3) global target("amdgcn.named.barrier", 0) poison, !absolute_symbol !2
12+ ; CHECK-NEXT: @bar1 = internal addrspace(3) global [4 x %class.ExpAmdWorkgroupWaveBarrier] poison, !absolute_symbol !2
13+ ; CHECK-NEXT: @bar1.kernel1 = internal addrspace(3) global [4 x %class.ExpAmdWorkgroupWaveBarrier] poison, !absolute_symbol !2
1214
13- ; SOUT: .set func1.num_named_barrier, 3
15+ ; SOUT: .set func1.num_named_barrier, 7
1416define void @func1 () {
1517 call void @llvm.amdgcn.s.barrier.signal.var (ptr addrspace (3 ) @bar3 , i32 7 )
1618 call void @llvm.amdgcn.s.barrier.join (ptr addrspace (3 ) @bar3 )
1719 call void @llvm.amdgcn.s.barrier.wait (i16 1 )
1820 ret void
1921}
2022
21- ; SOUT: .set func2.num_named_barrier, 1
23+ ; SOUT: .set func2.num_named_barrier, 2
2224define void @func2 () {
2325 call void @llvm.amdgcn.s.barrier.signal.var (ptr addrspace (3 ) @bar2 , i32 7 )
2426 call void @llvm.amdgcn.s.barrier.join (ptr addrspace (3 ) @bar2 )
2527 call void @llvm.amdgcn.s.barrier.wait (i16 1 )
2628 ret void
2729}
2830
29- ; SOUT: .amdhsa_named_barrier_count 1
30- ; SOUT: .set kernel1.num_named_barrier, max(2 , func1.num_named_barrier, func2.num_named_barrier)
31+ ; SOUT: .amdhsa_named_barrier_count 2
32+ ; SOUT: .set kernel1.num_named_barrier, max(6 , func1.num_named_barrier, func2.num_named_barrier)
3133define amdgpu_kernel void @kernel1 () #0 {
3234; CHECK-DAG: call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar1.kernel1, i32 11)
3335 call void @llvm.amdgcn.s.barrier.signal.var (ptr addrspace (3 ) @bar1 , i32 11 )
@@ -40,8 +42,8 @@ define amdgpu_kernel void @kernel1() #0 {
4042 ret void
4143}
4244
43- ; SOUT: .amdhsa_named_barrier_count 1
44- ; SOUT: .set kernel2.num_named_barrier, max(2 , func2.num_named_barrier)
45+ ; SOUT: .amdhsa_named_barrier_count 2
46+ ; SOUT: .set kernel2.num_named_barrier, max(6 , func2.num_named_barrier)
4547define amdgpu_kernel void @kernel2 () #0 {
4648; CHECK-DAG: call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar1, i32 9)
4749 call void @llvm.amdgcn.s.barrier.signal.var (ptr addrspace (3 ) @bar1 , i32 9 )
@@ -68,5 +70,5 @@ attributes #1 = { convergent nounwind }
6870attributes #2 = { nounwind readnone }
6971
7072; CHECK: !0 = !{i32 8396816, i32 8396817}
71- ; CHECK-NEXT: !1 = !{i32 8396848 , i32 8396849 }
72- ; CHECK-NEXT: !2 = !{i32 8396832 , i32 8396833 }
73+ ; CHECK-NEXT: !1 = !{i32 8396912 , i32 8396913 }
74+ ; CHECK-NEXT: !2 = !{i32 8396848 , i32 8396849 }
0 commit comments