This patch enables scalable vectorization of loops with integer/fast reductions, e.g:
unsigned sum = 0; for (int i = 0; i < n; ++i) { sum += a[i]; }
A new TTI interface, isLegalToVectorizeReduction, has been added to prevent
reductions which are not supported for scalable types from vectorizing.
If the reduction is not supported for a given scalable VF,
computeFeasibleMaxVF will fall back to using fixed-width vectorization.
This should probably have a comment,.