I'm out of town on vacation until tomorrow evening. I'll see when I have time to take a look at these.<div><br></div><div>--Aaron<br><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 29, 2018, 1:40 AM Jan Vesely via Libclc-dev <<a href="mailto:libclc-dev@lists.llvm.org">libclc-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by: Jan Vesely <<a href="mailto:jan.vesely@rutgers.edu" target="_blank">jan.vesely@rutgers.edu</a>><br>
---<br>
This series consolidates existing llvm asm variants to clc file.<br>
I've verified that the code generated using llvm-5 is the same for<br>
<a href="http://get-locl-size.cl" rel="noreferrer" target="_blank">get-locl-size.cl</a>, <a href="http://get-global-size.cl" rel="noreferrer" target="_blank">get-global-size.cl</a> <a href="http://get-num-groups.cl" rel="noreferrer" target="_blank">get-num-groups.cl</a>, and<br>
<a href="http://global-memory.cl" rel="noreferrer" target="_blank">global-memory.cl</a> piglits (and all of them pass on Turks).<br>
<br>
 r600/lib/OVERRIDES_3.9                 |  1 -<br>
 r600/lib/OVERRIDES_4.0                 |  1 -<br>
 r600/lib/OVERRIDES_5.0                 |  1 -<br>
 r600/lib/OVERRIDES_6.0                 |  1 -<br>
 r600/lib/SOURCES                       |  2 +-<br>
 r600/lib/SOURCES_3.9                   |  1 -<br>
 r600/lib/SOURCES_4.0                   |  1 -<br>
 r600/lib/SOURCES_5.0                   |  1 -<br>
 r600/lib/SOURCES_6.0                   |  1 -<br>
 r600/lib/workitem/get_local_size.39.ll | 20 --------------------<br>
 r600/lib/workitem/<a href="http://get_local_size.cl" rel="noreferrer" target="_blank">get_local_size.cl</a>    | 15 +++++++++++++++<br>
 r600/lib/workitem/get_local_size.ll    | 20 --------------------<br>
 12 files changed, 16 insertions(+), 49 deletions(-)<br>
 delete mode 100644 r600/lib/workitem/get_local_size.39.ll<br>
 create mode 100644 r600/lib/workitem/<a href="http://get_local_size.cl" rel="noreferrer" target="_blank">get_local_size.cl</a><br>
 delete mode 100644 r600/lib/workitem/get_local_size.ll<br>
<br>
diff --git a/r600/lib/OVERRIDES_3.9 b/r600/lib/OVERRIDES_3.9<br>
index c055c6d..e1a6ae8 100644<br>
--- a/r600/lib/OVERRIDES_3.9<br>
+++ b/r600/lib/OVERRIDES_3.9<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.ll<br>
 workitem/get_global_size.ll<br>
-workitem/get_local_size.ll<br>
 workitem/get_num_groups.ll<br>
diff --git a/r600/lib/OVERRIDES_4.0 b/r600/lib/OVERRIDES_4.0<br>
index c055c6d..e1a6ae8 100644<br>
--- a/r600/lib/OVERRIDES_4.0<br>
+++ b/r600/lib/OVERRIDES_4.0<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.ll<br>
 workitem/get_global_size.ll<br>
-workitem/get_local_size.ll<br>
 workitem/get_num_groups.ll<br>
diff --git a/r600/lib/OVERRIDES_5.0 b/r600/lib/OVERRIDES_5.0<br>
index c055c6d..e1a6ae8 100644<br>
--- a/r600/lib/OVERRIDES_5.0<br>
+++ b/r600/lib/OVERRIDES_5.0<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.ll<br>
 workitem/get_global_size.ll<br>
-workitem/get_local_size.ll<br>
 workitem/get_num_groups.ll<br>
diff --git a/r600/lib/OVERRIDES_6.0 b/r600/lib/OVERRIDES_6.0<br>
index c055c6d..e1a6ae8 100644<br>
--- a/r600/lib/OVERRIDES_6.0<br>
+++ b/r600/lib/OVERRIDES_6.0<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.ll<br>
 workitem/get_global_size.ll<br>
-workitem/get_local_size.ll<br>
 workitem/get_num_groups.ll<br>
diff --git a/r600/lib/SOURCES b/r600/lib/SOURCES<br>
index e69be4a..75cf901 100644<br>
--- a/r600/lib/SOURCES<br>
+++ b/r600/lib/SOURCES<br>
@@ -5,6 +5,6 @@ workitem/<a href="http://get_global_offset.cl" rel="noreferrer" target="_blank">get_global_offset.cl</a><br>
 workitem/<a href="http://get_group_id.cl" rel="noreferrer" target="_blank">get_group_id.cl</a><br>
 workitem/get_global_size.ll<br>
 workitem/<a href="http://get_local_id.cl" rel="noreferrer" target="_blank">get_local_id.cl</a><br>
-workitem/get_local_size.ll<br>
+workitem/<a href="http://get_local_size.cl" rel="noreferrer" target="_blank">get_local_size.cl</a><br>
 workitem/get_num_groups.ll<br>
 workitem/<a href="http://get_work_dim.cl" rel="noreferrer" target="_blank">get_work_dim.cl</a><br>
diff --git a/r600/lib/SOURCES_3.9 b/r600/lib/SOURCES_3.9<br>
index ba09398..9f36052 100644<br>
--- a/r600/lib/SOURCES_3.9<br>
+++ b/r600/lib/SOURCES_3.9<br>
@@ -15,5 +15,4 @@ image/<a href="http://write_imageui.cl" rel="noreferrer" target="_blank">write_imageui.cl</a><br>
 image/write_image_impl.ll<br>
 synchronization/barrier_impl.39.ll<br>
 workitem/get_global_size.39.ll<br>
