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_local: 5*9880d681SAndroid Build Coastguard Worker; EG: GROUP_BARRIER 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dword 8*9880d681SAndroid Build Coastguard Worker; SI: s_waitcnt 9*9880d681SAndroid Build Coastguard Worker; SI: s_barrier 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine void @test_barrier_local(i32 addrspace(1)* %out) { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker %0 = call i32 @llvm.r600.read.tidig.x() 14*9880d681SAndroid Build Coastguard Worker %1 = getelementptr i32, i32 addrspace(1)* %out, i32 %0 15*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %1 16*9880d681SAndroid Build Coastguard Worker call void @llvm.AMDGPU.barrier.local() 17*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.r600.read.local.size.x() 18*9880d681SAndroid Build Coastguard Worker %3 = sub i32 %2, 1 19*9880d681SAndroid Build Coastguard Worker %4 = sub i32 %3, %0 20*9880d681SAndroid Build Coastguard Worker %5 = getelementptr i32, i32 addrspace(1)* %out, i32 %4 21*9880d681SAndroid Build Coastguard Worker %6 = load i32, i32 addrspace(1)* %5 22*9880d681SAndroid Build Coastguard Worker store i32 %6, i32 addrspace(1)* %1 23*9880d681SAndroid Build Coastguard Worker ret void 24*9880d681SAndroid Build Coastguard Worker} 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.AMDGPU.barrier.local() 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.r600.read.tidig.x() #0 29*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.r600.read.local.size.x() #0 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workerattributes #0 = { readnone } 32