[llvm] Enable logf128 constant folding for hosts with 128bit long double (PR #96287)
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 11 10:48:57 PDT 2024
================
@@ -271,6 +260,64 @@ if(C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unguarded-availability-new")
endif()
+function(logf128_test testname definition)
+ unset(LOGF128_TEST_RUN CACHE)
+ unset(LOGF128_TEST_COMPILE CACHE)
+ try_run(
+ LOGF128_TEST_RUN
+ LOGF128_TEST_COMPILE
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}/logf128_${testname}.cpp
+ LINK_LIBRARIES m
+ )
+ if(LOGF128_TEST_RUN)
+ set (LLVM_HAS_LOGF128 true CACHE INTERNAL "")
+ set(${definition} true CACHE INTERNAL "")
+ message(STATUS "LLVM: found logf128 with type ${testname}")
+ add_compile_definitions(${definition})
+ endif()
+endfunction()
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/logf128_long_double.cpp"
+"
+extern \"C\" {
+long double logf128(long double);
----------------
efriedma-quic wrote:
I think I'd prefer to have CMake tests which `#include <cmath>`, to verify that the header actually works.
Along those lines, I don't think float128.h should be declaring logf128.
https://github.com/llvm/llvm-project/pull/96287
More information about the llvm-commits
mailing list