1 // RUN: %clang_cc1 -triple mips-none-linux-gnu -emit-llvm -w -o - %s | FileCheck --check-prefix=ALL --check-prefix=O32 %s 2 // RUN: %clang_cc1 -triple mips64-none-linux-gnu -emit-llvm -w -target-abi n32 -o - %s | FileCheck --check-prefix=ALL --check-prefix=N32 %s 3 // RUN: %clang_cc1 -triple mips64-none-linux-gnu -emit-llvm -w -o - %s | FileCheck --check-prefix=ALL --check-prefix=N64 %s 4 check_char()5int check_char() { 6 return sizeof(char); 7 // ALL: ret i32 1 8 } 9 check_short()10int check_short() { 11 return sizeof(short); 12 // ALL: ret i32 2 13 } 14 check_int()15int check_int() { 16 return sizeof(int); 17 // ALL: ret i32 4 18 } 19 check_long()20int check_long() { 21 return sizeof(long); 22 // O32: ret i32 4 23 // N32: ret i32 4 24 // N64: ret i32 8 25 } 26 check_longlong()27int check_longlong() { 28 return sizeof(long long); 29 // ALL: ret i32 8 30 } 31 check_fp16()32int check_fp16() { 33 return sizeof(__fp16); 34 // ALL: ret i32 2 35 } 36 check_float()37int check_float() { 38 return sizeof(float); 39 // ALL: ret i32 4 40 } 41 check_double()42int check_double() { 43 return sizeof(double); 44 // ALL: ret i32 8 45 } 46 check_longdouble()47int check_longdouble() { 48 return sizeof(long double); 49 // O32: ret i32 8 50 // N32: ret i32 16 51 // N64: ret i32 16 52 } 53 check_floatComplex()54int check_floatComplex() { 55 return sizeof(float _Complex); 56 // ALL: ret i32 8 57 } 58 check_doubleComplex()59int check_doubleComplex() { 60 return sizeof(double _Complex); 61 // ALL: ret i32 16 62 } 63 check_longdoubleComplex()64int check_longdoubleComplex() { 65 return sizeof(long double _Complex); 66 // O32: ret i32 16 67 // N32: ret i32 32 68 // N64: ret i32 32 69 } 70 check_bool()71int check_bool() { 72 return sizeof(_Bool); 73 // ALL: ret i32 1 74 } 75 check_wchar()76int check_wchar() { 77 return sizeof(__WCHAR_TYPE__); 78 // ALL: ret i32 4 79 } 80 check_wchar_is_unsigned()81int check_wchar_is_unsigned() { 82 return (__WCHAR_TYPE__)-1 > (__WCHAR_TYPE__)0; 83 // ALL: ret i32 0 84 } 85 check_ptr()86int check_ptr() { 87 return sizeof(void *); 88 // O32: ret i32 4 89 // N32: ret i32 4 90 // N64: ret i32 8 91 } 92 93