Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 -triple aarch64_be-none-linux-gnu -emit-llvm -w -o - %s | FileCheck --check-prefix=CHECK %s
      2 // char by definition has size 1
      3 
      4 // CHECK: target datalayout = "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
      5 
      6 int check_short() {
      7   return sizeof(short);
      8 // CHECK: ret i32 2
      9 }
     10 
     11 int check_int() {
     12   return sizeof(int);
     13 // CHECK: ret i32 4
     14 }
     15 
     16 int check_long() {
     17 // Both 4 and 8 are permitted under the PCS, Linux says 8!
     18   return sizeof(long);
     19 // CHECK: ret i32 8
     20 }
     21 
     22 int check_longlong() {
     23   return sizeof(long long);
     24 // CHECK: ret i32 8
     25 }
     26 
     27 int check_int128() {
     28   return sizeof(__int128);
     29 // CHECK: ret i32 16
     30 }
     31 
     32 int check_fp16() {
     33   return sizeof(__fp16);
     34 // CHECK: ret i32 2
     35 }
     36 
     37 int check_float() {
     38   return sizeof(float);
     39 // CHECK: ret i32 4
     40 }
     41 
     42 int check_double() {
     43   return sizeof(double);
     44 // CHECK: ret i32 8
     45 }
     46 
     47 int check_longdouble() {
     48   return sizeof(long double);
     49 // CHECK: ret i32 16
     50 }
     51 
     52 int check_floatComplex() {
     53   return sizeof(float _Complex);
     54 // CHECK: ret i32 8
     55 }
     56 
     57 int check_doubleComplex() {
     58   return sizeof(double _Complex);
     59 // CHECK: ret i32 16
     60 }
     61 
     62 int check_longdoubleComplex() {
     63   return sizeof(long double _Complex);
     64 // CHECK: ret i32 32
     65 }
     66 
     67 int check_bool() {
     68   return sizeof(_Bool);
     69 // CHECK: ret i32 1
     70 }
     71 
     72 int check_wchar() {
     73 // PCS allows either unsigned short or unsigned int. Linux again says "bigger!"
     74   return sizeof(__WCHAR_TYPE__);
     75 // CHECK: ret i32 4
     76 }
     77 
     78 int check_wchar_unsigned() {
     79   return (__WCHAR_TYPE__)-1 > (__WCHAR_TYPE__)0;
     80 // CHECK: ret i32 1
     81 }
     82 
     83 enum Small {
     84   Item
     85 };
     86 
     87 int foo() {
     88   return sizeof(enum Small);
     89 // CHECK: ret i32 4
     90 }
     91