[Beignet] [PATCH 7/7] GBE: retype double register to long type when do spilling.
Ruiling Song
ruiling.song at intel.com
Fri Apr 1 06:53:28 UTC 2016
Signed-off-by: Ruiling Song <ruiling.song at intel.com>
---
backend/src/backend/gen_context.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp
index 3484e63..b263cc7 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();
--
2.4.1
More information about the Beignet
mailing list