diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-25 00:26:29 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-25 00:26:29 +0000 |
commit | 51d702812d8274d10f6ee96ccfd79d306ff701ec (patch) | |
tree | ac4648bd8c42c270d95b4cf25c2563e32639a64b /llvm/test | |
parent | 8e9aa0acc80a96042a7a3a4a35bf4e5b35102003 (diff) | |
download | bcm5719-llvm-51d702812d8274d10f6ee96ccfd79d306ff701ec.tar.gz bcm5719-llvm-51d702812d8274d10f6ee96ccfd79d306ff701ec.zip |
TTI: Report 0 cost for free addrspacecasts
llvm-svn: 264369
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Analysis/CostModel/AMDGPU/addrspacecast.ll | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/Analysis/CostModel/AMDGPU/addrspacecast.ll b/llvm/test/Analysis/CostModel/AMDGPU/addrspacecast.ll new file mode 100644 index 00000000000..1f6cb85a789 --- /dev/null +++ b/llvm/test/Analysis/CostModel/AMDGPU/addrspacecast.ll @@ -0,0 +1,45 @@ +; RUN: opt -cost-model -analyze -mtriple=amdgcn-unknown-amdhsa -mcpu=kaveri < %s | FileCheck %s + +; CHECK: 'addrspacecast_global_to_flat' +; CHECK: estimated cost of 0 for {{.*}} addrspacecast i8 addrspace(1)* %ptr to i8 addrspace(4)* +define i8 addrspace(4)* @addrspacecast_global_to_flat(i8 addrspace(1)* %ptr) #0 { + %cast = addrspacecast i8 addrspace(1)* %ptr to i8 addrspace(4)* + ret i8 addrspace(4)* %cast +} + +; CHECK: 'addrspacecast_global_to_flat_v2' +; CHECK: estimated cost of 0 for {{.*}} addrspacecast <2 x i8 addrspace(1)*> %ptr to <2 x i8 addrspace(4)*> +define <2 x i8 addrspace(4)*> @addrspacecast_global_to_flat_v2(<2 x i8 addrspace(1)*> %ptr) #0 { + %cast = addrspacecast <2 x i8 addrspace(1)*> %ptr to <2 x i8 addrspace(4)*> + ret <2 x i8 addrspace(4)*> %cast +} + +; CHECK: 'addrspacecast_global_to_flat_v32' +; CHECK: estimated cost of 0 for {{.*}} addrspacecast <32 x i8 addrspace(1)*> %ptr to <32 x i8 addrspace(4)*> +define <32 x i8 addrspace(4)*> @addrspacecast_global_to_flat_v32(<32 x i8 addrspace(1)*> %ptr) #0 { + %cast = addrspacecast <32 x i8 addrspace(1)*> %ptr to <32 x i8 addrspace(4)*> + ret <32 x i8 addrspace(4)*> %cast +} + +; CHECK: 'addrspacecast_local_to_flat' +; CHECK: estimated cost of 1 for {{.*}} addrspacecast i8 addrspace(3)* %ptr to i8 addrspace(4)* +define i8 addrspace(4)* @addrspacecast_local_to_flat(i8 addrspace(3)* %ptr) #0 { + %cast = addrspacecast i8 addrspace(3)* %ptr to i8 addrspace(4)* + ret i8 addrspace(4)* %cast +} + +; CHECK: 'addrspacecast_local_to_flat_v2' +; CHECK: estimated cost of 2 for {{.*}} addrspacecast <2 x i8 addrspace(3)*> %ptr to <2 x i8 addrspace(4)*> +define <2 x i8 addrspace(4)*> @addrspacecast_local_to_flat_v2(<2 x i8 addrspace(3)*> %ptr) #0 { + %cast = addrspacecast <2 x i8 addrspace(3)*> %ptr to <2 x i8 addrspace(4)*> + ret <2 x i8 addrspace(4)*> %cast +} + +; CHECK: 'addrspacecast_local_to_flat_v32' +; CHECK: estimated cost of 32 for {{.*}} addrspacecast <32 x i8 addrspace(3)*> %ptr to <32 x i8 addrspace(4)*> +define <32 x i8 addrspace(4)*> @addrspacecast_local_to_flat_v32(<32 x i8 addrspace(3)*> %ptr) #0 { + %cast = addrspacecast <32 x i8 addrspace(3)*> %ptr to <32 x i8 addrspace(4)*> + ret <32 x i8 addrspace(4)*> %cast +} + +attributes #0 = { nounwind readnone } |