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.ves...@rutgers.edu> Acked-by: Aaron Watry <awa...@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 } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits