1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}test_barrier_global: 5*9880d681SAndroid Build Coastguard Worker; EG: GROUP_BARRIER 6*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dword 7*9880d681SAndroid Build Coastguard Worker; SI: s_waitcnt 8*9880d681SAndroid Build Coastguard Worker; SI: s_barrier 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine void @test_barrier_global(i32 addrspace(1)* %out) { 11*9880d681SAndroid Build Coastguard Workerentry: 12*9880d681SAndroid Build Coastguard Worker %0 = call i32 @llvm.r600.read.tidig.x() 13*9880d681SAndroid Build Coastguard Worker %1 = getelementptr i32, i32 addrspace(1)* %out, i32 %0 14*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %1 15*9880d681SAndroid Build Coastguard Worker call void @llvm.AMDGPU.barrier.global() 16*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.r600.read.local.size.x() 17*9880d681SAndroid Build Coastguard Worker %3 = sub i32 %2, 1 18*9880d681SAndroid Build Coastguard Worker %4 = sub i32 %3, %0 19*9880d681SAndroid Build Coastguard Worker %5 = getelementptr i32, i32 addrspace(1)* %out, i32 %4 20*9880d681SAndroid Build Coastguard Worker %6 = load i32, i32 addrspace(1)* %5 21*9880d681SAndroid Build Coastguard Worker store i32 %6, i32 addrspace(1)* %1 22*9880d681SAndroid Build Coastguard Worker ret void 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.AMDGPU.barrier.global() 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.r600.read.tidig.x() #0 28*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.r600.read.local.size.x() #0 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerattributes #0 = { readnone } 31