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
2 changes: 2 additions & 0 deletions libclc/clc/lib/generic/shared/clc_clamp.cl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
//===----------------------------------------------------------------------===//

#include <clc/internal/clc.h>
#include <clc/shared/clc_max.h>
#include <clc/shared/clc_min.h>

#define __CLC_BODY <clc_clamp.inc>
#include <clc/integer/gentype.inc>
Expand Down
5 changes: 2 additions & 3 deletions libclc/clc/lib/generic/shared/clc_clamp.inc
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_clamp(__CLC_GENTYPE x,
__CLC_GENTYPE y,
__CLC_GENTYPE z) {
return (x > z ? z : (x < y ? y : x));
return __clc_min(__clc_max(x, y), z);
}

#ifndef __CLC_SCALAR
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_clamp(__CLC_GENTYPE x,
__CLC_SCALAR_GENTYPE y,
__CLC_SCALAR_GENTYPE z) {
return (x > (__CLC_GENTYPE)z ? (__CLC_GENTYPE)z
: (x < (__CLC_GENTYPE)y ? (__CLC_GENTYPE)y : x));
return __clc_min(__clc_max(x, (__CLC_GENTYPE)y), (__CLC_GENTYPE)z);
}
#endif
1 change: 1 addition & 0 deletions libclc/clc/lib/generic/shared/clc_max.cl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
//===----------------------------------------------------------------------===//

#include <clc/internal/clc.h>
#include <clc/math/clc_fmax.h>

#define __CLC_BODY <clc_max.inc>
#include <clc/integer/gentype.inc>
Expand Down
20 changes: 19 additions & 1 deletion libclc/clc/lib/generic/shared/clc_max.inc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@
//
//===----------------------------------------------------------------------===//

#ifdef __CLC_FPSIZE

_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_max(__CLC_GENTYPE a,
__CLC_GENTYPE b) {
return __clc_fmax(a, b);
}

#ifndef __CLC_SCALAR
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_max(__CLC_GENTYPE a,
__CLC_SCALAR_GENTYPE b) {
return __clc_fmax(a, b);
}
#endif // __CLC_SCALAR

#else // __CLC_FPSIZE

_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_max(__CLC_GENTYPE a,
__CLC_GENTYPE b) {
return (a > b ? a : b);
Expand All @@ -16,4 +32,6 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_max(__CLC_GENTYPE a,
__CLC_SCALAR_GENTYPE b) {
return (a > (__CLC_GENTYPE)b ? a : (__CLC_GENTYPE)b);
}
#endif
#endif // __CLC_SCALAR

#endif // __CLC_FPSIZE
1 change: 1 addition & 0 deletions libclc/clc/lib/generic/shared/clc_min.cl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
//===----------------------------------------------------------------------===//

#include <clc/internal/clc.h>
#include <clc/math/clc_fmin.h>

#define __CLC_BODY <clc_min.inc>
#include <clc/integer/gentype.inc>
Expand Down
19 changes: 18 additions & 1 deletion libclc/clc/lib/generic/shared/clc_min.inc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,21 @@
//
//===----------------------------------------------------------------------===//

#ifdef __CLC_FPSIZE
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_min(__CLC_GENTYPE a,
__CLC_GENTYPE b) {
return __clc_fmin(a, b);
}

#ifndef __CLC_SCALAR
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_min(__CLC_GENTYPE a,
__CLC_SCALAR_GENTYPE b) {
return __clc_fmin(a, b);
}
#endif // __CLC_SCALAR

#else // __CLC_FPSIZE

_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_min(__CLC_GENTYPE a,
__CLC_GENTYPE b) {
return (b < a ? b : a);
Expand All @@ -16,4 +31,6 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_min(__CLC_GENTYPE a,
__CLC_SCALAR_GENTYPE b) {
return (b < (__CLC_GENTYPE)a ? (__CLC_GENTYPE)b : a);
}
#endif
#endif // __CLC_SCALAR

#endif // __CLC_FPSIZE
Loading