The __alignof__ operator
The __alignof__ operator is a language extension to C99 and Standard C++ that
returns the position to which its operand is aligned.
The operand of
__alignof__ can be a vector type,
provided that vector support is enabled.
For example,vector unsigned int v1 = (vector unsigned int)(10);
vector unsigned int *pv1 = &v1;
__alignof__(v1); // vector type alignment: 8.
__alignof__(&v1); // address of vector alignment: 4 (with ILP32) or 8 (with LP64).
__alignof__(*pv1); // dereferenced pointer to vector alignment: 8.
__alignof__(pv1); // pointer to vector alignment: 4 (with ILP32) or 8 (with LP64)
__alignof__(vector signed char); // vector type alignment: 8.When __attribute__((aligned)) is used to increase
the alignment of a variable of vector type, the value that is returned
by the __alignof__ operator is the alignment factor
that is specified by __attribute__((aligned)).