[Beignet] [PATCH] fix bin/cl-program-tester tests/cl/program/execute/attributes.cl regression.

xionghu.luo at intel.com xionghu.luo at intel.com
Sun Sep 14 15:33:12 PDT 2014


From: Luo Xionghu <xionghu.luo at intel.com>

work_group_size_hint should define another variable.

Signed-off-by: Luo Xionghu <xionghu.luo at intel.com>
---
 backend/src/llvm/llvm_gen_backend.cpp |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index b0e02ca..918af24 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -1249,6 +1249,7 @@ namespace gbe
     // Loop over the kernel metadatas to set the required work group size.
     NamedMDNode *clKernelMetaDatas = TheModule->getNamedMetadata("opencl.kernels");
     size_t reqd_wg_sz[3] = {0, 0, 0};
+    size_t hint_wg_sz[3] = {0, 0, 0};
     ir::FunctionArgument::InfoFromLLVM llvmInfo;
     MDNode *node = NULL;
     MDNode *addrSpaceNode = NULL;
@@ -1320,18 +1321,18 @@ namespace gbe
         ConstantInt *y = dyn_cast<ConstantInt>(attrNode->getOperand(2));
         ConstantInt *z = dyn_cast<ConstantInt>(attrNode->getOperand(3));
         GBE_ASSERT(x && y && z);
-        reqd_wg_sz[0] = x->getZExtValue();
-        reqd_wg_sz[1] = y->getZExtValue();
-        reqd_wg_sz[2] = z->getZExtValue();
+        hint_wg_sz[0] = x->getZExtValue();
+        hint_wg_sz[1] = y->getZExtValue();
+        hint_wg_sz[2] = z->getZExtValue();
         functionAttributes += attrName->getString();
         std::stringstream param;
         char buffer[100];
         param <<"(";
-        param << reqd_wg_sz[0];
+        param << hint_wg_sz[0];
         param << ",";
-        param << reqd_wg_sz[1];
+        param << hint_wg_sz[1];
         param << ",";
-        param << reqd_wg_sz[2];
+        param << hint_wg_sz[2];
         param <<")";
         param >> buffer;
         functionAttributes += buffer;
-- 
1.7.9.5



More information about the Beignet mailing list