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. See the __alignof__ operator in the z/OS XL C/C++ Language Reference for details.
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)).