summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@apple.com>2011-07-08 21:39:34 +0000
committerCameron Zwarich <zwarich@apple.com>2011-07-08 21:39:34 +0000
commitae7bc987101d8f27460142de7da34a47bcd525b8 (patch)
treebfebf759ad34c57b6511ce669acb9863bc5e3c2b /clang/test/CodeGen
parentf03fa189ca73a664fb10cf1bc8447d8453edf810 (diff)
downloadbcm5719-llvm-ae7bc987101d8f27460142de7da34a47bcd525b8.tar.gz
bcm5719-llvm-ae7bc987101d8f27460142de7da34a47bcd525b8.zip
Add codegen support for the fma/fmal/fmaf builtins.
llvm-svn: 134743
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r--clang/test/CodeGen/libcalls.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/CodeGen/libcalls.c b/clang/test/CodeGen/libcalls.c
index 828d7de6cb0..5ff684fd5b6 100644
--- a/clang/test/CodeGen/libcalls.c
+++ b/clang/test/CodeGen/libcalls.c
@@ -50,3 +50,26 @@ void test_pow(float a0, double a1, long double a2) {
// CHECK-NO: declare float @llvm.pow.f32(float, float) nounwind readonly
// CHECK-NO: declare double @llvm.pow.f64(double, double) nounwind readonly
// CHECK-NO: declare x86_fp80 @llvm.pow.f80(x86_fp80, x86_fp80) nounwind readonly
+
+// CHECK-YES: define void @test_fma
+// CHECK-NO: define void @test_fma
+void test_fma(float a0, double a1, long double a2) {
+ // CHECK-YES: call float @llvm.fma.f32
+ // CHECK-NO: call float @llvm.fma.f32
+ float l0 = fmaf(a0, a0, a0);
+
+ // CHECK-YES: call double @llvm.fma.f64
+ // CHECK-NO: call double @llvm.fma.f64
+ double l1 = fma(a1, a1, a1);
+
+ // CHECK-YES: call x86_fp80 @llvm.fma.f80
+ // CHECK-NO: call x86_fp80 @llvm.fma.f80
+ long double l2 = fmal(a2, a2, a2);
+}
+
+// CHECK-YES: declare float @llvm.fma.f32(float, float, float) nounwind readnone
+// CHECK-YES: declare double @llvm.fma.f64(double, double, double) nounwind readnone
+// CHECK-YES: declare x86_fp80 @llvm.fma.f80(x86_fp80, x86_fp80, x86_fp80) nounwind readnone
+// CHECK-NO: declare float @llvm.fma.f32(float, float, float) nounwind readnone
+// CHECK-NO: declare double @llvm.fma.f64(double, double, double) nounwind readnone
+// CHECK-NO: declare x86_fp80 @llvm.fma.f80(x86_fp80, x86_fp80, x86_fp80) nounwind readnone
OpenPOWER on IntegriCloud