]> granicus.if.org Git - clang/commitdiff
Test file-scoped FP_CONTRACT pragma.
authorLang Hames <lhames@gmail.com>
Thu, 4 Oct 2012 03:07:37 +0000 (03:07 +0000)
committerLang Hames <lhames@gmail.com>
Thu, 4 Oct 2012 03:07:37 +0000 (03:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165196 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/fp-contract-pragma.cpp

index 9be9afc4c29a89fbc57b610859d7d7b1f4e8747c..edb04d82ef540307fdd6bfa3775fb45100998a31 100644 (file)
@@ -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;
+}
+