[AMDGPU] Test codegen'ing True16 additions.
[llvm-project.git] / flang / unittests / Evaluate / fp-testing.h
blob22dfa2d7d80c60a877e8a39efde8a36d80da2778
1 #ifndef FORTRAN_TEST_EVALUATE_FP_TESTING_H_
2 #define FORTRAN_TEST_EVALUATE_FP_TESTING_H_
4 #include "flang/Evaluate/target.h"
5 #include <fenv.h>
7 using Fortran::common::RoundingMode;
8 using Fortran::evaluate::RealFlags;
9 using Fortran::evaluate::Rounding;
11 class ScopedHostFloatingPointEnvironment {
12 public:
13 ScopedHostFloatingPointEnvironment(bool treatSubnormalOperandsAsZero = false,
14 bool flushSubnormalResultsToZero = false);
15 ~ScopedHostFloatingPointEnvironment();
16 void ClearFlags() const;
17 static RealFlags CurrentFlags();
18 static void SetRounding(Rounding rounding);
20 private:
21 fenv_t originalFenv_;
22 #if __x86_64__
23 unsigned int originalMxcsr;
24 #endif
27 #endif // FORTRAN_TEST_EVALUATE_FP_TESTING_H_