diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-12-16 18:37:19 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-12-16 18:37:19 +0000 |
| commit | e05ff151866610c53a8730a51a5cabef3cc09138 (patch) | |
| tree | 2dd012ae1f54552debb36e77729685e77ac94938 /llvm/test | |
| parent | 5ce530608f4acfbb76e47757c07b6d349aacb8c0 (diff) | |
| download | bcm5719-llvm-e05ff151866610c53a8730a51a5cabef3cc09138.tar.gz bcm5719-llvm-e05ff151866610c53a8730a51a5cabef3cc09138.zip | |
AMDGPU: Override getCFInstrCost
The default cost was 0 with the assumption that it is predictable.
llvm-svn: 255796
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Analysis/CostModel/AMDGPU/br.ll | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/Analysis/CostModel/AMDGPU/br.ll b/llvm/test/Analysis/CostModel/AMDGPU/br.ll new file mode 100644 index 00000000000..0b964939756 --- /dev/null +++ b/llvm/test/Analysis/CostModel/AMDGPU/br.ll @@ -0,0 +1,45 @@ +; RUN: opt -cost-model -analyze -mtriple=amdgcn-unknown-amdhsa < %s | FileCheck %s + +; CHECK: 'test_br_cost' +; CHECK: estimated cost of 10 for instruction: br i1 +; CHECK: estimated cost of 10 for instruction: br label +; CHECK: estimated cost of 10 for instruction: ret void +define void @test_br_cost(i32 addrspace(1)* %out, i32 addrspace(1)* %vaddr, i32 %b) #0 { +bb0: + br i1 undef, label %bb1, label %bb2 + +bb1: + %vec = load i32, i32 addrspace(1)* %vaddr + %add = add i32 %vec, %b + store i32 %add, i32 addrspace(1)* %out + br label %bb2 + +bb2: + ret void + +} + +; CHECK: 'test_switch_cost' +; CHECK: Unknown cost for instruction: switch +define void @test_switch_cost(i32 %a) #0 { +entry: + switch i32 %a, label %default [ + i32 0, label %case0 + i32 1, label %case1 + ] + +case0: + store volatile i32 undef, i32 addrspace(1)* undef + ret void + +case1: + store volatile i32 undef, i32 addrspace(1)* undef + ret void + +default: + store volatile i32 undef, i32 addrspace(1)* undef + ret void + +end: + ret void +} |

