Add support in altivec.h for the following functions, as well as matching builtins:
vector unsigned long long vec_extract_exp (vector double);
vector unsigned int vec_extract_exp (vector float);
vector unsigned long long vec_extract_sig (vector double)
vector unsigned int vec_extract_sig (vector float)
Add builtins mapping to the vector float/vector double 'test data class' instructions, as well as a function like macro that will expand to the equivalent of either:
vector bool int vec_test_data_class (vector float, const int);
vector bool long long vec_test_data_class (vector double, const int);
as well as defines for all the masks used as the second argument to vec_test_data_class.
I don't know what happens if the type of the first argument is neither of the two types, but I think we should verify that something sane happens. Namely, some sort of overload resolution error message.