#undef __CLC_GENTYPE
#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
#define __CLC_GENTYPE double
#include __CLC_BODY
#undef __CLC_GENTYPE
#endif
+
+#undef __CLC_BODY
#ifndef __FLOAT_ONLY
#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
#define __CLC_FLOAT double
#define __CLC_FPSIZE 64
_CLC_OVERLOAD float16 __CLC_FUNCTION(float16, float16) __asm(__CLC_INTRINSIC ".v16f32");
#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
_CLC_OVERLOAD double __CLC_FUNCTION(double, double) __asm(__CLC_INTRINSIC ".f64");
_CLC_OVERLOAD double2 __CLC_FUNCTION(double2, double2) __asm(__CLC_INTRINSIC ".v2f64");
_CLC_OVERLOAD double3 __CLC_FUNCTION(double3, double3) __asm(__CLC_INTRINSIC ".v3f64");
_CLC_OVERLOAD float16 __CLC_FUNCTION(float16, float16, float16) __asm(__CLC_INTRINSIC ".v16f32");
#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
_CLC_OVERLOAD double __CLC_FUNCTION(double, double, double) __asm(__CLC_INTRINSIC ".f64");
_CLC_OVERLOAD double2 __CLC_FUNCTION(double2, double2, double2) __asm(__CLC_INTRINSIC ".v2f64");
_CLC_OVERLOAD double3 __CLC_FUNCTION(double3, double3, double3) __asm(__CLC_INTRINSIC ".v3f64");
_CLC_OVERLOAD float16 __CLC_FUNCTION(float16 f) __asm(__CLC_INTRINSIC ".v16f32");
#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
_CLC_OVERLOAD double __CLC_FUNCTION(double d) __asm(__CLC_INTRINSIC ".f64");
_CLC_OVERLOAD double2 __CLC_FUNCTION(double2 d) __asm(__CLC_INTRINSIC ".v2f64");
_CLC_OVERLOAD double3 __CLC_FUNCTION(double3 d) __asm(__CLC_INTRINSIC ".v3f64");
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <async_work_group_copy.inc>
#include <clc/async/gentype.inc>
-#undef __CLC_BODY
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <async_work_group_strided_copy.inc>
#include <clc/async/gentype.inc>
-#undef __CLC_BODY
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <prefetch.inc>
#include <clc/async/gentype.inc>
-#undef __CLC_BODY
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <mix.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <distance.inc>
#include <clc/geometric/floatn.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <acos.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <asin.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
// Map the llvm sqrt intrinsic to an OpenCL function.
#define __CLC_FUNCTION __clc_llvm_intr_sqrt
#define __CLC_INTRINSIC "llvm.sqrt"
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <exp10.inc>
#include <clc/math/gentype.inc>
#include "math.h"
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <fdim.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <fract.inc>
#include <clc/math/gentype.inc>
#include "math.h"
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <frexp.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <hypot.inc>
#include <clc/math/gentype.inc>
#include "../clcmacro.h"
#include "math.h"
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <lgamma_r.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <log10.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <mad.inc>
#include <clc/math/gentype.inc>
#include "math.h"
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <modf.inc>
#include <clc/math/gentype.inc>
#include <clc/clc.h>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <sincos.inc>
#include <clc/math/gentype.inc>
#define __CLC_BODY <clamp.inc>
#include <clc/integer/gentype.inc>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <clamp.inc>
#include <clc/math/gentype.inc>
#define __CLC_BODY <max.inc>
#include <clc/integer/gentype.inc>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <max.inc>
#include <clc/math/gentype.inc>
#define __CLC_BODY <min.inc>
#include <clc/integer/gentype.inc>
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
#define __CLC_BODY <min.inc>
#include <clc/math/gentype.inc>