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