Skip to content

Commit

Permalink
Merge branch 'sycl' into llvmspirv_pulldown
Browse files Browse the repository at this point in the history
 Conflicts:
	sycl/test/check_device_code/vector/vector_bf16_builtins_preview.cpp
	sycl/test/check_device_code/vector/vector_convert_bfloat_preview.cpp
	sycl/test/check_device_code/vector/vector_math_ops_preview.cpp
  • Loading branch information
jsji committed Feb 27, 2025
2 parents e40b162 + 1e0c021 commit 577e562
Show file tree
Hide file tree
Showing 54 changed files with 863 additions and 244 deletions.
12 changes: 12 additions & 0 deletions clang/lib/Driver/SanitizerArgs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1278,13 +1278,25 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,

CmdArgs.push_back("-mllvm");
CmdArgs.push_back("-msan-eager-checks=1");
} else if (Sanitizers.has(SanitizerKind::Thread)) {
CmdArgs.push_back("-fsanitize=thread");
// The tsan function entry/exit builtins are used to record stack
// position, we don't need them in device offloading.
CmdArgs.push_back("-mllvm");
CmdArgs.push_back("-tsan-instrument-func-entry-exit=0");
// In device offloading, user can't call memory instrinsics explicitly, so
// we can safely skip them.
CmdArgs.push_back("-mllvm");
CmdArgs.push_back("-tsan-instrument-memintrinsics=0");
}
#else // _WIN32
std::string SanitizeArg;
if (Sanitizers.has(SanitizerKind::Address))
SanitizeArg = "-fsanitize=address";
else if (Sanitizers.has(SanitizerKind::Memory))
SanitizeArg = "-fsanitize=memory";
else if (Sanitizers.has(SanitizerKind::Thread))
SanitizeArg = "-fsanitize=thread";

if (!SanitizeArg.empty())
TC.getDriver().Diag(diag::warn_drv_unsupported_option_for_target)
Expand Down
23 changes: 17 additions & 6 deletions clang/lib/Driver/ToolChains/SYCL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -618,6 +618,7 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple,
// For DG2, we just use libsycl-msan as placeholder.
{"libsycl-msan", "internal"},
{"libsycl-msan-pvc", "internal"}};
const SYCLDeviceLibsList SYCLDeviceTsanLibs = {{"libsycl-tsan", "internal"}};
#endif

const SYCLDeviceLibsList SYCLNativeCpuDeviceLibs = {
Expand Down Expand Up @@ -758,8 +759,9 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple,
SyclFEEQArgVals.end());
ArgVals.insert(ArgVals.end(), ArchDeviceVals.begin(), ArchDeviceVals.end());

// Driver will report error if address sanitizer and memory sanitizer are
// both enabled, so we only need to check first one here.
// Driver will report error if more than one of address sanitizer, memory
// sanitizer or thread sanitizer is enabled, so we only need to check first
// one here.
for (const std::string &Arg : ArgVals) {
if (Arg.find("-fsanitize=address") != std::string::npos) {
SanitizeVal = "address";
Expand All @@ -769,13 +771,19 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple,
SanitizeVal = "memory";
break;
}
if (Arg.find("-fsanitize=thread") != std::string::npos) {
SanitizeVal = "thread";
break;
}
}
}

if (SanitizeVal == "address")
addSingleLibrary(SYCLDeviceAsanLibs[sanitizer_lib_idx]);
else if (SanitizeVal == "memory")
addSingleLibrary(SYCLDeviceMsanLibs[sanitizer_lib_idx]);
else if (SanitizeVal == "thread")
addLibraries(SYCLDeviceTsanLibs);
#endif

