incorrect IR representation for bool GCC vectors

Hi all,

i have found out that IR representation of bool vectors is incorrect. The following code

typedef bool v128b __attribute__ ((vector_size (16)));
int main() {
   v128b v1;


define i32 @main() nounwind {
   %v1 = alloca <16 x i1>, align 16
   ret i32 0

<16 x i1> is insufficient for 16-byte vector.
GCC docs( say nothing about bool as base vector type but GCC accepts the above code.
I guess the correct representation should be either <128 x i1> or <16 x i8>.. Or maybe bool vectors should be prohibited?
Any thoughts?

Submitted to bugzilla: