aboutsummaryrefslogtreecommitdiff
path: root/flang/unittests
diff options
context:
space:
mode:
authorPeter Steinfeld <psteinfeld@nvidia.com>2023-07-17 12:21:01 -0700
committerPeter Steinfeld <psteinfeld@nvidia.com>2023-07-31 11:12:29 -0700
commit478e0b58605c4be16f1590f9b67889290ab45dab (patch)
tree5f79bde231fb6fe42c88aedf603b4f2e7d1a2281 /flang/unittests
parent57f879cdd4c63189c569bdc1ce4e87e7342eea46 (diff)
downloadllvm-478e0b58605c4be16f1590f9b67889290ab45dab.zip
llvm-478e0b58605c4be16f1590f9b67889290ab45dab.tar.gz
llvm-478e0b58605c4be16f1590f9b67889290ab45dab.tar.bz2
[flang] Quadmath 128 bit floating point intrinsics
This update allows constant folding for many 128 bit floating point intrinsics through the library quadmath, which is only available on some platforms. Differential Revision: https://reviews.llvm.org/D156435
Diffstat (limited to 'flang/unittests')
-rw-r--r--flang/unittests/Evaluate/CMakeLists.txt9
-rw-r--r--flang/unittests/Runtime/Numeric.cpp1
-rw-r--r--flang/unittests/Runtime/Reduction.cpp1
-rw-r--r--flang/unittests/Runtime/Transformational.cpp1
4 files changed, 11 insertions, 1 deletions
diff --git a/flang/unittests/Evaluate/CMakeLists.txt b/flang/unittests/Evaluate/CMakeLists.txt
index ffd821a..e4a4df3 100644
--- a/flang/unittests/Evaluate/CMakeLists.txt
+++ b/flang/unittests/Evaluate/CMakeLists.txt
@@ -8,8 +8,15 @@ if (LLVM_LINK_LLVM_DYLIB)
else()
llvm_map_components_to_libnames(llvm_libs Support)
endif()
+
+check_include_file(quadmath.h FOUND_QUADMATH_HEADER)
+check_library_exists(quadmath sinq "" FOUND_QUADMATH_LIB)
+if(FOUND_QUADMATH_HEADER AND FOUND_QUADMATH_LIB)
+ set(QUADMATHLIB quadmath)
+endif()
+
target_link_libraries(FortranEvaluateTesting
- ${llvm_libs})
+ ${llvm_libs} ${QUADMATHLIB})
add_flang_nongtest_unittest(leading-zero-bit-count
FortranEvaluateTesting
diff --git a/flang/unittests/Runtime/Numeric.cpp b/flang/unittests/Runtime/Numeric.cpp
index 456d25f..5afed75 100644
--- a/flang/unittests/Runtime/Numeric.cpp
+++ b/flang/unittests/Runtime/Numeric.cpp
@@ -8,6 +8,7 @@
#include "flang/Runtime/numeric.h"
#include "gtest/gtest.h"
+#include "flang/Common/float128.h"
#include <cmath>
#include <limits>
diff --git a/flang/unittests/Runtime/Reduction.cpp b/flang/unittests/Runtime/Reduction.cpp
index 064edd4..b17988b 100644
--- a/flang/unittests/Runtime/Reduction.cpp
+++ b/flang/unittests/Runtime/Reduction.cpp
@@ -9,6 +9,7 @@
#include "flang/Runtime/reduction.h"
#include "gtest/gtest.h"
#include "tools.h"
+#include "flang/Common/float128.h"
#include "flang/Runtime/allocatable.h"
#include "flang/Runtime/cpp-type.h"
#include "flang/Runtime/descriptor.h"
diff --git a/flang/unittests/Runtime/Transformational.cpp b/flang/unittests/Runtime/Transformational.cpp
index 70ab424..942a206 100644
--- a/flang/unittests/Runtime/Transformational.cpp
+++ b/flang/unittests/Runtime/Transformational.cpp
@@ -9,6 +9,7 @@
#include "flang/Runtime/transformational.h"
#include "gtest/gtest.h"
#include "tools.h"
+#include "flang/Common/float128.h"
#include "flang/Runtime/type-code.h"
#include <vector>