================ @@ -283,10 +283,12 @@ static bool shouldCompletelyUnroll(const Stmt *LoopStmt, ASTContext &ASTCtx, llvm::APInt InitNum = Matches[0].getNodeAs<IntegerLiteral>("initNum")->getValue(); auto CondOp = Matches[0].getNodeAs<BinaryOperator>("conditionOperator"); - if (InitNum.getBitWidth() != BoundNum.getBitWidth()) { - InitNum = InitNum.zext(BoundNum.getBitWidth()); - BoundNum = BoundNum.zext(InitNum.getBitWidth()); - } + unsigned MaxWidth = std::max(InitNum.getBitWidth(), BoundNum.getBitWidth()); + + if (InitNum.getBitWidth() != MaxWidth) + InitNum = InitNum.zext(MaxWidth); + if (BoundNum.getBitWidth() != MaxWidth) + BoundNum = BoundNum.zext(MaxWidth); ---------------- steakhal wrote:
I wonder if we need these ifs here. Maybe we could just apply the zext unconditionally. ```suggestion InitNum = InitNum.zext(MaxWidth); BoundNum = BoundNum.zext(MaxWidth); ``` https://github.com/llvm/llvm-project/pull/121203 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits