summaryrefslogtreecommitdiff
path: root/test/CodeGen/NVPTX/refl1.ll
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2013-06-12 21:27:20 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2013-06-12 21:27:20 +0200
commit46ef71a74329a0777e3464c65927cd3e59c928d6 (patch)
treee8c06aeb70dcbe18acdf6db1f88a1452ac1dca68 /test/CodeGen/NVPTX/refl1.ll
parent32c493313c30abe0830e95dc92c7ad1c2241ba57 (diff)
parentce337502f5a88500df9ab2f59ab48f97be0b4395 (diff)
downloadllvm-46ef71a74329a0777e3464c65927cd3e59c928d6.tar.gz
llvm-46ef71a74329a0777e3464c65927cd3e59c928d6.tar.bz2
llvm-46ef71a74329a0777e3464c65927cd3e59c928d6.tar.xz
Merge branch 'release_33' of git://github.com/llvm-mirror/llvm into embtk-support-release-3.3
Diffstat (limited to 'test/CodeGen/NVPTX/refl1.ll')
-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 0000000000..5a9dac152e
--- /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}