[llvm-dev] Question about ISD::SUBCARRY
Roger Ferrer Ibanez via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 27 01:53:46 PDT 2017
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,
More information about the llvm-dev