diff options
author | Ruiling Song <ruiling.song@intel.com> | 2016-04-01 14:53:28 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2016-04-08 15:10:55 +0800 |
commit | 7677bc8f23d6572c571f3d059eab47279f079aec (patch) | |
tree | 4002a3aaf848bafcbb25c43135cb668922b43402 | |
parent | 2cff98b691b8759b7c35359610ab019a2409ae3a (diff) | |
download | beignet-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.cpp | 4 |
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(); |