diff options
author | Justin Holewinski <jholewinski@nvidia.com> | 2013-05-20 16:42:18 +0000 |
---|---|---|
committer | Justin Holewinski <jholewinski@nvidia.com> | 2013-05-20 16:42:18 +0000 |
commit | 9b39c726a007d8a4101568e9afe72658a5ae1b7c (patch) | |
tree | 2c7294e1a124c739ec9743b90d9cec1f64ae6a90 /test/CodeGen/NVPTX | |
parent | d22367559300c77c73e0ad9e193a33451bf8bf6c (diff) | |
download | external_llvm-9b39c726a007d8a4101568e9afe72658a5ae1b7c.zip external_llvm-9b39c726a007d8a4101568e9afe72658a5ae1b7c.tar.gz external_llvm-9b39c726a007d8a4101568e9afe72658a5ae1b7c.tar.bz2 |
[NVPTX] Fix mis-use of CurrentFnSym in NVPTXAsmPrinter. This was causing a symbol name error in the output PTX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182298 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/NVPTX')
-rw-r--r-- | test/CodeGen/NVPTX/refl1.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/CodeGen/NVPTX/refl1.ll b/test/CodeGen/NVPTX/refl1.ll new file mode 100644 index 0000000..5a9dac1 --- /dev/null +++ b/test/CodeGen/NVPTX/refl1.ll @@ -0,0 +1,37 @@ +; RUN: llc < %s -march=nvptx -mcpu=sm_20 -drvcuda | FileCheck %s + +; Function Attrs: nounwind +; CHECK: .entry foo +define void @foo(float* nocapture %a) #0 { + %val = load float* %a + %tan = tail call fastcc float @__nv_fast_tanf(float %val) + store float %tan, float* %a + ret void +} + +; Function Attrs: nounwind readnone +declare float @llvm.nvvm.sin.approx.ftz.f(float) #1 + +; Function Attrs: nounwind readnone +declare float @llvm.nvvm.cos.approx.ftz.f(float) #1 + +; Function Attrs: nounwind readnone +declare float @llvm.nvvm.div.approx.ftz.f(float, float) #1 + +; Function Attrs: alwaysinline inlinehint nounwind readnone +; CHECK: .func (.param .b32 func_retval0) __nv_fast_tanf +define internal fastcc float @__nv_fast_tanf(float %a) #2 { +entry: + %0 = tail call float @llvm.nvvm.sin.approx.ftz.f(float %a) + %1 = tail call float @llvm.nvvm.cos.approx.ftz.f(float %a) + %2 = tail call float @llvm.nvvm.div.approx.ftz.f(float %0, float %1) + ret float %2 +} + +attributes #0 = { nounwind } +attributes #1 = { nounwind readnone } +attributes #2 = { alwaysinline inlinehint nounwind readnone } + +!nvvm.annotations = !{!0} + +!0 = metadata !{void (float*)* @foo, metadata !"kernel", i32 1} |