[clang] [clang] Allow builtin addc/subc to be constant evaluated (PR #81656)
Thorsten Schütt via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 14 01:07:50 PST 2024
================
@@ -12696,6 +12696,56 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E,
return BuiltinOp == Builtin::BI__atomic_always_lock_free ?
Success(0, E) : Error(E);
}
+ case Builtin::BI__builtin_addcb:
+ case Builtin::BI__builtin_addcs:
+ case Builtin::BI__builtin_addc:
+ case Builtin::BI__builtin_addcl:
+ case Builtin::BI__builtin_addcll:
+ case Builtin::BI__builtin_subcb:
+ case Builtin::BI__builtin_subcs:
+ case Builtin::BI__builtin_subc:
+ case Builtin::BI__builtin_subcl:
+ case Builtin::BI__builtin_subcll: {
+ LValue CarryOutLValue;
+ APSInt LHS, RHS, CarryIn, Result;
----------------
tschuett wrote:
If you search the internet for `llvm APSInt`, you will find the `S` means signed. You will also find `llvm APInt`. The latter is the unsigned version.
https://github.com/llvm/llvm-project/pull/81656
More information about the cfe-commits
mailing list