TargetTransformInfo::getMinimumVF(ElementType) will return the target's minimum VF for a given element type. By default the minimum VF is 2. The VF=1 (i.e. not vectorizing) is still considered a valid VF, and if vectorization is not profitable, the minimum VF will not force it to happen.
This is a followup to D44523.
This early exit introduced some changes in behavior. Originally, SmallestType and WidestType would be -1u and 8 respectively in case where no types were found. The rest of the calculations would then operate on those values.
With this change, in a few testcases, the loops were not vectorized, so the vectorization width was set via metadata. These testcases were not testing whether the vectorization actually occurs, but some other aspects of its functionality, so such changes did not seem unreasonable.