[llvm-dev] Question about ISD::SUBCARRY
James Y Knight via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 27 09:00:19 PDT 2017
That's an excellent question. :)
I'd say it should _probably_ be defined as having the same boolean value as
the hardware's carry-flag, and there should be a TargetLowering function
which describes the semantics upon subtract.
On Tue, Jun 27, 2017 at 4:53 AM, Roger Ferrer Ibanez via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Dear all,
> a couple of new generic DAG nodes ISD::ADCARRY and ISD::SUBCARRY were
> recently introduced in https://reviews.llvm.org/D29872
> These nodes have three inputs and two outputs, the second output being the
> "carry". I understand that carry is well defined for ADDCARRY but my
> question is about SUBCARRY.
> Some architectures set the "carry" of a "x - y" subtraction is set when x
> < y (e.g x86, "borrow") and some others set it when x >= y (e.g. ARM). Does
> the ISD::SUBCARRY picks one interpretation (and uses it for combiners on
> top of this node) or leaves the interpretation to the target.
> Maybe my whole question does not make sense and even if only one
> interpretation is chosen this does not impact the target?
> Thank you very much,
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev