Fold loadInst for constant aggregate types, those load results are equivalent for the given alignments.
This revision will be part 1 of the following stages.
1. alignment-based (This revision will be)
2. (all) inbounds GEP index-based
3. non-inbounds included GEP index-based
- add `ConstantFoldLoadFromPatternedAggregate` method to `AggressiveInstCombine`
alive proofs: https://alive2.llvm.org/ce/z/qBGl72
Depends on: https://reviews.llvm.org/D145355
Fixes: https://github.com/rust-lang/rust/issues/107208.