GBE: fix a bug in int64 to float conversion.
authorZhigang Gong <zhigang.gong@intel.com>
Fri, 6 Jun 2014 06:26:48 +0000 (14:26 +0800)
committerZhigang Gong <zhigang.gong@intel.com>
Mon, 9 Jun 2014 07:14:16 +0000 (15:14 +0800)
When copy those pure 32bit int to float destination, we
should enable the mask. Otherwise, we may destroy the
value in inactive lanes.

Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
backend/src/backend/gen_context.cpp

index 7a0a806..69b4907 100644 (file)
@@ -843,6 +843,7 @@ namespace gbe
       p->curr.noMask = 1;
       p->CMP(GEN_CONDITIONAL_EQ, exp, GenRegister::immud(32));   //high == 0
       p->curr.predicate = GEN_PREDICATE_NORMAL;
+      p->curr.noMask = 0;
       p->MOV(dst, low);
       p->push();
         if (simdWidth == 8)