9#ifndef _HLSL_HLSL_INTRINSICS_H_
10#define _HLSL_HLSL_INTRINSICS_H_
19#define _HLSL_BUILTIN_ALIAS(builtin) \
20 __attribute__((clang_builtin_alias(builtin)))
21#define _HLSL_AVAILABILITY(environment, version) \
22 __attribute__((availability(environment, introduced = version)))
24#ifdef __HLSL_ENABLE_16_BIT
25#define _HLSL_16BIT_AVAILABILITY(environment, version) \
26 __attribute__((availability(environment, introduced = version)))
28#define _HLSL_16BIT_AVAILABILITY(environment, version)
39#ifdef __HLSL_ENABLE_16_BIT
45int16_t2
abs(int16_t2);
48int16_t3
abs(int16_t3);
51int16_t4
abs(int16_t4);
111#ifdef __HLSL_ENABLE_16_BIT
223#ifdef __HLSL_ENABLE_16_BIT
386#ifdef __HLSL_ENABLE_16_BIT
389int16_t
clamp(int16_t, int16_t, int16_t);
392int16_t2
clamp(int16_t2, int16_t2, int16_t2);
395int16_t3
clamp(int16_t3, int16_t3, int16_t3);
398int16_t4
clamp(int16_t4, int16_t4, int16_t4);
402uint16_t
clamp(uint16_t, uint16_t, uint16_t);
405uint16_t2
clamp(uint16_t2, uint16_t2, uint16_t2);
408uint16_t3
clamp(uint16_t3, uint16_t3, uint16_t3);
411uint16_t4
clamp(uint16_t4, uint16_t4, uint16_t4);
460double clamp(
double,
double,
double);
520#ifdef __HLSL_ENABLE_16_BIT
523int16_t
dot(int16_t, int16_t);
526int16_t
dot(int16_t2, int16_t2);
529int16_t
dot(int16_t3, int16_t3);
532int16_t
dot(int16_t4, int16_t4);
536uint16_t
dot(uint16_t, uint16_t);
539uint16_t
dot(uint16_t2, uint16_t2);
542uint16_t
dot(uint16_t3, uint16_t3);
545uint16_t
dot(uint16_t4, uint16_t4);
558double dot(
double,
double);
784float lerp(
float,
float,
float);
903half
mad(half, half, half);
914#ifdef __HLSL_ENABLE_16_BIT
917int16_t
mad(int16_t, int16_t, int16_t);
920int16_t2
mad(int16_t2, int16_t2, int16_t2);
923int16_t3
mad(int16_t3, int16_t3, int16_t3);
926int16_t4
mad(int16_t4, int16_t4, int16_t4);
930uint16_t
mad(uint16_t, uint16_t, uint16_t);
933uint16_t2
mad(uint16_t2, uint16_t2, uint16_t2);
936uint16_t3
mad(uint16_t3, uint16_t3, uint16_t3);
939uint16_t4
mad(uint16_t4, uint16_t4, uint16_t4);
979float mad(
float,
float,
float);
988double mad(
double,
double,
double);
1018#ifdef __HLSL_ENABLE_16_BIT
1021int16_t
max(int16_t, int16_t);
1024int16_t2
max(int16_t2, int16_t2);
1027int16_t3
max(int16_t3, int16_t3);
1030int16_t4
max(int16_t4, int16_t4);
1034uint16_t
max(uint16_t, uint16_t);
1037uint16_t2
max(uint16_t2, uint16_t2);
1040uint16_t3
max(uint16_t3, uint16_t3);
1043uint16_t4
max(uint16_t4, uint16_t4);
1122#ifdef __HLSL_ENABLE_16_BIT
1125int16_t
min(int16_t, int16_t);
1128int16_t2
min(int16_t2, int16_t2);
1131int16_t3
min(int16_t3, int16_t3);
1134int16_t4
min(int16_t4, int16_t4);
1138uint16_t
min(uint16_t, uint16_t);
1141uint16_t2
min(uint16_t2, uint16_t2);
1144uint16_t3
min(uint16_t3, uint16_t3);
1147uint16_t4
min(uint16_t4, uint16_t4);
1243#ifdef __HLSL_ENABLE_16_BIT
1447#ifdef __HLSL_ENABLE_16_BIT
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
#define _HLSL_BUILTIN_ALIAS(builtin)
#define _HLSL_16BIT_AVAILABILITY(environment, version)
#define _HLSL_AVAILABILITY(environment, version)
half mad(half, half, half)
vector< uint64_t, 2 > uint64_t2
vector< float, 4 > float4
vector< int64_t, 4 > int64_t4
vector< uint64_t, 3 > uint64_t3
half lerp(half, half, half)
vector< int64_t, 3 > int64_t3
half clamp(half, half, half)
vector< uint64_t, 4 > uint64_t4
vector< double, 3 > double3
vector< float, 2 > float2
vector< float, 3 > float3
vector< int64_t, 2 > int64_t2
vector< double, 4 > double4
vector< double, 2 > double2