Home | History | Annotate | Download | only in CodeGen
      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