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()5 int check_char() {
6   return sizeof(char);
7 // ALL: ret i32 1
8 }
9 
check_short()10 int check_short() {
11   return sizeof(short);
12 // ALL: ret i32 2
13 }
14 
check_int()15 int check_int() {
16   return sizeof(int);
17 // ALL: ret i32 4
18 }
19 
check_long()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 
check_longlong()27 int check_longlong() {
28   return sizeof(long long);
29 // ALL: ret i32 8
30 }
31 
check_fp16()32 int check_fp16() {
33   return sizeof(__fp16);
34 // ALL: ret i32 2
35 }
36 
check_float()37 int check_float() {
38   return sizeof(float);
39 // ALL: ret i32 4
40 }
41 
check_double()42 int check_double() {
43   return sizeof(double);
44 // ALL: ret i32 8
45 }
46 
check_longdouble()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 
check_floatComplex()54 int check_floatComplex() {
55   return sizeof(float _Complex);
56 // ALL: ret i32 8
57 }
58 
check_doubleComplex()59 int check_doubleComplex() {
60   return sizeof(double _Complex);
61 // ALL: ret i32 16
62 }
63 
check_longdoubleComplex()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 
check_bool()71 int check_bool() {
72   return sizeof(_Bool);
73 // ALL: ret i32 1
74 }
75 
check_wchar()76 int check_wchar() {
77   return sizeof(__WCHAR_TYPE__);
78 // ALL: ret i32 4
79 }
80 
check_wchar_is_unsigned()81 int check_wchar_is_unsigned() {
82   return (__WCHAR_TYPE__)-1 > (__WCHAR_TYPE__)0;
83 // ALL: ret i32 0
84 }
85 
check_ptr()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