From 17b9fec65205808e6cb1ccefe453aec6b18eb542 Mon Sep 17 00:00:00 2001
From: Bernd Machenschalk <bernd.machenschalk@aei.mpg.de>
Date: Wed, 10 Aug 2022 13:39:24 +0000
Subject: [PATCH] allow to disable "-cl-mad-enable" in OpenCL compile options
 by setting CLFFT_NO_MAD_ENABLE macro

---
 src/fft_setup.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/fft_setup.cpp b/src/fft_setup.cpp
index b014ea7..7f6de17 100644
--- a/src/fft_setup.cpp
+++ b/src/fft_setup.cpp
@@ -72,6 +72,12 @@
 #include <cmath>
 #include <limits.h>
 
+#if CLFFT_NO_MAD_ENABLE
+#define CLFFT_COMPILE_OPTIONS "-cl-single-precision-constant"
+#else
+#define CLFFT_COMPILE_OPTIONS "-cl-mad-enable -cl-single-precision-constant"
+#endif
+
 using namespace std;
 
 extern void getKernelWorkDimensions(cl_fft_plan *plan, cl_fft_kernel_info *kernelInfo, cl_int *batchSize, size_t *gWorkItems, size_t *lWorkItems);
@@ -434,7 +440,7 @@ patch_kernel_source:
         err = clGetDeviceInfo(devices[i], CL_DEVICE_TYPE, sizeof(device_type), &device_type, NULL);
         ERR_MACRO(err);
 
-        err = clBuildProgram(plan->program, 1, &devices[i], "-cl-mad-enable -cl-single-precision-constant", NULL, NULL);
+        err = clBuildProgram(plan->program, 1, &devices[i], CLFFT_COMPILE_OPTIONS, NULL, NULL);
         if (err != CL_SUCCESS)
         {
             char *build_log;
-- 
GitLab