]> granicus.if.org Git - llvm/commitdiff
[NVPTX] Add codegen tests for llvm.fma.
authorJustin Lebar <jlebar@google.com>
Sun, 15 Jan 2017 16:55:37 +0000 (16:55 +0000)
committerJustin Lebar <jlebar@google.com>
Sun, 15 Jan 2017 16:55:37 +0000 (16:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292070 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/NVPTX/math-intrins.ll

index de911d0507557d3a12bca0d99fdce79eded40f1b..828a8807dcfaabab89b023bda8cfa095bfb0d10e 100644 (file)
@@ -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" }