1122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s
2122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar
36233d1e0ddde1e5625f53dacca6975fb29131a9fDaniel Dunbarstruct s0 {
4122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar  int Start, End;
5122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar  unsigned Alignment;
6122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar  int TheStores __attribute__((aligned(16)));
7122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar};
82f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar
92f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar// CHECK: define void @f0
102f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar// CHECK: alloca %struct.s0, align 16
116233d1e0ddde1e5625f53dacca6975fb29131a9fDaniel Dunbarextern "C" void f0() {
126233d1e0ddde1e5625f53dacca6975fb29131a9fDaniel Dunbar  (void) s0();
136233d1e0ddde1e5625f53dacca6975fb29131a9fDaniel Dunbar}
146233d1e0ddde1e5625f53dacca6975fb29131a9fDaniel Dunbar
152f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar// CHECK: define void @f1
162f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar// CHECK: alloca %struct.s0, align 16
176233d1e0ddde1e5625f53dacca6975fb29131a9fDaniel Dunbarextern "C" void f1() {
182f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar  (void) (struct s0) { 0, 0, 0, 0 };
192f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar}
202f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar
21f253909794f9c458a722d5b594874f680f71c144Chris Lattner// CHECK: define i32 @f2
222f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar// CHECK: alloca %struct.s1, align 2
232f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbarstruct s1 { short x; short y; };
242f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbarextern "C" struct s1 f2(int a, struct s1 *x, struct s1 *y) {
252f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar  if (a)
262f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar    return *x;
272f2071dcda5a446bb78b0c167cdec580ccabfcaaDaniel Dunbar  return *y;
28122686170521b5177c0aeeb9fc07f36744345801Daniel Dunbar}
29