title: Align a union to 16 byte boundary in x86.
body: <p>I got this union, which I am trying to align to 16 byte boundary, using gcc 4.8.  </p>
  
  <pre><code>typedef union {
   unsigned long long int ud[(1&lt;&lt;6)/8];
   long long int d[(1&lt;&lt;6)/8];
   unsigned int uw[(1&lt;&lt;6)/4];
   int w[(1&lt;&lt;6)/4];
   short uh[(1&lt;&lt;6)/2];
   unsigned short int h[(1&lt;&lt;6)/2];
   unsigned char ub[(1&lt;&lt;6)/1];
   char b[(1&lt;&lt;6)/1];
  } vector_t;
  </code></pre>
  
  <p>I tried </p>
  
  <pre><code>vector_t __attribute__ ((aligned(16))) t; 
  </code></pre>
  
  <p>But it is not working. Address of variable t in stack is not aligned to 16 bytes. </p>
  
  <p>I was able to align it using __declspec align(16) in VS 10. Please let me know what is the way to do this in gcc.  </p>