The logic to widen the vselect stuff only makes sense if there are very
subtle issues where the vNi1 type used isn't generally legal but can
sneak through from a SETCC to a VSELECT because it will be matched away.
When the mask vectors are just normal vectors, we don't want to widen
This would also paper over the bug fixed by r302785, because now we
never create the unfortunate pattern. I think the fix in r302785 is
still correct and important but we may no longer have a way to test it.
This does make the generated code for legalized types such as those in
r302785 much nicer, as shown in the test case.
Not really sure how folks want to proceed, so since this is just
a qualitative improvement, sending it for review to collect thoughts.