This patch introduces a fold for the operation "usub_sat(X, C) pred C2"
where "C" and "C2" are constants. The fold is:
usub_sat(X, C) pred C2 => (X < C) || ((X - C) pred C2) -> when (0 pred C2) is true => (X >= C) && ((X - C) pred C2) -> when (0 pred C2) is false
These expressions can generally be folded into a simpler expression. As
they can sometimes emit more than one instruction, they are limited to
cases where the "usub_sat" has only one user.
Fixes #58342.
This should be if (match(Op1, m_APInt(COp1)) to match a constant int or int splat.