summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2012-10-04 03:07:37 +0000
committerLang Hames <lhames@gmail.com>2012-10-04 03:07:37 +0000
commit05a3e31a21d5dfe629dbb900c4fbd4fd17e1318c (patch)
treeb72c86bd2255fd0725cae7d4ee95d701a25a3e1f
parent68be1649ee65d59468e01f69862b7709134ed423 (diff)
downloadbcm5719-llvm-05a3e31a21d5dfe629dbb900c4fbd4fd17e1318c.tar.gz
bcm5719-llvm-05a3e31a21d5dfe629dbb900c4fbd4fd17e1318c.zip
Test file-scoped FP_CONTRACT pragma.
llvm-svn: 165196
-rw-r--r--clang/test/CodeGen/fp-contract-pragma.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/CodeGen/fp-contract-pragma.cpp b/clang/test/CodeGen/fp-contract-pragma.cpp
index 9be9afc4c29..edb04d82ef5 100644
--- a/clang/test/CodeGen/fp-contract-pragma.cpp
+++ b/clang/test/CodeGen/fp-contract-pragma.cpp
@@ -46,3 +46,20 @@ template<typename T> class fp_contract_4 {
template class fp_contract_4<int>;
// CHECK: _ZN13fp_contract_4IiE6methodEfff
// CHECK: tail call float @llvm.fmuladd
+
+// Check file-scoped FP_CONTRACT
+#pragma STDC FP_CONTRACT ON
+float fp_contract_5(float a, float b, float c) {
+// CHECK: _Z13fp_contract_5fff
+// CHECK: tail call float @llvm.fmuladd
+ return a * b + c;
+}
+
+#pragma STDC FP_CONTRACT OFF
+float fp_contract_6(float a, float b, float c) {
+// CHECK: _Z13fp_contract_6fff
+// CHECK: %[[M:.+]] = fmul float %a, %b
+// CHECK-NEXT: fadd float %[[M]], %c
+ return a * b + c;
+}
+
OpenPOWER on IntegriCloud