Skip to content

Commit 13a9b86

Browse files
authored
[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
1 parent 2550a63 commit 13a9b86

File tree

20 files changed

+48
-239
lines changed

20 files changed

+48
-239
lines changed

libclc/clc/include/clc/clcmacro.h

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -179,109 +179,4 @@
179179
_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, FUNCTION, ARG1_TYPE, \
180180
ARG2_TYPE)
181181

182-
// FIXME: Make _CLC_DEFINE_BINARY_BUILTIN avoid scalarization by default, and
183-
// introduce an explicit scalarizing version.
184-
#define _CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(RET_TYPE, FUNCTION, BUILTIN, \
185-
ARG1_TYPE, ARG2_TYPE) \
186-
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
187-
return BUILTIN(x, y); \
188-
} \
189-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, \
190-
ARG2_TYPE##2 y) { \
191-
return BUILTIN(x, y); \
192-
} \
193-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, \
194-
ARG2_TYPE##3 y) { \
195-
return BUILTIN(x, y); \
196-
} \
197-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, \
198-
ARG2_TYPE##4 y) { \
199-
return BUILTIN(x, y); \
200-
} \
201-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, \
202-
ARG2_TYPE##8 y) { \
203-
return BUILTIN(x, y); \
204-
} \
205-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x, \
206-
ARG2_TYPE##16 y) { \
207-
return BUILTIN(x, y); \
208-
}
209-
210-
#define _CLC_DEFINE_BINARY_BUILTIN_WITH_SCALAR_SECOND_ARG( \
211-
RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, ARG2_TYPE) \
212-
_CLC_DEFINE_BINARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, \
213-
ARG2_TYPE) \
214-
_CLC_BINARY_VECTORIZE_SCALAR_SECOND_ARG(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, \
215-
FUNCTION, ARG1_TYPE, ARG2_TYPE)
216-
217-
#define _CLC_DEFINE_UNARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE) \
218-
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x) { return BUILTIN(x); } \
219-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x) { \
220-
return BUILTIN(x); \
221-
} \
222-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x) { \
223-
return BUILTIN(x); \
224-
} \
225-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x) { \
226-
return BUILTIN(x); \
227-
} \
228-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x) { \
229-
return BUILTIN(x); \
230-
} \
231-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x) { \
232-
return BUILTIN(x); \
233-
}
234-
235-
#define _CLC_DEFINE_TERNARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, \
236-
ARG2_TYPE, ARG3_TYPE) \
237-
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y, \
238-
ARG3_TYPE z) { \
239-
return BUILTIN(x, y, z); \
240-
} \
241-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, ARG2_TYPE##2 y, \
242-
ARG3_TYPE##2 z) { \
243-
return BUILTIN(x, y, z); \
244-
} \
245-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, ARG2_TYPE##3 y, \
246-
ARG3_TYPE##3 z) { \
247-
return BUILTIN(x, y, z); \
248-
} \
249-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, ARG2_TYPE##4 y, \
250-
ARG3_TYPE##4 z) { \
251-
return BUILTIN(x, y, z); \
252-
} \
253-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, ARG2_TYPE##8 y, \
254-
ARG3_TYPE##8 z) { \
255-
return BUILTIN(x, y, z); \
256-
} \
257-
_CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION( \
258-
ARG1_TYPE##16 x, ARG2_TYPE##16 y, ARG3_TYPE##16 z) { \
259-
return BUILTIN(x, y, z); \
260-
}
261-
262-
#ifdef cl_khr_fp16
263-
264-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
265-
266-
#define _CLC_DEFINE_UNARY_BUILTIN_FP16(FUNCTION) \
267-
_CLC_DEF _CLC_OVERLOAD half FUNCTION(half x) { \
268-
return (half)FUNCTION((float)x); \
269-
} \
270-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, FUNCTION, half)
271-
272-
#define _CLC_DEFINE_BINARY_BUILTIN_FP16(FUNCTION) \
273-
_CLC_DEF _CLC_OVERLOAD half FUNCTION(half x, half y) { \
274-
return (half)FUNCTION((float)x, (float)y); \
275-
} \
276-
_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, FUNCTION, half, half)
277-
278-
#pragma OPENCL EXTENSION cl_khr_fp16 : disable
279-
280-
#else
281-
282-
#define _CLC_DEFINE_UNARY_BUILTIN_FP16(FUNCTION)
283-
#define _CLC_DEFINE_BINARY_BUILTIN_FP16(FUNCTION)
284-
285-
#endif
286-
287182
#endif // __CLC_CLCMACRO_H__

