On 11/17/22 08:12, Philipp Tomsich wrote:
This serves as an assertion only, as that case is non-sensical and will be optimized away by earlier passes (as "a & C == T" with C and T sharing no bits will always be false). IFAIK the preceding transforms should always clean such a check up, but we can't exclude the possibility that with enough command line overrides and params we might see such a non-sensical test making it all the way to the backend.
Good! I was thinking in the back of my mind that the no-sharing-bits case should have been handled in the generic optimizers. Thanks for clarifying.
What would you recommend? Adding this to the pattern's condition feels a bit redundant.
We can leave it in the splitter.
In fact, I am leaning towards hiding the !SMALL_OPERAND check in yet another predicate that combines const_twobits_operand with a match_test for !SMALL_OPERAND.
Sure. jeff