The general fold is only valid for positive divisors.
Which effectively means, it is invalid for INT_MIN divisors,
and we currently bailout if we see them.
But that is too strict, we can just fix-up the results.
For that, let's do a second computation 'in parallel':
Name: srem -> and Pre: isPowerOf2(C) %o = srem i8 %X, C %r = icmp eq %o, 0 => %n = and i8 %X, C-1 %r = icmp eq %n, 0
https://rise4fun.com/Alive/Sup
And then just blend results: if the divisor was INT_MIN,
pick the value we got via bit-test,
else pick the value from general fold.
There's interesting observation - ISD::ROTR is set to
LegalizeAction::Expand before AVX512, so we should not
treat INT_MIN divisor as even; and as it can be seen
while @test_srem_odd_even_one improves on all run-lines,
@test_srem_odd_even_INT_MIN only improves for AVX512.
typo: we don't care about