summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuiling Song <ruiling.song@intel.com>2016-04-01 14:53:28 +0800
committerYang Rong <rong.r.yang@intel.com>2016-04-08 15:10:55 +0800
commit7677bc8f23d6572c571f3d059eab47279f079aec (patch)
tree4002a3aaf848bafcbb25c43135cb668922b43402
parent2cff98b691b8759b7c35359610ab019a2409ae3a (diff)
downloadbeignet-7677bc8f23d6572c571f3d059eab47279f079aec.tar.gz
GBE: retype double register to long type when do spilling.
Signed-off-by: Ruiling Song <ruiling.song@intel.com> Reviewed-by: Pan Xiuli <xiuli.pan@intel.com>
-rw-r--r--backend/src/backend/gen_context.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp
index 3484e639..b263cc74 100644
--- a/backend/src/backend/gen_context.cpp
+++ b/backend/src/backend/gen_context.cpp
@@ -2007,10 +2007,10 @@ namespace gbe
else { //size == 8
payload.type = GEN_TYPE_UD;
GBE_ASSERT(payload.hstride == GEN_HORIZONTAL_STRIDE_1);
- loadBottomHalf(payload, src);
+ loadBottomHalf(payload, src.isdf()? GenRegister::retype(src, GEN_TYPE_UL) : src );
uint32_t regNum = (regSize/2*simdWidth) > 32 ? 2 : 1;
this->scratchWrite(msg, scratchOffset, regNum, GEN_TYPE_UD, GEN_SCRATCH_CHANNEL_MODE_DWORD);
- loadTopHalf(payload, src);
+ loadTopHalf(payload, src.isdf() ? GenRegister::retype(src, GEN_TYPE_UL) : src);
this->scratchWrite(msg, scratchOffset + 4*simdWidth, regNum, GEN_TYPE_UD, GEN_SCRATCH_CHANNEL_MODE_DWORD);
}
p->pop();