//===----- hlsl_basic_types.h - HLSL definitions for basic types ----------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef _HLSL_HLSL_BASIC_TYPES_H_ #define _HLSL_HLSL_BASIC_TYPES_H_ namespace hlsl { // built-in scalar data types: #ifdef __HLSL_ENABLE_16_BIT // 16-bit integer. typedef unsigned short uint16_t; typedef short int16_t; #endif // unsigned 32-bit integer. typedef unsigned int uint; // 64-bit integer. typedef unsigned long uint64_t; typedef long int64_t; // built-in vector data types: #ifdef __HLSL_ENABLE_16_BIT typedef vector int16_t2; typedef vector int16_t3; typedef vector int16_t4; typedef vector uint16_t2; typedef vector uint16_t3; typedef vector uint16_t4; #endif typedef vector int2; typedef vector int3; typedef vector int4; typedef vector uint2; typedef vector uint3; typedef vector uint4; typedef vector int64_t2; typedef vector int64_t3; typedef vector int64_t4; typedef vector uint64_t2; typedef vector uint64_t3; typedef vector uint64_t4; #ifdef __HLSL_ENABLE_16_BIT typedef vector half2; typedef vector half3; typedef vector half4; #endif typedef vector float2; typedef vector float3; typedef vector float4; typedef vector double2; typedef vector double3; typedef vector double4; } // namespace hlsl #endif //_HLSL_HLSL_BASIC_TYPES_H_