From: Luo Xionghu <[email protected]>

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

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to