Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion libclc/clc/include/clc/clcmacro.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,21 @@

#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_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, FUNCTION, ARG1_TYPE)
_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); \
}

#ifdef cl_khr_fp16

Expand Down
15 changes: 4 additions & 11 deletions libclc/clc/include/clc/math/clc_ceil.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#ifndef __CLC_MATH_CLC_CEIL_H__
#define __CLC_MATH_CLC_CEIL_H__

#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
// clspv and spir-v targets provide their own OpenCL-compatible ceil
#define __clc_ceil ceil
#else

// Map the function to an LLVM intrinsic
#define __CLC_BODY <clc/math/unary_decl.inc>
#define __CLC_FUNCTION __clc_ceil
#define __CLC_INTRINSIC "llvm.ceil"
#include <clc/math/unary_intrin.inc>

#undef __CLC_INTRINSIC
#undef __CLC_FUNCTION
#include <clc/math/gentype.inc>

#endif
#undef __CLC_BODY
#undef __CLC_FUNCTION

#endif // __CLC_MATH_CLC_CEIL_H__
15 changes: 4 additions & 11 deletions libclc/clc/include/clc/math/clc_fabs.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#ifndef __CLC_MATH_CLC_FABS_H__
#define __CLC_MATH_CLC_FABS_H__

#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
// clspv and spir-v targets provide their own OpenCL-compatible fabs
#define __clc_fabs fabs
#else

// Map the function to an LLVM intrinsic
#define __CLC_BODY <clc/math/unary_decl.inc>
#define __CLC_FUNCTION __clc_fabs
#define __CLC_INTRINSIC "llvm.fabs"
#include <clc/math/unary_intrin.inc>

#undef __CLC_INTRINSIC
#undef __CLC_FUNCTION
#include <clc/math/gentype.inc>

#endif
#undef __CLC_BODY
#undef __CLC_FUNCTION

#endif // __CLC_MATH_CLC_FABS_H__
15 changes: 4 additions & 11 deletions libclc/clc/include/clc/math/clc_floor.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#ifndef __CLC_MATH_CLC_FLOOR_H__
#define __CLC_MATH_CLC_FLOOR_H__

#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
// clspv and spir-v targets provide their own OpenCL-compatible floor
#define __clc_floor floor
#else

// Map the function to an LLVM intrinsic
#define __CLC_BODY <clc/math/unary_decl.inc>
#define __CLC_FUNCTION __clc_floor
#define __CLC_INTRINSIC "llvm.floor"
#include <clc/math/unary_intrin.inc>

#undef __CLC_INTRINSIC
#undef __CLC_FUNCTION
#include <clc/math/gentype.inc>

#endif
#undef __CLC_BODY
#undef __CLC_FUNCTION

#endif // __CLC_MATH_CLC_FLOOR_H__
15 changes: 4 additions & 11 deletions libclc/clc/include/clc/math/clc_rint.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#ifndef __CLC_MATH_CLC_RINT_H__
#define __CLC_MATH_CLC_RINT_H__

#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
// clspv and spir-v targets provide their own OpenCL-compatible rint
#define __clc_rint rint
#else

// Map the function to an LLVM intrinsic
#define __CLC_BODY <clc/math/unary_decl.inc>
#define __CLC_FUNCTION __clc_rint
#define __CLC_INTRINSIC "llvm.rint"
#include <clc/math/unary_intrin.inc>

#undef __CLC_INTRINSIC
#undef __CLC_FUNCTION
#include <clc/math/gentype.inc>

#endif
#undef __CLC_BODY
#undef __CLC_FUNCTION

#endif // __CLC_MATH_CLC_RINT_H__
15 changes: 4 additions & 11 deletions libclc/clc/include/clc/math/clc_trunc.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#ifndef __CLC_MATH_CLC_TRUNC_H__
#define __CLC_MATH_CLC_TRUNC_H__

#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
// clspv and spir-v targets provide their own OpenCL-compatible trunc
#define __clc_trunc trunc
#else

// Map the function to an LLVM intrinsic
#define __CLC_BODY <clc/math/unary_decl.inc>
#define __CLC_FUNCTION __clc_trunc
#define __CLC_INTRINSIC "llvm.trunc"
#include <clc/math/unary_intrin.inc>

#undef __CLC_INTRINSIC
#undef __CLC_FUNCTION
#include <clc/math/gentype.inc>

