This disables the poison-unsafe select -> and/or transform behind a flag (we continue to perform the fold by default). This is intended to simplify testing while we add support for the select pattern. Otherwise, there's no way to test InstCombine-related changes, as InstCombine would just canonicalize it away.
This only disables the main select -> and/or transform. A number of related ones are instead changed to canonicalize to the a ? b : false and a ? true : b forms which represent and/or respectively. This requires a bit of care to avoid infinite loops, as we do not want !a ? b : false to be converted into a ? false : b.
The basic idea here is the same as D93065, this just keeps it behind a flag, and retains the canonicalizations.