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)).