BasicAA currently handles cases like Scale*V0 + (-Scale)*V1 where V0 != V1, but does not handle the simpler case of Scale*V with V != 0. Add it based on an isKnownNonZero() call.
I'm not passing a context instruction for now, because the existing approach of always using GEP1 for context could result in symmetry issues.
Compile-time impact is close to zero: https://llvm-compile-time-tracker.com/compare.php?from=5e69e2ebad9db2af44362ebe1755c08af002798f&to=2dffc47368b820c651c34156a503943234ea0252&stat=instructions