[Beignet] [PATCH v2 1/2] [OCL20] fix workgroup_broadcast instruction debug mode assert.

xionghu.luo at intel.com xionghu.luo at intel.com
Mon Dec 14 23:39:54 PST 2015


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

the workgoup related parameter of the workgroup_broadcast function is
FAMILY_QWORD.

v2: set the parameter according to the pointer family.
---
 backend/src/ir/instruction.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/backend/src/ir/instruction.cpp b/backend/src/ir/instruction.cpp
index 3370935..71b6230 100644
--- a/backend/src/ir/instruction.cpp
+++ b/backend/src/ir/instruction.cpp
@@ -1314,7 +1314,14 @@ namespace ir {
             whyNot = "Wrong number of source.";
             return false;
           } else {
-            const RegisterFamily fam = FAMILY_DWORD;
+            const ir::RegisterFamily pointerFamily = fn.getPointerFamily();
+            RegisterFamily fam;
+            if (pointerFamily == ir::FAMILY_DWORD) {
+              fam = FAMILY_DWORD;
+            }
+            else {
+              fam = FAMILY_QWORD;
+            }
             for (uint32_t srcID = 1; srcID < this->srcNum; ++srcID) {
               const Register regID = fn.getRegister(src, srcID);
               if (UNLIKELY(checkRegisterData(fam, regID, fn, whyNot) == false))
-- 
2.1.4



More information about the Beignet mailing list