[x86] Simplify vector selection if condition value type matches vselect value type and true value is all ones or false value is all zeros.
This transformation worked if selector is produced by SETCC, however SETCC is needed only if we consider to swap operands. So I replaced SETCC check for this case.
Added tests for vselect of <X x i1> values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220777 91177308-0d34-0410-b5e6-96231b3b80d8
[AVX512] Removed special case for cmp instructions in getVectorMaskingNode. Now cmp intrinsics lower as other intrinsics through VSELECT, and then VSELECT tranforms to AND in PerformSELECTCombine.
No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220779 91177308-0d34-0410-b5e6-96231b3b80d8
[C API] Add LLVMGetFCmpPredicate for llvm::FCmpInst::getPredicate.
[OCaml] Add fcmp_predicate for llvm::FCmpInst::getPredicate.
[C API] Add LLVMConstRealGetDouble to get the double value of a constantFP.
[OCaml] Add float_of_const to get the double value of a constantFP.
[C Api] Add various functions for terminator and branch instructions.
[OCaml] Add various functions for terminator and branch instructions.
[OCaml] Add utilities functions related to terminator and branches.
fixup! [C API] Add LLVMConstRealGetDouble to get the double value of a constantFP.
fixup! [OCaml] Add float_of_const to get the double value of a constantFP.
[OCaml] Add tests for floating constants and comparisons reading functions.