summaryrefslogtreecommitdiffstats
path: root/libclc
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2013-06-26 18:21:49 +0000
committerTom Stellard <thomas.stellard@amd.com>2013-06-26 18:21:49 +0000
commit34f513df7c06ac786dc9389e80217f95677ea1d5 (patch)
tree7ee64e399afb235a8d83ec0b3b2c15ee31f678c0 /libclc
parent075b31a2fa8b5405ce8c1afa736cd240016f1ec8 (diff)
downloadbcm5719-llvm-34f513df7c06ac786dc9389e80217f95677ea1d5.tar.gz
bcm5719-llvm-34f513df7c06ac786dc9389e80217f95677ea1d5.zip
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 llvm-svn: 185003
Diffstat (limited to 'libclc')
-rw-r--r--libclc/generic/include/clc/shared/clamp.inc4
-rw-r--r--libclc/generic/include/clc/shared/max.inc4
-rw-r--r--libclc/generic/lib/shared/clamp.inc6
-rw-r--r--libclc/generic/lib/shared/max.inc6
4 files changed, 20 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/shared/clamp.inc b/libclc/generic/include/clc/shared/clamp.inc
index 3e3a4357d38..67c8142dec6 100644
--- a/libclc/generic/include/clc/shared/clamp.inc
+++ b/libclc/generic/include/clc/shared/clamp.inc
@@ -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
diff --git a/libclc/generic/include/clc/shared/max.inc b/libclc/generic/include/clc/shared/max.inc
index ce6c6d0d5fa..9fe73c44e2d 100644
--- a/libclc/generic/include/clc/shared/max.inc
+++ b/libclc/generic/include/clc/shared/max.inc
@@ -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
diff --git a/libclc/generic/lib/shared/clamp.inc b/libclc/generic/lib/shared/clamp.inc
index ed49b8e8fd5..58370d3067c 100644
--- a/libclc/generic/lib/shared/clamp.inc
+++ b/libclc/generic/lib/shared/clamp.inc
@@ -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
diff --git a/libclc/generic/lib/shared/max.inc b/libclc/generic/lib/shared/max.inc
index 37409fc8a24..6a12b6faa2c 100644
--- a/libclc/generic/lib/shared/max.inc
+++ b/libclc/generic/lib/shared/max.inc
@@ -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
OpenPOWER on IntegriCloud