1*67e74705SXin Li // RUN: %clang_cc1 %s -emit-llvm -o - -triple=i686-unknown-nacl | FileCheck %s 2*67e74705SXin Li // Check that i686-nacl essentially has -malign-double, which aligns 3*67e74705SXin Li // double, long double, and long long to 64-bits. 4*67e74705SXin Li 5*67e74705SXin Li int checksize[sizeof(long double) == 8 ? 1 : -1]; 6*67e74705SXin Li int checkalign[__alignof(long double) == 8 ? 1 : -1]; 7*67e74705SXin Li 8*67e74705SXin Li // CHECK-LABEL: define void @s1(double %a) s1(long double a)9*67e74705SXin Livoid s1(long double a) {} 10*67e74705SXin Li 11*67e74705SXin Li struct st_ld { 12*67e74705SXin Li char c; 13*67e74705SXin Li long double ld; 14*67e74705SXin Li }; 15*67e74705SXin Li int checksize2[sizeof(struct st_ld) == 16 ? 1 : -1]; 16*67e74705SXin Li int checkalign2[__alignof(struct st_ld) == 8 ? 1 : -1]; 17*67e74705SXin Li 18*67e74705SXin Li int checksize3[sizeof(double) == 8 ? 1 : -1]; 19*67e74705SXin Li int checkalign3[__alignof(double) == 8 ? 1 : -1]; 20*67e74705SXin Li 21*67e74705SXin Li // CHECK-LABEL: define void @s2(double %a) s2(double a)22*67e74705SXin Livoid s2(double a) {} 23*67e74705SXin Li 24*67e74705SXin Li struct st_d { 25*67e74705SXin Li char c; 26*67e74705SXin Li double d; 27*67e74705SXin Li }; 28*67e74705SXin Li int checksize4[sizeof(struct st_d) == 16 ? 1 : -1]; 29*67e74705SXin Li int checkalign4[__alignof(struct st_d) == 8 ? 1 : -1]; 30*67e74705SXin Li 31*67e74705SXin Li 32*67e74705SXin Li int checksize5[sizeof(long long) == 8 ? 1 : -1]; 33*67e74705SXin Li int checkalign5[__alignof(long long) == 8 ? 1 : -1]; 34*67e74705SXin Li 35*67e74705SXin Li // CHECK-LABEL: define void @s3(i64 %a) s3(long long a)36*67e74705SXin Livoid s3(long long a) {} 37*67e74705SXin Li 38*67e74705SXin Li struct st_ll { 39*67e74705SXin Li char c; 40*67e74705SXin Li long long ll; 41*67e74705SXin Li }; 42*67e74705SXin Li int checksize6[sizeof(struct st_ll) == 16 ? 1 : -1]; 43*67e74705SXin Li int checkalign6[__alignof(struct st_ll) == 8 ? 1 : -1]; 44