Like -gvn (and -globalopt), -instcombine is made to require the -invariant-info-marker pass; and the lookup of available loads that it depends on (FindAvailableLoadedValue() in Loads.cpp) also takes invariant info into consideration.
Changes in the definition of FindAvailableLoadedValue() prompt updates of its calls in Lint.cpp and JumpTherading.cpp.
In addition, invariant info analysis must be registered as a function analysis to preserve regression tests with 'opt -passes=instcombine' such as 'test/Transforms/InstCombine/load.ll'. [cf. PassBuilder.cpp and PassRegistry.cpp]