[NFC][libclc] Replace and delete _CLC_DEFINE_UNARY/BINARY/TERNARY_BUILTIN macros (#145458)
Also delete unused _CLC_DEFINE_BINARY_BUILTIN_WITH_SCALAR_SECOND_ARG, _CLC_DEFINE_UNARY_BUILTIN_FP16 and _CLC_DEFINE_BINARY_BUILTIN_FP16. llvm-diff shows no change to nvptx64--nvidiacl.bc and amdgcn--amdhsa.bc
This commit is contained in:
parent
2550a637a1
commit
13a9b86f62
@ -179,109 +179,4 @@
|
||||
_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, FUNCTION, ARG1_TYPE, \
|
||||
ARG2_TYPE)
|
||||
|
||||
// FIXME: Make _CLC_DEFINE_BINARY_BUILTIN avoid scalarization by default, and
|
||||
// introduce an explicit scalarizing version.
|
||||
#define _CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(RET_TYPE, FUNCTION, BUILTIN, \
|
||||
ARG1_TYPE, ARG2_TYPE) \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
|
||||
return BUILTIN(x, y); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, \
|
||||
ARG2_TYPE##2 y) { \
|
||||
return BUILTIN(x, y); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, \
|
||||
ARG2_TYPE##3 y) { \
|
||||
return BUILTIN(x, y); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, \
|
||||
ARG2_TYPE##4 y) { \
|
||||
return BUILTIN(x, y); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, \
|
||||
ARG2_TYPE##8 y) { \
|
||||
return BUILTIN(x, y); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x, \
|
||||
ARG2_TYPE##16 y) { \
|
||||
return BUILTIN(x, y); \
|
||||
}
|
||||
|
||||
#define _CLC_DEFINE_BINARY_BUILTIN_WITH_SCALAR_SECOND_ARG( \
|
||||
RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, ARG2_TYPE) \
|
||||
_CLC_DEFINE_BINARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, \
|
||||
ARG2_TYPE) \
|
||||
_CLC_BINARY_VECTORIZE_SCALAR_SECOND_ARG(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, \
|
||||
FUNCTION, ARG1_TYPE, ARG2_TYPE)
|
||||
|
||||
#define _CLC_DEFINE_UNARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE) \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x) { return BUILTIN(x); } \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x) { \
|
||||
return BUILTIN(x); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x) { \
|
||||
return BUILTIN(x); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x) { \
|
||||
return BUILTIN(x); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x) { \
|
||||
return BUILTIN(x); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x) { \
|
||||
return BUILTIN(x); \
|
||||
}
|
||||
|
||||
#define _CLC_DEFINE_TERNARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, \
|
||||
ARG2_TYPE, ARG3_TYPE) \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y, \
|
||||
ARG3_TYPE z) { \
|
||||
return BUILTIN(x, y, z); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, ARG2_TYPE##2 y, \
|
||||
ARG3_TYPE##2 z) { \
|
||||
return BUILTIN(x, y, z); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, ARG2_TYPE##3 y, \
|
||||
ARG3_TYPE##3 z) { \
|
||||
return BUILTIN(x, y, z); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, ARG2_TYPE##4 y, \
|
||||
ARG3_TYPE##4 z) { \
|
||||
return BUILTIN(x, y, z); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, ARG2_TYPE##8 y, \
|
||||
ARG3_TYPE##8 z) { \
|
||||
return BUILTIN(x, y, z); \
|
||||
} \
|
||||
_CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION( \
|
||||
ARG1_TYPE##16 x, ARG2_TYPE##16 y, ARG3_TYPE##16 z) { \
|
||||
return BUILTIN(x, y, z); \
|
||||
}
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
#define _CLC_DEFINE_UNARY_BUILTIN_FP16(FUNCTION) \
|
||||
_CLC_DEF _CLC_OVERLOAD half FUNCTION(half x) { \
|
||||
return (half)FUNCTION((float)x); \
|
||||
} \
|
||||
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, FUNCTION, half)
|
||||
|
||||
#define _CLC_DEFINE_BINARY_BUILTIN_FP16(FUNCTION) \
|
||||
_CLC_DEF _CLC_OVERLOAD half FUNCTION(half x, half y) { \
|
||||
return (half)FUNCTION((float)x, (float)y); \
|
||||
} \
|
||||
_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, FUNCTION, half, half)
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : disable
|
||||
|
||||
#else
|
||||
|
||||
#define _CLC_DEFINE_UNARY_BUILTIN_FP16(FUNCTION)
|
||||
#define _CLC_DEFINE_BINARY_BUILTIN_FP16(FUNCTION)
|
||||
|
||||
#endif
|
||||
|
||||
#endif // __CLC_CLCMACRO_H__
|
||||
|
@ -9,7 +9,7 @@
|
||||
#ifndef __CLC_MATH_CLC_POWN_H__
|
||||
#define __CLC_MATH_CLC_POWN_H__
|
||||
|
||||
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_FUNCTION __clc_pown
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -9,7 +9,7 @@
|
||||
#ifndef __CLC_MATH_CLC_ROOTN_H__
|
||||
#define __CLC_MATH_CLC_ROOTN_H__
|
||||
|
||||
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_FUNCTION __clc_rootn
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,30 +6,10 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/internal/clc.h>
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(float, __clc_copysign,
|
||||
__builtin_elementwise_copysign, float,
|
||||
float)
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(double, __clc_copysign,
|
||||
__builtin_elementwise_copysign, double,
|
||||
double)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(half, __clc_copysign,
|
||||
__builtin_elementwise_copysign, half,
|
||||
half)
|
||||
|
||||
#endif
|
||||
#define FUNCTION __clc_copysign
|
||||
#define __CLC_FUNCTION(x) __builtin_elementwise_copysign
|
||||
#define __CLC_BODY <clc/shared/binary_def.inc>
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,5 +6,10 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#define __CLC_FUNCTION ldexp
|
||||
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
|
||||
#include <clc/math/gentype.inc>
|
||||
#undef __CLC_FUNCTION
|
||||
|
||||
#define __CLC_BODY <clc/opencl/math/ldexp.inc>
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,10 +6,8 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE ldexp(__CLC_GENTYPE x, int n);
|
||||
|
||||
#ifndef __CLC_SCALAR
|
||||
|
||||
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE ldexp(__CLC_GENTYPE x, __CLC_INTN n);
|
||||
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE ldexp(__CLC_GENTYPE x, int n);
|
||||
|
||||
#endif
|
||||
|
@ -7,7 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#define __CLC_FUNCTION pown
|
||||
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
|
||||
#define __CLC_FUNCTION rootn
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,8 +6,12 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/internal/math/clc_sw_fma.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(float, fma, __clc_sw_fma, float, float, float)
|
||||
#define __FLOAT_ONLY
|
||||
#define FUNCTION fma
|
||||
#define __CLC_FUNCTION(x) __clc_sw_fma
|
||||
#define __CLC_BODY <clc/shared/ternary_def.inc>
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,22 +6,10 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/common/clc_degrees.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_UNARY_BUILTIN(float, degrees, __clc_degrees, float)
|
||||
#define FUNCTION degrees
|
||||
#define __CLC_BODY <clc/shared/unary_def.inc>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_UNARY_BUILTIN(double, degrees, __clc_degrees, double)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_UNARY_BUILTIN(half, degrees, __clc_degrees, half)
|
||||
|
||||
#endif
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,22 +6,10 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/common/clc_radians.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_UNARY_BUILTIN(float, radians, __clc_radians, float)
|
||||
#define FUNCTION radians
|
||||
#define __CLC_BODY <clc/shared/unary_def.inc>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_UNARY_BUILTIN(double, radians, __clc_radians, double)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_UNARY_BUILTIN(half, radians, __clc_radians, half)
|
||||
|
||||
#endif
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,23 +6,11 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/math/clc_fma.h>
|
||||
#include <clc/math/math.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(float, fma, __clc_fma, float, float, float)
|
||||
#define FUNCTION fma
|
||||
#define __CLC_BODY <clc/shared/ternary_def.inc>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(double, fma, __clc_fma, double, double, double)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(half, fma, __clc_fma, half, half, half)
|
||||
|
||||
#endif
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,27 +6,14 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/math/clc_ldexp.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(float, ldexp, __clc_ldexp, float, int)
|
||||
#define FUNCTION ldexp
|
||||
#define __CLC_FUNCTION(x) __clc_ldexp
|
||||
#define __CLC_BODY <clc/shared/binary_def_with_int_second_arg.inc>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(double, ldexp, __clc_ldexp, double, int)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(half, ldexp, __clc_ldexp, half, int)
|
||||
|
||||
#endif
|
||||
#include <clc/math/gentype.inc>
|
||||
|
||||
// This defines all the ldexp(GENTYPE, int) variants
|
||||
#define __CLC_BODY <ldexp.inc>
|
||||
|
@ -6,22 +6,10 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/math/clc_mad.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(float, mad, __clc_mad, float, float, float)
|
||||
#define FUNCTION mad
|
||||
#define __CLC_BODY <clc/shared/ternary_def.inc>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(double, mad, __clc_mad, double, double, double)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(half, mad, __clc_mad, half, half, half)
|
||||
|
||||
#endif
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,27 +6,11 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/math/clc_nextafter.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(float, nextafter, __clc_nextafter,
|
||||
float, float)
|
||||
#define FUNCTION nextafter
|
||||
#define __CLC_FUNCTION(x) __clc_nextafter
|
||||
#define __CLC_BODY <clc/shared/binary_def.inc>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(double, nextafter, __clc_nextafter,
|
||||
double, double)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
|
||||
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
||||
|
||||
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(half, nextafter, __clc_nextafter, half,
|
||||
half)
|
||||
|
||||
#endif
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -10,5 +10,5 @@
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
#define FUNCTION pown
|
||||
#define __CLC_BODY <clc/math/binary_def_with_int_second_arg.inc>
|
||||
#define __CLC_BODY <clc/shared/binary_def_with_int_second_arg.inc>
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -10,5 +10,5 @@
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
#define FUNCTION rootn
|
||||
#define __CLC_BODY <clc/math/binary_def_with_int_second_arg.inc>
|
||||
#define __CLC_BODY <clc/shared/binary_def_with_int_second_arg.inc>
|
||||
#include <clc/math/gentype.inc>
|
||||
|
@ -6,8 +6,12 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <clc/clcmacro.h>
|
||||
#include <clc/internal/math/clc_sw_fma.h>
|
||||
#include <clc/opencl/clc.h>
|
||||
|
||||
_CLC_DEFINE_TERNARY_BUILTIN(float, fma, __clc_sw_fma, float, float, float)
|
||||
#define __FLOAT_ONLY
|
||||
#define FUNCTION fma
|
||||
#define __CLC_FUNCTION(x) __clc_sw_fma
|
||||
#define __CLC_BODY <clc/shared/ternary_def.inc>
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
Loading…
x
Reference in New Issue
Block a user