LGTM, thanks.
> -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of > Ruiling Song > Sent: Thursday, October 22, 2015 16:28 > To: [email protected] > Cc: Song, Ruiling > Subject: [Beignet] [PATCH] GBE: Fix unaligned load/store issues. > > 1. need support float. > 2. get correct element type. > 3. should use ir::TYPE_U8 for byte store. > > Signed-off-by: Ruiling Song <[email protected]> > --- > backend/src/llvm/llvm_gen_backend.cpp | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/backend/src/llvm/llvm_gen_backend.cpp > b/backend/src/llvm/llvm_gen_backend.cpp > index 980996e..ad10890 100644 > --- a/backend/src/llvm/llvm_gen_backend.cpp > +++ b/backend/src/llvm/llvm_gen_backend.cpp > @@ -4386,7 +4386,6 @@ namespace gbe > void GenWriter::emitUnalignedDQLoadStore(ir::Register ptr, Value > *llvmValues, ir::AddressSpace addrSpace, ir::Register bti, bool isLoad, bool > dwAligned, bool fixedBTI) > { > Type *llvmType = llvmValues->getType(); > - const ir::Type type = getType(ctx, llvmType); > unsigned byteSize = getTypeByteSize(unit, llvmType); > > Type *elemType = llvmType; > @@ -4396,6 +4395,7 @@ namespace gbe > elemType = vectorType->getElementType(); > elemNum = vectorType->getNumElements(); > } > + const ir::Type type = getType(ctx, elemType); > > vector<ir::Register> tupleData; > for (uint32_t elemID = 0; elemID < elemNum; ++elemID) { @@ -4438,7 > +4438,7 @@ namespace gbe > ctx.LOADI(ir::TYPE_S32, offset, immIndex); > ctx.ADD(ir::TYPE_S32, addr, ptr, offset); > } > - ctx.STORE(type, addr, addrSpace, dwAligned, fixedBTI, bti, reg); > + ctx.STORE(ir::TYPE_U8, addr, addrSpace, dwAligned, fixedBTI, > + bti, reg); > } > } > } > @@ -4492,9 +4492,10 @@ namespace gbe > else > ptr = pointer; > > + unsigned primitiveBits = scalarType->getPrimitiveSizeInBits(); > if (!dwAligned > - && (scalarType == IntegerType::get(I.getContext(), 64) > - || scalarType == IntegerType::get(I.getContext(), 32)) > + && (primitiveBits == 64 > + || primitiveBits == 32) > ) { > emitUnalignedDQLoadStore(ptr, llvmValues, addrSpace, btiReg, isLoad, > dwAligned, fixedBTI); > return; > -- > 2.3.1 > > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