libclc/clc/include/clc/math/clc_pown.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#ifndef __CLC_MATH_CLC_POWN_H__
1010
#define __CLC_MATH_CLC_POWN_H__
1111

12-
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
12+
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
1313
#define __CLC_FUNCTION __clc_pown
1414

1515
#include <clc/math/gentype.inc>

libclc/clc/include/clc/math/clc_rootn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#ifndef __CLC_MATH_CLC_ROOTN_H__
1010
#define __CLC_MATH_CLC_ROOTN_H__
1111

12-
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
12+
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
1313
#define __CLC_FUNCTION __clc_rootn
1414

1515
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/math/clc_copysign.cl

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,10 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/internal/clc.h>
1110

12-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(float, __clc_copysign,
13-
__builtin_elementwise_copysign, float,
14-
float)
15-
16-
#ifdef cl_khr_fp64
17-
18-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
19-
20-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(double, __clc_copysign,
21-
__builtin_elementwise_copysign, double,
22-
double)
23-
24-
#endif
25-
26-
#ifdef cl_khr_fp16
27-
28-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
29-
30-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(half, __clc_copysign,
31-
__builtin_elementwise_copysign, half,
32-
half)
33-
34-
#endif
11+
#define FUNCTION __clc_copysign
12+
#define __CLC_FUNCTION(x) __builtin_elementwise_copysign
13+
#define __CLC_BODY <clc/shared/binary_def.inc>
3514

15+
#include <clc/math/gentype.inc>

libclc/opencl/include/clc/opencl/math/ldexp.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,10 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#define __CLC_FUNCTION ldexp
10+
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
11+
#include <clc/math/gentype.inc>
12+
#undef __CLC_FUNCTION
13+
914
#define __CLC_BODY <clc/opencl/math/ldexp.inc>
1015
#include <clc/math/gentype.inc>

libclc/opencl/include/clc/opencl/math/ldexp.inc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE ldexp(__CLC_GENTYPE x, int n);
10-
119
#ifndef __CLC_SCALAR
1210

13-
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE ldexp(__CLC_GENTYPE x, __CLC_INTN n);
11+
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE ldexp(__CLC_GENTYPE x, int n);
1412

1513
#endif

libclc/opencl/include/clc/opencl/math/pown.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//===----------------------------------------------------------------------===//
88

99
#define __CLC_FUNCTION pown
10-
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
10+
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
1111

1212
#include <clc/math/gentype.inc>
1313

libclc/opencl/include/clc/opencl/math/rootn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#define __CLC_BODY <clc/math/binary_decl_with_int_second_arg.inc>
9+
#define __CLC_BODY <clc/shared/binary_decl_with_int_second_arg.inc>
1010
#define __CLC_FUNCTION rootn
1111

1212
#include <clc/math/gentype.inc>

libclc/opencl/lib/clspv/math/fma.cl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/internal/math/clc_sw_fma.h>
1110
#include <clc/opencl/clc.h>
1211

13-
_CLC_DEFINE_TERNARY_BUILTIN(float, fma, __clc_sw_fma, float, float, float)
12+
#define __FLOAT_ONLY
13+
#define FUNCTION fma
14+
#define __CLC_FUNCTION(x) __clc_sw_fma
15+
#define __CLC_BODY <clc/shared/ternary_def.inc>
16+
17+
#include <clc/math/gentype.inc>

libclc/opencl/lib/generic/common/degrees.cl

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,10 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/common/clc_degrees.h>
1110
#include <clc/opencl/clc.h>
1211

13-
_CLC_DEFINE_UNARY_BUILTIN(float, degrees, __clc_degrees, float)
12+
#define FUNCTION degrees
13+
#define __CLC_BODY <clc/shared/unary_def.inc>
1414

15-
#ifdef cl_khr_fp64
16-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
17-
18-
_CLC_DEFINE_UNARY_BUILTIN(double, degrees, __clc_degrees, double)
19-
20-
#endif
21-
22-
#ifdef cl_khr_fp16
23-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
24-
25-
_CLC_DEFINE_UNARY_BUILTIN(half, degrees, __clc_degrees, half)
26-
27-
#endif
15+
#include <clc/math/gentype.inc>

libclc/opencl/lib/generic/common/radians.cl

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,10 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/common/clc_radians.h>
1110
#include <clc/opencl/clc.h>
1211

13-
_CLC_DEFINE_UNARY_BUILTIN(float, radians, __clc_radians, float)
12+
#define FUNCTION radians
13+
#define __CLC_BODY <clc/shared/unary_def.inc>
1414

