|  | # The file split_test_helper.h was generated at first run, | 
|  | # it is now included in test/ | 
|  | if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/split_test_helper.h) | 
|  | file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/split_test_helper.h) | 
|  | endif() | 
|  |  | 
|  | set_property(GLOBAL PROPERTY EIGEN_CURRENT_SUBPROJECT "Unsupported") | 
|  | add_custom_target(BuildUnsupported) | 
|  |  | 
|  | include_directories(../../test ../../unsupported ../../Eigen | 
|  | ${CMAKE_CURRENT_BINARY_DIR}/../../test) | 
|  |  | 
|  | find_package (Threads) | 
|  |  | 
|  | find_package(GoogleHash) | 
|  | if(GoogleHash_FOUND) | 
|  | add_definitions("-DEIGEN_GOOGLEHASH_SUPPORT") | 
|  | include_directories(${GOOGLEHASH_INCLUDES}) | 
|  | ei_add_property(EIGEN_TESTED_BACKENDS  "GoogleHash, ") | 
|  | else() | 
|  | ei_add_property(EIGEN_MISSING_BACKENDS  "GoogleHash, ") | 
|  | endif() | 
|  |  | 
|  |  | 
|  | find_package(Adolc) | 
|  | if(Adolc_FOUND) | 
|  | include_directories(${ADOLC_INCLUDES}) | 
|  | ei_add_property(EIGEN_TESTED_BACKENDS "Adolc, ") | 
|  | ei_add_test(forward_adolc "" ${ADOLC_LIBRARIES}) | 
|  | else() | 
|  | ei_add_property(EIGEN_MISSING_BACKENDS "Adolc, ") | 
|  | endif() | 
|  |  | 
|  | # this test seems to never have been successful on x87, so is considered to contain a FP-related bug. | 
|  | # see thread: "non-linear optimization test summary" | 
|  | ei_add_test(NonLinearOptimization) | 
|  |  | 
|  | ei_add_test(NumericalDiff) | 
|  | ei_add_test(autodiff_scalar) | 
|  | ei_add_test(autodiff) | 
|  |  | 
|  | ei_add_test(BVH) | 
|  |  | 
|  | ei_add_test(matrix_exponential) | 
|  | ei_add_test(matrix_function) | 
|  | ei_add_test(matrix_power) | 
|  | ei_add_test(matrix_square_root) | 
|  | ei_add_test(alignedvector3) | 
|  |  | 
|  | ei_add_test(FFT) | 
|  |  | 
|  | ei_add_test(EulerAngles) | 
|  |  | 
|  | find_package(MPREAL) | 
|  | if(MPREAL_FOUND) | 
|  | ei_add_property(EIGEN_TESTED_BACKENDS "MPFR C++, ") | 
|  | include_directories(${MPREAL_INCLUDES}) | 
|  | ei_add_test(mpreal_support "" "${MPREAL_LIBRARIES}" ) | 
|  | else() | 
|  | ei_add_property(EIGEN_MISSING_BACKENDS "MPFR C++, ") | 
|  | endif() | 
|  |  | 
|  | ei_add_test(sparse_extra   "" "") | 
|  |  | 
|  | find_package(FFTW) | 
|  | if(FFTW_FOUND) | 
|  | ei_add_property(EIGEN_TESTED_BACKENDS "fftw, ") | 
|  | include_directories( ${FFTW_INCLUDES} ) | 
|  | if(FFTWL_LIB) | 
|  | ei_add_test(FFTW  "-DEIGEN_FFTW_DEFAULT -DEIGEN_HAS_FFTWL" "${FFTW_LIBRARIES}" ) | 
|  | else() | 
|  | ei_add_test(FFTW  "-DEIGEN_FFTW_DEFAULT" "${FFTW_LIBRARIES}" ) | 
|  | endif() | 
|  | else() | 
|  | ei_add_property(EIGEN_MISSING_BACKENDS "fftw, ") | 
|  | endif() | 
|  |  | 
|  | option(EIGEN_TEST_OPENGL "Enable OpenGL support in unit tests" OFF) | 
|  | if(EIGEN_TEST_OPENGL) | 
|  | find_package(OpenGL) | 
|  | find_package(GLUT) | 
|  | find_package(GLEW) | 
|  | if(OPENGL_FOUND AND GLUT_FOUND AND GLEW_FOUND) | 
|  | include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS}) | 
|  | ei_add_property(EIGEN_TESTED_BACKENDS "OpenGL, ") | 
|  | set(EIGEN_GL_LIB ${GLUT_LIBRARIES} ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES}) | 
|  | ei_add_test(openglsupport  "" "${EIGEN_GL_LIB}" ) | 
|  | else() | 
|  | ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ") | 
|  | endif() | 
|  | else() | 
|  | ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ") | 
|  | endif() | 
|  |  | 
|  | ei_add_test(polynomialsolver) | 
|  | ei_add_test(polynomialutils) | 
|  | ei_add_test(splines) | 
|  | ei_add_test(gmres) | 
|  | ei_add_test(dgmres) | 
|  | ei_add_test(minres) | 
|  | ei_add_test(idrs) | 
|  | ei_add_test(bicgstabl) | 
|  | ei_add_test(idrstabl) | 
|  | ei_add_test(levenberg_marquardt) | 
|  | ei_add_test(kronecker_product) | 
|  | ei_add_test(bessel_functions) | 
|  | ei_add_test(special_functions) | 
|  | ei_add_test(special_packetmath "-DEIGEN_FAST_MATH=1") | 
|  |  | 
|  | if(EIGEN_TEST_SYCL) | 
|  | set(EIGEN_SYCL ON) | 
|  | # Forward CMake options as preprocessor definitions | 
|  | if(EIGEN_SYCL_USE_DEFAULT_SELECTOR) | 
|  | add_definitions(-DEIGEN_SYCL_USE_DEFAULT_SELECTOR=${EIGEN_SYCL_USE_DEFAULT_SELECTOR}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_NO_LOCAL_MEM) | 
|  | add_definitions(-DEIGEN_SYCL_NO_LOCAL_MEM=${EIGEN_SYCL_NO_LOCAL_MEM}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_LOCAL_MEM) | 
|  | add_definitions(-DEIGEN_SYCL_LOCAL_MEM=${EIGEN_SYCL_LOCAL_MEM}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_MAX_GLOBAL_RANGE) | 
|  | add_definitions(-DEIGEN_SYCL_MAX_GLOBAL_RANGE=${EIGEN_SYCL_MAX_GLOBAL_RANGE}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_LOCAL_THREAD_DIM0) | 
|  | add_definitions(-DEIGEN_SYCL_LOCAL_THREAD_DIM0=${EIGEN_SYCL_LOCAL_THREAD_DIM0}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_LOCAL_THREAD_DIM1) | 
|  | add_definitions(-DEIGEN_SYCL_LOCAL_THREAD_DIM1=${EIGEN_SYCL_LOCAL_THREAD_DIM1}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_REG_M) | 
|  | add_definitions(-DEIGEN_SYCL_REG_M=${EIGEN_SYCL_REG_M}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_REG_N) | 
|  | add_definitions(-DEIGEN_SYCL_REG_N=${EIGEN_SYCL_REG_N}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_USE_PROGRAM_CLASS) | 
|  | add_definitions(-DEIGEN_SYCL_USE_PROGRAM_CLASS=${EIGEN_SYCL_USE_PROGRAM_CLASS}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_ASYNC_EXECUTION) | 
|  | add_definitions(-DEIGEN_SYCL_ASYNC_EXECUTION=${EIGEN_SYCL_ASYNC_EXECUTION}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_DISABLE_SKINNY) | 
|  | add_definitions(-DEIGEN_SYCL_DISABLE_SKINNY=${EIGEN_SYCL_DISABLE_SKINNY}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_DISABLE_DOUBLE_BUFFER) | 
|  | add_definitions(-DEIGEN_SYCL_DISABLE_DOUBLE_BUFFER=${EIGEN_SYCL_DISABLE_DOUBLE_BUFFER}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_DISABLE_RANK1) | 
|  | add_definitions(-DEIGEN_SYCL_DISABLE_RANK1=${EIGEN_SYCL_DISABLE_RANK1}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_DISABLE_SCALAR) | 
|  | add_definitions(-DEIGEN_SYCL_DISABLE_SCALAR=${EIGEN_SYCL_DISABLE_SCALAR}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_DISABLE_GEMV) | 
|  | add_definitions(-DEIGEN_SYCL_DISABLE_GEMV=${EIGEN_SYCL_DISABLE_GEMV}) | 
|  | endif() | 
|  | if(EIGEN_SYCL_DISABLE_ARM_GPU_CACHE_OPTIMISATION) | 
|  | add_definitions(-DEIGEN_SYCL_DISABLE_ARM_GPU_CACHE_OPTIMISATION=${EIGEN_SYCL_DISABLE_ARM_GPU_CACHE_OPTIMISATION}) | 
|  | endif() | 
|  |  | 
|  | if(EIGEN_SYCL_TRISYCL) | 
|  | # triSYCL now requires c++17. | 
|  | set(CMAKE_CXX_STANDARD 17) | 
|  | else() | 
|  | if(MSVC) | 
|  | # Set the host and device compilers C++ standard to C++14. On Windows setting this to C++11 | 
|  | # can cause issues with the ComputeCpp device compiler parsing Visual Studio Headers. | 
|  | set(CMAKE_CXX_STANDARD 14) | 
|  | list(APPEND COMPUTECPP_USER_FLAGS -DWIN32) | 
|  | else() | 
|  | set(CMAKE_CXX_STANDARD 11) | 
|  | list(APPEND COMPUTECPP_USER_FLAGS -Wall) | 
|  | endif() | 
|  | # The following flags are not supported by Clang and can cause warnings | 
|  | # if used with -Werror so they are removed here. | 
|  | if(COMPUTECPP_USE_COMPILER_DRIVER) | 
|  | set(CMAKE_CXX_COMPILER ${ComputeCpp_DEVICE_COMPILER_EXECUTABLE}) | 
|  | string(REPLACE "-Wlogical-op" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | 
|  | string(REPLACE "-Wno-psabi" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | 
|  | endif() | 
|  | list(APPEND COMPUTECPP_USER_FLAGS | 
|  | -DEIGEN_NO_ASSERTION_CHECKING=1 | 
|  | -no-serial-memop | 
|  | -Xclang | 
|  | -cl-mad-enable) | 
|  | endif() | 
|  |  | 
|  | ei_add_test(cxx11_tensor_sycl) | 
|  | ei_add_test(cxx11_tensor_image_op_sycl) | 
|  | ei_add_test(cxx11_tensor_math_sycl) | 
|  | ei_add_test(cxx11_tensor_forced_eval_sycl) | 
|  | ei_add_test(cxx11_tensor_broadcast_sycl) | 
|  | ei_add_test(cxx11_tensor_device_sycl) | 
|  | ei_add_test(cxx11_tensor_reduction_sycl) | 
|  | ei_add_test(cxx11_tensor_morphing_sycl) | 
|  | ei_add_test(cxx11_tensor_shuffling_sycl) | 
|  | ei_add_test(cxx11_tensor_padding_sycl) | 
|  | ei_add_test(cxx11_tensor_builtins_sycl) | 
|  | ei_add_test(cxx11_tensor_contract_sycl) | 
|  | ei_add_test(cxx11_tensor_concatenation_sycl) | 
|  | ei_add_test(cxx11_tensor_reverse_sycl) | 
|  | ei_add_test(cxx11_tensor_convolution_sycl) | 
|  | ei_add_test(cxx11_tensor_striding_sycl) | 
|  | ei_add_test(cxx11_tensor_chipping_sycl) | 
|  | ei_add_test(cxx11_tensor_layout_swap_sycl) | 
|  | ei_add_test(cxx11_tensor_inflation_sycl) | 
|  | ei_add_test(cxx11_tensor_random_sycl) | 
|  | ei_add_test(cxx11_tensor_generator_sycl) | 
|  | ei_add_test(cxx11_tensor_patch_sycl) | 
|  | ei_add_test(cxx11_tensor_image_patch_sycl) | 
|  | ei_add_test(cxx11_tensor_volume_patch_sycl) | 
|  | ei_add_test(cxx11_tensor_argmax_sycl) | 
|  | ei_add_test(cxx11_tensor_custom_op_sycl) | 
|  | ei_add_test(cxx11_tensor_scan_sycl) | 
|  | set(EIGEN_SYCL OFF) | 
|  | endif() | 
|  |  | 
|  | ei_add_test(cxx11_eventcount "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  | ei_add_test(cxx11_runqueue "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  | ei_add_test(cxx11_non_blocking_thread_pool "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  |  | 
|  | ei_add_test(cxx11_meta) | 
|  | ei_add_test(cxx11_maxsizevector) | 
|  | ei_add_test(cxx11_tensor_argmax) | 
|  | ei_add_test(cxx11_tensor_assign) | 
|  | ei_add_test(cxx11_tensor_block_access) | 
|  | ei_add_test(cxx11_tensor_block_eval) | 
|  | ei_add_test(cxx11_tensor_block_io) | 
|  | ei_add_test(cxx11_tensor_broadcasting) | 
|  | ei_add_test(cxx11_tensor_casts) | 
|  | ei_add_test(cxx11_tensor_chipping) | 
|  | ei_add_test(cxx11_tensor_comparisons) | 
|  | ei_add_test(cxx11_tensor_concatenation) | 
|  | ei_add_test(cxx11_tensor_const) | 
|  | ei_add_test(cxx11_tensor_contraction) | 
|  | ei_add_test(cxx11_tensor_convolution) | 
|  | ei_add_test(cxx11_tensor_custom_index) | 
|  | ei_add_test(cxx11_tensor_custom_op) | 
|  | ei_add_test(cxx11_tensor_dimension) | 
|  | ei_add_test(cxx11_tensor_empty) | 
|  | ei_add_test(cxx11_tensor_executor "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  | ei_add_test(cxx11_tensor_expr) | 
|  | ei_add_test(cxx11_tensor_fft) | 
|  | ei_add_test(cxx11_tensor_fixed_size) | 
|  | ei_add_test(cxx11_tensor_forced_eval) | 
|  | ei_add_test(cxx11_tensor_generator) | 
|  | ei_add_test(cxx11_tensor_ifft) | 
|  | ei_add_test(cxx11_tensor_image_patch) | 
|  | ei_add_test(cxx11_tensor_index_list) | 
|  | ei_add_test(cxx11_tensor_inflation) | 
|  | ei_add_test(cxx11_tensor_intdiv) | 
|  | ei_add_test(cxx11_tensor_io) | 
|  | ei_add_test(cxx11_tensor_layout_swap) | 
|  | ei_add_test(cxx11_tensor_lvalue) | 
|  | ei_add_test(cxx11_tensor_map) | 
|  | ei_add_test(cxx11_tensor_math) | 
|  | ei_add_test(cxx11_tensor_mixed_indices) | 
|  | ei_add_test(cxx11_tensor_morphing) | 
|  | ei_add_test(cxx11_tensor_move) | 
|  | ei_add_test(cxx11_tensor_notification "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  | ei_add_test(cxx11_tensor_of_complex) | 
|  | ei_add_test(cxx11_tensor_of_const_values) | 
|  | ei_add_test(cxx11_tensor_of_strings) | 
|  | ei_add_test(cxx11_tensor_padding) | 
|  | ei_add_test(cxx11_tensor_patch) | 
|  | ei_add_test(cxx11_tensor_random) | 
|  | ei_add_test(cxx11_tensor_reduction) | 
|  | ei_add_test(cxx11_tensor_ref) | 
|  | ei_add_test(cxx11_tensor_roundings) | 
|  | ei_add_test(cxx11_tensor_scan) | 
|  | ei_add_test(cxx11_tensor_shuffling) | 
|  | ei_add_test(cxx11_tensor_simple) | 
|  | ei_add_test(cxx11_tensor_striding) | 
|  | ei_add_test(cxx11_tensor_sugar) | 
|  | ei_add_test(cxx11_tensor_thread_local "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  | ei_add_test(cxx11_tensor_thread_pool "-pthread" "${CMAKE_THREAD_LIBS_INIT}") | 
|  | ei_add_test(cxx11_tensor_trace) | 
|  | ei_add_test(cxx11_tensor_volume_patch) | 
|  | #  ei_add_test(cxx11_tensor_symmetry) | 
|  | if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8" AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") | 
|  | # This test requires __uint128_t which is only available on 64bit systems | 
|  | ei_add_test(cxx11_tensor_uint128) | 
|  | endif() | 
|  |  | 
|  | find_package(CUDA 9.0) | 
|  | if(CUDA_FOUND AND EIGEN_TEST_CUDA) | 
|  | # Make sure to compile without the -pedantic, -Wundef, -Wnon-virtual-dtor | 
|  | # and -fno-check-new flags since they trigger thousands of compilation warnings | 
|  | # in the CUDA runtime | 
|  | string(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | 
|  | string(REPLACE "-Wundef" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | 
|  | string(REPLACE "-Wnon-virtual-dtor" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | 
|  | string(REPLACE "-fno-check-new" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | 
|  |  | 
|  | if(EIGEN_TEST_CUDA_CLANG) | 
|  | string(APPEND CMAKE_CXX_FLAGS " --cuda-path=${CUDA_TOOLKIT_ROOT_DIR}") | 
|  | foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH) | 
|  | string(APPEND CMAKE_CXX_FLAGS " --cuda-gpu-arch=sm_${ARCH}") | 
|  | endforeach() | 
|  | string(APPEND CMAKE_CXX_FLAGS " ${EIGEN_CUDA_CXX_FLAGS}") | 
|  | else() | 
|  | set(CUDA_PROPAGATE_HOST_FLAGS OFF) | 
|  | set(NVCC_ARCH_FLAGS) | 
|  | # Define an -arch=sm_<arch>, otherwise if GPU does not exactly match one of | 
|  | # those in the arch list for -gencode, the kernels will fail to run with | 
|  | #    cudaErrorNoKernelImageForDevice | 
|  | # This can happen with newer cards (e.g. sm_75) and compiling with older | 
|  | # versions of nvcc (e.g. 9.2) that do not support their specific arch. | 
|  | list(LENGTH EIGEN_CUDA_COMPUTE_ARCH EIGEN_CUDA_COMPUTE_ARCH_SIZE) | 
|  | if(EIGEN_CUDA_COMPUTE_ARCH_SIZE) | 
|  | list(GET EIGEN_CUDA_COMPUTE_ARCH 0 EIGEN_CUDA_COMPUTE_DEFAULT) | 
|  | set(NVCC_ARCH_FLAGS " -arch=sm_${EIGEN_CUDA_COMPUTE_DEFAULT}") | 
|  | endif() | 
|  | foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH) | 
|  | string(APPEND NVCC_ARCH_FLAGS " -gencode arch=compute_${ARCH},code=sm_${ARCH}") | 
|  | endforeach() | 
|  | set(CUDA_NVCC_FLAGS  "--expt-relaxed-constexpr -Xcudafe \"--display_error_number\" ${NVCC_ARCH_FLAGS} ${CUDA_NVCC_FLAGS} ${EIGEN_CUDA_CXX_FLAGS}") | 
|  | cuda_include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}/include") | 
|  | endif() | 
|  |  | 
|  | set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") | 
|  |  | 
|  | ei_add_test(cxx11_tensor_complex_gpu) | 
|  | ei_add_test(cxx11_tensor_complex_cwise_ops_gpu) | 
|  | ei_add_test(cxx11_tensor_reduction_gpu) | 
|  | ei_add_test(cxx11_tensor_argmax_gpu) | 
|  | ei_add_test(cxx11_tensor_cast_float16_gpu) | 
|  | ei_add_test(cxx11_tensor_scan_gpu) | 
|  |  | 
|  | set(EIGEN_CUDA_OLDEST_COMPUTE_ARCH 9999) | 
|  | foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH) | 
|  | if(${ARCH} LESS ${EIGEN_CUDA_OLDEST_COMPUTE_ARCH}) | 
|  | set(EIGEN_CUDA_OLDEST_COMPUTE_ARCH ${ARCH}) | 
|  | endif() | 
|  | endforeach() | 
|  |  | 
|  | # Contractions require arch 3.0 or higher | 
|  | if (${EIGEN_CUDA_OLDEST_COMPUTE_ARCH} GREATER 29) | 
|  | ei_add_test(cxx11_tensor_device) | 
|  | ei_add_test(cxx11_tensor_gpu) | 
|  | ei_add_test(cxx11_tensor_contract_gpu) | 
|  | ei_add_test(cxx11_tensor_of_float16_gpu) | 
|  | endif() | 
|  |  | 
|  | # The random number generation code requires arch 3.5 or greater. | 
|  | if (${EIGEN_CUDA_OLDEST_COMPUTE_ARCH} GREATER 34) | 
|  | ei_add_test(cxx11_tensor_random_gpu) | 
|  | endif() | 
|  |  | 
|  | unset(EIGEN_ADD_TEST_FILENAME_EXTENSION) | 
|  | endif() | 
|  |  | 
|  | # Add HIP specific tests | 
|  | if (EIGEN_TEST_HIP) | 
|  |  | 
|  | set(HIP_PATH "/opt/rocm/hip" CACHE STRING "Path to the HIP installation.") | 
|  |  | 
|  | if (EXISTS ${HIP_PATH}) | 
|  | list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/cmake) | 
|  |  | 
|  | find_package(HIP REQUIRED) | 
|  | if (HIP_FOUND) | 
|  | execute_process(COMMAND ${HIP_PATH}/bin/hipconfig --platform OUTPUT_VARIABLE HIP_PLATFORM) | 
|  |  | 
|  | if ((${HIP_PLATFORM} STREQUAL "hcc") OR (${HIP_PLATFORM} STREQUAL "amd")) | 
|  | include_directories(${CMAKE_CURRENT_BINARY_DIR}) | 
|  | include_directories(${HIP_PATH}/include) | 
|  |  | 
|  | set(EIGEN_ADD_TEST_FILENAME_EXTENSION  "cu") | 
|  | # | 
|  | # complex datatype is not yet supported by HIP | 
|  | # so leaving out those tests for now | 
|  | # | 
|  | # ei_add_test(cxx11_tensor_complex_gpu) | 
|  | # ei_add_test(cxx11_tensor_complex_cwise_ops_gpu) | 
|  | # | 
|  | ei_add_test(cxx11_tensor_reduction_gpu) | 
|  | ei_add_test(cxx11_tensor_argmax_gpu) | 
|  | ei_add_test(cxx11_tensor_cast_float16_gpu) | 
|  | ei_add_test(cxx11_tensor_scan_gpu) | 
|  | ei_add_test(cxx11_tensor_device) | 
|  |  | 
|  | ei_add_test(cxx11_tensor_gpu) | 
|  | ei_add_test(cxx11_tensor_contract_gpu) | 
|  | ei_add_test(cxx11_tensor_of_float16_gpu) | 
|  | ei_add_test(cxx11_tensor_of_bfloat16_gpu) | 
|  | ei_add_test(cxx11_tensor_random_gpu) | 
|  |  | 
|  | unset(EIGEN_ADD_TEST_FILENAME_EXTENSION) | 
|  |  | 
|  | elseif ((${HIP_PLATFORM} STREQUAL "nvcc") OR (${HIP_PLATFORM} STREQUAL "nvidia")) | 
|  | message(FATAL_ERROR "HIP_PLATFORM = nvcc is not supported within Eigen") | 
|  | else () | 
|  | message(FATAL_ERROR "Unknown HIP_PLATFORM = ${HIP_PLATFORM}") | 
|  | endif() | 
|  | endif() | 
|  | else () | 
|  | message(FATAL_ERROR "EIGEN_TEST_HIP is ON, but the specified HIP_PATH (${HIP_PATH}) does not exist") | 
|  | endif() | 
|  |  | 
|  | endif() | 
|  |  |