Add builtin functions for prototypes:
vector signed char vec_xl_len (signed char *, size_t);
vector unsigned char vec_xl_len (unsigned char *, size_t);
vector signed int vec_xl_len (signed int *, size_t);
vector unsigned int vec_xl_len (unsigned int *, size_t);
vector signed int128 vec_xl_len (signed int128 *, size_t);
vector unsigned int128 vec_xl_len (unsigned int128 *, size_t);
vector signed long long vec_xl_len (signed long long *, size_t);
vector unsigned long long vec_xl_len (unsigned long long *, size_t);
vector signed short vec_xl_len (signed short *, size_t);
vector unsigned short vec_xl_len (unsigned short *, size_t);
vector double vec_xl_len (double *, size_t);
vector float vec_xl_len (float *, size_t);
vector unsigned char vec_xl_len_r (unsigned char *, size_t);
void vec_xst_len (vector signed char, signed char *, size_t);
void vec_xst_len (vector unsigned char, unsigned char *, size_t);
void vec_xst_len (vector signed int, signed int *, size_t);
void vec_xst_len (vector unsigned int, unsigned int *, size_t);
void vec_xst_len (vector signed int128, signed int128 *, size_t);
void vec_xst_len (vector unsigned int128, unsigned int128 *, size_t);
void vec_xst_len (vector signed long long, signed long long *, size_t);
void vec_xst_len (vector unsigned long long, unsigned long long *, size_t);
void vec_xst_len (vector signed short, signed short *, size_t);
void vec_xst_len (vector unsigned short, unsigned short *, size_t);
void vec_xst_len (vector double, double *, size_t);
void vec_xst_len (vector float, float *, size_t);
void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
I realized after we spoke yesterday that we have to change this. The length operand is in bits 0-7 of the second GPR operand. It therefore means that we cannot model this with an i32 so the instructions operands need to be G8RC and this has to be llvm_i64_ty.