if operand is signed 64 bit integer, emit -1 for SExt casting

Signed-off-by: Homer Hsing <[email protected]>
---
 backend/src/llvm/llvm_gen_backend.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/backend/src/llvm/llvm_gen_backend.cpp 
b/backend/src/llvm/llvm_gen_backend.cpp
index 6f4ed72..b824bf9 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -1694,7 +1694,7 @@ namespace gbe
           const ir::ImmediateIndex zero = ctx.newIntegerImmediate(0, dstType);
           ir::ImmediateIndex one;
           if (I.getOpcode() == Instruction::SExt
-              && (dstType == ir::TYPE_S8 || dstType == ir::TYPE_S16 || dstType 
== ir::TYPE_S32))
+              && (dstType == ir::TYPE_S8 || dstType == ir::TYPE_S16 || dstType 
== ir::TYPE_S32 || dstType == ir::TYPE_S64))
             one = ctx.newIntegerImmediate(-1, dstType);
           else
             one = ctx.newIntegerImmediate(1, dstType);
-- 
1.8.3.2

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

Reply via email to