1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 %s -emit-llvm -o - -triple=i686-unknown-nacl | FileCheck %s 2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// Check that i686-nacl essentially has -malign-double, which aligns 3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// double, long double, and long long to 64-bits. 4651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 5651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checksize[sizeof(long double) == 8 ? 1 : -1]; 6651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checkalign[__alignof(long double) == 8 ? 1 : -1]; 7651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 8651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-LABEL: define void @s1(double %a) 9651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid s1(long double a) {} 10651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 11651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesstruct st_ld { 12651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines char c; 13651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines long double ld; 14651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}; 15651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checksize2[sizeof(struct st_ld) == 16 ? 1 : -1]; 16651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checkalign2[__alignof(struct st_ld) == 8 ? 1 : -1]; 17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 18651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checksize3[sizeof(double) == 8 ? 1 : -1]; 19651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checkalign3[__alignof(double) == 8 ? 1 : -1]; 20651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-LABEL: define void @s2(double %a) 22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid s2(double a) {} 23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 24651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesstruct st_d { 25651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines char c; 26651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines double d; 27651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}; 28651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checksize4[sizeof(struct st_d) == 16 ? 1 : -1]; 29651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checkalign4[__alignof(struct st_d) == 8 ? 1 : -1]; 30651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 31651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 32651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checksize5[sizeof(long long) == 8 ? 1 : -1]; 33651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checkalign5[__alignof(long long) == 8 ? 1 : -1]; 34651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-LABEL: define void @s3(i64 %a) 36651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid s3(long long a) {} 37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 38651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesstruct st_ll { 39651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines char c; 40651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines long long ll; 41651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}; 42651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checksize6[sizeof(struct st_ll) == 16 ? 1 : -1]; 43651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint checkalign6[__alignof(struct st_ll) == 8 ? 1 : -1]; 44