This patch introduces VPCmpInst, a sub-class of VPInstruction used to model details of comparison instructions in VPlan, such as the comparison's predicate. At this point, we don't see the need of distinguishing between integer and floating point comparison at VPlan representation level.
VPCmpInst is needed in D50480 to properly model a new compare VPInstruction (i.e., a compare that is not part of the input IR) generated during the vectorization process.
This duplicates the assertion in the other overload that's called in the next line, right? I don't mind that, it's good to be a bit more defensive, just want to make sure I didn't miss anything and that this is intentional.