topperc wrote: > Fold (srl (lop x, (shl (zext y), c1)), c1) -> (lop (srl x, c1), (zext y)) The shifts cancel out in the source pattern. How can there still be a shift in the result pattern? https://github.com/llvm/llvm-project/pull/138290