summaryrefslogtreecommitdiffstats
path: root/libclc/generic/lib/geometric
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-03-21 16:21:58 +0000
committerTom Stellard <thomas.stellard@amd.com>2014-03-21 16:21:58 +0000
commit074e7a8ed082572f3e401693e1a3cb299b69bb1c (patch)
tree96f354338b44e6df102bb592e996d645c30f28d1 /libclc/generic/lib/geometric
parent1583409e33c826d8b7d3706c3076e82cdef869f2 (diff)
downloadbcm5719-llvm-074e7a8ed082572f3e401693e1a3cb299b69bb1c.tar.gz
bcm5719-llvm-074e7a8ed082572f3e401693e1a3cb299b69bb1c.zip
Add cross for double3 and double4
Patch by: Jeroen Ketema Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 204477
Diffstat (limited to 'libclc/generic/lib/geometric')
-rw-r--r--libclc/generic/lib/geometric/cross.cl14
1 files changed, 14 insertions, 0 deletions
diff --git a/libclc/generic/lib/geometric/cross.cl b/libclc/generic/lib/geometric/cross.cl
index 4c1bc6f0346..3b4ca6cafae 100644
--- a/libclc/generic/lib/geometric/cross.cl
+++ b/libclc/generic/lib/geometric/cross.cl
@@ -9,3 +9,17 @@ _CLC_OVERLOAD _CLC_DEF float4 cross(float4 p0, float4 p1) {
return (float4)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
p0.x*p1.y - p0.y*p1.x, 0.f);
}
+
+#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+
+_CLC_OVERLOAD _CLC_DEF double3 cross(double3 p0, double3 p1) {
+ return (double3)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
+ p0.x*p1.y - p0.y*p1.x);
+}
+
+_CLC_OVERLOAD _CLC_DEF double4 cross(double4 p0, double4 p1) {
+ return (double4)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
+ p0.x*p1.y - p0.y*p1.x, 0.f);
+}
+#endif
OpenPOWER on IntegriCloud