As discussed in D34087, rewrite areNonVolatileConsecutiveLoads using
generic check. Also, propagate address handling to BaseIndexOffset.
Effectively this copies address analysis logic from DAGCombiner's isAlias to areNonVolatileConsecutiveLoads and vice versa:
Test changes due to areNonVolatileConsecutiveLoads improvements:
- test/CodeGen/X86/build-vector-{128,256,512} - Missed Merges now occur
Test changes due improvements in DAGCombiner alias analysis
- test/CodeGen/BPF/undef.ll - Handling of constant OR-based address allows an additional store merge
- test/CodeGen/X86/clear_upper_vector_element_bits.ll - This is a case we already do not handle well. Here, the DAG is improved, but scheduling causes a code size degradation.
This can be done as an NFC commit to trunk now - it's not dependent on the patch.