[Beignet] [PATCH 3/3] GBE: register width should not exceed execution width

Ruiling Song ruiling.song at intel.com
Tue Nov 19 21:51:32 PST 2013


Signed-off-by: Ruiling Song <ruiling.song at intel.com>
---
 backend/src/backend/gen_context.cpp |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp
index bbfc85d..f2c6428 100644
--- a/backend/src/backend/gen_context.cpp
+++ b/backend/src/backend/gen_context.cpp
@@ -882,10 +882,12 @@ namespace gbe
     tmp0.type = (src0.type == GEN_TYPE_L) ? GEN_TYPE_D : GEN_TYPE_UD;
     tmp1.type = (src1.type == GEN_TYPE_L) ? GEN_TYPE_D : GEN_TYPE_UD;
     int flag = p->curr.flag, subFlag = p->curr.subFlag;
-    GenRegister f1 = GenRegister::retype(tmp2, GEN_TYPE_UW),
-                f2 = GenRegister::suboffset(f1, 1),
-                f3 = GenRegister::suboffset(f1, 2),
-                f4 = GenRegister::suboffset(f1, 3);
+    GenRegister f1 = GenRegister::retype(tmp2, GEN_TYPE_UW);
+                f1.width = GEN_WIDTH_1;
+    GenRegister f2 = GenRegister::suboffset(f1, 1);
+    GenRegister f3 = GenRegister::suboffset(f1, 2);
+    GenRegister f4 = GenRegister::suboffset(f1, 3);
+
     p->push();
     p->curr.predicate = GEN_PREDICATE_NONE;
     saveFlag(f4, flag, subFlag);
-- 
1.7.9.5



More information about the Beignet mailing list