Author: kzhuravl Date: Thu Apr 7 14:54:19 2016 New Revision: 265713 URL: http://llvm.org/viewvc/llvm-project?rev=265713&view=rev Log: [AMDGPU] Implement get_local_size for amdgcn--amdhsa triple
Differential Revision: http://reviews.llvm.org/D18284 Added: libclc/trunk/amdgcn-amdhsa/ libclc/trunk/amdgcn-amdhsa/lib/ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES libclc/trunk/amdgcn-amdhsa/lib/SOURCES libclc/trunk/amdgcn-amdhsa/lib/workitem/ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll Modified: libclc/trunk/.gitignore libclc/trunk/configure.py Modified: libclc/trunk/.gitignore URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.gitignore?rev=265713&r1=265712&r2=265713&view=diff ============================================================================== --- libclc/trunk/.gitignore (original) +++ libclc/trunk/.gitignore Thu Apr 7 14:54:19 2016 @@ -1,5 +1,6 @@ Makefile amdgcn-- +amdgcn--amdhsa build/*.pyc built_libs/ generic-- Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=265713&view=auto ============================================================================== (empty) Added: libclc/trunk/amdgcn-amdhsa/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES?rev=265713&view=auto ============================================================================== --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES (added) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES Thu Apr 7 14:54:19 2016 @@ -0,0 +1 @@ +workitem/get_local_size.ll Added: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll?rev=265713&view=auto ============================================================================== --- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll (added) +++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll Thu Apr 7 14:54:19 2016 @@ -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, i64 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, i64 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 } Modified: libclc/trunk/configure.py URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/configure.py?rev=265713&r1=265712&r2=265713&view=diff ============================================================================== --- libclc/trunk/configure.py (original) +++ libclc/trunk/configure.py Thu Apr 7 14:54:19 2016 @@ -102,6 +102,9 @@ available_targets = { 'amdgcn--': { 'devices' : [{'gpu' : 'tahiti', 'aliases' : ['pitcairn', 'verde', 'oland', 'hainan', 'bonaire', 'kabini', 'kaveri', 'hawaii','mullins','tonga','carrizo','iceland','fiji','stoney'], 'defines' : {}} ]}, + 'amdgcn--amdhsa': { 'devices' : + [{'gpu' : '', 'aliases' : ['bonaire', 'hawaii', 'kabini', 'kaveri', 'mullins', 'carrizo', 'stoney', 'fiji', 'iceland', 'tonga'], + 'defines' : {}} ]}, 'nvptx--' : { 'devices' : [{'gpu' : '', 'aliases' : [], 'defines' : {'all' : ['cl_khr_fp64']}}]}, 'nvptx64--' : { 'devices' : [{'gpu' : '', 'aliases' : [], @@ -112,7 +115,7 @@ available_targets = { 'defines' : {'all' : ['cl_khr_fp64']}}]}, } -default_targets = ['nvptx--nvidiacl', 'nvptx64--nvidiacl', 'r600--', 'amdgcn--'] +default_targets = ['nvptx--nvidiacl', 'nvptx64--nvidiacl', 'r600--', 'amdgcn--', 'amdgcn--amdhsa'] targets = args if not targets: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits