This change adds llvm.isnan to the set of trivially vectorizable
intrinsic functions. This function differs from other functions by
signature, so processing Call instruction in vectorizeTree was
changed so that overloaded argument types of intrinsic functions were
restored using information from intrinsic description tables.
This change fixes PR51556 (Failure to vectorize llvm.isnan calls).
The creation of hasBoundType and the refactor of these asserts could be pulled out as a preliminary NFC - independent of this patch. Since you are updating the asserts we should add assert messages as well so that they match the style guidelines.