if (isNativeCPU)
Expand Down Expand Up @@ -898,6 +906,7 @@ static llvm::SmallVector<StringRef, 16> SYCLDeviceLibList{
"msan",
"msan-pvc",
"msan-cpu",
"tsan",
#endif
"imf",
"imf-fp64",
Expand Down Expand Up @@ -1739,11 +1748,12 @@ SYCLToolChain::SYCLToolChain(const Driver &D, const llvm::Triple &Triple,
if (SupportedByNativeCPU(*this, Opt))
continue;
// All sanitizer options are not currently supported, except
// AddressSanitizer and MemorySanitizer
// AddressSanitizer and MemorySanitizer and ThreadSanitizer
if (A->getOption().getID() == options::OPT_fsanitize_EQ &&
A->getValues().size() == 1) {
std::string SanitizeVal = A->getValue();
if (SanitizeVal == "address" || SanitizeVal == "memory")
if (SanitizeVal == "address" || SanitizeVal == "memory" ||
SanitizeVal == "thread")
continue;
}
D.Diag(clang::diag::warn_drv_unsupported_option_for_target)
Expand Down Expand Up @@ -1784,7 +1794,8 @@ SYCLToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args,
if (Opt.getID() == options::OPT_fsanitize_EQ &&
A->getValues().size() == 1) {
std::string SanitizeVal = A->getValue();
if (SanitizeVal == "address" || SanitizeVal == "memory") {
if (SanitizeVal == "address" || SanitizeVal == "memory" ||
SanitizeVal == "thread") {
if (IsNewDAL)
DAL->append(A);
continue;
Expand Down Expand Up @@ -2202,5 +2213,5 @@ void SYCLToolChain::AddClangCXXStdlibIncludeArgs(const ArgList &Args,
}

SanitizerMask SYCLToolChain::getSupportedSanitizers() const {
return SanitizerKind::Address | SanitizerKind::Memory;
return SanitizerKind::Address | SanitizerKind::Memory | SanitizerKind::Thread;
}
Empty file.
37 changes: 37 additions & 0 deletions clang/test/Driver/sycl-device-lib-old-model.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -378,3 +378,40 @@
// 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-SAME: "{{.*}}libsycl-msan-cpu.bc"

/// ###########################################################################
/// test behavior of libsycl-tsan.bc linking when -fsanitize=thread is available
// RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -fsanitize=thread -### 2>&1 \
// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN
// RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xsycl-target-frontend -fsanitize=thread -### 2>&1 \
// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN
// RUN: %clangxx -fsycl --no-offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xsycl-target-frontend=spir64 -fsanitize=thread -### 2>&1 \
// 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 -### 2>&1 \
// 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_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-SAME: "{{.*}}libsycl-tsan.bc"
// SYCL_DEVICE_TSAN_MACRO: "-cc1"
// SYCL_DEVICE_TSAN_MACRO-SAME: "USE_SYCL_DEVICE_TSAN"
// SYCL_DEVICE_TSAN_MACRO: llvm-link{{.*}} "-only-needed"
// SYCL_DEVICE_TSAN_MACRO-SAME: "{{.*}}libsycl-tsan.bc"
36 changes: 36 additions & 0 deletions clang/test/Driver/sycl-device-lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -365,3 +365,39 @@
// SYCL_DEVICE_LIB_MSAN_CPU: clang-linker-wrapper{{.*}} "-sycl-device-libraries
// SYCL_DEVICE_LIB_MSAN_CPU-SAME: {{.*}}libsycl-msan-cpu.new.o

/// ###########################################################################
/// test behavior of libsycl-tsan.o linking when -fsanitize=thread is available
// RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -fsanitize=thread -### 2>&1 \
// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN
// RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xsycl-target-frontend -fsanitize=thread -### 2>&1 \
// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN
// RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xsycl-target-frontend=spir64 -fsanitize=thread -### 2>&1 \
// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN
// RUN: %clangxx -fsycl --offload-new-driver %s --sysroot=%S/Inputs/SYCL -Xarch_device -fsanitize=thread -### 2>&1 \
// RUN: | FileCheck %s -check-prefix=SYCL_DEVICE_LIB_TSAN
// 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_LIB_TSAN
// 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-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
// SYCL_DEVICE_LIB_TSAN-SAME: {{.*}}libsycl-tsan.new.o
// SYCL_DEVICE_TSAN_MACRO: "-cc1"
// SYCL_DEVICE_TSAN_MACRO-SAME: "USE_SYCL_DEVICE_TSAN"
// SYCL_DEVICE_TSAN_MACRO: libsycl-tsan.new.o
10 changes: 10 additions & 0 deletions clang/test/Driver/sycl-device-sanitizer-win.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,13 @@
// RUN: | FileCheck --check-prefix=SYCL-MSAN %s

// SYCL-MSAN: ignoring '-fsanitize=memory' option as it is not currently supported for target 'spir64-unknown-unknown'

/// ###########################################################################

// We need to add "not" here since "error: unsupported option '-fsanitize=thread' for target 'x86_64-pc-windows-msvc'"
// RUN: not %clangxx -fsycl -fsanitize=thread -c %s -### 2>&1 \
// RUN: | FileCheck --check-prefix=SYCL-TSAN %s
// RUN: %clangxx -fsycl -Xarch_device -fsanitize=thread -c %s -### 2>&1 \
// RUN: | FileCheck --check-prefix=SYCL-TSAN %s

// SYCL-TSAN: ignoring '-fsanitize=thread' option as it is not currently supported for target 'spir64-unknown-unknown'
14 changes: 14 additions & 0 deletions clang/test/Driver/sycl-device-sanitizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,17 @@
// RUN: | FileCheck --check-prefix=SYCL-MSAN-XARCH-DEVICE %s
// SYCL-MSAN-XARCH-DEVICE: clang{{.*}} "-fsycl-is-device"
// SYCL-MSAN-XARCH-DEVICE-SAME: -fsanitize=memory

/// ###########################################################################

// RUN: %clangxx -fsycl -fsanitize=thread -c %s -### 2>&1 \
// RUN: | FileCheck --check-prefix=SYCL-TSAN %s
// SYCL-TSAN: clang{{.*}} "-fsycl-is-device"
// SYCL-TSAN-SAME: -fsanitize=thread
// SYCL-TSAN-SAME: "-mllvm" "-tsan-instrument-func-entry-exit=0"
// SYCL-TSAN-SAME: "-mllvm" "-tsan-instrument-memintrinsics=0"

// RUN: %clangxx -fsycl -Xarch_device -fsanitize=thread -c %s -### 2>&1 \
// RUN: | FileCheck --check-prefix=SYCL-TSAN-XARCH-DEVICE %s
// SYCL-TSAN-XARCH-DEVICE: clang{{.*}} "-fsycl-is-device"
// SYCL-TSAN-XARCH-DEVICE-SAME: -fsanitize=thread
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/acosh.cl
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_acosh, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_acosh, __builtin_acosh, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_acosh, __builtin_acoshf, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/asinh.cl
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_asinh, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_asinh, __builtin_asinh, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_asinh, __builtin_asinhf, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/atan.cl
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_atan, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_atan, __builtin_atan, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_atan, __builtin_atanf16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/atan2.cl
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,6 @@ _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_atan2, double,

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_BINARY_BUILTIN(half, __spirv_ocl_atan2, __builtin_atan2, half, half)
_CLC_DEFINE_BINARY_BUILTIN(half, __spirv_ocl_atan2, __builtin_atan2f16, half, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/cbrt.cl
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_cbrt, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_cbrt, __builtin_cbrt, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_cbrt, __builtin_cbrtf, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/clc_exp10.cl
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,6 @@ _CLC_UNARY_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, double, __clc_exp10, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __clc_exp10, __builtin_exp10, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __clc_exp10, __builtin_exp10f16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/clc_fmod.cl
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,6 @@ _CLC_BINARY_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, double, __clc_fmod, double,

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_BINARY_BUILTIN(half, __clc_fmod, __builtin_fmod, half, half)
_CLC_DEFINE_BINARY_BUILTIN(half, __clc_fmod, __builtin_fmodf16, half, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/clc_hypot.cl
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,6 @@ _CLC_BINARY_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, double, __clc_hypot, double,

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_BINARY_BUILTIN(half, __clc_hypot, __builtin_hypot, half, half)
_CLC_DEFINE_BINARY_BUILTIN(half, __clc_hypot, __builtin_hypotf, half, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/clc_remainder.cl
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ _CLC_BINARY_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, double, __clc_remainder, double,

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_BINARY_BUILTIN(half, __clc_remainder, __builtin_remainder, half,
_CLC_DEFINE_BINARY_BUILTIN(half, __clc_remainder, __builtin_remainderf, half,
half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/cos.cl
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_cos, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_cos, __builtin_cos, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_cos, __builtin_cosf16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/cosh.cl
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_cosh, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_cosh, __builtin_cosh, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_cosh, __builtin_coshf16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/erf.cl
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_erf, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_erf, __builtin_erf, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_erf, __builtin_erff, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/erfc.cl
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_erfc, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_erfc, __builtin_erfc, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_erfc, __builtin_erfcf, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/exp.cl
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_exp, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_exp, __builtin_exp, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_exp, __builtin_expf16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/exp2.cl
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_exp2, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_exp2, __builtin_exp2, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_exp2, __builtin_exp2f16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/expm1.cl
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_expm1, double)

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_expm1, __builtin_expm1, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_expm1, __builtin_expm1f, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/fdim.cl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_BINARY_BUILTIN(half, __spirv_ocl_fdim, __builtin_fdim, half, half)
_CLC_DEFINE_BINARY_BUILTIN(half, __spirv_ocl_fdim, __builtin_fdimf, half, half)

#endif
6 changes: 3 additions & 3 deletions libclc/libspirv/lib/generic/math/frexp.cl
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@
return BUILTIN(x, y); \
}

_CLC_DEFINE_NO_VEC(half, __spirv_ocl_frexp, __builtin_frexp, half, global int *)
_CLC_DEFINE_NO_VEC(half, __spirv_ocl_frexp, __builtin_frexpf16, half, global int *)
_CLC_V_V_VP_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, half, __spirv_ocl_frexp, half, global, int)
_CLC_DEFINE_NO_VEC(half, __spirv_ocl_frexp, __builtin_frexp, half, local int *)
_CLC_DEFINE_NO_VEC(half, __spirv_ocl_frexp, __builtin_frexpf16, half, local int *)
_CLC_V_V_VP_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, half, __spirv_ocl_frexp, half, local, int)
_CLC_DEFINE_NO_VEC(half, __spirv_ocl_frexp, __builtin_frexp, half, int *)
_CLC_DEFINE_NO_VEC(half, __spirv_ocl_frexp, __builtin_frexpf16, half, int *)
_CLC_V_V_VP_VECTORIZE(_CLC_DEF _CLC_OVERLOAD, half, __spirv_ocl_frexp, half, , int)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/log.cl
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_log, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_log, __builtin_log, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_log, __builtin_logf16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/log10.cl
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_log10, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_log10, __builtin_log10, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_log10, __builtin_log10f16, half)

#endif
2 changes: 1 addition & 1 deletion libclc/libspirv/lib/generic/math/log1p.cl
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,6 @@ _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __spirv_ocl_log1p, double);

#pragma OPENCL EXTENSION cl_khr_fp16 : enable

_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_log1p, __builtin_log1p, half)
_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(half, __spirv_ocl_log1p, __builtin_log1pf, half)

#endif
Loading

0 comments on commit 577e562

Please sign in to comment.