[libclc] r279656 - amdgcn: Also correct get_local_size type for HSA

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 24 12:11:52 PDT 2016


Author: arsenm
Date: Wed Aug 24 14:11:52 2016
New Revision: 279656

URL: http://llvm.org/viewvc/llvm-project?rev=279656&view=rev
Log:
amdgcn: Also correct get_local_size type for HSA

Modified:
    libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll

Modified: 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=279656&r1=279655&r2=279656&view=diff
==============================================================================
--- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll (original)
+++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll Wed Aug 24 14:11:52 2016
@@ -1,6 +1,6 @@
 declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0
 
-define i32 @get_local_size(i32 %dim) #1 {
+define i64 @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
@@ -13,19 +13,22 @@ define i32 @get_local_size(i32 %dim) #1
 
 x_dim:
   %x_size = and i32 %xy_size, 65535
-  ret i32 %x_size
+  %x_size.ext = zext i32 %x_size to i64
+  ret i64 %x_size.ext
 
 y_dim:
   %y_size = lshr i32 %xy_size, 16
-  ret i32 %y_size
+  %y_size.ext = zext i32 %y_size to i64
+  ret i64 %y_size.ext
 
 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
+  %z_size.ext = zext i32 %z_size to i64
+  ret i64 %z_size.ext
 
 default:
-  ret i32 1
+  ret i64 1
 }
 
 attributes #0 = { nounwind readnone }




More information about the cfe-commits mailing list