[PATCH] D84201: [LangRef] Add integer wrapping operand bundles.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 21 14:17:47 PDT 2020


efriedma added a comment.

I guess there are sort of three two precedents in IR for this sort of thing:

1. fast-math flags, as mentioned earlier.
2. constant arguments; see, for example, llvm.ctlz
3. metadata; for example, !range on calls.

I don't think we've really ever used operand bundles this way.

Metadata might make more sense here.



================
Comment at: llvm/docs/LangRef.rst:2296
+overflow, respectively, occurs during any computation the return value
+depends on in the called function (see value *dependence* as defined for
+:ref:`poison value <poisonvalues>`). The ``nuw`` and ``nsw`` bundles are only
----------------
> if unsigned and/or signed overflow, respectively, occurs during any computation the return value depends on in the called function

I don't think a generic definition here is really useful; the semantics are really specific to the intrinsic in question.

In particular, for matrix multiplication, this definition is a but unclear.  The order of the addition operations isn't defined for matrix multiplication; that matters for nsw.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84201/new/

https://reviews.llvm.org/D84201





More information about the llvm-commits mailing list