This commit adds the vpselq intrinsics which take an MVE predicate
word and select lanes from two vectors; the vctp intrinsics which
create a tail predicate word suitable for processing the first m
elements of a vector (e.g. in the last iteration of a loop); and
vpnot, which simply complements a predicate word and is just
syntactic sugar for the ~ operator.
The vctp ACLE intrinsics are lowered to the IR intrinsics we've
already added (and which D70592 just reorganized). I've filled in the
missing isel rule for VCTP64, and added another set of rules to
generate the predicated forms.
I needed one small tweak in MveEmitter to allow the unpromoted type
modifier to apply to predicates as well as integers, so that vpnot
doesn't pointlessly convert its input integer to an <n x i1> before
complementing it.
Should we rename int_arm_vctp8 to int_arm_mve_vctp8?