summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2017-07-29 01:03:53 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2017-07-29 01:03:53 +0000
commit4e309b08617e6441ca1ee265f5c0ebb5d3008e03 (patch)
tree4ca661c2bbea7c1a09b04106c881c8452eecf6f9 /llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll
parent4d060b71cc6dfb3a87ee44dc5d48e901e9011487 (diff)
downloadbcm5719-llvm-4e309b08617e6441ca1ee265f5c0ebb5d3008e03.tar.gz
bcm5719-llvm-4e309b08617e6441ca1ee265f5c0ebb5d3008e03.zip
AMDGPU: Start selecting global instructions
llvm-svn: 309470
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll')
-rw-r--r--llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll22
1 files changed, 17 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll b/llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll
index 5d86b12da95..813255a24a1 100644
--- a/llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll
+++ b/llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll
@@ -1,5 +1,6 @@
-; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | FileCheck --check-prefix=GCN %s
-; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=fiji -mattr=-flat-for-global | FileCheck --check-prefix=GCN %s
+; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=kaveri < %s | FileCheck -enable-var-scope -check-prefix=GCN %s
+; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=fiji -mattr=-flat-for-global < %s | FileCheck -enable-var-scope -check-prefix=GCN %s
+; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx900 < %s | FileCheck -enable-var-scope -check-prefixes=GCN,GFX9 %s
; If flat_store_dword and flat_load_dword use different registers for the data
; operand, this test is not broken. It just means it is no longer testing
@@ -9,8 +10,19 @@
; XGCN: flat_store_dword v[{{[0-9]+:[0-9]+}}], [[DATA:v[0-9]+]]
; XGCN: s_waitcnt vmcnt(0) lgkmcnt(0)
; XGCN: flat_load_dword [[DATA]], v[{{[0-9]+:[0-9]+}}]
-define amdgpu_kernel void @test(i32 addrspace(1)* %out, i32 %in) {
- store volatile i32 0, i32 addrspace(1)* %out
- %val = load volatile i32, i32 addrspace(1)* %out
+define amdgpu_kernel void @test(i32 addrspace(4)* %out, i32 %in) {
+ store volatile i32 0, i32 addrspace(4)* %out
+ %val = load volatile i32, i32 addrspace(4)* %out
+ ret void
+}
+
+; Make sure lgkmcnt isn't used for global_* instructions
+; GCN-LABEL: {{^}}test_waitcnt_type_flat_global:
+; GFX9: global_load_dword [[LD:v[0-9]+]]
+; GFX9-NEXT: s_waitcnt vmcnt(0){{$}}
+; GFX9-NEXT: ds_write_b32 [[LD]]
+define amdgpu_kernel void @test_waitcnt_type_flat_global(i32 addrspace(1)* %in) {
+ %val = load volatile i32, i32 addrspace(1)* %in
+ store volatile i32 %val, i32 addrspace(3)* undef
ret void
}
OpenPOWER on IntegriCloud