Fold the following case on IR InstCombine pass. This patch includes the new test cases for this optimization
bswap(logic_op(x, bswap(y))) -> logic_op(bswap(x), y) bswap(logic_op(bswap(x), y)) -> logic_op(x, bswap(y)) bswap(logic_op(bswap(x), bswap(y))) -> logic_op(x, y) with multi-use
Can you split the new tests to a seperate patch so we can see the diff generated?