15-
#ifdef cl_khr_fp64
16-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
17-
18-
_CLC_DEFINE_UNARY_BUILTIN(double, radians, __clc_radians, double)
19-
20-
#endif
21-
22-
#ifdef cl_khr_fp16
23-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
24-
25-
_CLC_DEFINE_UNARY_BUILTIN(half, radians, __clc_radians, half)
26-
27-
#endif
15+
#include <clc/math/gentype.inc>

libclc/opencl/lib/generic/math/fma.cl

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,11 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/math/clc_fma.h>
1110
#include <clc/math/math.h>
1211
#include <clc/opencl/clc.h>
1312

14-
_CLC_DEFINE_TERNARY_BUILTIN(float, fma, __clc_fma, float, float, float)
13+
#define FUNCTION fma
14+
#define __CLC_BODY <clc/shared/ternary_def.inc>
1515

16-
#ifdef cl_khr_fp64
17-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
18-
19-
_CLC_DEFINE_TERNARY_BUILTIN(double, fma, __clc_fma, double, double, double)
20-
21-
#endif
22-
23-
#ifdef cl_khr_fp16
24-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
25-
26-
_CLC_DEFINE_TERNARY_BUILTIN(half, fma, __clc_fma, half, half, half)
27-
28-
#endif
16+
#include <clc/math/gentype.inc>

libclc/opencl/lib/generic/math/ldexp.cl

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,14 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/math/clc_ldexp.h>
1110
#include <clc/opencl/clc.h>
1211

13-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(float, ldexp, __clc_ldexp, float, int)
12+
#define FUNCTION ldexp
13+
#define __CLC_FUNCTION(x) __clc_ldexp
14+
#define __CLC_BODY <clc/shared/binary_def_with_int_second_arg.inc>
1415

15-
#ifdef cl_khr_fp64
16-
17-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
18-
19-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(double, ldexp, __clc_ldexp, double, int)
20-
21-
#endif
22-
23-
#ifdef cl_khr_fp16
24-
25-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
26-
27-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(half, ldexp, __clc_ldexp, half, int)
28-
29-
#endif
16+
#include <clc/math/gentype.inc>
3017

3118
// This defines all the ldexp(GENTYPE, int) variants
3219
#define __CLC_BODY <ldexp.inc>

libclc/opencl/lib/generic/math/mad.cl

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,10 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/math/clc_mad.h>
1110
#include <clc/opencl/clc.h>
1211

13-
_CLC_DEFINE_TERNARY_BUILTIN(float, mad, __clc_mad, float, float, float)
12+
#define FUNCTION mad
13+
#define __CLC_BODY <clc/shared/ternary_def.inc>
1414

15-
#ifdef cl_khr_fp64
16-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
17-
18-
_CLC_DEFINE_TERNARY_BUILTIN(double, mad, __clc_mad, double, double, double)
19-
20-
#endif
21-
22-
#ifdef cl_khr_fp16
23-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
24-
25-
_CLC_DEFINE_TERNARY_BUILTIN(half, mad, __clc_mad, half, half, half)
26-
27-
#endif
15+
#include <clc/math/gentype.inc>

libclc/opencl/lib/generic/math/nextafter.cl

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,11 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/math/clc_nextafter.h>
1110
#include <clc/opencl/clc.h>
1211

13-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(float, nextafter, __clc_nextafter,
14-
float, float)
12+
#define FUNCTION nextafter
13+
#define __CLC_FUNCTION(x) __clc_nextafter
14+
#define __CLC_BODY <clc/shared/binary_def.inc>
1515

16-
#ifdef cl_khr_fp64
17-
18-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
19-
20-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(double, nextafter, __clc_nextafter,
21-
double, double)
22-
23-
#endif
24-
25-
#ifdef cl_khr_fp16
26-
27-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
28-
29-
_CLC_DEFINE_BINARY_BUILTIN_NO_SCALARIZE(half, nextafter, __clc_nextafter, half,
30-
half)
31-
32-
#endif
16+
#include <clc/math/gentype.inc>

libclc/opencl/lib/generic/math/pown.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
#include <clc/opencl/clc.h>
1111

1212
#define FUNCTION pown
13-
#define __CLC_BODY <clc/math/binary_def_with_int_second_arg.inc>
13+
#define __CLC_BODY <clc/shared/binary_def_with_int_second_arg.inc>
1414
#include <clc/math/gentype.inc>

0 commit comments

Comments
 (0)