Fixed an issue with vector usage of TargetLowering::isConstTrueVal / TargetLowering::isConstFalseVal boolean result matching.
The comment says that we shouldn't handle constant splat vectors with undef elements. But the the actual code was returning false if the build vector contained no undef elements....
This current iteration of the patch flips the test so that it matches the comment and only accepts build vectors with no undefs. But since this has been like this since 2014, should we take it as a sign that undefs elements are not an issue and I should update the patch to not care about undefs at all?
The change has also unearthed a couple of missed opportunities in AVX512 comparison code that will need to be addressed.