When performing LSV, SCEV could tell us that two addresses
were consecutive, yet depended on each other in the IR. This
was due to folding opportunities in the SCEV expressions for
the address calculations.
Solve this by doing basic simplification when reordering
instructions after merging.
This solves https://bugs.llvm.org/show_bug.cgi?id=38517 .
Could you add a comment explaining why we are doing this? Also, do we really need to simplify the operands for each instruction in the list? Should we check if it's a gep before trying to simplify?