summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2016-09-16 22:43:31 +0000
committerTom Stellard <thomas.stellard@amd.com>2016-09-16 22:43:31 +0000
commit62ca771ed8eef1040a146752b459a337c592ffa5 (patch)
tree9b52d990db19a790f86c3c6657f4ebde8524d76b
parente5d8ead2822f8ef8dc600cc555e1259835eb96c5 (diff)
amdgcn-amdhsa: Add get_num_groups implementation
git-svn-id: https://llvm.org/svn/llvm-project/libclc/trunk@281792 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--amdgcn-amdhsa/lib/OVERRIDES1
-rw-r--r--amdgcn-amdhsa/lib/SOURCES1
-rw-r--r--amdgcn-amdhsa/lib/workitem/get_num_groups.cl12
3 files changed, 14 insertions, 0 deletions
diff --git a/amdgcn-amdhsa/lib/OVERRIDES b/amdgcn-amdhsa/lib/OVERRIDES
index e69de29..c9bd69b 100644
--- a/amdgcn-amdhsa/lib/OVERRIDES
+++ b/amdgcn-amdhsa/lib/OVERRIDES
@@ -0,0 +1 @@
+workitem/get_num_groups.ll
diff --git a/amdgcn-amdhsa/lib/SOURCES b/amdgcn-amdhsa/lib/SOURCES
index 257942c..7b7ea4a 100644
--- a/amdgcn-amdhsa/lib/SOURCES
+++ b/amdgcn-amdhsa/lib/SOURCES
@@ -1,2 +1,3 @@
workitem/get_global_size.ll
workitem/get_local_size.ll
+workitem/get_num_groups.cl
diff --git a/amdgcn-amdhsa/lib/workitem/get_num_groups.cl b/amdgcn-amdhsa/lib/workitem/get_num_groups.cl
new file mode 100644
index 0000000..946b526
--- /dev/null
+++ b/amdgcn-amdhsa/lib/workitem/get_num_groups.cl
@@ -0,0 +1,12 @@
+
+#include <clc/clc.h>
+
+_CLC_DEF size_t get_num_groups(uint dim) {
+ size_t global_size = get_global_size(dim);
+ size_t local_size = get_local_size(dim);
+ size_t num_groups = global_size / local_size;
+ if (global_size % local_size != 0) {
+ num_groups++;
+ }
+ return num_groups;
+}