From 164f3ff43b88c06be8188e5fe8cfd995f8f65413 Mon Sep 17 00:00:00 2001 From: Justin Lebar Date: Sun, 15 Jan 2017 16:55:37 +0000 Subject: [PATCH] [NVPTX] Add codegen tests for llvm.fma. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292070 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/NVPTX/math-intrins.ll | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/CodeGen/NVPTX/math-intrins.ll b/test/CodeGen/NVPTX/math-intrins.ll index de911d05075..828a8807dcf 100644 --- a/test/CodeGen/NVPTX/math-intrins.ll +++ b/test/CodeGen/NVPTX/math-intrins.ll @@ -21,6 +21,8 @@ declare float @llvm.minnum.f32(float, float) #0 declare double @llvm.minnum.f64(double, double) #0 declare float @llvm.maxnum.f32(float, float) #0 declare double @llvm.maxnum.f64(double, double) #0 +declare float @llvm.fma.f32(float, float, float) #0 +declare double @llvm.fma.f64(double, double, double) #0 ; ---- ceil ---- @@ -257,5 +259,28 @@ define double @max_double(double %a, double %b) { ret double %x } +; ---- fma ---- + +; CHECK-LABEL: @fma_float +define float @fma_float(float %a, float %b, float %c) { + ; CHECK: fma.rn.f32 + %x = call float @llvm.fma.f32(float %a, float %b, float %c) + ret float %x +} + +; CHECK-LABEL: @fma_float_ftz +define float @fma_float_ftz(float %a, float %b, float %c) #1 { + ; CHECK: fma.rn.ftz.f32 + %x = call float @llvm.fma.f32(float %a, float %b, float %c) + ret float %x +} + +; CHECK-LABEL: @fma_double +define double @fma_double(double %a, double %b, double %c) { + ; CHECK: fma.rn.f64 + %x = call double @llvm.fma.f64(double %a, double %b, double %c) + ret double %x +} + attributes #0 = { nounwind readnone } attributes #1 = { "nvptx-f32ftz" = "true" } -- 2.40.0