[libclc] r185003 - libclc: Add clamp(vec, scalar, scalar) and max(vec, scalar)

Tom Stellard thomas.stellard at amd.com
Wed Jun 26 11:21:49 PDT 2013


Author: tstellar
Date: Wed Jun 26 13:21:49 2013
New Revision: 185003

URL: http://llvm.org/viewvc/llvm-project?rev=185003&view=rev
Log:
libclc: Add clamp(vec, scalar, scalar) and max(vec, scalar)

For any GENTYPE that isn't scalar, we need to implement a mixed
vector/scalar version of clamp/max.

This depends on the min() patches I sent to the list a few minutes ago.

Patch by: Aaron Watry

Modified:
    libclc/trunk/generic/include/clc/shared/clamp.inc
    libclc/trunk/generic/include/clc/shared/max.inc
    libclc/trunk/generic/lib/shared/clamp.inc
    libclc/trunk/generic/lib/shared/max.inc

Modified: libclc/trunk/generic/include/clc/shared/clamp.inc
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/clamp.inc?rev=185003&r1=185002&r2=185003&view=diff
==============================================================================
--- libclc/trunk/generic/include/clc/shared/clamp.inc (original)
+++ libclc/trunk/generic/include/clc/shared/clamp.inc Wed Jun 26 13:21:49 2013
@@ -1 +1,5 @@
 _CLC_OVERLOAD _CLC_DECL GENTYPE clamp(GENTYPE x, GENTYPE y, GENTYPE z);
+
+#ifndef SCALAR
+_CLC_OVERLOAD _CLC_DECL GENTYPE clamp(GENTYPE x, SCALAR_GENTYPE y, SCALAR_GENTYPE z);
+#endif

Modified: libclc/trunk/generic/include/clc/shared/max.inc
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/max.inc?rev=185003&r1=185002&r2=185003&view=diff
==============================================================================
--- libclc/trunk/generic/include/clc/shared/max.inc (original)
+++ libclc/trunk/generic/include/clc/shared/max.inc Wed Jun 26 13:21:49 2013
@@ -1 +1,5 @@
 _CLC_OVERLOAD _CLC_DECL GENTYPE max(GENTYPE a, GENTYPE b);
+
+#ifndef SCALAR
+_CLC_OVERLOAD _CLC_DECL GENTYPE max(GENTYPE a, SCALAR_GENTYPE b);
+#endif

Modified: libclc/trunk/generic/lib/shared/clamp.inc
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/clamp.inc?rev=185003&r1=185002&r2=185003&view=diff
==============================================================================
--- libclc/trunk/generic/lib/shared/clamp.inc (original)
+++ libclc/trunk/generic/lib/shared/clamp.inc Wed Jun 26 13:21:49 2013
@@ -1,3 +1,9 @@
 _CLC_OVERLOAD _CLC_DEF GENTYPE clamp(GENTYPE x, GENTYPE y, GENTYPE z) {
   return (x > z ? z : (x < y ? y : x));
 }
+
+#ifndef SCALAR
+_CLC_OVERLOAD _CLC_DEF GENTYPE clamp(GENTYPE x, SCALAR_GENTYPE y, SCALAR_GENTYPE z) {
+  return (x > (GENTYPE)z ? (GENTYPE)z : (x < (GENTYPE)y ? (GENTYPE)y : x));
+}
+#endif
\ No newline at end of file

Modified: libclc/trunk/generic/lib/shared/max.inc
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/max.inc?rev=185003&r1=185002&r2=185003&view=diff
==============================================================================
--- libclc/trunk/generic/lib/shared/max.inc (original)
+++ libclc/trunk/generic/lib/shared/max.inc Wed Jun 26 13:21:49 2013
@@ -1,3 +1,9 @@
 _CLC_OVERLOAD _CLC_DEF GENTYPE max(GENTYPE a, GENTYPE b) {
   return (a > b ? a : b);
 }
+
+#ifndef SCALAR
+_CLC_OVERLOAD _CLC_DEF GENTYPE max(GENTYPE a, SCALAR_GENTYPE b) {
+  return (a > (GENTYPE)b ? a : (GENTYPE)b);
+}
+#endif
\ No newline at end of file





More information about the cfe-commits mailing list