/* gcc -S -c struct-align-gcc.c */
#include "stdint.h"
#include "stdlib.h"

typedef float v4sf __attribute__ ((vector_size (16)));

struct flat {
  float a;
  uint8_t b;
  uint8_t c;
};

struct inner {
  float a;
  uint8_t b;
};

struct nested {
  struct inner ab;
  uint8_t c;
};

uint8_t *flat_offset (struct flat *ptr) {
  return &ptr->c;
};

uint8_t *nested_offset (struct nested *ptr) {
  return &ptr->c;
};

size_t inner_size () {
  return sizeof(struct inner);
};

size_t flat_size () {
  return sizeof(struct flat);
};

size_t nested_size () {
  return sizeof(struct nested);
};
