#include <iostream>
#include <cstdint>
#include <cstddef>
using namespace std;
using al64_uint32_t = uint32_t __attribute__((aligned(64)));
struct Foo
{
uint32_t a;
uint32_t b;
uint32_t c;
uint32_t d;
};
struct Bar
{
uint32_t a;
uint32_t b;
al64_uint32_t c;
uint32_t d;
};
int main()
{
cout << sizeof(al64_uint32_t) << endl;
cout << sizeof(Foo) << endl;
cout << sizeof(Bar) << endl;
cout << "a: " << offsetof(Bar, a) << endl;
cout << "b: " << offsetof(Bar, b) << endl;
cout << "c: " << offsetof(Bar, c) << endl;
cout << "d: " << offsetof(Bar, d) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGludD4KI2luY2x1ZGUgPGNzdGRkZWY+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgYWw2NF91aW50MzJfdCA9IHVpbnQzMl90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7CgpzdHJ1Y3QgRm9vCnsKCXVpbnQzMl90IGE7Cgl1aW50MzJfdCBiOwoJdWludDMyX3QgYzsKCXVpbnQzMl90IGQ7Cn07CgpzdHJ1Y3QgQmFyCnsKCXVpbnQzMl90IGE7Cgl1aW50MzJfdCBiOwoJYWw2NF91aW50MzJfdCBjOwoJdWludDMyX3QgZDsKfTsKCgppbnQgbWFpbigpIAp7CgkKCWNvdXQgPDwgc2l6ZW9mKGFsNjRfdWludDMyX3QpIDw8IGVuZGw7Cgljb3V0IDw8IHNpemVvZihGb28pIDw8IGVuZGw7Cgljb3V0IDw8IHNpemVvZihCYXIpIDw8IGVuZGw7CgkKCWNvdXQgPDwgImE6ICIgPDwgb2Zmc2V0b2YoQmFyLCBhKSA8PCBlbmRsOwoJY291dCA8PCAiYjogIiA8PCBvZmZzZXRvZihCYXIsIGIpIDw8IGVuZGw7Cgljb3V0IDw8ICJjOiAiIDw8IG9mZnNldG9mKEJhciwgYykgPDwgZW5kbDsKCWNvdXQgPDwgImQ6ICIgPDwgb2Zmc2V0b2YoQmFyLCBkKSA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==