Apply the instruction combiner binary operator simplifications to the

associative/commutative cases. For example, if we have "(A op B) op C", we try

to transform it to "A op (B op C)" and try to simplify the "(B op C)" part (even

when "(B op C)" doesn't fold to a constant).

A motivation example is a bit-check combining simplification like

((A & 1) == 0) && ((A & 2) == 0) && ((A & 4) == 0) &&

((B & 1) == 0) && ((B & 2) == 0) && ((B & 4) == 0)

-->

((A & 7) == 0) && ((B & 7) == 0)

which didn't fully happen previously.