The patch simplifies some of the patterns as below
1. (zExt(L1) << shift1) | (zExt(L2) << shift2) -> zExt(L3) << shift1 2. (? | (zExt(L1) << shift1)) | (zExt(L2) << shift2) -> ? | (zExt(L3) << shift1)
The pattern is indicative of the fact that the loads are being merged to a wider load and the only use of this pattern is with a wider load. In this case for a non-atomic/non-volatile loads reduce the pattern to a combined load which would improve the cost of inlining, unrolling, vectorization etc.
zext -> Zext (Or ZExt? Capitalized at least)