@@ -23,52 +23,98 @@ namespace hlsl {
2323// 16-bit integer.
2424typedef unsigned short uint16_t ;
2525typedef short int16_t ;
26+
27+ // 16-bit floating point.
28+ typedef half float16_t ;
2629#endif
2730
31+ // 32-bit integer.
32+ typedef int int32_t ;
33+
2834// unsigned 32-bit integer.
2935typedef unsigned int uint;
36+ typedef unsigned int uint32_t ;
37+
38+ // 32-bit floating point.
39+ typedef float float32_t ;
3040
3141// 64-bit integer.
3242typedef unsigned long uint64_t ;
3343typedef long int64_t ;
3444
45+ // 64-bit floating point
46+ typedef double float64_t ;
47+
3548// built-in vector data types:
3649
3750#ifdef __HLSL_ENABLE_16_BIT
51+ typedef vector<int16_t , 1 > int16_t1;
3852typedef vector<int16_t , 2 > int16_t2;
3953typedef vector<int16_t , 3 > int16_t3;
4054typedef vector<int16_t , 4 > int16_t4;
55+ typedef vector<uint16_t , 1 > uint16_t1;
4156typedef vector<uint16_t , 2 > uint16_t2;
4257typedef vector<uint16_t , 3 > uint16_t3;
4358typedef vector<uint16_t , 4 > uint16_t4;
4459#endif
60+ typedef vector<bool , 1 > bool1;
4561typedef vector<bool , 2 > bool2;
4662typedef vector<bool , 3 > bool3;
4763typedef vector<bool , 4 > bool4;
64+ typedef vector<int , 1 > int1;
4865typedef vector<int , 2 > int2;
4966typedef vector<int , 3 > int3;
5067typedef vector<int , 4 > int4;
68+ typedef vector<uint, 1 > uint1;
5169typedef vector<uint, 2 > uint2;
5270typedef vector<uint, 3 > uint3;
5371typedef vector<uint, 4 > uint4;
72+ typedef vector<int32_t , 1 > int32_t1;
73+ typedef vector<int32_t , 2 > int32_t2;
74+ typedef vector<int32_t , 3 > int32_t3;
75+ typedef vector<int32_t , 4 > int32_t4;
76+ typedef vector<uint32_t , 1 > uint32_t1;
77+ typedef vector<uint32_t , 2 > uint32_t2;
78+ typedef vector<uint32_t , 3 > uint32_t3;
79+ typedef vector<uint32_t , 4 > uint32_t4;
80+ typedef vector<int64_t , 1 > int64_t1;
5481typedef vector<int64_t , 2 > int64_t2;
5582typedef vector<int64_t , 3 > int64_t3;
5683typedef vector<int64_t , 4 > int64_t4;
84+ typedef vector<uint64_t , 1 > uint64_t1;
5785typedef vector<uint64_t , 2 > uint64_t2;
5886typedef vector<uint64_t , 3 > uint64_t3;
5987typedef vector<uint64_t , 4 > uint64_t4;
6088
89+ typedef vector<half, 1 > half1;
6190typedef vector<half, 2 > half2;
6291typedef vector<half, 3 > half3;
6392typedef vector<half, 4 > half4;
64-
93+ typedef vector< float , 1 > float1;
6594typedef vector<float , 2 > float2;
6695typedef vector<float , 3 > float3;
6796typedef vector<float , 4 > float4;
97+ typedef vector<double , 1 > double1;
6898typedef vector<double , 2 > double2;
6999typedef vector<double , 3 > double3;
70100typedef vector<double , 4 > double4;
71101
102+ #ifdef __HLSL_ENABLE_16_BIT
103+ typedef vector<float16_t , 1 > float16_t1;
104+ typedef vector<float16_t , 2 > float16_t2;
105+ typedef vector<float16_t , 3 > float16_t3;
106+ typedef vector<float16_t , 4 > float16_t4;
107+ #endif
108+
109+ typedef vector<float32_t , 1 > float32_t1;
110+ typedef vector<float32_t , 2 > float32_t2;
111+ typedef vector<float32_t , 3 > float32_t3;
112+ typedef vector<float32_t , 4 > float32_t4;
113+ typedef vector<float64_t , 1 > float64_t1;
114+ typedef vector<float64_t , 2 > float64_t2;
115+ typedef vector<float64_t , 3 > float64_t3;
116+ typedef vector<float64_t , 4 > float64_t4;
117+
72118} // namespace hlsl
73119
74120#endif // _HLSL_HLSL_BASIC_TYPES_H_
0 commit comments