[Beignet] [PATCH] fix llvm.trunc.float instruction bug.
xionghu.luo at intel.com
xionghu.luo at intel.com
Thu Jan 15 01:22:48 PST 2015
From: Luo <xionghu.luo at intel.com>
float to float trunc should use RNDU IR instruction.
Signed-off-by: Luo <xionghu.luo at intel.com>
---
backend/src/llvm/llvm_gen_backend.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index 53dec0a..3e1588f 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -3310,11 +3310,9 @@ error:
ir::Type srcType = getType(ctx, llvmSrcType);
GBE_ASSERT(srcType == dstType);
- const ir::Register tmp = ctx.reg(getFamily(ir::TYPE_S32));
const ir::Register dst = this->getRegister(&I);
const ir::Register src = this->getRegister(I.getOperand(0));
- ctx.CVT(ir::TYPE_S32, srcType, tmp, src);
- ctx.CVT(dstType, ir::TYPE_S32, dst, tmp);
+ ctx.RNDU(dstType, dst, src);
}
break;
case Intrinsic::copysign:
--
1.9.1
More information about the Beignet
mailing list