#endif
#undef __CLC_BODY
#undef __CLC_FUNCTION

#endif // __CLC_MATH_CLC_TRUNC_H__
6 changes: 5 additions & 1 deletion libclc/clc/lib/clspv/SOURCES
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
dummy.cl
../generic/math/clc_ceil.cl
../generic/math/clc_fabs.cl
../generic/math/clc_floor.cl
../generic/math/clc_rint.cl
../generic/math/clc_trunc.cl
1 change: 0 additions & 1 deletion libclc/clc/lib/clspv/dummy.cl

This file was deleted.

5 changes: 5 additions & 0 deletions libclc/clc/lib/generic/SOURCES
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
geometric/clc_dot.cl
integer/clc_abs.cl
integer/clc_abs_diff.cl
math/clc_ceil.cl
math/clc_fabs.cl
math/clc_floor.cl
math/clc_rint.cl
math/clc_trunc.cl
relational/clc_all.cl
relational/clc_any.cl
relational/clc_bitselect.cl
Expand Down
6 changes: 6 additions & 0 deletions libclc/clc/lib/generic/math/clc_ceil.cl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <clc/internal/clc.h>

#undef __CLC_FUNCTION
#define __CLC_FUNCTION __clc_ceil
#define __CLC_BUILTIN __builtin_elementwise_ceil
#include <clc/math/unary_builtin.inc>
6 changes: 6 additions & 0 deletions libclc/clc/lib/generic/math/clc_fabs.cl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <clc/internal/clc.h>

#undef __CLC_FUNCTION
#define __CLC_FUNCTION __clc_fabs
#define __CLC_BUILTIN __builtin_elementwise_abs
#include <clc/math/unary_builtin.inc>
6 changes: 6 additions & 0 deletions libclc/clc/lib/generic/math/clc_floor.cl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <clc/internal/clc.h>

#undef __CLC_FUNCTION
#define __CLC_FUNCTION __clc_floor
#define __CLC_BUILTIN __builtin_elementwise_floor
#include <clc/math/unary_builtin.inc>
6 changes: 6 additions & 0 deletions libclc/clc/lib/generic/math/clc_rint.cl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <clc/internal/clc.h>

#undef __CLC_FUNCTION
#define __CLC_FUNCTION __clc_rint
#define __CLC_BUILTIN __builtin_elementwise_rint
#include <clc/math/unary_builtin.inc>
6 changes: 6 additions & 0 deletions libclc/clc/lib/generic/math/clc_trunc.cl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <clc/internal/clc.h>

#undef __CLC_FUNCTION
#define __CLC_FUNCTION __clc_trunc
#define __CLC_BUILTIN __builtin_elementwise_trunc
#include <clc/math/unary_builtin.inc>
6 changes: 5 additions & 1 deletion libclc/clc/lib/spirv/SOURCES
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
../generic/geometric/clc_dot.cl

../generic/math/clc_ceil.cl
../generic/math/clc_fabs.cl
../generic/math/clc_floor.cl
../generic/math/clc_rint.cl
../generic/math/clc_trunc.cl
5 changes: 5 additions & 0 deletions libclc/clc/lib/spirv64/SOURCES
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
../generic/geometric/clc_dot.cl
../generic/math/clc_ceil.cl
../generic/math/clc_fabs.cl
../generic/math/clc_floor.cl
../generic/math/clc_rint.cl
../generic/math/clc_trunc.cl
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/ceil.cl
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

#undef __CLC_FUNCTION
#define __CLC_FUNCTION ceil
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/fabs.cl
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

#undef __CLC_FUNCTION
#define __CLC_FUNCTION fabs
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/floor.cl
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

#undef __CLC_FUNCTION
#define __CLC_FUNCTION floor
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/rint.cl
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@

#undef __CLC_FUNCTION
#define __CLC_FUNCTION rint
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/round.cl
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@

#undef __CLC_FUNCTION
#define __CLC_FUNCTION round
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/sqrt.cl
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@
#include "math/clc_sqrt.h"

#define __CLC_FUNCTION sqrt
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
2 changes: 1 addition & 1 deletion libclc/generic/lib/math/trunc.cl
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@

#undef __CLC_FUNCTION
#define __CLC_FUNCTION trunc
#include "unary_builtin.inc"
#include <clc/math/unary_builtin.inc>
Loading