From 443c965e82be98008e0cc28acf968443e0d83f7e Mon Sep 17 00:00:00 2001 From: jinge90 Date: Tue, 26 Aug 2025 11:35:02 +0800 Subject: [PATCH 1/5] combine some sycl devicelib into one Signed-off-by: jinge90 --- libdevice/cmake/modules/SYCLLibdevice.cmake | 12 +++++++ libdevice/device_complex.h | 6 ++++ libdevice/devicelib_combine.cpp | 24 ++++++++++++++ libdevice/fallback-complex-fp64.cpp | 1 - libdevice/fallback-complex.cpp | 35 ++++++++++----------- 5 files changed, 59 insertions(+), 19 deletions(-) create mode 100644 libdevice/devicelib_combine.cpp diff --git a/libdevice/cmake/modules/SYCLLibdevice.cmake b/libdevice/cmake/modules/SYCLLibdevice.cmake index cd9afa88506bd..be8a77c07263a 100644 --- a/libdevice/cmake/modules/SYCLLibdevice.cmake +++ b/libdevice/cmake/modules/SYCLLibdevice.cmake @@ -348,6 +348,11 @@ set(cmath_obj_deps device_math.h device.h ${sycl-compiler_deps}) set(imf_obj_deps device_imf.hpp imf_half.hpp imf_bf16.hpp imf_rounding_op.hpp imf_impl_utils.hpp device.h ${sycl-compiler_deps}) set(itt_obj_deps device_itt.h spirv_vars.h device.h ${sycl-compiler_deps}) set(bfloat16_obj_deps sycl-headers ${sycl-compiler_deps}) +set(devicelib_combine_obj_deps device_math.h device.h device_complex.h + cmath_wrapper.cpp fallback-cmath.cpp cmath_wrapper_fp64.cpp fallback-cmath-fp64.cpp + complex_wrapper.cpp fallback-complex.cpp complex_wrapper_fp64.cpp fallback-complex-fp64.cpp + crt_wrapper.cpp fallback-cassert.cpp fallback-cstring.cpp imf_wrapper.cpp imf_wrapper_fp64.cpp + imf_wrapper_bf16.cpp ${sycl-compiler-deps}) if (NOT MSVC AND UR_SANITIZER_INCLUDE_DIR) set(asan_obj_deps device.h atomic.hpp spirv_vars.h @@ -623,6 +628,13 @@ add_devicelibs(libsycl-native-bfloat16 BUILD_ARCHS ${full_build_archs} DEPENDENCIES ${bfloat16_obj_deps}) +set(devicelib_combine_archs) +add_devicelibs(libsycl-devicelib + SRC devicelib_combine.cpp + BUILD_ARCHS ${devicelib_combine_archs} + FILETYPES "${filetypes_no_spv}" + DEPENDENCIES ${devicelib_combine_obj_deps}) + # Create dependency and source lists for Intel math function libraries. file(MAKE_DIRECTORY ${obj_binary_dir}/libdevice) set(imf_fallback_src_dir ${obj_binary_dir}/libdevice) diff --git a/libdevice/device_complex.h b/libdevice/device_complex.h index 6fa4254ff2025..0bd29d13f6f00 100644 --- a/libdevice/device_complex.h +++ b/libdevice/device_complex.h @@ -22,6 +22,12 @@ #define CMPLXF(r, i) ((float __complex__){(float)(r), (float)(i)}) #endif +#define NANF __builtin_nanf("") +#define INFINITYF __builtin_inff() + +#define NAN __builtin_nan("") +#define INFINITY __builtin_inf() + DEVICE_EXTERN_C double __devicelib_cimag(double __complex__ z); diff --git a/libdevice/devicelib_combine.cpp b/libdevice/devicelib_combine.cpp new file mode 100644 index 0000000000000..151d6614ae7d9 --- /dev/null +++ b/libdevice/devicelib_combine.cpp @@ -0,0 +1,24 @@ +//==--- devicelib_combine.cpp - merge multiple sycl devicelibs into one ----==// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +#include "cmath_wrapper.cpp" +#include "fallback-cmath.cpp" +#if defined(_WIN32) +#include "msvc_math.hpp" +#endif +#include "cmath_wrapper_fp64.cpp" +#include "fallback-cmath-fp64.cpp" +#include "complex_wrapper.cpp" +#include "fallback-complex.cpp" +#include "complex_wrapper_fp64.cpp" +#include "fallback-complex-fp64.cpp" +#include "crt_wrapper.cpp" +#include "fallback-cassert.cpp" +#include "fallback-cstring.cpp" +#include "imf_wrapper.cpp" +#include "imf_wrapper_fp64.cpp" +#include "imf_wrapper_bf16.cpp" diff --git a/libdevice/fallback-complex-fp64.cpp b/libdevice/fallback-complex-fp64.cpp index 28a5be8ab4a48..dd1466ff33fcd 100644 --- a/libdevice/fallback-complex-fp64.cpp +++ b/libdevice/fallback-complex-fp64.cpp @@ -10,7 +10,6 @@ #include "device_complex.h" #if defined(__SPIR__) || defined(__SPIRV__) -#include // To support fallback device libraries on-demand loading, please update the // DeviceLibFuncMap in llvm/tools/sycl-post-link/sycl-post-link.cpp if you add diff --git a/libdevice/fallback-complex.cpp b/libdevice/fallback-complex.cpp index 9f94195a3a407..1181d7ef39b11 100644 --- a/libdevice/fallback-complex.cpp +++ b/libdevice/fallback-complex.cpp @@ -9,7 +9,6 @@ #include "device_complex.h" #if defined(__SPIR__) || defined(__SPIRV__) -#include // To support fallback device libraries on-demand loading, please update the // DeviceLibFuncMap in llvm/tools/sycl-post-link/sycl-post-link.cpp if you add @@ -65,8 +64,8 @@ float __complex__ __devicelib___mulsc3(float __a, float __b, float __c, __recalc = 1.0f; } if (__recalc) { - z = CMPLXF((INFINITY * (__a * __c - __b * __d)), - (INFINITY * (__a * __d + __b * __c))); + z = CMPLXF((INFINITYF * (__a * __c - __b * __d)), + (INFINITYF * (__a * __d + __b * __c))); } } return z; @@ -96,15 +95,15 @@ float __complex__ __devicelib___divsc3(float __a, float __b, float __c, z = CMPLXF(z_real, z_imag); if (__spirv_IsNan(z_real) && __spirv_IsNan(z_imag)) { if ((__denom == 0.0f) && (!__spirv_IsNan(__a) || !__spirv_IsNan(__b))) { - z_real = __spirv_ocl_copysign(INFINITY, __c) * __a; - z_imag = __spirv_ocl_copysign(INFINITY, __c) * __b; + z_real = __spirv_ocl_copysign(INFINITYF, __c) * __a; + z_imag = __spirv_ocl_copysign(INFINITYF, __c) * __b; z = CMPLXF(z_real, z_imag); } else if ((__spirv_IsInf(__a) || __spirv_IsInf(__b)) && __spirv_IsFinite(__c) && __spirv_IsFinite(__d)) { __a = __spirv_ocl_copysign(__spirv_IsInf(__a) ? 1.0f : 0.0f, __a); __b = __spirv_ocl_copysign(__spirv_IsInf(__b) ? 1.0f : 0.0f, __b); - z_real = INFINITY * (__a * __c + __b * __d); - z_imag = INFINITY * (__b * __c - __a * __d); + z_real = INFINITYF * (__a * __c + __b * __d); + z_imag = INFINITYF * (__b * __c - __a * __d); z = CMPLXF(z_real, z_imag); } else if (__spirv_IsInf(__logbw) && __logbw > 0.0f && __spirv_IsFinite(__a) && __spirv_IsFinite(__b)) { @@ -133,7 +132,7 @@ float __complex__ __devicelib_cprojf(float __complex__ z) { float __complex__ r = z; if (__spirv_IsInf(__devicelib_crealf(z)) || __spirv_IsInf(__devicelib_cimagf(z))) - r = CMPLXF(INFINITY, __spirv_ocl_copysign(0.0f, __devicelib_cimagf(z))); + r = CMPLXF(INFINITYF, __spirv_ocl_copysign(0.0f, __devicelib_cimagf(z))); return r; } @@ -153,7 +152,7 @@ float __complex__ __devicelib_cexpf(float __complex__ z) { return z; } else if (z_imag == 0.f || !__spirv_IsFinite(z_imag)) { if (__spirv_IsInf(z_imag)) - return CMPLXF(z_real, NAN); + return CMPLXF(z_real, NANF); } } @@ -178,7 +177,7 @@ float __complex__ __devicelib_cpowf(float __complex__ x, float __complex__ y) { DEVICE_EXTERN_C_INLINE float __complex__ __devicelib_cpolarf(float rho, float theta) { if (__spirv_IsNan(rho) || __spirv_SignBitSet(rho)) - return CMPLXF(NAN, NAN); + return CMPLXF(NANF, NANF); if (__spirv_IsNan(theta)) { if (__spirv_IsInf(rho)) return CMPLXF(rho, theta); @@ -186,8 +185,8 @@ float __complex__ __devicelib_cpolarf(float rho, float theta) { } if (__spirv_IsInf(theta)) { if (__spirv_IsInf(rho)) - return CMPLXF(rho, NAN); - return CMPLXF(NAN, NAN); + return CMPLXF(rho, NANF); + return CMPLXF(NANF, NANF); } float x = rho * __spirv_ocl_cos(theta); if (__spirv_IsNan(x)) @@ -203,7 +202,7 @@ float __complex__ __devicelib_csqrtf(float __complex__ z) { float z_real = __devicelib_crealf(z); float z_imag = __devicelib_cimagf(z); if (__spirv_IsInf(z_imag)) - return CMPLXF(INFINITY, z_imag); + return CMPLXF(INFINITYF, z_imag); if (__spirv_IsInf(z_real)) { if (z_real > 0.0f) return CMPLXF(z_real, __spirv_IsNan(z_imag) @@ -221,9 +220,9 @@ float __complex__ __devicelib_csinhf(float __complex__ z) { float z_real = __devicelib_crealf(z); float z_imag = __devicelib_cimagf(z); if (__spirv_IsInf(z_real) && !__spirv_IsFinite(z_imag)) - return CMPLXF(z_real, NAN); + return CMPLXF(z_real, NANF); if (z_real == 0 && !__spirv_IsFinite(z_imag)) - return CMPLXF(z_real, NAN); + return CMPLXF(z_real, NANF); if (z_imag == 0 && !__spirv_IsFinite(z_real)) return z; return CMPLXF(__spirv_ocl_sinh(z_real) * __spirv_ocl_cos(z_imag), @@ -235,9 +234,9 @@ float __complex__ __devicelib_ccoshf(float __complex__ z) { float z_real = __devicelib_crealf(z); float z_imag = __devicelib_cimagf(z); if (__spirv_IsInf(z_real) && !__spirv_IsFinite(z_imag)) - return CMPLXF(__spirv_ocl_fabs(z_real), NAN); + return CMPLXF(__spirv_ocl_fabs(z_real), NANF); if (z_real == 0 && !__spirv_IsFinite(z_imag)) - return CMPLXF(NAN, z_real); + return CMPLXF(NANF, z_real); if (z_real == 0 && z_imag == 0) return CMPLXF(1.0f, z_imag); if (z_imag == 0 && !__spirv_IsFinite(z_real)) @@ -416,7 +415,7 @@ float __complex__ __devicelib_catanhf(float __complex__ z) { return CMPLXF(__spirv_ocl_copysign(0.0f, z_real), __spirv_ocl_copysign(__pi / 2.0f, z_imag)); if (__spirv_ocl_fabs(z_real) == 1.0f && z_imag == 0.0f) - return CMPLXF(__spirv_ocl_copysign(INFINITY, z_real), + return CMPLXF(__spirv_ocl_copysign(INFINITYF, z_real), __spirv_ocl_copysign(0.0f, z_imag)); float __complex__ t1 = 1.0f + z; float __complex__ t2 = 1.0f - z; From c47c69b752c48057054c9fefb4946501d83817d9 Mon Sep 17 00:00:00 2001 From: jinge90 Date: Tue, 26 Aug 2025 11:58:31 +0800 Subject: [PATCH 2/5] fix wrong file name Signed-off-by: jinge90 --- libdevice/devicelib_combine.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libdevice/devicelib_combine.cpp b/libdevice/devicelib_combine.cpp index 151d6614ae7d9..a71859948a140 100644 --- a/libdevice/devicelib_combine.cpp +++ b/libdevice/devicelib_combine.cpp @@ -8,17 +8,17 @@ #include "cmath_wrapper.cpp" #include "fallback-cmath.cpp" #if defined(_WIN32) -#include "msvc_math.hpp" +#include "msvc_math.cpp" #endif #include "cmath_wrapper_fp64.cpp" -#include "fallback-cmath-fp64.cpp" #include "complex_wrapper.cpp" -#include "fallback-complex.cpp" #include "complex_wrapper_fp64.cpp" -#include "fallback-complex-fp64.cpp" #include "crt_wrapper.cpp" #include "fallback-cassert.cpp" +#include "fallback-cmath-fp64.cpp" +#include "fallback-complex-fp64.cpp" +#include "fallback-complex.cpp" #include "fallback-cstring.cpp" #include "imf_wrapper.cpp" -#include "imf_wrapper_fp64.cpp" #include "imf_wrapper_bf16.cpp" +#include "imf_wrapper_fp64.cpp" From 3200e5eb52a7bc6f7f8a2ac07c906476fa0d173c Mon Sep 17 00:00:00 2001 From: jinge90 Date: Wed, 27 Aug 2025 15:49:16 +0800 Subject: [PATCH 3/5] simplfy device library list Signed-off-by: jinge90 --- clang/lib/Driver/ToolChains/SYCL.cpp | 19 +-- .../test/Driver/sycl-device-lib-old-model.cpp | 161 +++++------------- clang/test/Driver/sycl-device-lib.cpp | 159 +++++------------ clang/test/Driver/sycl-force-target.cpp | 2 +- .../sycl-no-rdc-fat-archive-old-model.cpp | 32 ++-- clang/test/Driver/sycl-no-rdc-old-model.cpp | 34 ++-- clang/test/Driver/sycl-offload-new-driver.c | 2 +- 7 files changed, 119 insertions(+), 290 deletions(-) diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 8cba3664aae63..62446ad4ecdad 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -779,23 +779,7 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple, } using SYCLDeviceLibsList = SmallVector; - const SYCLDeviceLibsList SYCLDeviceLibs = {"libsycl-crt", - "libsycl-complex", - "libsycl-complex-fp64", - "libsycl-cmath", - "libsycl-cmath-fp64", -#if defined(_WIN32) - "libsycl-msvc-math", -#endif - "libsycl-imf", - "libsycl-imf-fp64", - "libsycl-imf-bf16", - "libsycl-fallback-cassert", - "libsycl-fallback-cstring", - "libsycl-fallback-complex", - "libsycl-fallback-complex-fp64", - "libsycl-fallback-cmath", - "libsycl-fallback-cmath-fp64", + const SYCLDeviceLibsList SYCLDeviceLibs = {"libsycl-devicelib", "libsycl-fallback-imf", "libsycl-fallback-imf-fp64", "libsycl-fallback-imf-bf16"}; @@ -946,6 +930,7 @@ void SYCL::populateSYCLDeviceTraitsMacrosArgs( // compiler package. Once we add or remove any SYCL device library files, // the list should be updated accordingly. static llvm::SmallVector SYCLDeviceLibList{ + "devicelib", "bfloat16", "crt", "cmath", diff --git a/clang/test/Driver/sycl-device-lib-old-model.cpp b/clang/test/Driver/sycl-device-lib-old-model.cpp index b7b85d9a07d05..a52780d60731c 100644 --- a/clang/test/Driver/sycl-device-lib-old-model.cpp +++ b/clang/test/Driver/sycl-device-lib-old-model.cpp @@ -6,36 +6,44 @@ /// ########################################################################### -/// test behavior of device library default link and fno-sycl-device-lib-jit-link +/// test default behavior of device library link // RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// SYCL_DEVICE_LIB_LINK_DEFAULT: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-imf.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" + +/// ########################################################################### + +/// test behavior of device library with deprecated option // RUN: %clangxx -fsycl --no-offload-new-driver -fno-sycl-device-lib-jit-link %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --no-offload-new-driver %s -fsycl-device-lib=libc --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --no-offload-new-driver -fno-sycl-device-lib-jit-link %s -fsycl-device-lib=libc --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --no-offload-new-driver %s -fsycl-device-lib=libm-fp32 --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --no-offload-new-driver %s -fsycl-device-lib=libc,libm-fp32 --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT -// SYCL_DEVICE_LIB_LINK_DEFAULT: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-imf.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-complex.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-complex-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-cmath.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-cmath-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-imf.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-imf-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-imf-bf16.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-cassert.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-cstring.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-complex.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-cmath.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-imf.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" /// ########################################################################### /// test sycl fallback device libraries are not linked by default @@ -155,11 +163,11 @@ /// ########################################################################### /// test llvm-link behavior for linking device libraries -// RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clangxx -fsycl --no-offload-new-driver %s -fsycl-device-lib=all --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_LLVM_LINK_DEVICE_LIB -// RUN: %clangxx -fsycl --no-offload-new-driver -save-temps %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clangxx -fsycl --no-offload-new-driver -save-temps %s -fsycl-device-lib=all --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_LLVM_LINK_DEVICE_LIB -// RUN: %clangxx -fsycl --no-offload-new-driver -fsycl-targets=spir64_x86_64 %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clangxx -fsycl --no-offload-new-driver -fsycl-targets=spir64_x86_64 %s -fsycl-device-lib=all --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_LLVM_LINK_DEVICE_LIB // SYCL_LLVM_LINK_DEVICE_LIB: llvm-link{{.*}} "{{.*}}.bc" "-o" "{{.*}}.bc" "--suppress-warnings" // SYCL_LLVM_LINK_DEVICE_LIB: llvm-link{{.*}} "-only-needed" @@ -211,20 +219,7 @@ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN // RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device "-fsanitize=address -DUSE_SYCL_DEVICE_ASAN" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_ASAN_MACRO -// SYCL_DEVICE_LIB_ASAN: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" +// SYCL_DEVICE_LIB_ASAN: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-imf.bc" // SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" // SYCL_DEVICE_LIB_ASAN-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" @@ -246,20 +241,7 @@ // RUN: --sysroot=%S/Inputs/SYCL -Xarch_device -fsanitize=address -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_PVC // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xs "-device 12.60.7" --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=address -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_PVC -// SYCL_DEVICE_LIB_ASAN_PVC: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" +// SYCL_DEVICE_LIB_ASAN_PVC: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-imf.bc" // SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" // SYCL_DEVICE_LIB_ASAN_PVC-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" @@ -269,20 +251,7 @@ /// test behavior of linking libsycl-asan-cpu for CPU target AOT compilation when asan flag is applied. // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=address -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_CPU -// SYCL_DEVICE_LIB_ASAN_CPU: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" +// SYCL_DEVICE_LIB_ASAN_CPU: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-imf.bc" // SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" // SYCL_DEVICE_LIB_ASAN_CPU-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" @@ -301,20 +270,7 @@ // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xs "-device dg2" --no-offload-new-driver %s \ // RUN: --sysroot=%S/Inputs/SYCL -Xarch_device -fsanitize=address -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_DG2 -// SYCL_DEVICE_LIB_ASAN_DG2: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" +// SYCL_DEVICE_LIB_ASAN_DG2: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-imf.bc" // SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" // SYCL_DEVICE_LIB_ASAN_DG2-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" @@ -335,20 +291,7 @@ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_MSAN // RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device "-fsanitize=memory -DUSE_SYCL_DEVICE_MSAN" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_MSAN_MACRO -// SYCL_DEVICE_LIB_MSAN: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" +// SYCL_DEVICE_LIB_MSAN: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-imf.bc" // SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" // SYCL_DEVICE_LIB_MSAN-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" @@ -370,7 +313,7 @@ // RUN: --sysroot=%S/Inputs/SYCL -Xarch_device -fsanitize=memory -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_MSAN_PVC // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xs "-device 12.60.7" --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=memory -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_MSAN_PVC -// SYCL_DEVICE_LIB_MSAN_PVC: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-crt.bc" +// SYCL_DEVICE_LIB_MSAN_PVC: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_MSAN_PVC-SAME: "{{.*}}libsycl-msan-pvc.bc" @@ -378,7 +321,7 @@ /// test behavior of linking libsycl-msan-cpu for CPU target AOT compilation when msan flag is applied. // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=memory -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_MSAN_CPU -// SYCL_DEVICE_LIB_MSAN_CPU: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-crt.bc" +// SYCL_DEVICE_LIB_MSAN_CPU: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_MSAN_CPU-SAME: "{{.*}}libsycl-msan-cpu.bc" /// ########################################################################### @@ -395,23 +338,7 @@ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN // RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device "-fsanitize=thread -DUSE_SYCL_DEVICE_TSAN" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_TSAN_MACRO -// SYCL_DEVICE_LIB_TSAN: llvm-link{{.*}} "{{.*}}libsycl-crt.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-complex.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-complex-fp64.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-cmath.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-cmath-fp64.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-imf.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-imf-fp64.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-imf-bf16.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-cassert.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-cstring.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-complex.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-complex-fp64.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-cmath.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-cmath-fp64.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-imf.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-imf-fp64.bc" -// SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-fallback-imf-bf16.bc" +// SYCL_DEVICE_LIB_TSAN: llvm-link{{.*}} "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_TSAN-SAME: "{{.*}}libsycl-tsan.bc" // SYCL_DEVICE_TSAN_MACRO: "-cc1" // SYCL_DEVICE_TSAN_MACRO-SAME: "USE_SYCL_DEVICE_TSAN" @@ -430,7 +357,7 @@ // RUN: --sysroot=%S/Inputs/SYCL -Xarch_device -fsanitize=thread -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN_PVC // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xs "-device 12.60.7" --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=thread -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN_PVC -// SYCL_DEVICE_LIB_TSAN_PVC: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-crt.bc" +// SYCL_DEVICE_LIB_TSAN_PVC: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_TSAN_PVC-SAME: "{{.*}}libsycl-tsan-pvc.bc" @@ -438,5 +365,5 @@ /// test behavior of linking libsycl-tsan-cpu for CPU target AOT compilation when tsan flag is applied. // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=thread -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN_CPU -// SYCL_DEVICE_LIB_TSAN_CPU: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-crt.bc" +// SYCL_DEVICE_LIB_TSAN_CPU: llvm-link{{.*}} "-only-needed" "{{.*}}libsycl-devicelib.bc" // SYCL_DEVICE_LIB_TSAN_CPU-SAME: "{{.*}}libsycl-tsan-cpu.bc" diff --git a/clang/test/Driver/sycl-device-lib.cpp b/clang/test/Driver/sycl-device-lib.cpp index da0ba26b270dd..c632acdcadf0a 100644 --- a/clang/test/Driver/sycl-device-lib.cpp +++ b/clang/test/Driver/sycl-device-lib.cpp @@ -6,36 +6,44 @@ /// ########################################################################### -/// test behavior of device library default link and fno-sycl-device-lib-jit-link +/// test behavior of device library link with deprecated option // RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// SYCL_DEVICE_LIB_LINK_DEFAULT: clang-linker-wrapper{{.*}} "-sycl-device-libraries=libsycl-devicelib.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-imf.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o + +/// ########################################################################### + +/// test behavior of device library link with deprecated option // RUN: %clangxx -fsycl --offload-new-driver -fno-sycl-device-lib-jit-link %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --offload-new-driver %s -fsycl-device-lib=libc --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --offload-new-driver -fno-sycl-device-lib-jit-link %s -fsycl-device-lib=libc --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --offload-new-driver %s -fsycl-device-lib=libm-fp32 --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP // RUN: %clangxx -fsycl --offload-new-driver %s -fsycl-device-lib=libc,libm-fp32 --sysroot=%S/Inputs/SYCL -### 2>&1 \ -// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT -// SYCL_DEVICE_LIB_LINK_DEFAULT: clang-linker-wrapper{{.*}} "-sycl-device-libraries=libsycl-crt.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-complex.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-complex-fp64.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-imf.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o -// SYCL_DEVICE_LIB_LINK_DEFAULT-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o +// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_LINK_DEFAULT_DEP +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP: clang-linker-wrapper{{.*}} "-sycl-device-libraries=libsycl-crt.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-complex.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-complex-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-cmath.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-cmath-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-imf.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-imf-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-imf-bf16.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-cassert.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-cstring.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-complex.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-cmath.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-imf.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o +// SYCL_DEVICE_LIB_LINK_DEFAULT_DEP-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o /// ########################################################################### /// test sycl fallback device libraries are not linked by default @@ -169,20 +177,7 @@ // RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device "-fsanitize=address -DUSE_SYCL_DEVICE_ASAN" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_ASAN_MACRO // SYCL_DEVICE_LIB_ASAN: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_ASAN: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_ASAN-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o @@ -212,20 +207,7 @@ // RUN: -Xarch_device -fsanitize=address -Xs "-device 12.60.7" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_PVC // SYCL_DEVICE_LIB_ASAN_PVC: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_ASAN_PVC: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_ASAN_PVC-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o @@ -236,20 +218,7 @@ // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 --offload-new-driver %s --sysroot=%S/Inputs/SYCL \ // RUN: -Xarch_device -fsanitize=address -### 2>&1 | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_CPU // SYCL_DEVICE_LIB_ASAN_CPU: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_ASAN_CPU: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_ASAN_CPU-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o @@ -269,20 +238,7 @@ // RUN: -Xarch_device -fsanitize=address -Xs "-device dg2" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_DG2 // SYCL_DEVICE_LIB_ASAN_DG2: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_ASAN_DG2: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_ASAN_DG2-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o @@ -298,20 +254,7 @@ // RUN: -Xarch_device -fsanitize=address -Xsycl-target-backend=spir64_gen "-device pvc,dg2" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_ASAN_MUL // SYCL_DEVICE_LIB_ASAN_MUL: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_ASAN_MUL: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_ASAN_MUL-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o @@ -333,20 +276,7 @@ // RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device "-fsanitize=memory -DUSE_SYCL_DEVICE_MSAN" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_MSAN_MACRO // SYCL_DEVICE_LIB_MSAN: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_MSAN: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_MSAN-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o @@ -382,20 +312,7 @@ // RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device "-fsanitize=thread -DUSE_SYCL_DEVICE_TSAN" -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_TSAN_MACRO // SYCL_DEVICE_LIB_TSAN: clang-linker-wrapper{{.*}} "-sycl-device-libraries -// SYCL_DEVICE_LIB_TSAN: {{.*}}libsycl-crt.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-complex. -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-complex-fp64. -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-cmath.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-cmath-fp64.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-imf.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-imf-fp64.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-imf-bf16.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-cassert.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-cstring.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-complex.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-complex-fp64.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-cmath.new.o -// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-cmath-fp64.new.o +// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-devicelib.new.o // SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-imf.new.o // SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-imf-fp64.new.o // SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-fallback-imf-bf16.new.o diff --git a/clang/test/Driver/sycl-force-target.cpp b/clang/test/Driver/sycl-force-target.cpp index 4a2b2e4a843d0..3f1af8f58ffc0 100644 --- a/clang/test/Driver/sycl-force-target.cpp +++ b/clang/test/Driver/sycl-force-target.cpp @@ -18,7 +18,7 @@ // CHECK_FORCE_TARGET: clang-offload-bundler{{.*}} "-type=o" "-targets=host-{{.*}},sycl-spir64-unknown-unknown" "-input={{.*}}" "-output={{.*}}" "-output=[[DEVICEOBJECTOUT:.+]]" "-unbundle" "-allow-missing-bundles" // CHECK_FORCE_TARGET: spirv-to-ir-wrapper{{.*}} "[[DEVICEOBJECTOUT]]" "-o" "[[DEVICEOBJECTBC:.+\.bc]]" // CHECK_FORCE_TARGET: llvm-link{{.*}} "[[DEVICEOBJECTBC]]"{{.*}} "-o" "[[DEVICEOBJLINKED:.+\.bc]]" "--suppress-warnings" -// CHECK_FORCE_TARGET: llvm-link{{.*}} "{{.*}}libsycl-complex{{.*}}" +// CHECK_FORCE_TARGET: llvm-link{{.*}} "{{.*}}libsycl-devicelib{{.*}}" // CHECK_FORCE_TARGET_GEN: llvm-foreach{{.*}} {{.*}}ocloc{{.*}} // CHECK_FORCE_TARGET_CPU: llvm-foreach{{.*}} {{.*}}opencl-aot{{.*}} diff --git a/clang/test/Driver/sycl-no-rdc-fat-archive-old-model.cpp b/clang/test/Driver/sycl-no-rdc-fat-archive-old-model.cpp index 34180c469aba3..cdbaed38c79b5 100644 --- a/clang/test/Driver/sycl-no-rdc-fat-archive-old-model.cpp +++ b/clang/test/Driver/sycl-no-rdc-fat-archive-old-model.cpp @@ -12,19 +12,19 @@ // CHECK: 1: input, "{{.*}}_lib.a", archive // CHECK: 2: clang-offload-unbundler, {1}, tempfilelist // CHECK: 3: spirv-to-ir-wrapper, {2}, tempfilelist, (device-sycl) -// CHECK: 4: input, "{{.*}}libsycl-crt.bc", ir, (device-sycl) -// CHECK: 24: linker, {4, {{.*}}}, ir, (device-sycl) -// CHECK: 25: linker, {3, 24}, ir, (device-sycl) -// CHECK: 26: foreach, {3, 25}, ir, (device-sycl) -// CHECK: 27: file-table-tform, {3, 26}, tempfilelist, (device-sycl) -// CHECK: 28: sycl-post-link, {27}, tempfiletable, (device-sycl) -// CHECK: 29: foreach, {27, 28}, tempfiletable, (device-sycl) -// CHECK: 30: file-table-tform, {29}, tempfilelist, (device-sycl) -// CHECK: 31: file-table-tform, {29}, tempfilelist, (device-sycl) -// CHECK: 32: foreach, {27, 31}, tempfilelist, (device-sycl) -// CHECK: 33: file-table-tform, {32}, tempfilelist, (device-sycl) -// CHECK: 34: llvm-spirv, {33}, tempfilelist, (device-sycl) -// CHECK: 35: file-table-tform, {30, 34}, tempfiletable, (device-sycl) -// CHECK: 36: clang-offload-wrapper, {35}, object, (device-sycl) -// CHECK: 37: offload, "device-sycl (spir64-unknown-unknown)" {36}, object -// CHECK: 38: linker, {0, 37}, image, (host-sycl) +// CHECK: 4: input, "{{.*}}libsycl-devicelib.bc", ir, (device-sycl) +// CHECK: 11: linker, {4, {{.*}}}, ir, (device-sycl) +// CHECK: 12: linker, {3, 11}, ir, (device-sycl) +// CHECK: 13: foreach, {3, 12}, ir, (device-sycl) +// CHECK: 14: file-table-tform, {3, 13}, tempfilelist, (device-sycl) +// CHECK: 15: sycl-post-link, {14}, tempfiletable, (device-sycl) +// CHECK: 16: foreach, {14, 15}, tempfiletable, (device-sycl) +// CHECK: 17: file-table-tform, {16}, tempfilelist, (device-sycl) +// CHECK: 18: file-table-tform, {16}, tempfilelist, (device-sycl) +// CHECK: 19: foreach, {14, 18}, tempfilelist, (device-sycl) +// CHECK: 20: file-table-tform, {19}, tempfilelist, (device-sycl) +// CHECK: 21: llvm-spirv, {20}, tempfilelist, (device-sycl) +// CHECK: 22: file-table-tform, {17, 21}, tempfiletable, (device-sycl) +// CHECK: 23: clang-offload-wrapper, {22}, object, (device-sycl) +// CHECK: 24: offload, "device-sycl (spir64-unknown-unknown)" {23}, object +// CHECK: 25: linker, {0, 24}, image, (host-sycl) diff --git a/clang/test/Driver/sycl-no-rdc-old-model.cpp b/clang/test/Driver/sycl-no-rdc-old-model.cpp index 814779a581136..87564c07bf496 100644 --- a/clang/test/Driver/sycl-no-rdc-old-model.cpp +++ b/clang/test/Driver/sycl-no-rdc-old-model.cpp @@ -11,20 +11,20 @@ // CHECK: 11: input, "{{.*}}2.cpp", c++, (device-sycl) // CHECK: 12: preprocessor, {11}, c++-cpp-output, (device-sycl) // CHECK: 13: compiler, {12}, ir, (device-sycl) -// CHECK: 18: input, "{{.*}}libsycl-crt.bc", ir, (device-sycl) -// CHECK: 38: linker, {18, {{.*}}}, ir, (device-sycl) -// CHECK: 39: linker, {4, 38}, ir, (device-sycl) -// CHECK: 40: sycl-post-link, {39}, tempfiletable, (device-sycl) -// CHECK: 41: file-table-tform, {40}, tempfilelist, (device-sycl) -// CHECK: 42: llvm-spirv, {41}, tempfilelist, (device-sycl) -// CHECK: 43: file-table-tform, {40, 42}, tempfiletable, (device-sycl) -// CHECK: 44: clang-offload-wrapper, {43}, object, (device-sycl) -// CHECK: 45: offload, "device-sycl (spir64-unknown-unknown)" {44}, object -// CHECK: 46: linker, {13, 38}, ir, (device-sycl) -// CHECK: 47: sycl-post-link, {46}, tempfiletable, (device-sycl) -// CHECK: 48: file-table-tform, {47}, tempfilelist, (device-sycl) -// CHECK: 49: llvm-spirv, {48}, tempfilelist, (device-sycl) -// CHECK: 50: file-table-tform, {47, 49}, tempfiletable, (device-sycl) -// CHECK: 51: clang-offload-wrapper, {50}, object, (device-sycl) -// CHECK: 52: offload, "device-sycl (spir64-unknown-unknown)" {51}, object -// CHECK: 53: linker, {8, 17, 45, 52}, image, (host-sycl) +// CHECK: 18: input, "{{.*}}libsycl-devicelib.bc", ir, (device-sycl) +// CHECK: 25: linker, {18, {{.*}}}, ir, (device-sycl) +// CHECK: 26: linker, {4, 25}, ir, (device-sycl) +// CHECK: 27: sycl-post-link, {26}, tempfiletable, (device-sycl) +// CHECK: 28: file-table-tform, {27}, tempfilelist, (device-sycl) +// CHECK: 29: llvm-spirv, {28}, tempfilelist, (device-sycl) +// CHECK: 30: file-table-tform, {27, 29}, tempfiletable, (device-sycl) +// CHECK: 31: clang-offload-wrapper, {30}, object, (device-sycl) +// CHECK: 32: offload, "device-sycl (spir64-unknown-unknown)" {31}, object +// CHECK: 33: linker, {13, 25}, ir, (device-sycl) +// CHECK: 34: sycl-post-link, {33}, tempfiletable, (device-sycl) +// CHECK: 35: file-table-tform, {34}, tempfilelist, (device-sycl) +// CHECK: 36: llvm-spirv, {35}, tempfilelist, (device-sycl) +// CHECK: 37: file-table-tform, {34, 36}, tempfiletable, (device-sycl) +// CHECK: 38: clang-offload-wrapper, {37}, object, (device-sycl) +// CHECK: 39: offload, "device-sycl (spir64-unknown-unknown)" {38}, object +// CHECK: 40: linker, {8, 17, 32, 39}, image, (host-sycl) diff --git a/clang/test/Driver/sycl-offload-new-driver.c b/clang/test/Driver/sycl-offload-new-driver.c index 5e446369a4181..74b61cd91f3a5 100644 --- a/clang/test/Driver/sycl-offload-new-driver.c +++ b/clang/test/Driver/sycl-offload-new-driver.c @@ -34,7 +34,7 @@ // RUN: %clangxx --target=x86_64-unknown-linux-gnu -fsycl --offload-new-driver \ // RUN: --sysroot=%S/Inputs/SYCL -### %s 2>&1 \ // RUN: | FileCheck -check-prefix WRAPPER_OPTIONS %s -// WRAPPER_OPTIONS: clang-linker-wrapper{{.*}} "-sycl-device-libraries=libsycl-crt.new.o,libsycl-complex.new.o,libsycl-complex-fp64.new.o,libsycl-cmath.new.o,libsycl-cmath-fp64.new.o,libsycl-imf.new.o,libsycl-imf-fp64.new.o,libsycl-imf-bf16.new.o,libsycl-fallback-cassert.new.o,libsycl-fallback-cstring.new.o,libsycl-fallback-complex.new.o,libsycl-fallback-complex-fp64.new.o,libsycl-fallback-cmath.new.o,libsycl-fallback-cmath-fp64.new.o,libsycl-fallback-imf.new.o,libsycl-fallback-imf-fp64.new.o,libsycl-fallback-imf-bf16.new.o,libsycl-itt-user-wrappers.new.o,libsycl-itt-compiler-wrappers.new.o,libsycl-itt-stubs.new.o" +// WRAPPER_OPTIONS: clang-linker-wrapper{{.*}} "-sycl-device-libraries=libsycl-devicelib.new.o,libsycl-fallback-imf.new.o,libsycl-fallback-imf-fp64.new.o,libsycl-fallback-imf-bf16.new.o,libsycl-itt-user-wrappers.new.o,libsycl-itt-compiler-wrappers.new.o,libsycl-itt-stubs.new.o" // WRAPPER_OPTIONS-SAME: "-sycl-device-library-location={{.*}}/lib" /// Verify phases used to generate SPIR-V instead of LLVM-IR From 2886a1d06d41e7cbe62c5c7190bd4818493d507d Mon Sep 17 00:00:00 2001 From: jinge90 Date: Wed, 27 Aug 2025 16:31:55 +0800 Subject: [PATCH 4/5] fix clang-format Signed-off-by: jinge90 --- clang/lib/Driver/ToolChains/SYCL.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 62446ad4ecdad..449b55c5a6102 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -779,10 +779,9 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple, } using SYCLDeviceLibsList = SmallVector; - const SYCLDeviceLibsList SYCLDeviceLibs = {"libsycl-devicelib", - "libsycl-fallback-imf", - "libsycl-fallback-imf-fp64", - "libsycl-fallback-imf-bf16"}; + const SYCLDeviceLibsList SYCLDeviceLibs = { + "libsycl-devicelib", "libsycl-fallback-imf", "libsycl-fallback-imf-fp64", + "libsycl-fallback-imf-bf16"}; bool IsWindowsMSVCEnv = C.getDefaultToolChain().getTriple().isWindowsMSVCEnvironment(); bool IsNewOffload = C.getDriver().getUseNewOffloadingDriver(); From 9e128b80aaa3993b3d3a484ec38b5a3193a0455b Mon Sep 17 00:00:00 2001 From: jinge90 Date: Thu, 28 Aug 2025 10:02:03 +0800 Subject: [PATCH 5/5] Still use separate msvc math devicelib even after we merge most of them Signed-off-by: jinge90 --- clang/lib/Driver/ToolChains/SYCL.cpp | 10 +++++++--- libdevice/devicelib_combine.cpp | 3 --- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 449b55c5a6102..a9a127d0605f9 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -779,9 +779,13 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple, } using SYCLDeviceLibsList = SmallVector; - const SYCLDeviceLibsList SYCLDeviceLibs = { - "libsycl-devicelib", "libsycl-fallback-imf", "libsycl-fallback-imf-fp64", - "libsycl-fallback-imf-bf16"}; + const SYCLDeviceLibsList SYCLDeviceLibs = {"libsycl-devicelib", +#if defined(_WIN32) + "libsycl-msvc-math", +#endif + "libsycl-fallback-imf", + "libsycl-fallback-imf-fp64", + "libsycl-fallback-imf-bf16"}; bool IsWindowsMSVCEnv = C.getDefaultToolChain().getTriple().isWindowsMSVCEnvironment(); bool IsNewOffload = C.getDriver().getUseNewOffloadingDriver(); diff --git a/libdevice/devicelib_combine.cpp b/libdevice/devicelib_combine.cpp index a71859948a140..9664dff1eb0ab 100644 --- a/libdevice/devicelib_combine.cpp +++ b/libdevice/devicelib_combine.cpp @@ -7,9 +7,6 @@ //===----------------------------------------------------------------------===// #include "cmath_wrapper.cpp" #include "fallback-cmath.cpp" -#if defined(_WIN32) -#include "msvc_math.cpp" -#endif #include "cmath_wrapper_fp64.cpp" #include "complex_wrapper.cpp" #include "complex_wrapper_fp64.cpp"