This is primarily motivated by improving codegen for zicond (fixing the code quality regressions knowingly introduced in D155083), but the combine is enabled regardless of the presence of zicond as it appears to be either neutral or provide minor benefits even without zicond.
Because we lower select early (due to it not being a legal operation), we miss out on some of the select combines that would kick in after other operations have been legalised - in this case if the condval is a setcc that will later be inverted when being legalised, the xori instruction can be removed just by flipping the TrueVal and FalseVal. This combine just performs that transformation.
Now that D155328 was committed, the primary benefit is for RV32.
clang-format not found in user’s local PATH; not linting file.