-workitem/get_local_size.39.ll<br>
 workitem/get_num_groups.39.ll<br>
diff --git a/r600/lib/SOURCES_4.0 b/r600/lib/SOURCES_4.0<br>
index 091990c..6ca2332 100644<br>
--- a/r600/lib/SOURCES_4.0<br>
+++ b/r600/lib/SOURCES_4.0<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.39.ll<br>
 workitem/get_global_size.39.ll<br>
-workitem/get_local_size.39.ll<br>
 workitem/get_num_groups.39.ll<br>
diff --git a/r600/lib/SOURCES_5.0 b/r600/lib/SOURCES_5.0<br>
index 091990c..6ca2332 100644<br>
--- a/r600/lib/SOURCES_5.0<br>
+++ b/r600/lib/SOURCES_5.0<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.39.ll<br>
 workitem/get_global_size.39.ll<br>
-workitem/get_local_size.39.ll<br>
 workitem/get_num_groups.39.ll<br>
diff --git a/r600/lib/SOURCES_6.0 b/r600/lib/SOURCES_6.0<br>
index 091990c..6ca2332 100644<br>
--- a/r600/lib/SOURCES_6.0<br>
+++ b/r600/lib/SOURCES_6.0<br>
@@ -1,4 +1,3 @@<br>
 synchronization/barrier_impl.39.ll<br>
 workitem/get_global_size.39.ll<br>
-workitem/get_local_size.39.ll<br>
 workitem/get_num_groups.39.ll<br>
diff --git a/r600/lib/workitem/get_local_size.39.ll b/r600/lib/workitem/get_local_size.39.ll<br>
deleted file mode 100644<br>
index c9f2c84..0000000<br>
--- a/r600/lib/workitem/get_local_size.39.ll<br>
+++ /dev/null<br>
@@ -1,20 +0,0 @@<br>
-declare i32 @llvm.r600.read.local.size.x() nounwind readnone<br>
-declare i32 @llvm.r600.read.local.size.y() nounwind readnone<br>
-declare i32 @llvm.r600.read.local.size.z() nounwind readnone<br>
-<br>
-target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"<br>
-<br>
-define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline {<br>
-  switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim]<br>
-x_dim:<br>
-  %x = call i32 @llvm.r600.read.local.size.x()<br>
-  ret i32 %x<br>
-y_dim:<br>
-  %y = call i32 @llvm.r600.read.local.size.y()<br>
-  ret i32 %y<br>
-z_dim:<br>
-  %z = call i32 @llvm.r600.read.local.size.z()<br>
-  ret i32 %z<br>
-default:<br>
-  ret i32 1<br>
-}<br>
diff --git a/r600/lib/workitem/<a href="http://get_local_size.cl" rel="noreferrer" target="_blank">get_local_size.cl</a> b/r600/lib/workitem/<a href="http://get_local_size.cl" rel="noreferrer" target="_blank">get_local_size.cl</a><br>
new file mode 100644<br>
index 0000000..89e2612<br>
--- /dev/null<br>
+++ b/r600/lib/workitem/<a href="http://get_local_size.cl" rel="noreferrer" target="_blank">get_local_size.cl</a><br>
@@ -0,0 +1,15 @@<br>
+#include <clc/clc.h><br>
+<br>
+uint __clc_r600_get_local_size_x(void) __asm("llvm.r600.read.local.size.x");<br>
+uint __clc_r600_get_local_size_y(void) __asm("llvm.r600.read.local.size.y");<br>
+uint __clc_r600_get_local_size_z(void) __asm("llvm.r600.read.local.size.z");<br>
+<br>
+_CLC_DEF size_t get_local_size(uint dim)<br>
+{<br>
+       switch (dim) {<br>
+       case 0: return __clc_r600_get_local_size_x();<br>
+       case 1: return __clc_r600_get_local_size_y();<br>
+       case 2: return __clc_r600_get_local_size_z();<br>
+       default: return 1;<br>
+       }<br>
+}<br>
diff --git a/r600/lib/workitem/get_local_size.ll b/r600/lib/workitem/get_local_size.ll<br>
deleted file mode 100644<br>
index 04ce076..0000000<br>
--- a/r600/lib/workitem/get_local_size.ll<br>
+++ /dev/null<br>
@@ -1,20 +0,0 @@<br>
-declare i32 @llvm.r600.read.local.size.x() nounwind readnone<br>
-declare i32 @llvm.r600.read.local.size.y() nounwind readnone<br>
-declare i32 @llvm.r600.read.local.size.z() nounwind readnone<br>
-<br>
-target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"<br>
-<br>
-define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline {<br>
-  switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim]<br>
-x_dim:<br>
-  %x = call i32 @llvm.r600.read.local.size.x()<br>
-  ret i32 %x<br>
-y_dim:<br>
-  %y = call i32 @llvm.r600.read.local.size.y()<br>
-  ret i32 %y<br>
-z_dim:<br>
-  %z = call i32 @llvm.r600.read.local.size.z()<br>
-  ret i32 %z<br>
-default:<br>
-  ret i32 1<br>
-}<br>
-- <br>
2.18.1<br>
<br>
_______________________________________________<br>
Libclc-dev mailing list<br>
<a href="mailto:Libclc-dev@lists.llvm.org" target="_blank">Libclc-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev</a><br>
</blockquote></div></div>