1// RUN: %clang_dxc  -Tlib_6_7 -fcgl -Fo - %s | FileCheck %s
2
3// FIXME: check 16bit types once enable-16bit-types is ready.
4
5// CHECK:"?uint_Val@@3IA" = global i32 0, align 4
6// CHECK:"?uint64_t_Val@@3KA" = global i64 0, align 8
7// CHECK:"?int64_t_Val@@3JA" = global i64 0, align 8
8// CHECK:"?int2_Val@@3T?$__vector@H$01@__clang@@A" = global <2 x i32> zeroinitializer, align 8
9// CHECK:"?int3_Val@@3T?$__vector@H$02@__clang@@A" = global <3 x i32> zeroinitializer, align 16
10// CHECK:"?int4_Val@@3T?$__vector@H$03@__clang@@A" = global <4 x i32> zeroinitializer, align 16
11// CHECK:"?uint2_Val@@3T?$__vector@I$01@__clang@@A" = global <2 x i32> zeroinitializer, align 8
12// CHECK:"?uint3_Val@@3T?$__vector@I$02@__clang@@A" = global <3 x i32> zeroinitializer, align 16
13// CHECK:"?uint4_Val@@3T?$__vector@I$03@__clang@@A" = global <4 x i32> zeroinitializer, align 16
14// CHECK:"?int64_t2_Val@@3T?$__vector@J$01@__clang@@A" = global <2 x i64> zeroinitializer, align 16
15// CHECK:"?int64_t3_Val@@3T?$__vector@J$02@__clang@@A" = global <3 x i64> zeroinitializer, align 32
16// CHECK:"?int64_t4_Val@@3T?$__vector@J$03@__clang@@A" = global <4 x i64> zeroinitializer, align 32
17// CHECK:"?uint64_t2_Val@@3T?$__vector@K$01@__clang@@A" = global <2 x i64> zeroinitializer, align 16
18// CHECK:"?uint64_t3_Val@@3T?$__vector@K$02@__clang@@A" = global <3 x i64> zeroinitializer, align 32
19// CHECK:"?uint64_t4_Val@@3T?$__vector@K$03@__clang@@A" = global <4 x i64> zeroinitializer, align 32
20// CHECK:"?float2_Val@@3T?$__vector@M$01@__clang@@A" = global <2 x float> zeroinitializer, align 8
21// CHECK:"?float3_Val@@3T?$__vector@M$02@__clang@@A" = global <3 x float> zeroinitializer, align 16
22// CHECK:"?float4_Val@@3T?$__vector@M$03@__clang@@A" = global <4 x float> zeroinitializer, align 16
23// CHECK:"?double2_Val@@3T?$__vector@N$01@__clang@@A" = global <2 x double> zeroinitializer, align 16
24// CHECK:"?double3_Val@@3T?$__vector@N$02@__clang@@A" = global <3 x double> zeroinitializer, align 32
25// CHECK:"?double4_Val@@3T?$__vector@N$03@__clang@@A" = global <4 x double> zeroinitializer, align 32
26
27#define TYPE_DECL(T)  T T##_Val
28
29#ifdef __HLSL_ENABLE_16_BIT
30TYPE_DECL(uint16_t);
31TYPE_DECL(int16_t);
32#endif
33
34// unsigned 32-bit integer.
35TYPE_DECL(uint);
36
37// 64-bit integer.
38TYPE_DECL(uint64_t);
39TYPE_DECL(int64_t);
40
41// built-in vector data types:
42
43#ifdef __HLSL_ENABLE_16_BIT
44TYPE_DECL(int16_t2   );
45TYPE_DECL(int16_t3   );
46TYPE_DECL(int16_t4   );
47TYPE_DECL( uint16_t2 );
48TYPE_DECL( uint16_t3 );
49TYPE_DECL( uint16_t4 );
50#endif
51
52TYPE_DECL( int2  );
53TYPE_DECL( int3  );
54TYPE_DECL( int4  );
55TYPE_DECL( uint2 );
56TYPE_DECL( uint3 );
57TYPE_DECL( uint4     );
58TYPE_DECL( int64_t2  );
59TYPE_DECL( int64_t3  );
60TYPE_DECL( int64_t4  );
61TYPE_DECL( uint64_t2 );
62TYPE_DECL( uint64_t3 );
63TYPE_DECL( uint64_t4 );
64
65#ifdef __HLSL_ENABLE_16_BIT
66TYPE_DECL(half2 );
67TYPE_DECL(half3 );
68TYPE_DECL(half4 );
69#endif
70
71TYPE_DECL( float2  );
72TYPE_DECL( float3  );
73TYPE_DECL( float4  );
74TYPE_DECL( double2 );
75TYPE_DECL( double3 );
76TYPE_DECL( double4 );
77