// RUN: %clang_cc1 -triple arm64_32-apple-ios7.0 -emit-llvm -o - %s | FileCheck %s

struct Foo {
  char a;
  int b : 1;
};

int BitfieldOffset = sizeof(struct Foo);
// CHECK: @BitfieldOffset = global i32 2

int PointerSize = sizeof(void *);
// CHECK: @PointerSize = global i32 4

int PointerAlign = __alignof(void *);
// CHECK: @PointerAlign = global i32 4

int LongSize = sizeof(long);
// CHECK: @LongSize = global i32 4

int LongAlign = __alignof(long);
// CHECK: @LongAlign = global i32 4

// Not expected to change, but it's a difference between AAPCS and DarwinPCS
// that we need to be preserved for compatibility with ARMv7k.
long double LongDoubleVar = 0.0;
// CHECK: @LongDoubleVar = global double

typedef float __attribute__((ext_vector_type(16))) v16f32;
v16f32 func(v16f32 in) { return in; }
// CHECK: define void @func(<16 x float>* noalias sret align 16 {{%.*}}, <16 x float> {{%.*}})
