diff options
Diffstat (limited to 'polly/lib/CodeGen/IslExprBuilder.cpp')
-rw-r--r-- | polly/lib/CodeGen/IslExprBuilder.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/polly/lib/CodeGen/IslExprBuilder.cpp b/polly/lib/CodeGen/IslExprBuilder.cpp index e3a329faf89..8faaeafe33a 100644 --- a/polly/lib/CodeGen/IslExprBuilder.cpp +++ b/polly/lib/CodeGen/IslExprBuilder.cpp @@ -639,7 +639,13 @@ Value *IslExprBuilder::createInt(__isl_take isl_ast_expr *Expr) { Val = isl_ast_expr_get_val(Expr); APValue = APIntFromVal(Val); - T = getType(Expr); + + auto BitWidth = APValue.getBitWidth(); + if (BitWidth <= 64) + T = getType(Expr); + else + T = Builder.getIntNTy(BitWidth); + APValue = APValue.sextOrSelf(T->getBitWidth()); V = ConstantInt::get(T, APValue); |