[libclc] r314548 - Fix amdgcn-amdhsa on llvm-3.9

Jan Vesely via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 29 12:06:53 PDT 2017


Author: jvesely
Date: Fri Sep 29 12:06:52 2017
New Revision: 314548

URL: http://llvm.org/viewvc/llvm-project?rev=314548&view=rev
Log:
Fix amdgcn-amdhsa on llvm-3.9

Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
Acked-by: Aaron Watry <awatry at gmail.com>

Added:
    libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9
    libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9
      - copied, changed from r314547, libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES
    libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll
    libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll
Modified:
    libclc/trunk/.travis.yml
    libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES

Modified: libclc/trunk/.travis.yml
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=314548&r1=314547&r2=314548&view=diff
==============================================================================
--- libclc/trunk/.travis.yml (original)
+++ libclc/trunk/.travis.yml Fri Sep 29 12:06:52 2017
@@ -13,7 +13,7 @@ matrix:
         - LABEL="make gcc LLVM-3.9"
         - LLVM_VERSION=3.9
         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
-        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc"
+        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc"
       addons:
         apt:
           sources:

Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=314548&r1=314547&r2=314548&view=diff
==============================================================================
--- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original)
+++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES Fri Sep 29 12:06:52 2017
@@ -1,4 +1 @@
 workitem/get_num_groups.ll
-workitem/get_global_size.39.ll
-workitem/get_local_size.39.ll
-workitem/get_num_groups.39.ll

Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9?rev=314548&view=auto
==============================================================================
--- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 (added)
+++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 Fri Sep 29 12:06:52 2017
@@ -0,0 +1,3 @@
+workitem/get_global_size.ll
+workitem/get_local_size.ll
+workitem/get_num_groups.39.ll

Copied: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 (from r314547, libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES)
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9?p2=libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9&p1=libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES&r1=314547&r2=314548&rev=314548&view=diff
==============================================================================
--- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original)
+++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 Fri Sep 29 12:06:52 2017
@@ -1,4 +1,2 @@
-workitem/get_num_groups.ll
 workitem/get_global_size.39.ll
 workitem/get_local_size.39.ll
-workitem/get_num_groups.39.ll

Added: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll?rev=314548&view=auto
==============================================================================
--- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll (added)
+++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll Fri Sep 29 12:06:52 2017
@@ -0,0 +1,36 @@
+declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0
+
+define i32 @get_global_size(i32 %dim) #1 {
+  %dispatch_ptr = call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr()
+  switch i32 %dim, label %default [
+    i32 0, label %x
+    i32 1, label %y
+    i32 2, label %z
+  ]
+
+x:
+  %ptr_x = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr, i32 12
+  %ptr_x32 = bitcast i8 addrspace(2)* %ptr_x to i32 addrspace(2)*
+  %x32 = load i32, i32 addrspace(2)* %ptr_x32, align 4, !invariant.load !0
+  ret i32 %x32
+
+y:
+  %ptr_y = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr, i32 16
+  %ptr_y32 = bitcast i8 addrspace(2)* %ptr_y to i32 addrspace(2)*
+  %y32 = load i32, i32 addrspace(2)* %ptr_y32, align 4, !invariant.load !0
+  ret i32 %y32
+
+z:
+  %ptr_z = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr, i32 20
+  %ptr_z32 = bitcast i8 addrspace(2)* %ptr_z to i32 addrspace(2)*
+  %z32 = load i32, i32 addrspace(2)* %ptr_z32, align 4, !invariant.load !0
+  ret i32 %z32
+
+default:
+  ret i32 1
+}
+
+attributes #0 = { nounwind readnone }
+attributes #1 = { alwaysinline norecurse nounwind readonly }
+
+!0 = !{}

Added: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll?rev=314548&view=auto
==============================================================================
--- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll (added)
+++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll Fri Sep 29 12:06:52 2017
@@ -0,0 +1,35 @@
+declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0
+
+define i32 @get_local_size(i32 %dim) #1 {
+  %dispatch_ptr = call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr()
+  %dispatch_ptr_i32 = bitcast i8 addrspace(2)* %dispatch_ptr to i32 addrspace(2)*
+  %xy_size_ptr = getelementptr inbounds i32, i32 addrspace(2)* %dispatch_ptr_i32, i32 1
+  %xy_size = load i32, i32 addrspace(2)* %xy_size_ptr, align 4, !invariant.load !0
+  switch i32 %dim, label %default [
+    i32 0, label %x_dim
+    i32 1, label %y_dim
+    i32 2, label %z_dim
+  ]
+
+x_dim:
+  %x_size = and i32 %xy_size, 65535
+  ret i32 %x_size
+
+y_dim:
+  %y_size = lshr i32 %xy_size, 16
+  ret i32 %y_size
+
+z_dim:
+  %z_size_ptr = getelementptr inbounds i32, i32 addrspace(2)* %dispatch_ptr_i32, i32 2
+  %z_size = load i32, i32 addrspace(2)* %z_size_ptr, align 4, !invariant.load !0, !range !1
+  ret i32 %z_size
+
+default:
+  ret i32 1
+}
+
+attributes #0 = { nounwind readnone }
+attributes #1 = { alwaysinline norecurse nounwind readonly }
+
+!0 = !{}
+!1 = !{ i32 0, i32 257 }




More information about the cfe-commits mailing list