Skip to content

Commit 7923d30

Browse files
committed
Merge remote-tracking branch 'frasercrmck/cherry-pick-libclc' into HEAD
Closes: intel#16249
2 parents d0d8a56 + 37f93d9 commit 7923d30

File tree

28 files changed

+112
-136
lines changed

28 files changed

+112
-136
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef __CLC_INTEGER_CLC_ABS_H__
2+
#define __CLC_INTEGER_CLC_ABS_H__
3+
4+
#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
5+
// clspv and spir-v targets provide their own OpenCL-compatible abs
6+
#define __clc_abs abs
7+
#else
8+
9+
#define __CLC_BODY <clc/integer/clc_abs.inc>
10+
#include <clc/integer/gentype.inc>
11+
12+
#endif
13+
14+
#endif // __CLC_INTEGER_CLC_ABS_H__
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
_CLC_OVERLOAD _CLC_DECL __CLC_U_GENTYPE __clc_abs(__CLC_GENTYPE x);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef __CLC_INTEGER_CLC_ABS_DIFF_H__
2+
#define __CLC_INTEGER_CLC_ABS_DIFF_H__
3+
4+
#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
5+
// clspv and spir-v targets provide their own OpenCL-compatible abs_diff
6+
#define __clc_abs_diff abs_diff
7+
#else
8+
9+
#define __CLC_BODY <clc/integer/clc_abs_diff.inc>
10+
#include <clc/integer/gentype.inc>
11+
12+
#endif
13+
14+
#endif // __CLC_INTEGER_CLC_ABS_DIFF_H__
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
_CLC_OVERLOAD _CLC_DECL __CLC_U_GENTYPE __clc_abs_diff(__CLC_GENTYPE x,
2+
__CLC_GENTYPE y);

libclc/clc/lib/generic/SOURCES

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
11
geometric/clc_dot.cl
2+
integer/clc_abs.cl
3+
integer/clc_abs_diff.cl
4+
relational/clc_all.cl
5+
relational/clc_any.cl
6+
relational/clc_bitselect.cl
7+
relational/clc_isequal.cl
8+
relational/clc_isfinite.cl
9+
relational/clc_isgreater.cl
10+
relational/clc_isgreaterequal.cl
11+
relational/clc_isinf.cl
12+
relational/clc_isless.cl
13+
relational/clc_islessequal.cl
14+
relational/clc_islessgreater.cl
15+
relational/clc_isnan.cl
16+
relational/clc_isnormal.cl
17+
relational/clc_isnotequal.cl
18+
relational/clc_isordered.cl
19+
relational/clc_isunordered.cl
20+
relational/clc_select.cl
21+
relational/clc_signbit.cl
222
shared/clc_clamp.cl
323
shared/clc_max.cl
424
shared/clc_min.cl
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include <clc/internal/clc.h>
2+
3+
#define __CLC_BODY <clc_abs.inc>
4+
#include <clc/integer/gentype.inc>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE __clc_abs(__CLC_GENTYPE x) {
2+
return __builtin_astype((__CLC_GENTYPE)(x > (__CLC_GENTYPE)(0) ? x : -x),
3+
__CLC_U_GENTYPE);
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include <clc/internal/clc.h>
2+
3+
#define __CLC_BODY <clc_abs_diff.inc>
4+
#include <clc/integer/gentype.inc>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE __clc_abs_diff(__CLC_GENTYPE x,
2+
__CLC_GENTYPE y) {
3+
__CLC_U_GENTYPE ux = __builtin_astype(x, __CLC_U_GENTYPE);
4+
__CLC_U_GENTYPE uy = __builtin_astype(y, __CLC_U_GENTYPE);
5+
return x > y ? ux - uy : uy - ux;
6+
}

libclc/generic/lib/integer/abs.cl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <clc/clc.h>
2-
#include <core/clc_core.h>
3-
#include <spirv/spirv.h>
2+
#include <clc/integer/clc_abs.h>
43

54
#define __CLC_BODY <abs.inc>
65
#include <clc/integer/gentype.inc>

0 commit comments

Comments
 (0)