diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-01-31 01:56:57 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-01-31 01:56:57 +0000 |
| commit | 6d5a8d48fd762153c4f3ba8c0e9f9d35ce84e6d6 (patch) | |
| tree | b1e458b9aa0059f81546e73129bf30b4999e3d47 /llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll | |
| parent | f63f58a28f57891a2efc933bdd8c631013daa684 (diff) | |
| download | bcm5719-llvm-6d5a8d48fd762153c4f3ba8c0e9f9d35ce84e6d6.tar.gz bcm5719-llvm-6d5a8d48fd762153c4f3ba8c0e9f9d35ce84e6d6.zip | |
InferAddressSpaces: Support memory intrinsics
llvm-svn: 293587
Diffstat (limited to 'llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll')
| -rw-r--r-- | llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll b/llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll index f32d65b66ae..d9b80e99bf0 100644 --- a/llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll +++ b/llvm/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll @@ -115,4 +115,26 @@ define { i32, i1 } @volatile_cmpxchg_group_to_flat(i32 addrspace(3)* %group.ptr, ret { i32, i1 } %ret } -attributes #0 = { nounwind }
\ No newline at end of file +; FIXME: Shouldn't be losing names +; CHECK-LABEL: @volatile_memset_group_to_flat( +; CHECK: addrspacecast i8 addrspace(3)* %group.ptr to i8 addrspace(4)* +; CHECK: call void @llvm.memset.p4i8.i64(i8 addrspace(4)* %1, i8 4, i64 32, i32 4, i1 true) +define void @volatile_memset_group_to_flat(i8 addrspace(3)* %group.ptr, i32 %y) #0 { + %cast = addrspacecast i8 addrspace(3)* %group.ptr to i8 addrspace(4)* + call void @llvm.memset.p4i8.i64(i8 addrspace(4)* %cast, i8 4, i64 32, i32 4, i1 true) + ret void +} + +; CHECK-LABEL: @volatile_memset_global_to_flat( +; CHECK: addrspacecast i8 addrspace(1)* %global.ptr to i8 addrspace(4)* +; CHECK: call void @llvm.memset.p4i8.i64(i8 addrspace(4)* %1, i8 4, i64 32, i32 4, i1 true) +define void @volatile_memset_global_to_flat(i8 addrspace(1)* %global.ptr, i32 %y) #0 { + %cast = addrspacecast i8 addrspace(1)* %global.ptr to i8 addrspace(4)* + call void @llvm.memset.p4i8.i64(i8 addrspace(4)* %cast, i8 4, i64 32, i32 4, i1 true) + ret void +} + +declare void @llvm.memset.p4i8.i64(i8 addrspace(4)* nocapture writeonly, i8, i64, i32, i1) #1 + +attributes #0 = { nounwind } +attributes #1 = { argmemonly nounwind } |

