As raised on PR52267, XOR(X,MIN_SIGNED_VALUE) can be treated as ADD(X,MIN_SIGNED_VALUE), so let these cases use the 'AddLike' folds, similar to how we perform no-common-bits OR(X,Y) cases.
define i8 @src(i8 %x) { %0: %r = xor i8 %x, 128 ret i8 %r } => define i8 @tgt(i8 %x) { %0: %r = add i8 %x, 128 ret i8 %r } Transformation seems to be correct!
clang-format: please reformat the code