This patch updates LowerMatrixIntrinsics to actually use the nuw/nsw
bundles during code generation.
Using operand bundles for those optional arguments seems a bit more
elegant and lightweight than making matrix.multiply variadic (as
proposed in D80124). It should also be easier to add additional
arguments, like the layout of the operands, in the future.
There seems to be some precedence of using operand bundles in that way.
For example, recently the statepoint intrinsics are transitioning to use
operand bundles. See D80598 and 27304b1737a3 for examples.
The LangRef text is not sufficient to describe the syntax. I know this only because I went and read your verifier changes. Please clarify, ideally with an example.