[Beignet] [PATCH 04/13] libocl: Refine the workgroup functions, add signed info.

junyan.he at inbox.com junyan.he at inbox.com
Mon Nov 23 00:48:41 PST 2015


From: Junyan He <junyan.he at linux.intel.com>

Signed-off-by: Junyan He <junyan.he at linux.intel.com>
---
 backend/src/libocl/src/ocl_work_group.cl |  114 +++++++++++++++---------------
 1 file changed, 57 insertions(+), 57 deletions(-)

diff --git a/backend/src/libocl/src/ocl_work_group.cl b/backend/src/libocl/src/ocl_work_group.cl
index 065b223..5ad5a8f 100644
--- a/backend/src/libocl/src/ocl_work_group.cl
+++ b/backend/src/libocl/src/ocl_work_group.cl
@@ -51,76 +51,76 @@ BROADCAST_IMPL(double)
 #undef BROADCAST_IMPL
 
 
-#define RANGE_OP(RANGE, OP, GEN_TYPE) \
-    OVERLOADABLE GEN_TYPE __gen_ocl_work_group_##RANGE##_##OP(GEN_TYPE x); \
+#define RANGE_OP(RANGE, OP, GEN_TYPE, SIGN) \
+    OVERLOADABLE GEN_TYPE __gen_ocl_work_group_##RANGE##_##OP(bool sign, GEN_TYPE x); \
     OVERLOADABLE GEN_TYPE work_group_##RANGE##_##OP(GEN_TYPE x) { \
-      return __gen_ocl_work_group_##RANGE##_##OP(x);  \
+      return __gen_ocl_work_group_##RANGE##_##OP(SIGN, x);  \
     }
 
 /* reduce add */
-RANGE_OP(reduce, add, int)
-RANGE_OP(reduce, add, uint)
-RANGE_OP(reduce, add, long)
-RANGE_OP(reduce, add, ulong)
-RANGE_OP(reduce, add, float)
-RANGE_OP(reduce, add, double)
+RANGE_OP(reduce, add, int, true)
+RANGE_OP(reduce, add, uint, false)
+RANGE_OP(reduce, add, long, true)
+RANGE_OP(reduce, add, ulong, false)
+RANGE_OP(reduce, add, float, true)
+RANGE_OP(reduce, add, double, true)
 /* reduce min */
-RANGE_OP(reduce, min, int)
-RANGE_OP(reduce, min, uint)
-RANGE_OP(reduce, min, long)
-RANGE_OP(reduce, min, ulong)
-RANGE_OP(reduce, min, float)
-RANGE_OP(reduce, min, double)
+RANGE_OP(reduce, min, int, true)
+RANGE_OP(reduce, min, uint, false)
+RANGE_OP(reduce, min, long, true)
+RANGE_OP(reduce, min, ulong, false)
+RANGE_OP(reduce, min, float, true)
+RANGE_OP(reduce, min, double, true)
 /* reduce max */
-RANGE_OP(reduce, max, int)
-RANGE_OP(reduce, max, uint)
-RANGE_OP(reduce, max, long)
-RANGE_OP(reduce, max, ulong)
-RANGE_OP(reduce, max, float)
-RANGE_OP(reduce, max, double)
+RANGE_OP(reduce, max, int, true)
+RANGE_OP(reduce, max, uint, false)
+RANGE_OP(reduce, max, long, true)
+RANGE_OP(reduce, max, ulong, false)
+RANGE_OP(reduce, max, float, true)
+RANGE_OP(reduce, max, double, true)
 
 /* scan_inclusive add */
-RANGE_OP(scan_inclusive, add, int)
-RANGE_OP(scan_inclusive, add, uint)
-RANGE_OP(scan_inclusive, add, long)
-RANGE_OP(scan_inclusive, add, ulong)
-RANGE_OP(scan_inclusive, add, float)
-RANGE_OP(scan_inclusive, add, double)
+RANGE_OP(scan_inclusive, add, int, true)
+RANGE_OP(scan_inclusive, add, uint, false)
+RANGE_OP(scan_inclusive, add, long, true)
+RANGE_OP(scan_inclusive, add, ulong, false)
+RANGE_OP(scan_inclusive, add, float, true)
+RANGE_OP(scan_inclusive, add, double, true)
 /* scan_inclusive min */
