1*d2e7dca5SJan Ole Hüser // RUN: %clang_cc1 -xc -O2 -triple thumbv7a-unknown-windows-eabi -fms-extensions -emit-llvm < %s | FileCheck %s 2*d2e7dca5SJan Ole Hüser // RUN: %clang_cc1 -xc++ -O2 -triple thumbv7a-unknown-windows-eabi -fms-extensions -emit-llvm < %s | FileCheck %s 3*d2e7dca5SJan Ole Hüser // RUN: %clang_cc1 -xc -O2 -triple x86_64-unknown-linux-gnu -fms-extensions -emit-llvm < %s | FileCheck %s 4*d2e7dca5SJan Ole Hüser // RUN: %clang_cc1 -xc++ -O2 -triple x86_64-unknown-linux-gnu -fms-extensions -emit-llvm < %s | FileCheck %s 5*d2e7dca5SJan Ole Hüser 6*d2e7dca5SJan Ole Hüser struct S1 { 7*d2e7dca5SJan Ole Hüser unsigned long x; 8*d2e7dca5SJan Ole Hüser }; 9*d2e7dca5SJan Ole Hüser 10*d2e7dca5SJan Ole Hüser // CHECK: define 11*d2e7dca5SJan Ole Hüser // CHECK-SAME: void 12*d2e7dca5SJan Ole Hüser // CHECK-SAME: test1 13*d2e7dca5SJan Ole Hüser test1(__unaligned struct S1 * out)14*d2e7dca5SJan Ole Hüservoid test1(__unaligned struct S1 *out) { 15*d2e7dca5SJan Ole Hüser // CHECK: store 16*d2e7dca5SJan Ole Hüser // CHECK-SAME: align 1 17*d2e7dca5SJan Ole Hüser out->x = 5; 18*d2e7dca5SJan Ole Hüser // CHECK: ret void 19*d2e7dca5SJan Ole Hüser } 20*d2e7dca5SJan Ole Hüser 21*d2e7dca5SJan Ole Hüser // CHECK: define 22*d2e7dca5SJan Ole Hüser // CHECK-SAME: void 23*d2e7dca5SJan Ole Hüser // CHECK-SAME: test2 24*d2e7dca5SJan Ole Hüser test2(__unaligned struct S1 * out,__unaligned struct S1 * in)25*d2e7dca5SJan Ole Hüservoid test2(__unaligned struct S1 *out, __unaligned struct S1 *in) { 26*d2e7dca5SJan Ole Hüser // CHECK: load 27*d2e7dca5SJan Ole Hüser // CHECK-SAME: align 1 28*d2e7dca5SJan Ole Hüser // CHECK: store 29*d2e7dca5SJan Ole Hüser // CHECK-SAME: align 1 30*d2e7dca5SJan Ole Hüser *out = *in; 31*d2e7dca5SJan Ole Hüser // CHECK: ret void 32*d2e7dca5SJan Ole Hüser } 33