This change provides an implementation of the XVentanaCondOps vendor extension. This extension is defined in version 1.0.0 of the VTx-family custom instructions specification (https://github.com/ventanamicro/ventana-custom-extensions/releases/download/v1.0.0/ventana-custom-extensions-v1.0.0.pdf) by Ventana Micro Systems.
This change is intended to be a test case for our vendor extension policy. I believe this to be a case we clearly should accept, but it gives us an opportunity to discuss and set precedent on various policy and naming questions. (I will comment on the review to highlight questions I think are worth discussion.)
I intent to bring this up at the next RISCV sync call, and ensure we have consensus. Once this lands, I plan to use this extension to prototype selection lowering to conditional moves. There's an RVI proposal in flight, and the expectation is that lowering to these and the new RVI instructions is likely to be substantially similar.
Naming wise, is xventanacondops what we want this called? The toolchain docs linked are a bit ambiguous on this point. They seem to be saying that the extension should maybe be xvtcondops. But that's not what the spec uses, not what we tend to use in discussion, and not what is being discussed for binutils.