VecValuesToIgnore holds values that will not appear in the vectorized loop. We should therefore ignore their cost when VF > 1.
I think this bit was missed by https://reviews.llvm.org/D15177 which introduced the VecValuesToIgnore construct, but considered it only in register-usage calculation.
The testcase is taken from https://reviews.llvm.org/D12770 - is had redundant cases, and we check that the cost model ignores them.
Can add a comment that VecValuesToIgnore should also be skipped for VF == 1 and UF > 1, but expectedCost() provides only VF, where VF == 1 stands for the baseline version (with UF == 1 too).
Can add a comment to also have getSmallestAndWidestTypes() skip over VecValuesToIgnore, as it too only skips over ValuesToIgnore; although it only deals with loads/stores/phi's anyhow.