We need to choose unsigned dst type for this case.
Signed-off-by: Zhigang Gong <[email protected]>
---
backend/src/llvm/llvm_gen_backend.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/backend/src/llvm/llvm_gen_backend.cpp
b/backend/src/llvm/llvm_gen_backend.cpp
index 62d6eab..ebd3a33 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -1660,7 +1660,11 @@ namespace gbe
// Get the element type for a vector
Type *llvmDstType = I.getType();
Type *llvmSrcType = I.getOperand(0)->getType();
- const ir::Type dstType = getType(ctx, llvmDstType);
+ ir::Type dstType;
+ if (I.getOpcode() == Instruction::FPToUI)
+ dstType = getUnsignedType(ctx, llvmDstType);
+ else
+ dstType = getType(ctx, llvmSrcType);
ir::Type srcType;
if (I.getOpcode() == Instruction::ZExt || I.getOpcode() ==
Instruction::UIToFP) {
srcType = getUnsignedType(ctx, llvmSrcType);
--
1.7.9.5
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet