From: Luo <[email protected]>

float to float trunc should use RNDU IR instruction.

v2: fix typo. should be RNDD instead of RNDU.
Signed-off-by: Luo <[email protected]>
---
 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..ee5b6a3 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.RNDD(dstType, dst, src);
           }
           break;
           case Intrinsic::copysign:
-- 
1.9.1

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to