aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/NVPTX
diff options
context:
space:
mode:
authorJustin Holewinski <jholewinski@nvidia.com>2013-05-20 16:42:18 +0000
committerJustin Holewinski <jholewinski@nvidia.com>2013-05-20 16:42:18 +0000
commit9b39c726a007d8a4101568e9afe72658a5ae1b7c (patch)
tree2c7294e1a124c739ec9743b90d9cec1f64ae6a90 /test/CodeGen/NVPTX
parentd22367559300c77c73e0ad9e193a33451bf8bf6c (diff)
downloadexternal_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.ll37
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}