Clang Project

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