1 // RUN: %clang_cc1 -triple aarch64-windows -emit-llvm -w -o - %s | FileCheck %s
2 
3 // CHECK: target datalayout = "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128"
4 // CHECK: target triple = "aarch64-unknown-windows-msvc"
5 
check_short()6 int check_short() {
7   return sizeof(short);
8 // CHECK: ret i32 2
9 }
10 
check_int()11 int check_int() {
12   return sizeof(int);
13 // CHECK: ret i32 4
14 }
15 
check_long()16 int check_long() {
17   return sizeof(long);
18 // CHECK: ret i32 4
19 }
20 
check_longlong()21 int check_longlong() {
22   return sizeof(long long);
23 // CHECK: ret i32 8
24 }
25 
check_int128()26 int check_int128() {
27   return sizeof(__int128);
28 // CHECK: ret i32 16
29 }
30 
check_fp16()31 int check_fp16() {
32   return sizeof(__fp16);
33 // CHECK: ret i32 2
34 }
35 
check_float()36 int check_float() {
37   return sizeof(float);
38 // CHECK: ret i32 4
39 }
40 
check_double()41 int check_double() {
42   return sizeof(double);
43 // CHECK: ret i32 8
44 }
45 
check_longdouble()46 int check_longdouble() {
47   return sizeof(long double);
48 // CHECK: ret i32 8
49 }
50 
check_floatComplex()51 int check_floatComplex() {
52   return sizeof(float _Complex);
53 // CHECK: ret i32 8
54 }
55 
check_doubleComplex()56 int check_doubleComplex() {
57   return sizeof(double _Complex);
58 // CHECK: ret i32 16
59 }
60 
check_longdoubleComplex()61 int check_longdoubleComplex() {
62   return sizeof(long double _Complex);
63 // CHECK: ret i32 16
64 }
65 
check_bool()66 int check_bool() {
67   return sizeof(_Bool);
68 // CHECK: ret i32 1
69 }
70 
check_wchar()71 int check_wchar() {
72   return sizeof(__WCHAR_TYPE__);
73 // CHECK: ret i32 2
74 }
75 
check_wchar_unsigned()76 int check_wchar_unsigned() {
77   return (__WCHAR_TYPE__)-1 > (__WCHAR_TYPE__)0;
78 // CHECK: ret i32 1
79 }
80 
81 enum Small {
82   Item
83 };
84 
foo()85 int foo() {
86   return sizeof(enum Small);
87 // CHECK: ret i32 4
88 }
89