-RANGE_OP(scan_inclusive, min, int)
-RANGE_OP(scan_inclusive, min, uint)
-RANGE_OP(scan_inclusive, min, long)
-RANGE_OP(scan_inclusive, min, ulong)
-RANGE_OP(scan_inclusive, min, float)
-RANGE_OP(scan_inclusive, min, double)
+RANGE_OP(scan_inclusive, min, int, true)
+RANGE_OP(scan_inclusive, min, uint, false)
+RANGE_OP(scan_inclusive, min, long, true)
+RANGE_OP(scan_inclusive, min, ulong, false)
+RANGE_OP(scan_inclusive, min, float, true)
+RANGE_OP(scan_inclusive, min, double, true)
 /* scan_inclusive max */
-RANGE_OP(scan_inclusive, max, int)
-RANGE_OP(scan_inclusive, max, uint)
-RANGE_OP(scan_inclusive, max, long)
-RANGE_OP(scan_inclusive, max, ulong)
-RANGE_OP(scan_inclusive, max, float)
-RANGE_OP(scan_inclusive, max, double)
+RANGE_OP(scan_inclusive, max, int, true)
+RANGE_OP(scan_inclusive, max, uint, false)
+RANGE_OP(scan_inclusive, max, long, true)
+RANGE_OP(scan_inclusive, max, ulong, false)
+RANGE_OP(scan_inclusive, max, float, true)
+RANGE_OP(scan_inclusive, max, double, true)
 
 /* scan_exclusive add */
-RANGE_OP(scan_exclusive, add, int)
-RANGE_OP(scan_exclusive, add, uint)
-RANGE_OP(scan_exclusive, add, long)
-RANGE_OP(scan_exclusive, add, ulong)
-RANGE_OP(scan_exclusive, add, float)
-RANGE_OP(scan_exclusive, add, double)
+RANGE_OP(scan_exclusive, add, int, true)
+RANGE_OP(scan_exclusive, add, uint, false)
+RANGE_OP(scan_exclusive, add, long, true)
+RANGE_OP(scan_exclusive, add, ulong, false)
+RANGE_OP(scan_exclusive, add, float, true)
+RANGE_OP(scan_exclusive, add, double, true)
 /* scan_exclusive min */
-RANGE_OP(scan_exclusive, min, int)
-RANGE_OP(scan_exclusive, min, uint)
-RANGE_OP(scan_exclusive, min, long)
-RANGE_OP(scan_exclusive, min, ulong)
-RANGE_OP(scan_exclusive, min, float)
-RANGE_OP(scan_exclusive, min, double)
+RANGE_OP(scan_exclusive, min, int, true)
+RANGE_OP(scan_exclusive, min, uint, false)
+RANGE_OP(scan_exclusive, min, long, true)
+RANGE_OP(scan_exclusive, min, ulong, false)
+RANGE_OP(scan_exclusive, min, float, true)
+RANGE_OP(scan_exclusive, min, double, true)
 /* scan_exclusive max */
-RANGE_OP(scan_exclusive, max, int)
-RANGE_OP(scan_exclusive, max, uint)
-RANGE_OP(scan_exclusive, max, long)
-RANGE_OP(scan_exclusive, max, ulong)
-RANGE_OP(scan_exclusive, max, float)
-RANGE_OP(scan_exclusive, max, double)
+RANGE_OP(scan_exclusive, max, int, true)
+RANGE_OP(scan_exclusive, max, uint, false)
+RANGE_OP(scan_exclusive, max, long, true)
+RANGE_OP(scan_exclusive, max, ulong, false)
+RANGE_OP(scan_exclusive, max, float, true)
+RANGE_OP(scan_exclusive, max, double, true)
 
 #undef RANGE_OP
-- 
1.7.9.5





More information about the Beignet mailing list