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