Author: Daniel Stone Date: 2020-09-16T01:37:22-04:00 New Revision: 291bfff5dbb70360730e91b4019f8080e4e3d7f5
URL: https://github.com/llvm/llvm-project/commit/291bfff5dbb70360730e91b4019f8080e4e3d7f5 DIFF: https://github.com/llvm/llvm-project/commit/291bfff5dbb70360730e91b4019f8080e4e3d7f5.diff LOG: libclc: Add a __builtin to let SPIRV targets select between SW and HW FMA Reviewer: jenatali jvesely Differential Revision: https://reviews.llvm.org/D85910 Added: Modified: libclc/generic/lib/math/math.h libclc/spirv/lib/math/fma.cl libclc/spirv64/lib/math/fma.cl Removed: ################################################################################ diff --git a/libclc/generic/lib/math/math.h b/libclc/generic/lib/math/math.h index c931d19a380c..351e37dc3f12 100644 --- a/libclc/generic/lib/math/math.h +++ b/libclc/generic/lib/math/math.h @@ -40,6 +40,9 @@ #if (defined __AMDGCN__ || defined __R600__) && !defined __HAS_FMAF__ #define HAVE_HW_FMA32() (0) +#elif defined CLC_SPIRV || defined CLC_SPIRV64 +bool __attribute__((noinline)) __clc_runtime_has_hw_fma32(void); +#define HAVE_HW_FMA32() __clc_runtime_has_hw_fma32() #else #define HAVE_HW_FMA32() (1) #endif diff --git a/libclc/spirv/lib/math/fma.cl b/libclc/spirv/lib/math/fma.cl index 982ddc4374f3..79142425e52d 100644 --- a/libclc/spirv/lib/math/fma.cl +++ b/libclc/spirv/lib/math/fma.cl @@ -4,3 +4,8 @@ #define __CLC_BODY <fma.inc> #define __FLOAT_ONLY #include <clc/math/gentype.inc> + +bool __clc_runtime_has_hw_fma32() +{ + return false; +} diff --git a/libclc/spirv64/lib/math/fma.cl b/libclc/spirv64/lib/math/fma.cl index 982ddc4374f3..79142425e52d 100644 --- a/libclc/spirv64/lib/math/fma.cl +++ b/libclc/spirv64/lib/math/fma.cl @@ -4,3 +4,8 @@ #define __CLC_BODY <fma.inc> #define __FLOAT_ONLY #include <clc/math/gentype.inc> + +bool __clc_runtime_has_hw_fma32() +{ + return false; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits