1 /*========================== begin_copyright_notice ============================ 2 3 Copyright (C) 2021 Intel Corporation 4 5 SPDX-License-Identifier: MIT 6 7 ============================= end_copyright_notice ===========================*/ 8 9 #ifndef __SPIRV_MATH_H__ 10 #define __SPIRV_MATH_H__ 11 12 #include "spirv_macros.h" 13 14 // 15 // Common 16 // -degrees,fclamp,fmax_common,fmin_common,mix,radians,sign,smoothstep,step 17 // 18 19 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _f32, )(float r ); 20 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v2f32, )(float2 x); 21 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v3f32, )(float3 x); 22 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v4f32, )(float4 x); 23 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v8f32, )(float8 x); 24 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v16f32, )(float16 x); 25 #if defined(cl_khr_fp64) 26 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _f64, )(double r ); 27 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v2f64, )(double2 x); 28 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v3f64, )(double3 x); 29 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v4f64, )(double4 x); 30 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v8f64, )(double8 x); 31 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v16f64, )(double16 x); 32 #endif // defined(cl_khr_fp64) 33 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _f16, )(half r ); 34 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v2f16, )(half2 x); 35 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v3f16, )(half3 x); 36 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v4f16, )(half4 x); 37 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v8f16, )(half8 x); 38 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(degrees, _v16f16, )(half16 x); 39 40 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _f32_f32_f32, )(float x, float y, float z); 41 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v2f32_v2f32_v2f32, )(float2 x, float2 y, float2 z); 42 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v3f32_v3f32_v3f32, )(float3 x, float3 y, float3 z); 43 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v4f32_v4f32_v4f32, )(float4 x, float4 y, float4 z); 44 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v8f32_v8f32_v8f32, )(float8 x, float8 y, float8 z); 45 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v16f32_v16f32_v16f32, )(float16 x, float16 y, float16 z); 46 #if defined(cl_khr_fp64) 47 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _f64_f64_f64, )(double x, double y, double z); 48 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v2f64_v2f64_v2f64, )(double2 x, double2 y, double2 z); 49 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v3f64_v3f64_v3f64, )(double3 x, double3 y, double3 z); 50 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v4f64_v4f64_v4f64, )(double4 x, double4 y, double4 z); 51 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v8f64_v8f64_v8f64, )(double8 x, double8 y, double8 z); 52 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v16f64_v16f64_v16f64, )(double16 x, double16 y, double16 z); 53 #endif // defined(cl_khr_fp64) 54 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _f16_f16_f16, )(half x, half y, half z); 55 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v2f16_v2f16_v2f16, )(half2 x, half2 y, half2 z); 56 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v3f16_v3f16_v3f16, )(half3 x, half3 y, half3 z); 57 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v4f16_v4f16_v4f16, )(half4 x, half4 y, half4 z); 58 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v8f16_v8f16_v8f16, )(half8 x, half8 y, half8 z); 59 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _v16f16_v16f16_v16f16, )(half16 x, half16 y, half16 z); 60 61 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _f32_f32, )(float x, float y); 62 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v2f32_v2f32, )(float2 x, float2 y); 63 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v3f32_v3f32, )(float3 x, float3 y); 64 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v4f32_v4f32, )(float4 x, float4 y); 65 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v8f32_v8f32, )(float8 x, float8 y); 66 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v16f32_v16f32, )(float16 x, float16 y); 67 #if defined(cl_khr_fp64) 68 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _f64_f64, )(double x, double y); 69 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v2f64_v2f64, )(double2 x, double2 y); 70 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v3f64_v3f64, )(double3 x, double3 y); 71 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v4f64_v4f64, )(double4 x, double4 y); 72 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v8f64_v8f64, )(double8 x, double8 y); 73 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v16f64_v16f64, )(double16 x, double16 y); 74 #endif // defined(cl_khr_fp64) 75 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _f16_f16, )(half x, half y); 76 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v2f16_v2f16, )(half2 x, half2 y); 77 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v3f16_v3f16, )(half3 x, half3 y); 78 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v4f16_v4f16, )(half4 x, half4 y); 79 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v8f16_v8f16, )(half8 x, half8 y); 80 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax_common, _v16f16_v16f16, )(half16 x, half16 y); 81 82 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _f32_f32, )(float x, float y); 83 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _f16_f16, )(half x, half y); 84 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v2f32_v2f32, )(float2 x, float2 y); 85 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v3f32_v3f32, )(float3 x, float3 y); 86 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v4f32_v4f32, )(float4 x, float4 y); 87 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v8f32_v8f32, )(float8 x, float8 y); 88 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v16f32_v16f32, )(float16 x, float16 y); 89 #if defined(cl_khr_fp64) 90 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _f64_f64, )(double x, double y); 91 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v2f64_v2f64, )(double2 x, double2 y); 92 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v3f64_v3f64, )(double3 x, double3 y); 93 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v4f64_v4f64, )(double4 x, double4 y); 94 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v8f64_v8f64, )(double8 x, double8 y); 95 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v16f64_v16f64, )(double16 x, double16 y); 96 #endif // defined(cl_khr_fp64) 97 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v2f16_v2f16, )(half2 x, half2 y); 98 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v3f16_v3f16, )(half3 x, half3 y); 99 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v4f16_v4f16, )(half4 x, half4 y); 100 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v8f16_v8f16, )(half8 x, half8 y); 101 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin_common, _v16f16_v16f16, )(half16 x, half16 y); 102 103 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _f32_f32_f32, )(float x, float y, float a ); 104 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v2f32_v2f32_v2f32, )(float2 x, float2 y, float2 z); 105 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v3f32_v3f32_v3f32, )(float3 x, float3 y, float3 z); 106 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v4f32_v4f32_v4f32, )(float4 x, float4 y, float4 z); 107 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v8f32_v8f32_v8f32, )(float8 x, float8 y, float8 z); 108 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v16f32_v16f32_v16f32, )(float16 x, float16 y, float16 z); 109 #if defined(cl_khr_fp64) 110 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _f64_f64_f64, )(double x, double y, double a ); 111 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v2f64_v2f64_v2f64, )(double2 x, double2 y, double2 z); 112 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v3f64_v3f64_v3f64, )(double3 x, double3 y, double3 z); 113 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v4f64_v4f64_v4f64, )(double4 x, double4 y, double4 z); 114 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v8f64_v8f64_v8f64, )(double8 x, double8 y, double8 z); 115 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v16f64_v16f64_v16f64, )(double16 x, double16 y, double16 z); 116 #endif // defined(cl_khr_fp64) 117 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _f16_f16_f16, )(half x, half y, half a ); 118 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v2f16_v2f16_v2f16, )(half2 x, half2 y, half2 z); 119 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v3f16_v3f16_v3f16, )(half3 x, half3 y, half3 z); 120 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v4f16_v4f16_v4f16, )(half4 x, half4 y, half4 z); 121 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v8f16_v8f16_v8f16, )(half8 x, half8 y, half8 z); 122 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mix, _v16f16_v16f16_v16f16, )(half16 x, half16 y, half16 z); 123 124 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _f32, )(float d ); 125 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v2f32, )(float2 x); 126 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v3f32, )(float3 x); 127 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v4f32, )(float4 x); 128 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v8f32, )(float8 x); 129 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v16f32, )(float16 x); 130 #if defined(cl_khr_fp64) 131 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _f64, )(double d ); 132 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v2f64, )(double2 x); 133 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v3f64, )(double3 x); 134 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v4f64, )(double4 x); 135 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v8f64, )(double8 x); 136 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v16f64, )(double16 x); 137 #endif // defined(cl_khr_fp64) 138 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _f16, )(half d ); 139 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v2f16, )(half2 x); 140 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v3f16, )(half3 x); 141 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v4f16, )(half4 x); 142 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v8f16, )(half8 x); 143 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(radians, _v16f16, )(half16 x); 144 145 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _f32, )(float x ); 146 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v2f32, )(float2 x); 147 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v3f32, )(float3 x); 148 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v4f32, )(float4 x); 149 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v8f32, )(float8 x); 150 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v16f32, )(float16 x); 151 #if defined(cl_khr_fp64) 152 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _f64, )(double x ); 153 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v2f64, )(double2 x); 154 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v3f64, )(double3 x); 155 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v4f64, )(double4 x); 156 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v8f64, )(double8 x); 157 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v16f64, )(double16 x); 158 #endif // defined(cl_khr_fp64) 159 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _f16, )(half x ); 160 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v2f16, )(half2 x); 161 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v3f16, )(half3 x); 162 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v4f16, )(half4 x); 163 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v8f16, )(half8 x); 164 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sign, _v16f16, )(half16 x); 165 166 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _f32_f32_f32, )(float edge0, float edge1, float x ); 167 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v2f32_v2f32_v2f32, )(float2 x, float2 y, float2 z); 168 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v3f32_v3f32_v3f32, )(float3 x, float3 y, float3 z); 169 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v4f32_v4f32_v4f32, )(float4 x, float4 y, float4 z); 170 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v8f32_v8f32_v8f32, )(float8 x, float8 y, float8 z); 171 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v16f32_v16f32_v16f32, )(float16 x, float16 y, float16 z); 172 #if defined(cl_khr_fp64) 173 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _f64_f64_f64, )(double edge0, double edge1, double x ); 174 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v2f64_v2f64_v2f64, )(double2 x, double2 y, double2 z); 175 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v3f64_v3f64_v3f64, )(double3 x, double3 y, double3 z); 176 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v4f64_v4f64_v4f64, )(double4 x, double4 y, double4 z); 177 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v8f64_v8f64_v8f64, )(double8 x, double8 y, double8 z); 178 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v16f64_v16f64_v16f64, )(double16 x, double16 y, double16 z); 179 #endif // defined(cl_khr_fp64) 180 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _f16_f16_f16, )(half edge0, half edge1, half x ); 181 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v2f16_v2f16_v2f16, )(half2 x, half2 y, half2 z); 182 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v3f16_v3f16_v3f16, )(half3 x, half3 y, half3 z); 183 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v4f16_v4f16_v4f16, )(half4 x, half4 y, half4 z); 184 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v8f16_v8f16_v8f16, )(half8 x, half8 y, half8 z); 185 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(smoothstep, _v16f16_v16f16_v16f16, )(half16 x, half16 y, half16 z); 186 187 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _f32_f32, )(float edge, float x ); 188 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v2f32_v2f32, )(float2 x, float2 y); 189 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v3f32_v3f32, )(float3 x, float3 y); 190 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v4f32_v4f32, )(float4 x, float4 y); 191 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v8f32_v8f32, )(float8 x, float8 y); 192 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v16f32_v16f32, )(float16 x, float16 y); 193 #if defined(cl_khr_fp64) 194 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _f64_f64, )(double edge, double x ); 195 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v2f64_v2f64, )(double2 x, double2 y); 196 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v3f64_v3f64, )(double3 x, double3 y); 197 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v4f64_v4f64, )(double4 x, double4 y); 198 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v8f64_v8f64, )(double8 x, double8 y); 199 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v16f64_v16f64, )(double16 x, double16 y); 200 #endif // defined(cl_khr_fp64) 201 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _f16_f16, )(half edge, half x ); 202 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v2f16_v2f16, )(half2 x, half2 y); 203 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v3f16_v3f16, )(half3 x, half3 y); 204 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v4f16_v4f16, )(half4 x, half4 y); 205 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v8f16_v8f16, )(half8 x, half8 y); 206 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(step, _v16f16_v16f16, )(half16 x, half16 y); 207 208 209 // 210 // Geometric 211 // -cross,distance,fast_distance,fast_length,fast_normalize,length,normalize 212 // 213 214 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cross, _v3f32_v3f32, )(float3 p0, float3 p1 ); 215 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cross, _v4f32_v4f32, )(float4 p0, float4 p1 ); 216 #if defined(cl_khr_fp64) 217 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cross, _v3f64_v3f64, )(double3 p0, double3 p1 ); 218 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cross, _v4f64_v4f64, )(double4 p0, double4 p1 ); 219 #endif // defined(cl_khr_fp64) 220 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cross, _v3f16_v3f16, )(half3 p0, half3 p1 ); 221 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cross, _v4f16_v4f16, )(half4 p0, half4 p1 ); 222 223 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _f32_f32, )(float p0, float p1 ); 224 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v2f32_v2f32, )(float2 p0, float2 p1 ); 225 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v3f32_v3f32, )(float3 p0, float3 p1 ); 226 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v4f32_v4f32, )(float4 p0, float4 p1 ); 227 #if defined(cl_khr_fp64) 228 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _f64_f64, )(double p0, double p1 ); 229 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v2f64_v2f64, )(double2 p0, double2 p1 ); 230 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v3f64_v3f64, )(double3 p0, double3 p1 ); 231 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v4f64_v4f64, )(double4 p0, double4 p1 ); 232 #endif // defined(cl_khr_fp64) 233 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _f16_f16, )(half p0, half p1 ); 234 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v2f16_v2f16, )(half2 p0, half2 p1 ); 235 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v3f16_v3f16, )(half3 p0, half3 p1 ); 236 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(distance, _v4f16_v4f16, )(half4 p0, half4 p1 ); 237 238 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_distance, _f32_f32, )(float p0, float p1 ); 239 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_distance, _v2f32_v2f32, )(float2 p0, float2 p1 ); 240 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_distance, _v3f32_v3f32, )(float3 p0, float3 p1 ); 241 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_distance, _v4f32_v4f32, )(float4 p0, float4 p1 ); 242 243 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _f32, )(float p ); 244 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _v2f32, )(float2 p ); 245 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _v3f32, )(float3 p ); 246 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _v4f32, )(float4 p ); 247 248 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _f32, )(float p ); 249 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _v2f32, )(float2 p ); 250 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _v3f32, )(float3 p ); 251 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _v4f32, )(float4 p ); 252 253 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _f32, )(float p ); 254 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v2f32, )(float2 p ); 255 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v3f32, )(float3 p ); 256 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v4f32, )(float4 p ); 257 #if defined(cl_khr_fp64) 258 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _f64, )(double p ); 259 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v2f64, )(double2 p ); 260 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v3f64, )(double3 p ); 261 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v4f64, )(double4 p ); 262 #endif // defined(cl_khr_fp64) 263 #if defined(cl_khr_fp16) 264 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _f16, )(half p ); 265 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v2f16, )(half2 p ); 266 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v3f16, )(half3 p ); 267 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(length, _v4f16, )(half4 p ); 268 #endif // defined(cl_khr_fp16) 269 270 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _f32, )(float p ); 271 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v2f32, )(float2 p ); 272 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v3f32, )(float3 p ); 273 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v4f32, )(float4 p ); 274 #if defined(cl_khr_fp64) 275 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _f64, )(double p ); 276 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v2f64, )(double2 p ); 277 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v3f64, )(double3 p ); 278 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v4f64, )(double4 p ); 279 #endif // defined(cl_khr_fp64) 280 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _f16, )(half p ); 281 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v2f16, )(half2 p ); 282 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v3f16, )(half3 p ); 283 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(normalize, _v4f16, )(half4 p ); 284 285 286 // 287 // Half 288 // -half_cos,half_divide,half_exp,half_exp2,half_exp10,half_log,half_log2,half_log10 289 // half_powr,half_recip,half_rsqrt,half_sin,half_sqrt,half_tan 290 // 291 292 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_cos, _f32, )(float x ); 293 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_cos, _v2f32, )(float2 x ); 294 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_cos, _v3f32, )(float3 x ); 295 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_cos, _v4f32, )(float4 x ); 296 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_cos, _v8f32, )(float8 x ); 297 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_cos, _v16f32, )(float16 x ); 298 299 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_divide, _f32_f32, )(float x, float y ); 300 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_divide, _v2f32_v2f32, )(float2 x, float2 y ); 301 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_divide, _v3f32_v3f32, )(float3 x, float3 y ); 302 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_divide, _v4f32_v4f32, )(float4 x, float4 y ); 303 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_divide, _v8f32_v8f32, )(float8 x, float8 y ); 304 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_divide, _v16f32_v16f32, )(float16 x, float16 y ); 305 306 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _f32, )(float x ); 307 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v2f32, )(float2 x ); 308 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v3f32, )(float3 x ); 309 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v4f32, )(float4 x ); 310 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v8f32, )(float8 x ); 311 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v16f32, )(float16 x ); 312 313 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _f32, )(float x ); 314 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v2f32, )(float2 x ); 315 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v3f32, )(float3 x ); 316 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v4f32, )(float4 x ); 317 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v8f32, )(float8 x ); 318 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v16f32, )(float16 x ); 319 320 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _f32, )(float x ); 321 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v2f32, )(float2 x ); 322 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v3f32, )(float3 x ); 323 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v4f32, )(float4 x ); 324 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v8f32, )(float8 x ); 325 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v16f32, )(float16 x ); 326 327 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _f32, )(float x ); 328 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v2f32, )(float2 x ); 329 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v3f32, )(float3 x ); 330 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v4f32, )(float4 x ); 331 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v8f32, )(float8 x ); 332 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v16f32, )(float16 x ); 333 334 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _f32, )(float x ); 335 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v2f32, )(float2 x ); 336 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v3f32, )(float3 x ); 337 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v4f32, )(float4 x ); 338 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v8f32, )(float8 x ); 339 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v16f32, )(float16 x ); 340 341 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _f32, )(float x ); 342 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v2f32, )(float2 x ); 343 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v3f32, )(float3 x ); 344 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v4f32, )(float4 x ); 345 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v8f32, )(float8 x ); 346 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v16f32, )(float16 x ); 347 348 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_powr, _f32_f32, )(float x, float y ); 349 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_powr, _v2f32_v2f32, )(float2 x, float2 y ); 350 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_powr, _v3f32_v3f32, )(float3 x, float3 y ); 351 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_powr, _v4f32_v4f32, )(float4 x, float4 y ); 352 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_powr, _v8f32_v8f32, )(float8 x, float8 y ); 353 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_powr, _v16f32_v16f32, )(float16 x, float16 y ); 354 355 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _f32, )(float x ); 356 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v2f32, )(float2 x ); 357 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v3f32, )(float3 x ); 358 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v4f32, )(float4 x ); 359 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v8f32, )(float8 x ); 360 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v16f32, )(float16 x ); 361 362 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _f32, )(float x ); 363 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v2f32, )(float2 x ); 364 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v3f32, )(float3 x ); 365 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v4f32, )(float4 x ); 366 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v8f32, )(float8 x ); 367 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v16f32, )(float16 x ); 368 369 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sin, _f32, )(float x ); 370 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sin, _v2f32, )(float2 x ); 371 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sin, _v3f32, )(float3 x ); 372 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sin, _v4f32, )(float4 x ); 373 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sin, _v8f32, )(float8 x ); 374 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sin, _v16f32, )(float16 x ); 375 376 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _f32, )(float x ); 377 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v2f32, )(float2 x ); 378 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v3f32, )(float3 x ); 379 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v4f32, )(float4 x ); 380 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v8f32, )(float8 x ); 381 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v16f32, )(float16 x ); 382 383 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_tan, _f32, )(float x ); 384 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_tan, _v2f32, )(float2 x ); 385 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_tan, _v3f32, )(float3 x ); 386 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_tan, _v4f32, )(float4 x ); 387 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_tan, _v8f32, )(float8 x ); 388 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_tan, _v16f32, )(float16 x ); 389 390 391 // 392 // Integer (signed and unsigned ) 393 // -abs,abs_diff,add_sat,clamp,clz,ctz,hadd,mad_hi,mad_sat,mad24,max,min,mul_hi 394 // mul24,popcnt,rhadd,rotate,sub_sat,upsample 395 // 396 397 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _i8, )( char x ); 398 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v2i8, )( char2 x ); 399 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v3i8, )( char3 x ); 400 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v4i8, )( char4 x ); 401 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v8i8, )( char8 x ); 402 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v16i8, )( char16 x ); 403 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _i8, )( uchar x ); 404 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v2i8, )( uchar2 x ); 405 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v3i8, )( uchar3 x ); 406 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v4i8, )( uchar4 x ); 407 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v8i8, )( uchar8 x ); 408 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v16i8, )( uchar16 x ); 409 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _i16, )( short x ); 410 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v2i16, )( short2 x ); 411 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v3i16, )( short3 x ); 412 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v4i16, )( short4 x ); 413 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v8i16, )( short8 x ); 414 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v16i16, )( short16 x ); 415 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _i16, )( ushort x ); 416 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v2i16, )( ushort2 x ); 417 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v3i16, )( ushort3 x ); 418 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v4i16, )( ushort4 x ); 419 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v8i16, )( ushort8 x ); 420 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v16i16, )( ushort16 x ); 421 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _i32, )( int x ); 422 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v2i32, )( int2 x ); 423 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v3i32, )( int3 x ); 424 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v4i32, )( int4 x ); 425 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v8i32, )( int8 x ); 426 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v16i32, )( int16 x ); 427 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _i32, )( uint x ); 428 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v2i32, )( uint2 x ); 429 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v3i32, )( uint3 x ); 430 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v4i32, )( uint4 x ); 431 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v8i32, )( uint8 x ); 432 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v16i32, )( uint16 x ); 433 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _i64, )( long x ); 434 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v2i64, )( long2 x ); 435 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v3i64, )( long3 x ); 436 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v4i64, )( long4 x ); 437 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v8i64, )( long8 x ); 438 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs, _v16i64, )( long16 x ); 439 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _i64, )( ulong x ); 440 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v2i64, )( ulong2 x ); 441 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v3i64, )( ulong3 x ); 442 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v4i64, )( ulong4 x ); 443 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v8i64, )( ulong8 x ); 444 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs, _v16i64, )( ulong16 x ); 445 446 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _i8_i8, )( char x, char y ); 447 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v2i8_v2i8, )( char2 x, char2 y ); 448 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v3i8_v3i8, )( char3 x, char3 y ); 449 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v4i8_v4i8, )( char4 x, char4 y ); 450 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v8i8_v8i8, )( char8 x, char8 y ); 451 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v16i8_v16i8, )( char16 x, char16 y ); 452 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _i8_i8, )( uchar x, uchar y ); 453 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v2i8_v2i8, )( uchar2 x, uchar2 y ); 454 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v3i8_v3i8, )( uchar3 x, uchar3 y ); 455 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v4i8_v4i8, )( uchar4 x, uchar4 y ); 456 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v8i8_v8i8, )( uchar8 x, uchar8 y ); 457 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v16i8_v16i8, )( uchar16 x, uchar16 y ); 458 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _i16_i16, )( short x, short y ); 459 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v2i16_v2i16, )( short2 x, short2 y ); 460 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v3i16_v3i16, )( short3 x, short3 y ); 461 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v4i16_v4i16, )( short4 x, short4 y ); 462 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v8i16_v8i16, )( short8 x, short8 y ); 463 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v16i16_v16i16, )( short16 x, short16 y ); 464 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _i16_i16, )( ushort x, ushort y ); 465 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v2i16_v2i16, )( ushort2 x, ushort2 y ); 466 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v3i16_v3i16, )( ushort3 x, ushort3 y ); 467 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v4i16_v4i16, )( ushort4 x, ushort4 y ); 468 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v8i16_v8i16, )( ushort8 x, ushort8 y ); 469 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v16i16_v16i16, )( ushort16 x, ushort16 y ); 470 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _i32_i32, )( int x, int y ); 471 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v2i32_v2i32, )( int2 x, int2 y ); 472 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v3i32_v3i32, )( int3 x, int3 y ); 473 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v4i32_v4i32, )( int4 x, int4 y ); 474 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v8i32_v8i32, )( int8 x, int8 y ); 475 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v16i32_v16i32, )( int16 x, int16 y ); 476 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _i32_i32, )( uint x, uint y ); 477 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v2i32_v2i32, )( uint2 x, uint2 y ); 478 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v3i32_v3i32, )( uint3 x, uint3 y ); 479 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v4i32_v4i32, )( uint4 x, uint4 y ); 480 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v8i32_v8i32, )( uint8 x, uint8 y ); 481 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v16i32_v16i32, )( uint16 x, uint16 y ); 482 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _i64_i64, )( long x, long y ); 483 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v2i64_v2i64, )( long2 x, long2 y ); 484 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v3i64_v3i64, )( long3 x, long3 y ); 485 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v4i64_v4i64, )( long4 x, long4 y ); 486 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v8i64_v8i64, )( long8 x, long8 y ); 487 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_abs_diff, _v16i64_v16i64, )( long16 x, long16 y ); 488 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _i64_i64, )( ulong x, ulong y ); 489 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v2i64_v2i64, )( ulong2 x, ulong2 y ); 490 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v3i64_v3i64, )( ulong3 x, ulong3 y ); 491 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v4i64_v4i64, )( ulong4 x, ulong4 y ); 492 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v8i64_v8i64, )( ulong8 x, ulong8 y ); 493 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_abs_diff, _v16i64_v16i64, )( ulong16 x, ulong16 y ); 494 495 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _i8_i8, )( char x, char y ); 496 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v2i8_v2i8, )( char2 x, char2 y ); 497 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v3i8_v3i8, )( char3 x, char3 y ); 498 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v4i8_v4i8, )( char4 x, char4 y ); 499 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v8i8_v8i8, )( char8 x, char8 y ); 500 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v16i8_v16i8, )( char16 x, char16 y ); 501 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _i8_i8, )( uchar x, uchar y ); 502 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v2i8_v2i8, )( uchar2 x, uchar2 y ); 503 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v3i8_v3i8, )( uchar3 x, uchar3 y ); 504 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v4i8_v4i8, )( uchar4 x, uchar4 y ); 505 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v8i8_v8i8, )( uchar8 x, uchar8 y ); 506 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v16i8_v16i8, )( uchar16 x, uchar16 y ); 507 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _i16_i16, )( short x, short y ); 508 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v2i16_v2i16, )( short2 x, short2 y ); 509 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v3i16_v3i16, )( short3 x, short3 y ); 510 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v4i16_v4i16, )( short4 x, short4 y ); 511 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v8i16_v8i16, )( short8 x, short8 y ); 512 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v16i16_v16i16, )( short16 x, short16 y ); 513 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _i16_i16, )( ushort x, ushort y ); 514 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v2i16_v2i16, )( ushort2 x, ushort2 y ); 515 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v3i16_v3i16, )( ushort3 x, ushort3 y ); 516 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v4i16_v4i16, )( ushort4 x, ushort4 y ); 517 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v8i16_v8i16, )( ushort8 x, ushort8 y ); 518 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v16i16_v16i16, )( ushort16 x, ushort16 y ); 519 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _i32_i32, )( int x, int y ); 520 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v2i32_v2i32, )( int2 x, int2 y ); 521 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v3i32_v3i32, )( int3 x, int3 y ); 522 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v4i32_v4i32, )( int4 x, int4 y ); 523 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v8i32_v8i32, )( int8 x, int8 y ); 524 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v16i32_v16i32, )( int16 x, int16 y ); 525 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _i32_i32, )( uint x, uint y ); 526 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v2i32_v2i32, )( uint2 x, uint2 y ); 527 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v3i32_v3i32, )( uint3 x, uint3 y ); 528 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v4i32_v4i32, )( uint4 x, uint4 y ); 529 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v8i32_v8i32, )( uint8 x, uint8 y ); 530 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v16i32_v16i32, )( uint16 x, uint16 y ); 531 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _i64_i64, )( long x, long y ); 532 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v2i64_v2i64, )( long2 x, long2 y ); 533 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v3i64_v3i64, )( long3 x, long3 y ); 534 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v4i64_v4i64, )( long4 x, long4 y ); 535 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v8i64_v8i64, )( long8 x, long8 y ); 536 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_add_sat, _v16i64_v16i64, )( long16 x, long16 y ); 537 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _i64_i64, )( ulong x, ulong y ); 538 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v2i64_v2i64, )( ulong2 x, ulong2 y ); 539 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v3i64_v3i64, )( ulong3 x, ulong3 y ); 540 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v4i64_v4i64, )( ulong4 x, ulong4 y ); 541 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v8i64_v8i64, )( ulong8 x, ulong8 y ); 542 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_add_sat, _v16i64_v16i64, )( ulong16 x, ulong16 y ); 543 544 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _i8_i8_i8, )(char x, char minval, char maxval ); 545 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _i8_i8_i8, )(uchar x, uchar minval, uchar maxval ); 546 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _i16_i16_i16, )(short x, short minval, short maxval ); 547 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _i16_i16_i16, )(ushort x, ushort minval, ushort maxval ); 548 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _i32_i32_i32, )(int x, int minval, int maxval ); 549 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _i32_i32_i32, )(uint x, uint minval, uint maxval ); 550 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _i64_i64_i64, )(long x, long minval, long maxval ); 551 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _i64_i64_i64, )(ulong x, ulong minval, ulong maxval ); 552 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v2i8_v2i8_v2i8, )(char2 x, char2 y, char2 z); 553 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v3i8_v3i8_v3i8, )(char3 x, char3 y, char3 z); 554 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v4i8_v4i8_v4i8, )(char4 x, char4 y, char4 z); 555 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v8i8_v8i8_v8i8, )(char8 x, char8 y, char8 z); 556 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v16i8_v16i8_v16i8, )(char16 x, char16 y, char16 z); 557 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v2i8_v2i8_v2i8, )(uchar2 x, uchar2 y, uchar2 z); 558 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v3i8_v3i8_v3i8, )(uchar3 x, uchar3 y, uchar3 z); 559 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v4i8_v4i8_v4i8, )(uchar4 x, uchar4 y, uchar4 z); 560 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v8i8_v8i8_v8i8, )(uchar8 x, uchar8 y, uchar8 z); 561 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v16i8_v16i8_v16i8, )(uchar16 x, uchar16 y, uchar16 z); 562 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v2i16_v2i16_v2i16, )(short2 x, short2 y, short2 z); 563 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v3i16_v3i16_v3i16, )(short3 x, short3 y, short3 z); 564 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v4i16_v4i16_v4i16, )(short4 x, short4 y, short4 z); 565 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v8i16_v8i16_v8i16, )(short8 x, short8 y, short8 z); 566 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v16i16_v16i16_v16i16, )(short16 x, short16 y, short16 z); 567 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v2i16_v2i16_v2i16, )(ushort2 x, ushort2 y, ushort2 z); 568 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v3i16_v3i16_v3i16, )(ushort3 x, ushort3 y, ushort3 z); 569 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v4i16_v4i16_v4i16, )(ushort4 x, ushort4 y, ushort4 z); 570 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v8i16_v8i16_v8i16, )(ushort8 x, ushort8 y, ushort8 z); 571 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v16i16_v16i16_v16i16, )(ushort16 x, ushort16 y, ushort16 z); 572 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v2i32_v2i32_v2i32, )(int2 x, int2 y, int2 z); 573 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v3i32_v3i32_v3i32, )(int3 x, int3 y, int3 z); 574 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v4i32_v4i32_v4i32, )(int4 x, int4 y, int4 z); 575 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v8i32_v8i32_v8i32, )(int8 x, int8 y, int8 z); 576 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v16i32_v16i32_v16i32, )(int16 x, int16 y, int16 z); 577 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v2i32_v2i32_v2i32, )(uint2 x, uint2 y, uint2 z); 578 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v3i32_v3i32_v3i32, )(uint3 x, uint3 y, uint3 z); 579 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v4i32_v4i32_v4i32, )(uint4 x, uint4 y, uint4 z); 580 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v8i32_v8i32_v8i32, )(uint8 x, uint8 y, uint8 z); 581 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v16i32_v16i32_v16i32, )(uint16 x, uint16 y, uint16 z); 582 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v2i64_v2i64_v2i64, )(long2 x, long2 y, long2 z); 583 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v3i64_v3i64_v3i64, )(long3 x, long3 y, long3 z); 584 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v4i64_v4i64_v4i64, )(long4 x, long4 y, long4 z); 585 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v8i64_v8i64_v8i64, )(long8 x, long8 y, long8 z); 586 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_clamp, _v16i64_v16i64_v16i64, )(long16 x, long16 y, long16 z); 587 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v2i64_v2i64_v2i64, )(ulong2 x, ulong2 y, ulong2 z); 588 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v3i64_v3i64_v3i64, )(ulong3 x, ulong3 y, ulong3 z); 589 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v4i64_v4i64_v4i64, )(ulong4 x, ulong4 y, ulong4 z); 590 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v8i64_v8i64_v8i64, )(ulong8 x, ulong8 y, ulong8 z); 591 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_clamp, _v16i64_v16i64_v16i64, )(ulong16 x, ulong16 y, ulong16 z); 592 593 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _i8, )( char x ); 594 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _i16, )( short x ); 595 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _i32, )( int x ); 596 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v2i8, )( char2 x ); 597 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v3i8, )( char3 x ); 598 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v4i8, )( char4 x ); 599 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v8i8, )( char8 x ); 600 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v16i8, )( char16 x ); 601 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v2i16, )( short2 x ); 602 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v3i16, )( short3 x ); 603 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v4i16, )( short4 x ); 604 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v8i16, )( short8 x ); 605 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v16i16, )( short16 x ); 606 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v2i32, )( int2 x ); 607 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v3i32, )( int3 x ); 608 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v4i32, )( int4 x ); 609 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v8i32, )( int8 x ); 610 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v16i32, )( int16 x ); 611 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _i64, )( long x ); 612 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v2i64, )( long2 x ); 613 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v3i64, )( long3 x ); 614 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v4i64, )( long4 x ); 615 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v8i64, )( long8 x ); 616 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(clz, _v16i64, )( long16 x ); 617 618 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _i8, )( char x ); 619 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v2i8, )( char2 x ); 620 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v3i8, )( char3 x ); 621 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v4i8, )( char4 x ); 622 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v8i8, )( char8 x ); 623 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v16i8, )( char16 x ); 624 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _i16, )( short x ); 625 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v2i16, )( short2 x ); 626 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v3i16, )( short3 x ); 627 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v4i16, )( short4 x ); 628 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v8i16, )( short8 x ); 629 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v16i16, )( short16 x ); 630 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _i32, )( int x ); 631 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v2i32, )( int2 x ); 632 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v3i32, )( int3 x ); 633 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v4i32, )( int4 x ); 634 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v8i32, )( int8 x ); 635 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v16i32, )( int16 x ); 636 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _i64, )( long x ); 637 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v2i64, )( long2 x ); 638 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v3i64, )( long3 x ); 639 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v4i64, )( long4 x ); 640 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v8i64, )( long8 x ); 641 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ctz, _v16i64, )( long16 x ); 642 643 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _i8_i8, )( char x, char y ); 644 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v2i8_v2i8, )( char2 x, char2 y ); 645 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v3i8_v3i8, )( char3 x, char3 y ); 646 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v4i8_v4i8, )( char4 x, char4 y ); 647 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v8i8_v8i8, )( char8 x, char8 y ); 648 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v16i8_v16i8, )( char16 x, char16 y ); 649 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _i8_i8, )( uchar x, uchar y ); 650 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v2i8_v2i8, )( uchar2 x, uchar2 y ); 651 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v3i8_v3i8, )( uchar3 x, uchar3 y ); 652 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v4i8_v4i8, )( uchar4 x, uchar4 y ); 653 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v8i8_v8i8, )( uchar8 x, uchar8 y ); 654 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v16i8_v16i8, )( uchar16 x, uchar16 y ); 655 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _i16_i16, )( short x, short y ); 656 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v2i16_v2i16, )( short2 x, short2 y ); 657 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v3i16_v3i16, )( short3 x, short3 y ); 658 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v4i16_v4i16, )( short4 x, short4 y ); 659 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v8i16_v8i16, )( short8 x, short8 y ); 660 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v16i16_v16i16, )( short16 x, short16 y ); 661 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _i16_i16, )( ushort x, ushort y ); 662 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v2i16_v2i16, )( ushort2 x, ushort2 y ); 663 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v3i16_v3i16, )( ushort3 x, ushort3 y ); 664 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v4i16_v4i16, )( ushort4 x, ushort4 y ); 665 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v8i16_v8i16, )( ushort8 x, ushort8 y ); 666 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v16i16_v16i16, )( ushort16 x, ushort16 y ); 667 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _i32_i32, )( int x, int y ); 668 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v2i32_v2i32, )( int2 x, int2 y ); 669 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v3i32_v3i32, )( int3 x, int3 y ); 670 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v4i32_v4i32, )( int4 x, int4 y ); 671 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v8i32_v8i32, )( int8 x, int8 y ); 672 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v16i32_v16i32, )( int16 x, int16 y ); 673 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _i32_i32, )( uint x, uint y ); 674 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v2i32_v2i32, )( uint2 x, uint2 y ); 675 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v3i32_v3i32, )( uint3 x, uint3 y ); 676 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v4i32_v4i32, )( uint4 x, uint4 y ); 677 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v8i32_v8i32, )( uint8 x, uint8 y ); 678 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v16i32_v16i32, )( uint16 x, uint16 y ); 679 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _i64_i64, )( long x, long y ); 680 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v2i64_v2i64, )( long2 x, long2 y ); 681 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v3i64_v3i64, )( long3 x, long3 y ); 682 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v4i64_v4i64, )( long4 x, long4 y ); 683 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v8i64_v8i64, )( long8 x, long8 y ); 684 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_hadd, _v16i64_v16i64, )( long16 x, long16 y ); 685 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _i64_i64, )( ulong x, ulong y ); 686 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v2i64_v2i64, )( ulong2 x, ulong2 y ); 687 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v3i64_v3i64, )( ulong3 x, ulong3 y ); 688 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v4i64_v4i64, )( ulong4 x, ulong4 y ); 689 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v8i64_v8i64, )( ulong8 x, ulong8 y ); 690 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_hadd, _v16i64_v16i64, )( ulong16 x, ulong16 y ); 691 692 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _i8_i8_i8, )( char a, char b, char c ); 693 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v2i8_v2i8_v2i8, )( char2 a, char2 b, char2 c ); 694 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v3i8_v3i8_v3i8, )( char3 a, char3 b, char3 c ); 695 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v4i8_v4i8_v4i8, )( char4 a, char4 b, char4 c ); 696 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v8i8_v8i8_v8i8, )( char8 a, char8 b, char8 c ); 697 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v16i8_v16i8_v16i8, )( char16 a, char16 b, char16 c ); 698 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _i8_i8_i8, )( uchar a, uchar b, uchar c ); 699 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v2i8_v2i8_v2i8, )( uchar2 a, uchar2 b, uchar2 c ); 700 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v3i8_v3i8_v3i8, )( uchar3 a, uchar3 b, uchar3 c ); 701 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v4i8_v4i8_v4i8, )( uchar4 a, uchar4 b, uchar4 c ); 702 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v8i8_v8i8_v8i8, )( uchar8 a, uchar8 b, uchar8 c ); 703 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v16i8_v16i8_v16i8, )( uchar16 a, uchar16 b, uchar16 c ); 704 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _i16_i16_i16, )( short a, short b, short c ); 705 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v2i16_v2i16_v2i16, )( short2 a, short2 b, short2 c ); 706 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v3i16_v3i16_v3i16, )( short3 a, short3 b, short3 c ); 707 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v4i16_v4i16_v4i16, )( short4 a, short4 b, short4 c ); 708 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v8i16_v8i16_v8i16, )( short8 a, short8 b, short8 c ); 709 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v16i16_v16i16_v16i16, )( short16 a, short16 b, short16 c ); 710 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _i16_i16_i16, )( ushort a, ushort b, ushort c ); 711 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v2i16_v2i16_v2i16, )( ushort2 a, ushort2 b, ushort2 c ); 712 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v3i16_v3i16_v3i16, )( ushort3 a, ushort3 b, ushort3 c ); 713 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v4i16_v4i16_v4i16, )( ushort4 a, ushort4 b, ushort4 c ); 714 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v8i16_v8i16_v8i16, )( ushort8 a, ushort8 b, ushort8 c ); 715 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v16i16_v16i16_v16i16, )( ushort16 a, ushort16 b, ushort16 c ); 716 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _i32_i32_i32, )( int a, int b, int c ); 717 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v2i32_v2i32_v2i32, )( int2 a, int2 b, int2 c ); 718 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v3i32_v3i32_v3i32, )( int3 a, int3 b, int3 c ); 719 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v4i32_v4i32_v4i32, )( int4 a, int4 b, int4 c ); 720 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v8i32_v8i32_v8i32, )( int8 a, int8 b, int8 c ); 721 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v16i32_v16i32_v16i32, )( int16 a, int16 b, int16 c ); 722 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _i32_i32_i32, )( uint a, uint b, uint c ); 723 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v2i32_v2i32_v2i32, )( uint2 a, uint2 b, uint2 c ); 724 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v3i32_v3i32_v3i32, )( uint3 a, uint3 b, uint3 c ); 725 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v4i32_v4i32_v4i32, )( uint4 a, uint4 b, uint4 c ); 726 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v8i32_v8i32_v8i32, )( uint8 a, uint8 b, uint8 c ); 727 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v16i32_v16i32_v16i32, )( uint16 a, uint16 b, uint16 c ); 728 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _i64_i64_i64, )( long a, long b, long c ); 729 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v2i64_v2i64_v2i64, )( long2 a, long2 b, long2 c ); 730 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v3i64_v3i64_v3i64, )( long3 a, long3 b, long3 c ); 731 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v4i64_v4i64_v4i64, )( long4 a, long4 b, long4 c ); 732 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v8i64_v8i64_v8i64, )( long8 a, long8 b, long8 c ); 733 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_hi, _v16i64_v16i64_v16i64, )( long16 a, long16 b, long16 c ); 734 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _i64_i64_i64, )( ulong a, ulong b, ulong c ); 735 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v2i64_v2i64_v2i64, )( ulong2 a, ulong2 b, ulong2 c ); 736 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v3i64_v3i64_v3i64, )( ulong3 a, ulong3 b, ulong3 c ); 737 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v4i64_v4i64_v4i64, )( ulong4 a, ulong4 b, ulong4 c ); 738 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v8i64_v8i64_v8i64, )( ulong8 a, ulong8 b, ulong8 c ); 739 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_hi, _v16i64_v16i64_v16i64, )( ulong16 a, ulong16 b, ulong16 c ); 740 741 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _i8_i8_i8, )( char a, char b, char c ); 742 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v2i8_v2i8_v2i8, )( char2 a, char2 b, char2 c ); 743 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v3i8_v3i8_v3i8, )( char3 a, char3 b, char3 c ); 744 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v4i8_v4i8_v4i8, )( char4 a, char4 b, char4 c ); 745 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v8i8_v8i8_v8i8, )( char8 a, char8 b, char8 c ); 746 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v16i8_v16i8_v16i8, )( char16 a, char16 b, char16 c ); 747 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _i8_i8_i8, )( uchar a, uchar b, uchar c ); 748 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v2i8_v2i8_v2i8, )( uchar2 a, uchar2 b, uchar2 c ); 749 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v3i8_v3i8_v3i8, )( uchar3 a, uchar3 b, uchar3 c ); 750 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v4i8_v4i8_v4i8, )( uchar4 a, uchar4 b, uchar4 c ); 751 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v8i8_v8i8_v8i8, )( uchar8 a, uchar8 b, uchar8 c ); 752 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v16i8_v16i8_v16i8, )( uchar16 a, uchar16 b, uchar16 c ); 753 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _i16_i16_i16, )( short a, short b, short c ); 754 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v2i16_v2i16_v2i16, )( short2 a, short2 b, short2 c ); 755 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v3i16_v3i16_v3i16, )( short3 a, short3 b, short3 c ); 756 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v4i16_v4i16_v4i16, )( short4 a, short4 b, short4 c ); 757 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v8i16_v8i16_v8i16, )( short8 a, short8 b, short8 c ); 758 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v16i16_v16i16_v16i16, )( short16 a, short16 b, short16 c ); 759 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _i16_i16_i16, )( ushort a, ushort b, ushort c ); 760 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v2i16_v2i16_v2i16, )( ushort2 a, ushort2 b, ushort2 c ); 761 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v3i16_v3i16_v3i16, )( ushort3 a, ushort3 b, ushort3 c ); 762 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v4i16_v4i16_v4i16, )( ushort4 a, ushort4 b, ushort4 c ); 763 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v8i16_v8i16_v8i16, )( ushort8 a, ushort8 b, ushort8 c ); 764 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v16i16_v16i16_v16i16, )( ushort16 a, ushort16 b, ushort16 c ); 765 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _i32_i32_i32, )( int a, int b, int c ); 766 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v2i32_v2i32_v2i32, )( int2 a, int2 b, int2 c ); 767 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v3i32_v3i32_v3i32, )( int3 a, int3 b, int3 c ); 768 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v4i32_v4i32_v4i32, )( int4 a, int4 b, int4 c ); 769 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v8i32_v8i32_v8i32, )( int8 a, int8 b, int8 c ); 770 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v16i32_v16i32_v16i32, )( int16 a, int16 b, int16 c ); 771 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _i32_i32_i32, )( uint a, uint b, uint c ); 772 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v2i32_v2i32_v2i32, )( uint2 a, uint2 b, uint2 c ); 773 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v3i32_v3i32_v3i32, )( uint3 a, uint3 b, uint3 c ); 774 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v4i32_v4i32_v4i32, )( uint4 a, uint4 b, uint4 c ); 775 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v8i32_v8i32_v8i32, )( uint8 a, uint8 b, uint8 c ); 776 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v16i32_v16i32_v16i32, )( uint16 a, uint16 b, uint16 c ); 777 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _i64_i64_i64, )( long a, long b, long c ); 778 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v2i64_v2i64_v2i64, )( long2 a, long2 b, long2 c ); 779 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v3i64_v3i64_v3i64, )( long3 a, long3 b, long3 c ); 780 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v4i64_v4i64_v4i64, )( long4 a, long4 b, long4 c ); 781 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v8i64_v8i64_v8i64, )( long8 a, long8 b, long8 c ); 782 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad_sat, _v16i64_v16i64_v16i64, )( long16 a, long16 b, long16 c ); 783 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _i64_i64_i64, )( ulong a, ulong b, ulong c ); 784 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v2i64_v2i64_v2i64, )( ulong2 a, ulong2 b, ulong2 c ); 785 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v3i64_v3i64_v3i64, )( ulong3 a, ulong3 b, ulong3 c ); 786 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v4i64_v4i64_v4i64, )( ulong4 a, ulong4 b, ulong4 c ); 787 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v8i64_v8i64_v8i64, )( ulong8 a, ulong8 b, ulong8 c ); 788 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad_sat, _v16i64_v16i64_v16i64, )( ulong16 a, ulong16 b, ulong16 c ); 789 790 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad24, _i32_i32_i32, )( int x, int y, int z ); 791 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad24, _v2i32_v2i32_v2i32, )( int2 x, int2 y, int2 z ); 792 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad24, _v3i32_v3i32_v3i32, )( int3 x, int3 y, int3 z ); 793 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad24, _v4i32_v4i32_v4i32, )( int4 x, int4 y, int4 z ); 794 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad24, _v8i32_v8i32_v8i32, )( int8 x, int8 y, int8 z ); 795 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mad24, _v16i32_v16i32_v16i32, )( int16 x, int16 y, int16 z ); 796 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad24, _i32_i32_i32, )( uint x, uint y, uint z ); 797 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad24, _v2i32_v2i32_v2i32, )( uint2 x, uint2 y, uint2 z ); 798 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad24, _v3i32_v3i32_v3i32, )( uint3 x, uint3 y, uint3 z ); 799 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad24, _v4i32_v4i32_v4i32, )( uint4 x, uint4 y, uint4 z ); 800 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad24, _v8i32_v8i32_v8i32, )( uint8 x, uint8 y, uint8 z ); 801 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mad24, _v16i32_v16i32_v16i32, )( uint16 x, uint16 y, uint16 z ); 802 803 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _i8_i8, )(char x, char y); 804 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v2i8_v2i8, )(char2 x, char2 y); 805 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v3i8_v3i8, )(char3 x, char3 y); 806 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v4i8_v4i8, )(char4 x, char4 y); 807 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v8i8_v8i8, )(char8 x, char8 y); 808 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v16i8_v16i8, )(char16 x, char16 y); 809 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _i8_i8, )(uchar x, uchar y); 810 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v2i8_v2i8, )(uchar2 x, uchar2 y); 811 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v3i8_v3i8, )(uchar3 x, uchar3 y); 812 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v4i8_v4i8, )(uchar4 x, uchar4 y); 813 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v8i8_v8i8, )(uchar8 x, uchar8 y); 814 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v16i8_v16i8, )(uchar16 x, uchar16 y); 815 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _i16_i16, )(short x, short y); 816 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v2i16_v2i16, )(short2 x, short2 y); 817 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v3i16_v3i16, )(short3 x, short3 y); 818 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v4i16_v4i16, )(short4 x, short4 y); 819 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v8i16_v8i16, )(short8 x, short8 y); 820 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v16i16_v16i16, )(short16 x, short16 y); 821 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _i16_i16, )(ushort x, ushort y); 822 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v2i16_v2i16, )(ushort2 x, ushort2 y); 823 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v3i16_v3i16, )(ushort3 x, ushort3 y); 824 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v4i16_v4i16, )(ushort4 x, ushort4 y); 825 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v8i16_v8i16, )(ushort8 x, ushort8 y); 826 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v16i16_v16i16, )(ushort16 x, ushort16 y); 827 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _i32_i32, )(int x, int y); 828 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v2i32_v2i32, )(int2 x, int2 y); 829 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v3i32_v3i32, )(int3 x, int3 y); 830 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v4i32_v4i32, )(int4 x, int4 y); 831 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v8i32_v8i32, )(int8 x, int8 y); 832 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v16i32_v16i32, )(int16 x, int16 y); 833 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _i32_i32, )(uint x, uint y); 834 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v2i32_v2i32, )(uint2 x, uint2 y); 835 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v3i32_v3i32, )(uint3 x, uint3 y); 836 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v4i32_v4i32, )(uint4 x, uint4 y); 837 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v8i32_v8i32, )(uint8 x, uint8 y); 838 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v16i32_v16i32, )(uint16 x, uint16 y); 839 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _i64_i64, )(long x, long y); 840 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v2i64_v2i64, )(long2 x, long2 y); 841 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v3i64_v3i64, )(long3 x, long3 y); 842 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v4i64_v4i64, )(long4 x, long4 y); 843 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v8i64_v8i64, )(long8 x, long8 y); 844 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_max, _v16i64_v16i64, )(long16 x, long16 y); 845 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _i64_i64, )(ulong x, ulong y); 846 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v2i64_v2i64, )(ulong2 x, ulong2 y); 847 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v3i64_v3i64, )(ulong3 x, ulong3 y); 848 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v4i64_v4i64, )(ulong4 x, ulong4 y); 849 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v8i64_v8i64, )(ulong8 x, ulong8 y); 850 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_max, _v16i64_v16i64, )(ulong16 x, ulong16 y); 851 852 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _i8_i8, )( char x, char y ); 853 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v2i8_v2i8, )( char2 x, char2 y ); 854 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v3i8_v3i8, )( char3 x, char3 y ); 855 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v4i8_v4i8, )( char4 x, char4 y ); 856 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v8i8_v8i8, )( char8 x, char8 y ); 857 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v16i8_v16i8, )( char16 x, char16 y ); 858 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _i8_i8, )( uchar x, uchar y ); 859 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v2i8_v2i8, )( uchar2 x, uchar2 y ); 860 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v3i8_v3i8, )( uchar3 x, uchar3 y ); 861 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v4i8_v4i8, )( uchar4 x, uchar4 y ); 862 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v8i8_v8i8, )( uchar8 x, uchar8 y ); 863 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v16i8_v16i8, )( uchar16 x, uchar16 y ); 864 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _i16_i16, )( short x, short y ); 865 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v2i16_v2i16, )( short2 x, short2 y ); 866 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v3i16_v3i16, )( short3 x, short3 y ); 867 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v4i16_v4i16, )( short4 x, short4 y ); 868 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v8i16_v8i16, )( short8 x, short8 y ); 869 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v16i16_v16i16, )( short16 x, short16 y ); 870 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _i16_i16, )( ushort x, ushort y ); 871 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v2i16_v2i16, )( ushort2 x, ushort2 y ); 872 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v3i16_v3i16, )( ushort3 x, ushort3 y ); 873 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v4i16_v4i16, )( ushort4 x, ushort4 y ); 874 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v8i16_v8i16, )( ushort8 x, ushort8 y ); 875 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v16i16_v16i16, )( ushort16 x, ushort16 y ); 876 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _i32_i32, )( int x, int y ); 877 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v2i32_v2i32, )( int2 x, int2 y ); 878 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v3i32_v3i32, )( int3 x, int3 y ); 879 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v4i32_v4i32, )( int4 x, int4 y ); 880 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v8i32_v8i32, )( int8 x, int8 y ); 881 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v16i32_v16i32, )( int16 x, int16 y ); 882 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _i32_i32, )( uint x, uint y ); 883 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v2i32_v2i32, )( uint2 x, uint2 y ); 884 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v3i32_v3i32, )( uint3 x, uint3 y ); 885 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v4i32_v4i32, )( uint4 x, uint4 y ); 886 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v8i32_v8i32, )( uint8 x, uint8 y ); 887 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v16i32_v16i32, )( uint16 x, uint16 y ); 888 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _i64_i64, )( long x, long y ); 889 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v2i64_v2i64, )( long2 x, long2 y ); 890 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v3i64_v3i64, )( long3 x, long3 y ); 891 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v4i64_v4i64, )( long4 x, long4 y ); 892 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v8i64_v8i64, )( long8 x, long8 y ); 893 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul_hi, _v16i64_v16i64, )( long16 x, long16 y ); 894 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _i64_i64, )( ulong x, ulong y ); 895 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v2i64_v2i64, )( ulong2 x, ulong2 y ); 896 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v3i64_v3i64, )( ulong3 x, ulong3 y ); 897 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v4i64_v4i64, )( ulong4 x, ulong4 y ); 898 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v8i64_v8i64, )( ulong8 x, ulong8 y ); 899 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul_hi, _v16i64_v16i64, )( ulong16 x, ulong16 y ); 900 901 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul24, _i32_i32, )( int x, int y ); 902 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul24, _v2i32_v2i32, )( int2 x, int2 y ); 903 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul24, _v3i32_v3i32, )( int3 x, int3 y ); 904 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul24, _v4i32_v4i32, )( int4 x, int4 y ); 905 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul24, _v8i32_v8i32, )( int8 x, int8 y ); 906 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_mul24, _v16i32_v16i32, )( int16 x, int16 y ); 907 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul24, _i32_i32, )( uint x, uint y ); 908 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul24, _v2i32_v2i32, )( uint2 x, uint2 y ); 909 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul24, _v3i32_v3i32, )( uint3 x, uint3 y ); 910 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul24, _v4i32_v4i32, )( uint4 x, uint4 y ); 911 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul24, _v8i32_v8i32, )( uint8 x, uint8 y ); 912 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_mul24, _v16i32_v16i32, )( uint16 x, uint16 y ); 913 914 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _i8, )(char x ); 915 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v2i8, )(char2 x); 916 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v3i8, )(char3 x); 917 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v4i8, )(char4 x); 918 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v8i8, )(char8 x); 919 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v16i8, )(char16 x); 920 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _i16, )(short x ); 921 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v2i16, )(short2 x); 922 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v3i16, )(short3 x); 923 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v4i16, )(short4 x); 924 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v8i16, )(short8 x); 925 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v16i16, )(short16 x); 926 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _i32, )(int x ); 927 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v2i32, )(int2 x); 928 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v3i32, )(int3 x); 929 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v4i32, )(int4 x); 930 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v8i32, )(int8 x); 931 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v16i32, )(int16 x); 932 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _i64, )(long x); 933 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v2i64, )(long2 x); 934 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v3i64, )(long3 x); 935 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v4i64, )(long4 x); 936 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v8i64, )(long8 x); 937 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(popcount, _v16i64, )(long16 x); 938 939 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _i8_i8, )( char x, char y ); 940 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v2i8_v2i8, )( char2 x, char2 y ); 941 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v3i8_v3i8, )( char3 x, char3 y ); 942 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v4i8_v4i8, )( char4 x, char4 y ); 943 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v8i8_v8i8, )( char8 x, char8 y ); 944 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v16i8_v16i8, )( char16 x, char16 y ); 945 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _i8_i8, )( uchar x, uchar y ); 946 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v2i8_v2i8, )( uchar2 x, uchar2 y ); 947 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v3i8_v3i8, )( uchar3 x, uchar3 y ); 948 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v4i8_v4i8, )( uchar4 x, uchar4 y ); 949 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v8i8_v8i8, )( uchar8 x, uchar8 y ); 950 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v16i8_v16i8, )( uchar16 x, uchar16 y ); 951 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _i16_i16, )( short x, short y ); 952 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v2i16_v2i16, )( short2 x, short2 y ); 953 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v3i16_v3i16, )( short3 x, short3 y ); 954 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v4i16_v4i16, )( short4 x, short4 y ); 955 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v8i16_v8i16, )( short8 x, short8 y ); 956 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v16i16_v16i16, )( short16 x, short16 y ); 957 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _i16_i16, )( ushort x, ushort y ); 958 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v2i16_v2i16, )( ushort2 x, ushort2 y ); 959 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v3i16_v3i16, )( ushort3 x, ushort3 y ); 960 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v4i16_v4i16, )( ushort4 x, ushort4 y ); 961 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v8i16_v8i16, )( ushort8 x, ushort8 y ); 962 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v16i16_v16i16, )( ushort16 x, ushort16 y ); 963 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _i32_i32, )( int x, int y ); 964 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v2i32_v2i32, )( int2 x, int2 y ); 965 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v3i32_v3i32, )( int3 x, int3 y ); 966 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v4i32_v4i32, )( int4 x, int4 y ); 967 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v8i32_v8i32, )( int8 x, int8 y ); 968 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v16i32_v16i32, )( int16 x, int16 y ); 969 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _i32_i32, )( uint x, uint y ); 970 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v2i32_v2i32, )( uint2 x, uint2 y ); 971 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v3i32_v3i32, )( uint3 x, uint3 y ); 972 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v4i32_v4i32, )( uint4 x, uint4 y ); 973 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v8i32_v8i32, )( uint8 x, uint8 y ); 974 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v16i32_v16i32, )( uint16 x, uint16 y ); 975 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _i64_i64, )( long x, long y ); 976 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v2i64_v2i64, )( long2 x, long2 y ); 977 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v3i64_v3i64, )( long3 x, long3 y ); 978 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v4i64_v4i64, )( long4 x, long4 y ); 979 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v8i64_v8i64, )( long8 x, long8 y ); 980 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_rhadd, _v16i64_v16i64, )( long16 x, long16 y ); 981 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _i64_i64, )( ulong x, ulong y ); 982 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v2i64_v2i64, )( ulong2 x, ulong2 y ); 983 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v3i64_v3i64, )( ulong3 x, ulong3 y ); 984 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v4i64_v4i64, )( ulong4 x, ulong4 y ); 985 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v8i64_v8i64, )( ulong8 x, ulong8 y ); 986 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_rhadd, _v16i64_v16i64, )( ulong16 x, ulong16 y ); 987 988 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _i8_i8, )( char v, char i ); 989 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v2i8_v2i8, )( char2 v, char2 i ); 990 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v3i8_v3i8, )( char3 v, char3 i ); 991 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v4i8_v4i8, )( char4 v, char4 i ); 992 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v8i8_v8i8, )( char8 v, char8 i ); 993 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v16i8_v16i8, )( char16 v, char16 i ); 994 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _i16_i16, )( short v, short i ); 995 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v2i16_v2i16, )( short2 v, short2 i ); 996 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v3i16_v3i16, )( short3 v, short3 i ); 997 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v4i16_v4i16, )( short4 v, short4 i ); 998 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v8i16_v8i16, )( short8 v, short8 i ); 999 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v16i16_v16i16, )( short16 v, short16 i ); 1000 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _i32_i32, )( int v, int i ); 1001 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v2i32_v2i32, )( int2 v, int2 i ); 1002 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v3i32_v3i32, )( int3 v, int3 i ); 1003 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v4i32_v4i32, )( int4 v, int4 i ); 1004 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v8i32_v8i32, )( int8 v, int8 i ); 1005 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v16i32_v16i32, )( int16 v, int16 i ); 1006 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _i64_i64, )( long v, long i ); 1007 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v2i64_v2i64, )( long2 v, long2 i ); 1008 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v3i64_v3i64, )( long3 v, long3 i ); 1009 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v4i64_v4i64, )( long4 v, long4 i ); 1010 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v8i64_v8i64, )( long8 v, long8 i ); 1011 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rotate, _v16i64_v16i64, )( long16 v, long16 i ); 1012 1013 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _i8_i8, )( char x, char y ); 1014 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v2i8_v2i8, )( char2 x, char2 y ); 1015 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v3i8_v3i8, )( char3 x, char3 y ); 1016 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v4i8_v4i8, )( char4 x, char4 y ); 1017 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v8i8_v8i8, )( char8 x, char8 y ); 1018 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v16i8_v16i8, )( char16 x, char16 y ); 1019 uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _i8_i8, )( uchar x, uchar y ); 1020 uchar2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v2i8_v2i8, )( uchar2 x, uchar2 y ); 1021 uchar3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v3i8_v3i8, )( uchar3 x, uchar3 y ); 1022 uchar4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v4i8_v4i8, )( uchar4 x, uchar4 y ); 1023 uchar8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v8i8_v8i8, )( uchar8 x, uchar8 y ); 1024 uchar16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v16i8_v16i8, )( uchar16 x, uchar16 y ); 1025 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _i16_i16, )( short x, short y ); 1026 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v2i16_v2i16, )( short2 x, short2 y ); 1027 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v3i16_v3i16, )( short3 x, short3 y ); 1028 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v4i16_v4i16, )( short4 x, short4 y ); 1029 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v8i16_v8i16, )( short8 x, short8 y ); 1030 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v16i16_v16i16, )( short16 x, short16 y ); 1031 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _i16_i16, )( ushort x, ushort y ); 1032 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v2i16_v2i16, )( ushort2 x, ushort2 y ); 1033 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v3i16_v3i16, )( ushort3 x, ushort3 y ); 1034 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v4i16_v4i16, )( ushort4 x, ushort4 y ); 1035 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v8i16_v8i16, )( ushort8 x, ushort8 y ); 1036 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v16i16_v16i16, )( ushort16 x, ushort16 y ); 1037 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _i32_i32, )( int x, int y ); 1038 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v2i32_v2i32, )( int2 x, int2 y ); 1039 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v3i32_v3i32, )( int3 x, int3 y ); 1040 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v4i32_v4i32, )( int4 x, int4 y ); 1041 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v8i32_v8i32, )( int8 x, int8 y ); 1042 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v16i32_v16i32, )( int16 x, int16 y ); 1043 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _i32_i32, )( uint x, uint y ); 1044 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v2i32_v2i32, )( uint2 x, uint2 y ); 1045 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v3i32_v3i32, )( uint3 x, uint3 y ); 1046 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v4i32_v4i32, )( uint4 x, uint4 y ); 1047 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v8i32_v8i32, )( uint8 x, uint8 y ); 1048 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v16i32_v16i32, )( uint16 x, uint16 y ); 1049 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _i64_i64, )( long x, long y ); 1050 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v2i64_v2i64, )( long2 x, long2 y ); 1051 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v3i64_v3i64, )( long3 x, long3 y ); 1052 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v4i64_v4i64, )( long4 x, long4 y ); 1053 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v8i64_v8i64, )( long8 x, long8 y ); 1054 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_sub_sat, _v16i64_v16i64, )( long16 x, long16 y ); 1055 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _i64_i64, )( ulong x, ulong y ); 1056 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v2i64_v2i64, )( ulong2 x, ulong2 y ); 1057 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v3i64_v3i64, )( ulong3 x, ulong3 y ); 1058 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v4i64_v4i64, )( ulong4 x, ulong4 y ); 1059 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v8i64_v8i64, )( ulong8 x, ulong8 y ); 1060 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_sub_sat, _v16i64_v16i64, )( ulong16 x, ulong16 y ); 1061 1062 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _i8_i8, )( char hi, uchar lo ); 1063 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v2i8_v2i8, )( char2 hi, uchar2 lo ); 1064 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v3i8_v3i8, )( char3 hi, uchar3 lo ); 1065 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v4i8_v4i8, )( char4 hi, uchar4 lo ); 1066 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v8i8_v8i8, )( char8 hi, uchar8 lo ); 1067 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v16i8_v16i8, )( char16 hi, uchar16 lo ); 1068 ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _i8_i8, )( uchar hi, uchar lo ); 1069 ushort2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v2i8_v2i8, )( uchar2 hi, uchar2 lo ); 1070 ushort3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v3i8_v3i8, )( uchar3 hi, uchar3 lo ); 1071 ushort4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v4i8_v4i8, )( uchar4 hi, uchar4 lo ); 1072 ushort8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v8i8_v8i8, )( uchar8 hi, uchar8 lo ); 1073 ushort16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v16i8_v16i8, )( uchar16 hi, uchar16 lo ); 1074 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _i16_i16, )( short hi, ushort lo ); 1075 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v2i16_v2i16, )( short2 hi, ushort2 lo ); 1076 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v3i16_v3i16, )( short3 hi, ushort3 lo ); 1077 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v4i16_v4i16, )( short4 hi, ushort4 lo ); 1078 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v8i16_v8i16, )( short8 hi, ushort8 lo ); 1079 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v16i16_v16i16, )( short16 hi, ushort16 lo ); 1080 uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _i16_i16, )( ushort hi, ushort lo ); 1081 uint2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v2i16_v2i16, )( ushort2 hi, ushort2 lo ); 1082 uint3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v3i16_v3i16, )( ushort3 hi, ushort3 lo ); 1083 uint4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v4i16_v4i16, )( ushort4 hi, ushort4 lo ); 1084 uint8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v8i16_v8i16, )( ushort8 hi, ushort8 lo ); 1085 uint16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v16i16_v16i16, )( ushort16 hi, ushort16 lo ); 1086 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _i32_i32, )( int hi, uint lo ); 1087 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v2i32_v2i32, )( int2 hi, uint2 lo ); 1088 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v3i32_v3i32, )( int3 hi, uint3 lo ); 1089 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v4i32_v4i32, )( int4 hi, uint4 lo ); 1090 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v8i32_v8i32, )( int8 hi, uint8 lo ); 1091 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(s_upsample, _v16i32_v16i32, )( int16 hi, uint16 lo ); 1092 ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _i32_i32, )( uint hi, uint lo ); 1093 ulong2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v2i32_v2i32, )( uint2 hi, uint2 lo ); 1094 ulong3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v3i32_v3i32, )( uint3 hi, uint3 lo ); 1095 ulong4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v4i32_v4i32, )( uint4 hi, uint4 lo ); 1096 ulong8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v8i32_v8i32, )( uint8 hi, uint8 lo ); 1097 ulong16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_upsample, _v16i32_v16i32, )( uint16 hi, uint16 lo ); 1098 1099 1100 // 1101 // Math_ext 1102 // -acos,acosh,acospi,asin,asinh,asinpi,atan,atan2,atan2pi,atanh,atanpi,cbrt,ceil,copysign, 1103 // cos,cosh,cospi,divide_cr,erf,erfc,exp,exp2,exp10,expm1,fabs,fdim,floor,fma,fmax,fmin, 1104 // fmod,fract,frexp,hypot,ilogb,ldexp,lgamma,lgamma_r,log,log1p,log2,log10,logb,mad,maxmag,minmag, 1105 // modf,nan,nextafter,pow,pown,powr,remainder,remquo,rint,rootn,round,rsqrt,sin,sincos, 1106 // sinh,sinpi,sqrt,sqrt_cr,tan,tanh,tanpi,tgamma,trunc 1107 // 1108 1109 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _f32, )(float x ); 1110 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v2f32, )(float2 x); 1111 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v3f32, )(float3 x); 1112 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v4f32, )(float4 x); 1113 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v8f32, )(float8 x); 1114 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v16f32, )(float16 x); 1115 #if defined(cl_khr_fp64) 1116 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _f64, )( double x ); 1117 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v2f64, )(double2 x); 1118 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v3f64, )(double3 x); 1119 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v4f64, )(double4 x); 1120 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v8f64, )(double8 x); 1121 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v16f64, )(double16 x); 1122 #endif // defined(cl_khr_fp64) 1123 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _f16, )(half x ); 1124 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v2f16, )(half2 x); 1125 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v3f16, )(half3 x); 1126 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v4f16, )(half4 x); 1127 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v8f16, )(half8 x); 1128 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acos, _v16f16, )(half16 x); 1129 1130 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _f32, )( float x ); 1131 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v2f32, )(float2 x); 1132 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v3f32, )(float3 x); 1133 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v4f32, )(float4 x); 1134 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v8f32, )(float8 x); 1135 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v16f32, )(float16 x); 1136 #if defined(cl_khr_fp64) 1137 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _f64, )( double x ); 1138 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v2f64, )(double2 x); 1139 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v3f64, )(double3 x); 1140 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v4f64, )(double4 x); 1141 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v8f64, )(double8 x); 1142 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v16f64, )(double16 x); 1143 #endif // defined(cl_khr_fp64) 1144 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _f16, )( half x ); 1145 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v2f16, )(half2 x); 1146 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v3f16, )(half3 x); 1147 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v4f16, )(half4 x); 1148 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v8f16, )(half8 x); 1149 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acosh, _v16f16, )(half16 x); 1150 1151 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _f32, )( float x ); 1152 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v2f32, )(float2 x); 1153 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v3f32, )(float3 x); 1154 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v4f32, )(float4 x); 1155 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v8f32, )(float8 x); 1156 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v16f32, )(float16 x); 1157 #if defined(cl_khr_fp64) 1158 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _f64, )( double x ); 1159 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v2f64, )(double2 x); 1160 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v3f64, )(double3 x); 1161 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v4f64, )(double4 x); 1162 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v8f64, )(double8 x); 1163 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v16f64, )(double16 x); 1164 #endif // defined(cl_khr_fp64) 1165 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _f16, )( half x ); 1166 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v2f16, )(half2 x); 1167 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v3f16, )(half3 x); 1168 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v4f16, )(half4 x); 1169 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v8f16, )(half8 x); 1170 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(acospi, _v16f16, )(half16 x); 1171 1172 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _f32, )(float value ); 1173 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v2f32, )(float2 x); 1174 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v3f32, )(float3 x); 1175 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v4f32, )(float4 x); 1176 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v8f32, )(float8 x); 1177 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v16f32, )(float16 x); 1178 #if defined(cl_khr_fp64) 1179 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _f64, )( double x ); 1180 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v2f64, )(double2 x); 1181 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v3f64, )(double3 x); 1182 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v4f64, )(double4 x); 1183 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v8f64, )(double8 x); 1184 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v16f64, )(double16 x); 1185 #endif // defined(cl_khr_fp64) 1186 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _f16, )(half x ); 1187 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v2f16, )(half2 x); 1188 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v3f16, )(half3 x); 1189 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v4f16, )(half4 x); 1190 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v8f16, )(half8 x); 1191 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asin, _v16f16, )(half16 x); 1192 1193 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _f32, )( float x ); 1194 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v2f32, )(float2 x); 1195 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v3f32, )(float3 x); 1196 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v4f32, )(float4 x); 1197 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v8f32, )(float8 x); 1198 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v16f32, )(float16 x); 1199 #if defined(cl_khr_fp64) 1200 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _f64, )( double x ); 1201 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v2f64, )(double2 x); 1202 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v3f64, )(double3 x); 1203 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v4f64, )(double4 x); 1204 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v8f64, )(double8 x); 1205 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v16f64, )(double16 x); 1206 #endif // defined(cl_khr_fp64) 1207 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _f16, )( half x ); 1208 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v2f16, )(half2 x); 1209 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v3f16, )(half3 x); 1210 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v4f16, )(half4 x); 1211 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v8f16, )(half8 x); 1212 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinh, _v16f16, )(half16 x); 1213 1214 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _f32, )( float x ); 1215 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v2f32, )(float2 x); 1216 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v3f32, )(float3 x); 1217 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v4f32, )(float4 x); 1218 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v8f32, )(float8 x); 1219 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v16f32, )(float16 x); 1220 #if defined(cl_khr_fp64) 1221 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _f64, )( double x ); 1222 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v2f64, )(double2 x); 1223 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v3f64, )(double3 x); 1224 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v4f64, )(double4 x); 1225 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v8f64, )(double8 x); 1226 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v16f64, )(double16 x); 1227 #endif // defined(cl_khr_fp64) 1228 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _f16, )( half x ); 1229 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v2f16, )(half2 x); 1230 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v3f16, )(half3 x); 1231 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v4f16, )(half4 x); 1232 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v8f16, )(half8 x); 1233 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(asinpi, _v16f16, )(half16 x); 1234 1235 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _f32, )(float value ); 1236 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v2f32, )(float2 x); 1237 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v3f32, )(float3 x); 1238 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v4f32, )(float4 x); 1239 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v8f32, )(float8 x); 1240 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v16f32, )(float16 x); 1241 #if defined(cl_khr_fp64) 1242 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _f64, )( double x ); 1243 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v2f64, )(double2 x); 1244 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v3f64, )(double3 x); 1245 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v4f64, )(double4 x); 1246 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v8f64, )(double8 x); 1247 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v16f64, )(double16 x); 1248 #endif // defined(cl_khr_fp64) 1249 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _f16, )(half x ); 1250 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v2f16, )(half2 x); 1251 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v3f16, )(half3 x); 1252 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v4f16, )(half4 x); 1253 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v8f16, )(half8 x); 1254 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan, _v16f16, )(half16 x); 1255 1256 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _f32_f32, )( float y, float x ); 1257 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v2f32_v2f32, )(float2 x, float2 y); 1258 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v3f32_v3f32, )(float3 x, float3 y); 1259 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v4f32_v4f32, )(float4 x, float4 y); 1260 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v8f32_v8f32, )(float8 x, float8 y); 1261 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v16f32_v16f32, )(float16 x, float16 y); 1262 #if defined(cl_khr_fp64) 1263 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _f64_f64, )( double y, double x ); 1264 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v2f64_v2f64, )(double2 x, double2 y); 1265 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v3f64_v3f64, )(double3 x, double3 y); 1266 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v4f64_v4f64, )(double4 x, double4 y); 1267 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v8f64_v8f64, )(double8 x, double8 y); 1268 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v16f64_v16f64, )(double16 x, double16 y); 1269 #endif // defined(cl_khr_fp64) 1270 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _f16_f16, )( half y, half x ); 1271 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v2f16_v2f16, )(half2 x, half2 y); 1272 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v3f16_v3f16, )(half3 x, half3 y); 1273 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v4f16_v4f16, )(half4 x, half4 y); 1274 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v8f16_v8f16, )(half8 x, half8 y); 1275 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2, _v16f16_v16f16, )(half16 x, half16 y); 1276 1277 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _f32_f32, )( float x, float y ); 1278 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v2f32_v2f32, )(float2 x, float2 y); 1279 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v3f32_v3f32, )(float3 x, float3 y); 1280 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v4f32_v4f32, )(float4 x, float4 y); 1281 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v8f32_v8f32, )(float8 x, float8 y); 1282 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v16f32_v16f32, )(float16 x, float16 y); 1283 #if defined(cl_khr_fp64) 1284 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _f64_f64, )( double x, double y ); 1285 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v2f64_v2f64, )(double2 x, double2 y); 1286 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v3f64_v3f64, )(double3 x, double3 y); 1287 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v4f64_v4f64, )(double4 x, double4 y); 1288 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v8f64_v8f64, )(double8 x, double8 y); 1289 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v16f64_v16f64, )(double16 x, double16 y); 1290 #endif // defined(cl_khr_fp64) 1291 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _f16_f16, )( half x, half y ); 1292 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v2f16_v2f16, )(half2 x, half2 y); 1293 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v3f16_v3f16, )(half3 x, half3 y); 1294 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v4f16_v4f16, )(half4 x, half4 y); 1295 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v8f16_v8f16, )(half8 x, half8 y); 1296 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atan2pi, _v16f16_v16f16, )(half16 x, half16 y); 1297 1298 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _f32, )( float x ); 1299 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v2f32, )(float2 x); 1300 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v3f32, )(float3 x); 1301 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v4f32, )(float4 x); 1302 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v8f32, )(float8 x); 1303 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v16f32, )(float16 x); 1304 #if defined(cl_khr_fp64) 1305 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _f64, )( double x ); 1306 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v2f64, )(double2 x); 1307 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v3f64, )(double3 x); 1308 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v4f64, )(double4 x); 1309 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v8f64, )(double8 x); 1310 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v16f64, )(double16 x); 1311 #endif // defined(cl_khr_fp64) 1312 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _f16, )( half x ); 1313 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v2f16, )(half2 x); 1314 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v3f16, )(half3 x); 1315 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v4f16, )(half4 x); 1316 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v8f16, )(half8 x); 1317 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanh, _v16f16, )(half16 x); 1318 1319 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _f32, )( float x ); 1320 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v2f32, )(float2 x); 1321 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v3f32, )(float3 x); 1322 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v4f32, )(float4 x); 1323 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v8f32, )(float8 x); 1324 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v16f32, )(float16 x); 1325 #if defined(cl_khr_fp64) 1326 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _f64, )( double x ); 1327 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v2f64, )(double2 x); 1328 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v3f64, )(double3 x); 1329 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v4f64, )(double4 x); 1330 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v8f64, )(double8 x); 1331 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v16f64, )(double16 x); 1332 #endif // defined(cl_khr_fp64) 1333 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _f16, )( half x ); 1334 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v2f16, )(half2 x); 1335 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v3f16, )(half3 x); 1336 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v4f16, )(half4 x); 1337 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v8f16, )(half8 x); 1338 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(atanpi, _v16f16, )(half16 x); 1339 1340 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _f32, )( float x ); 1341 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v2f32, )(float2 x); 1342 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v3f32, )(float3 x); 1343 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v4f32, )(float4 x); 1344 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v8f32, )(float8 x); 1345 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v16f32, )(float16 x); 1346 #if defined(cl_khr_fp64) 1347 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _f64, )( double x ); 1348 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v2f64, )(double2 x); 1349 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v3f64, )(double3 x); 1350 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v4f64, )(double4 x); 1351 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v8f64, )(double8 x); 1352 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v16f64, )(double16 x); 1353 #endif // defined(cl_khr_fp64) 1354 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _f16, )( half x ); 1355 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v2f16, )(half2 x); 1356 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v3f16, )(half3 x); 1357 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v4f16, )(half4 x); 1358 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v8f16, )(half8 x); 1359 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cbrt, _v16f16, )(half16 x); 1360 1361 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _f32, )(float x ); 1362 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v2f32, )(float2 x); 1363 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v3f32, )(float3 x); 1364 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v4f32, )(float4 x); 1365 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v8f32, )(float8 x); 1366 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v16f32, )(float16 x); 1367 #if defined(cl_khr_fp64) 1368 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _f64, )(double x ); 1369 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v2f64, )(double2 x); 1370 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v3f64, )(double3 x); 1371 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v4f64, )(double4 x); 1372 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v8f64, )(double8 x); 1373 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v16f64, )(double16 x); 1374 #endif // defined(cl_khr_fp64) 1375 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _f16, )(half x ); 1376 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v2f16, )(half2 x); 1377 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v3f16, )(half3 x); 1378 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v4f16, )(half4 x); 1379 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v8f16, )(half8 x); 1380 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ceil, _v16f16, )(half16 x); 1381 1382 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _f32_f32, )( float x, float y ); 1383 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v2f32_v2f32, )(float2 x, float2 y); 1384 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v3f32_v3f32, )(float3 x, float3 y); 1385 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v4f32_v4f32, )(float4 x, float4 y); 1386 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v8f32_v8f32, )(float8 x, float8 y); 1387 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v16f32_v16f32, )(float16 x, float16 y); 1388 #if defined(cl_khr_fp64) 1389 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _f64_f64, )( double x, double y ); 1390 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v2f64_v2f64, )(double2 x, double2 y); 1391 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v3f64_v3f64, )(double3 x, double3 y); 1392 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v4f64_v4f64, )(double4 x, double4 y); 1393 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v8f64_v8f64, )(double8 x, double8 y); 1394 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v16f64_v16f64, )(double16 x, double16 y); 1395 #endif // defined(cl_khr_fp64) 1396 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _f16_f16, )( half x, half y ); 1397 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v2f16_v2f16, )(half2 x, half2 y); 1398 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v3f16_v3f16, )(half3 x, half3 y); 1399 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v4f16_v4f16, )(half4 x, half4 y); 1400 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v8f16_v8f16, )(half8 x, half8 y); 1401 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(copysign, _v16f16_v16f16, )(half16 x, half16 y); 1402 1403 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _f32, )( float x ); 1404 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v2f32, )(float2 x); 1405 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v3f32, )(float3 x); 1406 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v4f32, )(float4 x); 1407 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v8f32, )(float8 x); 1408 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v16f32, )(float16 x); 1409 #if defined(cl_khr_fp64) 1410 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _f64, )( double x ); 1411 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v2f64, )(double2 x); 1412 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v3f64, )(double3 x); 1413 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v4f64, )(double4 x); 1414 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v8f64, )(double8 x); 1415 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v16f64, )(double16 x); 1416 #endif // defined(cl_khr_fp64) 1417 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _f16, )( half x ); 1418 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v2f16, )(half2 x); 1419 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v3f16, )(half3 x); 1420 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v4f16, )(half4 x); 1421 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v8f16, )(half8 x); 1422 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cos, _v16f16, )(half16 x); 1423 1424 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _f32, )( float x ); 1425 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v2f32, )(float2 x); 1426 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v3f32, )(float3 x); 1427 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v4f32, )(float4 x); 1428 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v8f32, )(float8 x); 1429 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v16f32, )(float16 x); 1430 #if defined(cl_khr_fp64) 1431 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _f64, )( double x ); 1432 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v2f64, )(double2 x); 1433 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v3f64, )(double3 x); 1434 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v4f64, )(double4 x); 1435 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v8f64, )(double8 x); 1436 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v16f64, )(double16 x); 1437 #endif // defined(cl_khr_fp64) 1438 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _f16, )( half x ); 1439 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v2f16, )(half2 x); 1440 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v3f16, )(half3 x); 1441 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v4f16, )(half4 x); 1442 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v8f16, )(half8 x); 1443 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cosh, _v16f16, )(half16 x); 1444 1445 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _f32, )( float x ); 1446 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v2f32, )(float2 x); 1447 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v3f32, )(float3 x); 1448 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v4f32, )(float4 x); 1449 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v8f32, )(float8 x); 1450 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v16f32, )(float16 x); 1451 #if defined(cl_khr_fp64) 1452 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _f64, )( double x ); 1453 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v2f64, )(double2 x); 1454 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v3f64, )(double3 x); 1455 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v4f64, )(double4 x); 1456 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v8f64, )(double8 x); 1457 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v16f64, )(double16 x); 1458 #endif // defined(cl_khr_fp64) 1459 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _f16, )( half x ); 1460 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v2f16, )(half2 x); 1461 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v3f16, )(half3 x); 1462 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v4f16, )(half4 x); 1463 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v8f16, )(half8 x); 1464 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(cospi, _v16f16, )(half16 x); 1465 1466 float __builtin_spirv_divide_cr_f32_f32( float a, float b ); 1467 float2 __builtin_spirv_divide_cr_v2f32_v2f32( float2 a, float2 b ); 1468 float3 __builtin_spirv_divide_cr_v3f32_v3f32( float3 a, float3 b ); 1469 float4 __builtin_spirv_divide_cr_v4f32_v4f32( float4 a, float4 b ); 1470 float8 __builtin_spirv_divide_cr_v8f32_v8f32( float8 a, float8 b ); 1471 float16 __builtin_spirv_divide_cr_v16f32_v16f32( float16 a, float16 b ); 1472 1473 #if defined(cl_khr_fp64) 1474 double __builtin_spirv_divide_cr_f64_f64(double a, double b); 1475 #endif // defined(cl_khr_fp64) 1476 1477 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _f32, )( float x ); 1478 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v2f32, )(float2 x); 1479 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v3f32, )(float3 x); 1480 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v4f32, )(float4 x); 1481 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v8f32, )(float8 x); 1482 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v16f32, )(float16 x); 1483 #if defined(cl_khr_fp64) 1484 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _f64, )( double x ); 1485 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v2f64, )(double2 x); 1486 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v3f64, )(double3 x); 1487 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v4f64, )(double4 x); 1488 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v8f64, )(double8 x); 1489 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v16f64, )(double16 x); 1490 #endif // defined(cl_khr_fp64) 1491 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _f16, )( half x ); 1492 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v2f16, )(half2 x); 1493 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v3f16, )(half3 x); 1494 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v4f16, )(half4 x); 1495 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v8f16, )(half8 x); 1496 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erf, _v16f16, )(half16 x); 1497 1498 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _f32, )( float x ); 1499 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v2f32, )(float2 x); 1500 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v3f32, )(float3 x); 1501 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v4f32, )(float4 x); 1502 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v8f32, )(float8 x); 1503 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v16f32, )(float16 x); 1504 #if defined(cl_khr_fp64) 1505 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _f64, )( double x ); 1506 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v2f64, )(double2 x); 1507 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v3f64, )(double3 x); 1508 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v4f64, )(double4 x); 1509 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v8f64, )(double8 x); 1510 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v16f64, )(double16 x); 1511 #endif // defined(cl_khr_fp64) 1512 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _f16, )( half x ); 1513 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v2f16, )(half2 x); 1514 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v3f16, )(half3 x); 1515 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v4f16, )(half4 x); 1516 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v8f16, )(half8 x); 1517 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(erfc, _v16f16, )(half16 x); 1518 1519 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _f32, )(float x); 1520 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v2f32, )(float2 x); 1521 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v3f32, )(float3 x); 1522 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v4f32, )(float4 x); 1523 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v8f32, )(float8 x); 1524 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v16f32, )(float16 x); 1525 #if defined(cl_khr_fp64) 1526 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _f64, )( double x ); 1527 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v2f64, )(double2 x); 1528 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v3f64, )(double3 x); 1529 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v4f64, )(double4 x); 1530 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v8f64, )(double8 x); 1531 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v16f64, )(double16 x); 1532 #endif // defined(cl_khr_fp64) 1533 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _f16, )( half x ); 1534 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v2f16, )(half2 x); 1535 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v3f16, )(half3 x); 1536 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v4f16, )(half4 x); 1537 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v8f16, )(half8 x); 1538 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp, _v16f16, )(half16 x); 1539 1540 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _f32, )( float x ); 1541 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v2f32, )(float2 x); 1542 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v3f32, )(float3 x); 1543 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v4f32, )(float4 x); 1544 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v8f32, )(float8 x); 1545 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v16f32, )(float16 x); 1546 #if defined(cl_khr_fp64) 1547 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _f64, )( double x ); 1548 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v2f64, )(double2 x); 1549 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v3f64, )(double3 x); 1550 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v4f64, )(double4 x); 1551 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v8f64, )(double8 x); 1552 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v16f64, )(double16 x); 1553 #endif // defined(cl_khr_fp64) 1554 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _f16, )( half x ); 1555 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v2f16, )(half2 x); 1556 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v3f16, )(half3 x); 1557 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v4f16, )(half4 x); 1558 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v8f16, )(half8 x); 1559 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp2, _v16f16, )(half16 x); 1560 1561 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _f32, )( float x ); 1562 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v2f32, )(float2 x); 1563 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v3f32, )(float3 x); 1564 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v4f32, )(float4 x); 1565 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v8f32, )(float8 x); 1566 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v16f32, )(float16 x); 1567 #if defined(cl_khr_fp64) 1568 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _f64, )( double x ); 1569 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v2f64, )(double2 x); 1570 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v3f64, )(double3 x); 1571 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v4f64, )(double4 x); 1572 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v8f64, )(double8 x); 1573 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v16f64, )(double16 x); 1574 #endif // defined(cl_khr_fp64) 1575 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _f16, )( half x ); 1576 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v2f16, )(half2 x); 1577 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v3f16, )(half3 x); 1578 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v4f16, )(half4 x); 1579 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v8f16, )(half8 x); 1580 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(exp10, _v16f16, )(half16 x); 1581 1582 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _f32, )( float a ); 1583 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v2f32, )(float2 x); 1584 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v3f32, )(float3 x); 1585 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v4f32, )(float4 x); 1586 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v8f32, )(float8 x); 1587 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v16f32, )(float16 x); 1588 #if defined(cl_khr_fp64) 1589 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _f64, )( double x ); 1590 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v2f64, )(double2 x); 1591 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v3f64, )(double3 x); 1592 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v4f64, )(double4 x); 1593 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v8f64, )(double8 x); 1594 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v16f64, )(double16 x); 1595 #endif // defined(cl_khr_fp64) 1596 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _f16, )( half x ); 1597 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v2f16, )(half2 x); 1598 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v3f16, )(half3 x); 1599 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v4f16, )(half4 x); 1600 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v8f16, )(half8 x); 1601 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(expm1, _v16f16, )(half16 x); 1602 1603 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _f32, )(float x ); 1604 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v2f32, )(float2 x); 1605 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v3f32, )(float3 x); 1606 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v4f32, )(float4 x); 1607 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v8f32, )(float8 x); 1608 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v16f32, )(float16 x); 1609 #if defined(cl_khr_fp64) 1610 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _f64, )(double x ); 1611 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v2f64, )(double2 x); 1612 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v3f64, )(double3 x); 1613 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v4f64, )(double4 x); 1614 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v8f64, )(double8 x); 1615 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v16f64, )(double16 x); 1616 #endif // defined(cl_khr_fp64) 1617 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _f16, )(half x ); 1618 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v2f16, )(half2 x); 1619 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v3f16, )(half3 x); 1620 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v4f16, )(half4 x); 1621 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v8f16, )(half8 x); 1622 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fabs, _v16f16, )(half16 x); 1623 1624 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _f32_f32, )( float x, float y ); 1625 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v2f32_v2f32, )(float2 x, float2 y); 1626 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v3f32_v3f32, )(float3 x, float3 y); 1627 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v4f32_v4f32, )(float4 x, float4 y); 1628 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v8f32_v8f32, )(float8 x, float8 y); 1629 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v16f32_v16f32, )(float16 x, float16 y); 1630 #if defined(cl_khr_fp64) 1631 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _f64_f64, )( double x, double y ); 1632 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v2f64_v2f64, )(double2 x, double2 y); 1633 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v3f64_v3f64, )(double3 x, double3 y); 1634 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v4f64_v4f64, )(double4 x, double4 y); 1635 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v8f64_v8f64, )(double8 x, double8 y); 1636 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v16f64_v16f64, )(double16 x, double16 y); 1637 #endif // defined(cl_khr_fp64) 1638 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _f16_f16, )( half x, half y ); 1639 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v2f16_v2f16, )(half2 x, half2 y); 1640 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v3f16_v3f16, )(half3 x, half3 y); 1641 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v4f16_v4f16, )(half4 x, half4 y); 1642 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v8f16_v8f16, )(half8 x, half8 y); 1643 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fdim, _v16f16_v16f16, )(half16 x, half16 y); 1644 1645 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _f32, )(float x ); 1646 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v2f32, )(float2 x); 1647 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v3f32, )(float3 x); 1648 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v4f32, )(float4 x); 1649 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v8f32, )(float8 x); 1650 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v16f32, )(float16 x); 1651 #if defined(cl_khr_fp64) 1652 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _f64, )(double x ); 1653 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v2f64, )(double2 x); 1654 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v3f64, )(double3 x); 1655 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v4f64, )(double4 x); 1656 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v8f64, )(double8 x); 1657 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v16f64, )(double16 x); 1658 #endif // defined(cl_khr_fp64) 1659 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _f16, )(half x ); 1660 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v2f16, )(half2 x); 1661 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v3f16, )(half3 x); 1662 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v4f16, )(half4 x); 1663 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v8f16, )(half8 x); 1664 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(floor, _v16f16, )(half16 x); 1665 1666 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _f32_f32_f32, )( float a, float b, float c ); 1667 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v2f32_v2f32_v2f32, )(float2 x, float2 y, float2 z); 1668 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v3f32_v3f32_v3f32, )(float3 x, float3 y, float3 z); 1669 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v4f32_v4f32_v4f32, )(float4 x, float4 y, float4 z); 1670 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v8f32_v8f32_v8f32, )(float8 x, float8 y, float8 z); 1671 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v16f32_v16f32_v16f32, )(float16 x, float16 y, float16 z); 1672 #if defined(cl_khr_fp64) 1673 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _f64_f64_f64, )( double a, double b, double c ); 1674 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v2f64_v2f64_v2f64, )(double2 x, double2 y, double2 z); 1675 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v3f64_v3f64_v3f64, )(double3 x, double3 y, double3 z); 1676 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v4f64_v4f64_v4f64, )(double4 x, double4 y, double4 z); 1677 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v8f64_v8f64_v8f64, )(double8 x, double8 y, double8 z); 1678 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v16f64_v16f64_v16f64, )(double16 x, double16 y, double16 z); 1679 #endif // defined(cl_khr_fp64) 1680 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _f16_f16_f16, )(half x, half y, half z); 1681 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v2f16_v2f16_v2f16, )(half2 x, half2 y, half2 z); 1682 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v3f16_v3f16_v3f16, )(half3 x, half3 y, half3 z); 1683 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v4f16_v4f16_v4f16, )(half4 x, half4 y, half4 z); 1684 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v8f16_v8f16_v8f16, )(half8 x, half8 y, half8 z); 1685 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fma, _v16f16_v16f16_v16f16, )(half16 x, half16 y, half16 z); 1686 1687 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _f32_f32, )( float x, float y ); 1688 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v2f32_v2f32, )(float2 x, float2 y); 1689 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v3f32_v3f32, )(float3 x, float3 y); 1690 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v4f32_v4f32, )(float4 x, float4 y); 1691 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v8f32_v8f32, )(float8 x, float8 y); 1692 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v16f32_v16f32, )(float16 x, float16 y); 1693 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v2f32_f32, )(float2 x, float y); 1694 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v3f32_f32, )(float3 x, float y); 1695 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v4f32_f32, )(float4 x, float y); 1696 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v8f32_f32, )(float8 x, float y); 1697 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v16f32_f32, )(float16 x, float y); 1698 #if defined(cl_khr_fp64) 1699 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _f64_f64, )( double x, double y ); 1700 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v2f64_v2f64, )(double2 x, double2 y); 1701 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v3f64_v3f64, )(double3 x, double3 y); 1702 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v4f64_v4f64, )(double4 x, double4 y); 1703 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v8f64_v8f64, )(double8 x, double8 y); 1704 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v16f64_v16f64, )(double16 x, double16 y); 1705 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v2f64_f64, )(double2 x, double y); 1706 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v3f64_f64, )(double3 x, double y); 1707 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v4f64_f64, )(double4 x, double y); 1708 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v8f64_f64, )(double8 x, double y); 1709 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v16f64_f64, )(double16 x, double y); 1710 #endif // defined(cl_khr_fp64) 1711 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _f16_f16, )( half x, half y ); 1712 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v2f16_v2f16, )(half2 x, half2 y); 1713 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v3f16_v3f16, )(half3 x, half3 y); 1714 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v4f16_v4f16, )(half4 x, half4 y); 1715 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v8f16_v8f16, )(half8 x, half8 y); 1716 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v16f16_v16f16, )(half16 x, half16 y); 1717 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v2f16_f16, )(half2 x, half y); 1718 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v3f16_f16, )(half3 x, half y); 1719 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v4f16_f16, )(half4 x, half y); 1720 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v8f16_f16, )(half8 x, half y); 1721 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmax, _v16f16_f16, )(half16 x, half y); 1722 1723 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _f32_f32, )( float x, float y ); 1724 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v2f32_v2f32, )(float2 x, float2 y); 1725 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v3f32_v3f32, )(float3 x, float3 y); 1726 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v4f32_v4f32, )(float4 x, float4 y); 1727 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v8f32_v8f32, )(float8 x, float8 y); 1728 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v16f32_v16f32, )(float16 x, float16 y); 1729 #if defined(cl_khr_fp64) 1730 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _f64_f64, )( double x, double y ); 1731 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v2f64_v2f64, )(double2 x, double2 y); 1732 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v3f64_v3f64, )(double3 x, double3 y); 1733 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v4f64_v4f64, )(double4 x, double4 y); 1734 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v8f64_v8f64, )(double8 x, double8 y); 1735 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v16f64_v16f64, )(double16 x, double16 y); 1736 #endif // defined(cl_khr_fp64) 1737 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _f16_f16, )( half x, half y ); 1738 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v2f16_v2f16, )(half2 x, half2 y); 1739 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v3f16_v3f16, )(half3 x, half3 y); 1740 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v4f16_v4f16, )(half4 x, half4 y); 1741 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v8f16_v8f16, )(half8 x, half8 y); 1742 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmin, _v16f16_v16f16, )(half16 x, half16 y); 1743 1744 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _f32_f32, )( float xx, float yy ); 1745 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v2f32_v2f32, )(float2 x, float2 y); 1746 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v3f32_v3f32, )(float3 x, float3 y); 1747 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v4f32_v4f32, )(float4 x, float4 y); 1748 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v8f32_v8f32, )(float8 x, float8 y); 1749 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v16f32_v16f32, )(float16 x, float16 y); 1750 #if defined(cl_khr_fp64) 1751 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _f64_f64, )( double xx, double yy ); 1752 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v2f64_v2f64, )(double2 x, double2 y); 1753 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v3f64_v3f64, )(double3 x, double3 y); 1754 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v4f64_v4f64, )(double4 x, double4 y); 1755 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v8f64_v8f64, )(double8 x, double8 y); 1756 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v16f64_v16f64, )(double16 x, double16 y); 1757 #endif // defined(cl_khr_fp64) 1758 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _f16_f16, )( half x, half y ); 1759 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v2f16_v2f16, )(half2 x, half2 y); 1760 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v3f16_v3f16, )(half3 x, half3 y); 1761 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v4f16_v4f16, )(half4 x, half4 y); 1762 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v8f16_v8f16, )(half8 x, half8 y); 1763 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fmod, _v16f16_v16f16, )(half16 x, half16 y); 1764 1765 /* Helper function for fmod */ 1766 float __builtin_spirv_fast_fmod_f32_f32( float xx, float yy ); 1767 float2 __builtin_spirv_fast_fmod_v2f32_v2f32( float2 xx, float2 yy ); 1768 float3 __builtin_spirv_fast_fmod_v3f32_v3f32( float3 xx, float3 yy ); 1769 float4 __builtin_spirv_fast_fmod_v4f32_v4f32( float4 xx, float4 yy ); 1770 half __builtin_spirv_fast_fmod_f16_f16( half xx, half yy ); 1771 half2 __builtin_spirv_fast_fmod_v2f16_v2f16( half2 xx, half2 yy ); 1772 half3 __builtin_spirv_fast_fmod_v3f16_v3f16( half3 xx, half3 yy ); 1773 half4 __builtin_spirv_fast_fmod_v4f16_v4f16( half4 xx, half4 yy ); 1774 #if defined(cl_khr_fp64) 1775 double __builtin_spirv_fast_fmod_f64_f64( double xx, double yy ); 1776 double2 __builtin_spirv_fast_fmod_v2f64_v2f64( double2 xx, double2 yy ); 1777 double3 __builtin_spirv_fast_fmod_v3f64_v3f64( double3 xx, double3 yy ); 1778 double4 __builtin_spirv_fast_fmod_v4f64_v4f64( double4 xx, double4 yy ); 1779 #endif // defined(cl_khr_fp64) 1780 1781 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f32_p1f32, )( float x, __global float* iptr ); 1782 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f32_p1v2f32, )( float2 x, __global float2* iptr ); 1783 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f32_p1v3f32, )( float3 x, __global float3* iptr ); 1784 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f32_p1v4f32, )( float4 x, __global float4* iptr ); 1785 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f32_p1v8f32, )( float8 x, __global float8* iptr ); 1786 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f32_p1v16f32, )( float16 x, __global float16* iptr ); 1787 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f32_p0f32, )( float x, __private float* iptr ); 1788 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f32_p0v2f32, )( float2 x, __private float2* iptr ); 1789 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f32_p0v3f32, )( float3 x, __private float3* iptr ); 1790 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f32_p0v4f32, )( float4 x, __private float4* iptr ); 1791 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f32_p0v8f32, )( float8 x, __private float8* iptr ); 1792 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f32_p0v16f32, )( float16 x, __private float16* iptr ); 1793 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f32_p3f32, )( float x, __local float* iptr ); 1794 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f32_p3v2f32, )( float2 x, __local float2* iptr ); 1795 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f32_p3v3f32, )( float3 x, __local float3* iptr ); 1796 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f32_p3v4f32, )( float4 x, __local float4* iptr ); 1797 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f32_p3v8f32, )( float8 x, __local float8* iptr ); 1798 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f32_p3v16f32, )( float16 x, __local float16* iptr ); 1799 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 1800 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f32_p4f32, )( float x, __generic float* iptr ); 1801 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f32_p4v2f32, )( float2 x, __generic float2* iptr ); 1802 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f32_p4v3f32, )( float3 x, __generic float3* iptr ); 1803 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f32_p4v4f32, )( float4 x, __generic float4* iptr ); 1804 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f32_p4v8f32, )( float8 x, __generic float8* iptr ); 1805 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f32_p4v16f32, )( float16 x, __generic float16* iptr ); 1806 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 1807 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f16_p1f16, )( half x, __global half* iptr ); 1808 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f16_p1v2f16, )( half2 x, __global half2* iptr ); 1809 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f16_p1v3f16, )( half3 x, __global half3* iptr ); 1810 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f16_p1v4f16, )( half4 x, __global half4* iptr ); 1811 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f16_p1v8f16, )( half8 x, __global half8* iptr ); 1812 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f16_p1v16f16, )( half16 x, __global half16* iptr ); 1813 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f16_p0f16, )( half x, __private half* iptr ); 1814 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f16_p0v2f16, )( half2 x, __private half2* iptr ); 1815 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f16_p0v3f16, )( half3 x, __private half3* iptr ); 1816 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f16_p0v4f16, )( half4 x, __private half4* iptr ); 1817 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f16_p0v8f16, )( half8 x, __private half8* iptr ); 1818 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f16_p0v16f16, )( half16 x, __private half16* iptr ); 1819 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f16_p3f16, )( half x, __local half* iptr ); 1820 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f16_p3v2f16, )( half2 x, __local half2* iptr ); 1821 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f16_p3v3f16, )( half3 x, __local half3* iptr ); 1822 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f16_p3v4f16, )( half4 x, __local half4* iptr ); 1823 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f16_p3v8f16, )( half8 x, __local half8* iptr ); 1824 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f16_p3v16f16, )( half16 x, __local half16* iptr ); 1825 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 1826 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f16_p4f16, )( half x, __generic half* iptr ); 1827 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f16_p4v2f16, )( half2 x, __generic half2* iptr ); 1828 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f16_p4v3f16, )( half3 x, __generic half3* iptr ); 1829 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f16_p4v4f16, )( half4 x, __generic half4* iptr ); 1830 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f16_p4v8f16, )( half8 x, __generic half8* iptr ); 1831 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f16_p4v16f16, )( half16 x, __generic half16* iptr ); 1832 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 1833 #if defined(cl_khr_fp64) 1834 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f64_p1f64, )( double x, __global double* iptr ); 1835 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f64_p1v2f64, )( double2 x, __global double2* iptr ); 1836 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f64_p1v3f64, )( double3 x, __global double3* iptr ); 1837 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f64_p1v4f64, )( double4 x, __global double4* iptr ); 1838 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f64_p1v8f64, )( double8 x, __global double8* iptr ); 1839 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f64_p1v16f64, )( double16 x, __global double16* iptr ); 1840 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f64_p0f64, )( double x, __private double* iptr ); 1841 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f64_p0v2f64, )( double2 x, __private double2* iptr ); 1842 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f64_p0v3f64, )( double3 x, __private double3* iptr ); 1843 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f64_p0v4f64, )( double4 x, __private double4* iptr ); 1844 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f64_p0v8f64, )( double8 x, __private double8* iptr ); 1845 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f64_p0v16f64, )( double16 x, __private double16* iptr ); 1846 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f64_p3f64, )( double x, __local double* iptr ); 1847 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f64_p3v2f64, )( double2 x, __local double2* iptr ); 1848 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f64_p3v3f64, )( double3 x, __local double3* iptr ); 1849 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f64_p3v4f64, )( double4 x, __local double4* iptr ); 1850 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f64_p3v8f64, )( double8 x, __local double8* iptr ); 1851 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f64_p3v16f64, )( double16 x, __local double16* iptr ); 1852 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 1853 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _f64_p4f64, )( double x, __generic double* iptr ); 1854 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v2f64_p4v2f64, )( double2 x, __generic double2* iptr ); 1855 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v3f64_p4v3f64, )( double3 x, __generic double3* iptr ); 1856 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v4f64_p4v4f64, )( double4 x, __generic double4* iptr ); 1857 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v8f64_p4v8f64, )( double8 x, __generic double8* iptr ); 1858 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fract, _v16f64_p4v16f64, )( double16 x, __generic double16* iptr ); 1859 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 1860 #endif // defined(cl_khr_fp64) 1861 1862 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f32_p1i32, )( float x, __global int* exp ); 1863 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f32_p1v2i32, )( float2 x, __global int2* exp ); 1864 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f32_p1v3i32, )( float3 x, __global int3* exp ); 1865 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f32_p1v4i32, )( float4 x, __global int4* exp ); 1866 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f32_p1v8i32, )( float8 x, __global int8* exp ); 1867 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f32_p1v16i32, )( float16 x, __global int16* exp ); 1868 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f32_p0i32, )( float x, __private int* exp ); 1869 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f32_p0v2i32, )( float2 x, __private int2* exp ); 1870 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f32_p0v3i32, )( float3 x, __private int3* exp ); 1871 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f32_p0v4i32, )( float4 x, __private int4* exp ); 1872 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f32_p0v8i32, )( float8 x, __private int8* exp ); 1873 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f32_p0v16i32, )( float16 x, __private int16* exp ); 1874 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f32_p3i32, )( float x, __local int* exp ); 1875 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f32_p3v2i32, )( float2 x, __local int2* exp ); 1876 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f32_p3v3i32, )( float3 x, __local int3* exp ); 1877 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f32_p3v4i32, )( float4 x, __local int4* exp ); 1878 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f32_p3v8i32, )( float8 x, __local int8* exp ); 1879 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f32_p3v16i32, )( float16 x, __local int16* exp ); 1880 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 1881 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f32_p4i32, )( float x, __generic int* exp ); 1882 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f32_p4v2i32, )( float2 x, __generic int2* exp ); 1883 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f32_p4v3i32, )( float3 x, __generic int3* exp ); 1884 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f32_p4v4i32, )( float4 x, __generic int4* exp ); 1885 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f32_p4v8i32, )( float8 x, __generic int8* exp ); 1886 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f32_p4v16i32, )( float16 x, __generic int16* exp ); 1887 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 1888 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f16_p1i32, )( half x, __global int* exp ); 1889 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f16_p1v2i32, )( half2 x, __global int2* exp ); 1890 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f16_p1v3i32, )( half3 x, __global int3* exp ); 1891 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f16_p1v4i32, )( half4 x, __global int4* exp ); 1892 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f16_p1v8i32, )( half8 x, __global int8* exp ); 1893 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f16_p1v16i32, )( half16 x, __global int16* exp ); 1894 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f16_p0i32, )( half x, __private int* exp ); 1895 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f16_p0v2i32, )( half2 x, __private int2* exp ); 1896 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f16_p0v3i32, )( half3 x, __private int3* exp ); 1897 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f16_p0v4i32, )( half4 x, __private int4* exp ); 1898 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f16_p0v8i32, )( half8 x, __private int8* exp ); 1899 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f16_p0v16i32, )( half16 x, __private int16* exp ); 1900 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f16_p3i32, )( half x, __local int* exp ); 1901 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f16_p3v2i32, )( half2 x, __local int2* exp ); 1902 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f16_p3v3i32, )( half3 x, __local int3* exp ); 1903 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f16_p3v4i32, )( half4 x, __local int4* exp ); 1904 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f16_p3v8i32, )( half8 x, __local int8* exp ); 1905 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f16_p3v16i32, )( half16 x, __local int16* exp ); 1906 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 1907 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f16_p4i32, )( half x, __generic int* exp ); 1908 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f16_p4v2i32, )( half2 x, __generic int2* exp ); 1909 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f16_p4v3i32, )( half3 x, __generic int3* exp ); 1910 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f16_p4v4i32, )( half4 x, __generic int4* exp ); 1911 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f16_p4v8i32, )( half8 x, __generic int8* exp ); 1912 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f16_p4v16i32, )( half16 x, __generic int16* exp ); 1913 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 1914 #if defined(cl_khr_fp64) 1915 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f64_p1i32, )( double x, __global int* exp ); 1916 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f64_p1v2i32, )( double2 x, __global int2* exp ); 1917 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f64_p1v3i32, )( double3 x, __global int3* exp ); 1918 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f64_p1v4i32, )( double4 x, __global int4* exp ); 1919 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f64_p1v8i32, )( double8 x, __global int8* exp ); 1920 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f64_p1v16i32, )( double16 x, __global int16* exp ); 1921 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f64_p0i32, )( double x, __private int* exp ); 1922 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f64_p0v2i32, )( double2 x, __private int2* exp ); 1923 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f64_p0v3i32, )( double3 x, __private int3* exp ); 1924 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f64_p0v4i32, )( double4 x, __private int4* exp ); 1925 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f64_p0v8i32, )( double8 x, __private int8* exp ); 1926 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f64_p0v16i32, )( double16 x, __private int16* exp ); 1927 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f64_p3i32, )( double x, __local int* exp ); 1928 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f64_p3v2i32, )( double2 x, __local int2* exp ); 1929 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f64_p3v3i32, )( double3 x, __local int3* exp ); 1930 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f64_p3v4i32, )( double4 x, __local int4* exp ); 1931 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f64_p3v8i32, )( double8 x, __local int8* exp ); 1932 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f64_p3v16i32, )( double16 x, __local int16* exp ); 1933 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 1934 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _f64_p4i32, )( double x, __generic int* exp ); 1935 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v2f64_p4v2i32, )( double2 x, __generic int2* exp ); 1936 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v3f64_p4v3i32, )( double3 x, __generic int3* exp ); 1937 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v4f64_p4v4i32, )( double4 x, __generic int4* exp ); 1938 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v8f64_p4v8i32, )( double8 x, __generic int8* exp ); 1939 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(frexp, _v16f64_p4v16i32, )( double16 x, __generic int16* exp ); 1940 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 1941 #endif // defined(cl_khr_fp64) 1942 1943 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _f32_f32, )( float x, float y ); 1944 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v2f32_v2f32, )(float2 x, float2 y); 1945 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v3f32_v3f32, )(float3 x, float3 y); 1946 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v4f32_v4f32, )(float4 x, float4 y); 1947 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v8f32_v8f32, )(float8 x, float8 y); 1948 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v16f32_v16f32, )(float16 x, float16 y); 1949 #if defined(cl_khr_fp64) 1950 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _f64_f64, )( double x, double y ); 1951 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v2f64_v2f64, )(double2 x, double2 y); 1952 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v3f64_v3f64, )(double3 x, double3 y); 1953 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v4f64_v4f64, )(double4 x, double4 y); 1954 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v8f64_v8f64, )(double8 x, double8 y); 1955 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v16f64_v16f64, )(double16 x, double16 y); 1956 #endif // defined(cl_khr_fp64) 1957 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _f16_f16, )( half x, half y ); 1958 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v2f16_v2f16, )(half2 x, half2 y); 1959 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v3f16_v3f16, )(half3 x, half3 y); 1960 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v4f16_v4f16, )(half4 x, half4 y); 1961 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v8f16_v8f16, )(half8 x, half8 y); 1962 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(hypot, _v16f16_v16f16, )(half16 x, half16 y); 1963 1964 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _f32, )( float x ); 1965 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _f32, )( float x ); 1966 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v2f32, )(float2 x); 1967 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v3f32, )(float3 x); 1968 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v4f32, )(float4 x); 1969 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v8f32, )(float8 x); 1970 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v16f32, )(float16 x); 1971 #if defined(cl_khr_fp64) 1972 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _f64, )( double x ); 1973 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v2f64, )(double2 x); 1974 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v3f64, )(double3 x); 1975 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v4f64, )(double4 x); 1976 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v8f64, )(double8 x); 1977 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v16f64, )(double16 x); 1978 #endif // defined(cl_khr_fp64) 1979 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _f16, )( half x ); 1980 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v2f16, )(half2 x); 1981 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v3f16, )(half3 x); 1982 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v4f16, )(half4 x); 1983 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v8f16, )(half8 x); 1984 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ilogb, _v16f16, )(half16 x); 1985 1986 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _f32_i32, )( float x, int n ); 1987 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v2f32_v2i32, )(float2 x, int2 y); 1988 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v3f32_v3i32, )(float3 x, int3 y); 1989 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v4f32_v4i32, )(float4 x, int4 y); 1990 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v8f32_v8i32, )(float8 x, int8 y); 1991 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v16f32_v16i32, )(float16 x, int16 y); 1992 #if defined(cl_khr_fp64) 1993 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _f64_i32, )( double x, int n ); 1994 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v2f64_v2i32, )(double2 x, int2 y); 1995 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v3f64_v3i32, )(double3 x, int3 y); 1996 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v4f64_v4i32, )(double4 x, int4 y); 1997 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v8f64_v8i32, )(double8 x, int8 y); 1998 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v16f64_v16i32, )(double16 x, int16 y); 1999 #endif // defined(cl_khr_fp64) 2000 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _f16_i32, )( half x, int n ); 2001 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v2f16_v2i32, )(half2 x, int2 y); 2002 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v3f16_v3i32, )(half3 x, int3 y); 2003 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v4f16_v4i32, )(half4 x, int4 y); 2004 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v8f16_v8i32, )(half8 x, int8 y); 2005 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(ldexp, _v16f16_v16i32, )(half16 x, int16 y); 2006 2007 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _f32, )( float x ); 2008 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v2f32, )(float2 x); 2009 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v3f32, )(float3 x); 2010 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v4f32, )(float4 x); 2011 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v8f32, )(float8 x); 2012 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v16f32, )(float16 x); 2013 #if defined(cl_khr_fp64) 2014 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _f64, )( double x ); 2015 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v2f64, )(double2 x); 2016 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v3f64, )(double3 x); 2017 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v4f64, )(double4 x); 2018 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v8f64, )(double8 x); 2019 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v16f64, )(double16 x); 2020 #endif // defined(cl_khr_fp64) 2021 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _f16, )( half x ); 2022 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v2f16, )(half2 x); 2023 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v3f16, )(half3 x); 2024 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v4f16, )(half4 x); 2025 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v8f16, )(half8 x); 2026 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma, _v16f16, )(half16 x); 2027 2028 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f32_p1i32, )( float x, __global int* signp ); 2029 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f32_p1v2i32, )( float2 x, __global int2* signp ); 2030 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f32_p1v3i32, )( float3 x, __global int3* signp ); 2031 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f32_p1v4i32, )( float4 x, __global int4* signp ); 2032 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f32_p1v8i32, )( float8 x, __global int8* signp ); 2033 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f32_p1v16i32, )( float16 x, __global int16* signp ); 2034 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f32_p3i32, )( float x, __local int* signp ); 2035 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f32_p3v2i32, )( float2 x, __local int2* signp ); 2036 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f32_p3v3i32, )( float3 x, __local int3* signp ); 2037 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f32_p3v4i32, )( float4 x, __local int4* signp ); 2038 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f32_p3v8i32, )( float8 x, __local int8* signp ); 2039 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f32_p3v16i32, )( float16 x, __local int16* signp ); 2040 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f32_p0i32, )( float x, __private int* signp ); 2041 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f32_p0v2i32, )( float2 x, __private int2* signp ); 2042 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f32_p0v3i32, )( float3 x, __private int3* signp ); 2043 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f32_p0v4i32, )( float4 x, __private int4* signp ); 2044 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f32_p0v8i32, )( float8 x, __private int8* signp ); 2045 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f32_p0v16i32, )( float16 x, __private int16* signp ); 2046 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2047 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f32_p4i32, )( float x, __generic int* signp ); 2048 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f32_p4v2i32, )( float2 x, __generic int2* signp ); 2049 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f32_p4v3i32, )( float3 x, __generic int3* signp ); 2050 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f32_p4v4i32, )( float4 x, __generic int4* signp ); 2051 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f32_p4v8i32, )( float8 x, __generic int8* signp ); 2052 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f32_p4v16i32, )( float16 x, __generic int16* signp ); 2053 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2054 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f16_p1i32, )( half x, __global int* signp ); 2055 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f16_p1v2i32, )( half2 x, __global int2* signp ); 2056 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f16_p1v3i32, )( half3 x, __global int3* signp ); 2057 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f16_p1v4i32, )( half4 x, __global int4* signp ); 2058 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f16_p1v8i32, )( half8 x, __global int8* signp ); 2059 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f16_p1v16i32, )( half16 x, __global int16* signp ); 2060 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f16_p0i32, )( half x, __private int* signp ); 2061 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f16_p0v2i32, )( half2 x, __private int2* signp ); 2062 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f16_p0v3i32, )( half3 x, __private int3* signp ); 2063 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f16_p0v4i32, )( half4 x, __private int4* signp ); 2064 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f16_p0v8i32, )( half8 x, __private int8* signp ); 2065 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f16_p0v16i32, )( half16 x, __private int16* signp ); 2066 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f16_p3i32, )( half x, __local int* signp ); 2067 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f16_p3v2i32, )( half2 x, __local int2* signp ); 2068 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f16_p3v3i32, )( half3 x, __local int3* signp ); 2069 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f16_p3v4i32, )( half4 x, __local int4* signp ); 2070 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f16_p3v8i32, )( half8 x, __local int8* signp ); 2071 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f16_p3v16i32, )( half16 x, __local int16* signp ); 2072 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2073 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f16_p4i32, )( half x, __generic int* signp ); 2074 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f16_p4v2i32, )( half2 x, __generic int2* signp ); 2075 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f16_p4v3i32, )( half3 x, __generic int3* signp ); 2076 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f16_p4v4i32, )( half4 x, __generic int4* signp ); 2077 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f16_p4v8i32, )( half8 x, __generic int8* signp ); 2078 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f16_p4v16i32, )( half16 x, __generic int16* signp ); 2079 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2080 #if defined(cl_khr_fp64) 2081 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f64_p1i32, )( double x, __global int* signp ); 2082 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f64_p1v2i32, )( double2 x, __global int2* signp ); 2083 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f64_p1v3i32, )( double3 x, __global int3* signp ); 2084 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f64_p1v4i32, )( double4 x, __global int4* signp ); 2085 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f64_p1v8i32, )( double8 x, __global int8* signp ); 2086 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f64_p1v16i32, )( double16 x, __global int16* signp ); 2087 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f64_p0i32, )( double x, __private int* signp ); 2088 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f64_p0v2i32, )( double2 x, __private int2* signp ); 2089 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f64_p0v3i32, )( double3 x, __private int3* signp ); 2090 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f64_p0v4i32, )( double4 x, __private int4* signp ); 2091 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f64_p0v8i32, )( double8 x, __private int8* signp ); 2092 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f64_p0v16i32, )( double16 x, __private int16* signp ); 2093 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f64_p3i32, )( double x, __local int* signp ); 2094 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f64_p3v2i32, )( double2 x, __local int2* signp ); 2095 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f64_p3v3i32, )( double3 x, __local int3* signp ); 2096 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f64_p3v4i32, )( double4 x, __local int4* signp ); 2097 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f64_p3v8i32, )( double8 x, __local int8* signp ); 2098 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f64_p3v16i32, )( double16 x, __local int16* signp ); 2099 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2100 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _f64_p4i32, )( double x, __generic int* signp ); 2101 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v2f64_p4v2i32, )( double2 x, __generic int2* signp ); 2102 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v3f64_p4v3i32, )( double3 x, __generic int3* signp ); 2103 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v4f64_p4v4i32, )( double4 x, __generic int4* signp ); 2104 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v8f64_p4v8i32, )( double8 x, __generic int8* signp ); 2105 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(lgamma_r, _v16f64_p4v16i32, )( double16 x, __generic int16* signp ); 2106 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2107 #endif // defined(cl_khr_fp64) 2108 2109 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _f32, )( float x ); 2110 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v2f32, )(float2 x); 2111 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v3f32, )(float3 x); 2112 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v4f32, )(float4 x); 2113 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v8f32, )(float8 x); 2114 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v16f32, )(float16 x); 2115 #if defined(cl_khr_fp64) 2116 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _f64, )( double x ); 2117 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v2f64, )(double2 x); 2118 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v3f64, )(double3 x); 2119 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v4f64, )(double4 x); 2120 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v8f64, )(double8 x); 2121 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v16f64, )(double16 x); 2122 #endif // defined(cl_khr_fp64) 2123 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _f16, )( half x ); 2124 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v2f16, )(half2 x); 2125 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v3f16, )(half3 x); 2126 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v4f16, )(half4 x); 2127 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v8f16, )(half8 x); 2128 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log, _v16f16, )(half16 x); 2129 2130 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _f32, )( float a ); 2131 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v2f32, )(float2 x); 2132 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v3f32, )(float3 x); 2133 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v4f32, )(float4 x); 2134 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v8f32, )(float8 x); 2135 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v16f32, )(float16 x); 2136 #if defined(cl_khr_fp64) 2137 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _f64, )( double a ); 2138 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v2f64, )(double2 x); 2139 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v3f64, )(double3 x); 2140 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v4f64, )(double4 x); 2141 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v8f64, )(double8 x); 2142 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v16f64, )(double16 x); 2143 #endif // defined(cl_khr_fp64) 2144 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _f16, )( half x ); 2145 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v2f16, )(half2 x); 2146 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v3f16, )(half3 x); 2147 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v4f16, )(half4 x); 2148 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v8f16, )(half8 x); 2149 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log1p, _v16f16, )(half16 x); 2150 2151 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _f32, )( float x ); 2152 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v2f32, )(float2 x); 2153 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v3f32, )(float3 x); 2154 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v4f32, )(float4 x); 2155 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v8f32, )(float8 x); 2156 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v16f32, )(float16 x); 2157 #if defined(cl_khr_fp64) 2158 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _f64, )( double x ); 2159 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v2f64, )(double2 x); 2160 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v3f64, )(double3 x); 2161 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v4f64, )(double4 x); 2162 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v8f64, )(double8 x); 2163 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v16f64, )(double16 x); 2164 #endif // defined(cl_khr_fp64) 2165 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _f16, )( half x ); 2166 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v2f16, )(half2 x); 2167 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v3f16, )(half3 x); 2168 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v4f16, )(half4 x); 2169 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v8f16, )(half8 x); 2170 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log2, _v16f16, )(half16 x); 2171 2172 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _f32, )( float x ); 2173 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v2f32, )(float2 x); 2174 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v3f32, )(float3 x); 2175 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v4f32, )(float4 x); 2176 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v8f32, )(float8 x); 2177 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v16f32, )(float16 x); 2178 #if defined(cl_khr_fp64) 2179 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _f64, )( double x ); 2180 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v2f64, )(double2 x); 2181 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v3f64, )(double3 x); 2182 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v4f64, )(double4 x); 2183 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v8f64, )(double8 x); 2184 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v16f64, )(double16 x); 2185 #endif // defined(cl_khr_fp64) 2186 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _f16, )( half x ); 2187 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v2f16, )(half2 x); 2188 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v3f16, )(half3 x); 2189 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v4f16, )(half4 x); 2190 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v8f16, )(half8 x); 2191 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(log10, _v16f16, )(half16 x); 2192 2193 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _f32, )( float x ); 2194 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v2f32, )(float2 x); 2195 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v3f32, )(float3 x); 2196 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v4f32, )(float4 x); 2197 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v8f32, )(float8 x); 2198 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v16f32, )(float16 x); 2199 #if defined(cl_khr_fp64) 2200 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _f64, )( double x ); 2201 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v2f64, )(double2 x); 2202 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v3f64, )(double3 x); 2203 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v4f64, )(double4 x); 2204 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v8f64, )(double8 x); 2205 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v16f64, )(double16 x); 2206 #endif // defined(cl_khr_fp64) 2207 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _f16, )( half x ); 2208 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v2f16, )(half2 x); 2209 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v3f16, )(half3 x); 2210 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v4f16, )(half4 x); 2211 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v8f16, )(half8 x); 2212 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(logb, _v16f16, )(half16 x); 2213 2214 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _f32_f32_f32, )( float a, float b, float c ); 2215 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v2f32_v2f32_v2f32, )(float2 x, float2 y, float2 z); 2216 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v3f32_v3f32_v3f32, )(float3 x, float3 y, float3 z); 2217 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v4f32_v4f32_v4f32, )(float4 x, float4 y, float4 z); 2218 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v8f32_v8f32_v8f32, )(float8 x, float8 y, float8 z); 2219 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v16f32_v16f32_v16f32, )(float16 x, float16 y, float16 z); 2220 #if defined(cl_khr_fp64) 2221 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _f64_f64_f64, )( double a, double b, double c ); 2222 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v2f64_v2f64_v2f64, )(double2 x, double2 y, double2 z); 2223 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v3f64_v3f64_v3f64, )(double3 x, double3 y, double3 z); 2224 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v4f64_v4f64_v4f64, )(double4 x, double4 y, double4 z); 2225 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v8f64_v8f64_v8f64, )(double8 x, double8 y, double8 z); 2226 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v16f64_v16f64_v16f64, )(double16 x, double16 y, double16 z); 2227 #endif // defined(cl_khr_fp64) 2228 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _f16_f16_f16, )(half x, half y, half z); 2229 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v2f16_v2f16_v2f16, )(half2 x, half2 y, half2 z); 2230 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v3f16_v3f16_v3f16, )(half3 x, half3 y, half3 z); 2231 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v4f16_v4f16_v4f16, )(half4 x, half4 y, half4 z); 2232 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v8f16_v8f16_v8f16, )(half8 x, half8 y, half8 z); 2233 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(mad, _v16f16_v16f16_v16f16, )(half16 x, half16 y, half16 z); 2234 2235 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _f32_f32, )( float x, float y ); 2236 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v2f32_v2f32, )(float2 x, float2 y); 2237 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v3f32_v3f32, )(float3 x, float3 y); 2238 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v4f32_v4f32, )(float4 x, float4 y); 2239 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v8f32_v8f32, )(float8 x, float8 y); 2240 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v16f32_v16f32, )(float16 x, float16 y); 2241 #if defined(cl_khr_fp64) 2242 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _f64_f64, )( double x, double y ); 2243 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v2f64_v2f64, )(double2 x, double2 y); 2244 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v3f64_v3f64, )(double3 x, double3 y); 2245 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v4f64_v4f64, )(double4 x, double4 y); 2246 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v8f64_v8f64, )(double8 x, double8 y); 2247 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v16f64_v16f64, )(double16 x, double16 y); 2248 #endif // defined(cl_khr_fp64) 2249 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _f16_f16, )( half x, half y ); 2250 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v2f16_v2f16, )(half2 x, half2 y); 2251 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v3f16_v3f16, )(half3 x, half3 y); 2252 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v4f16_v4f16, )(half4 x, half4 y); 2253 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v8f16_v8f16, )(half8 x, half8 y); 2254 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(maxmag, _v16f16_v16f16, )(half16 x, half16 y); 2255 2256 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _f32_f32, )( float x, float y ); 2257 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v2f32_v2f32, )(float2 x, float2 y); 2258 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v3f32_v3f32, )(float3 x, float3 y); 2259 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v4f32_v4f32, )(float4 x, float4 y); 2260 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v8f32_v8f32, )(float8 x, float8 y); 2261 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v16f32_v16f32, )(float16 x, float16 y); 2262 #if defined(cl_khr_fp64) 2263 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _f64_f64, )( double x, double y ); 2264 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v2f64_v2f64, )(double2 x, double2 y); 2265 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v3f64_v3f64, )(double3 x, double3 y); 2266 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v4f64_v4f64, )(double4 x, double4 y); 2267 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v8f64_v8f64, )(double8 x, double8 y); 2268 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v16f64_v16f64, )(double16 x, double16 y); 2269 #endif // defined(cl_khr_fp64) 2270 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _f16_f16, )( half x, half y ); 2271 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v2f16_v2f16, )(half2 x, half2 y); 2272 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v3f16_v3f16, )(half3 x, half3 y); 2273 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v4f16_v4f16, )(half4 x, half4 y); 2274 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v8f16_v8f16, )(half8 x, half8 y); 2275 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(minmag, _v16f16_v16f16, )(half16 x, half16 y); 2276 2277 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f32_p1f32, )( float x, __global float* iptr ); 2278 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f32_p1v2f32, )( float2 x, __global float2* iptr ); 2279 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f32_p1v3f32, )( float3 x, __global float3* iptr ); 2280 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f32_p1v4f32, )( float4 x, __global float4* iptr ); 2281 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f32_p1v8f32, )( float8 x, __global float8* iptr ); 2282 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f32_p1v16f32, )( float16 x, __global float16* iptr ); 2283 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f32_p0f32, )( float x, __private float* iptr ); 2284 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f32_p0v2f32, )( float2 x, __private float2* iptr ); 2285 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f32_p0v3f32, )( float3 x, __private float3* iptr ); 2286 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f32_p0v4f32, )( float4 x, __private float4* iptr ); 2287 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f32_p0v8f32, )( float8 x, __private float8* iptr ); 2288 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f32_p0v16f32, )( float16 x, __private float16* iptr ); 2289 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f32_p3f32, )( float x, __local float* iptr ); 2290 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f32_p3v2f32, )( float2 x, __local float2* iptr ); 2291 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f32_p3v3f32, )( float3 x, __local float3* iptr ); 2292 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f32_p3v4f32, )( float4 x, __local float4* iptr ); 2293 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f32_p3v8f32, )( float8 x, __local float8* iptr ); 2294 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f32_p3v16f32, )( float16 x, __local float16* iptr ); 2295 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2296 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f32_p4f32, )( float x, __generic float* iptr ); 2297 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f32_p4v2f32, )( float2 x, __generic float2* iptr ); 2298 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f32_p4v3f32, )( float3 x, __generic float3* iptr ); 2299 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f32_p4v4f32, )( float4 x, __generic float4* iptr ); 2300 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f32_p4v8f32, )( float8 x, __generic float8* iptr ); 2301 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f32_p4v16f32, )( float16 x, __generic float16* iptr ); 2302 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2303 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f16_p1f16, )( half x, __global half* iptr ); 2304 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f16_p1v2f16, )( half2 x, __global half2* iptr ); 2305 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f16_p1v3f16, )( half3 x, __global half3* iptr ); 2306 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f16_p1v4f16, )( half4 x, __global half4* iptr ); 2307 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f16_p1v8f16, )( half8 x, __global half8* iptr ); 2308 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f16_p1v16f16, )( half16 x, __global half16* iptr ); 2309 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f16_p0f16, )( half x, __private half* iptr ); 2310 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f16_p0v2f16, )( half2 x, __private half2* iptr ); 2311 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f16_p0v3f16, )( half3 x, __private half3* iptr ); 2312 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f16_p0v4f16, )( half4 x, __private half4* iptr ); 2313 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f16_p0v8f16, )( half8 x, __private half8* iptr ); 2314 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f16_p0v16f16, )( half16 x, __private half16* iptr ); 2315 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f16_p3f16, )( half x, __local half* iptr ); 2316 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f16_p3v2f16, )( half2 x, __local half2* iptr ); 2317 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f16_p3v3f16, )( half3 x, __local half3* iptr ); 2318 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f16_p3v4f16, )( half4 x, __local half4* iptr ); 2319 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f16_p3v8f16, )( half8 x, __local half8* iptr ); 2320 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f16_p3v16f16, )( half16 x, __local half16* iptr ); 2321 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2322 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f16_p4f16, )( half x, __generic half* iptr ); 2323 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f16_p4v2f16, )( half2 x, __generic half2* iptr ); 2324 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f16_p4v3f16, )( half3 x, __generic half3* iptr ); 2325 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f16_p4v4f16, )( half4 x, __generic half4* iptr ); 2326 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f16_p4v8f16, )( half8 x, __generic half8* iptr ); 2327 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f16_p4v16f16, )( half16 x, __generic half16* iptr ); 2328 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2329 #if defined(cl_khr_fp64) 2330 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f64_p1f64, )( double x, __global double* iptr ); 2331 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f64_p1v2f64, )( double2 x, __global double2* iptr ); 2332 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f64_p1v3f64, )( double3 x, __global double3* iptr ); 2333 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f64_p1v4f64, )( double4 x, __global double4* iptr ); 2334 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f64_p1v8f64, )( double8 x, __global double8* iptr ); 2335 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f64_p1v16f64, )( double16 x, __global double16* iptr ); 2336 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f64_p0f64, )( double x, __private double* iptr ); 2337 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f64_p0v2f64, )( double2 x, __private double2* iptr ); 2338 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f64_p0v3f64, )( double3 x, __private double3* iptr ); 2339 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f64_p0v4f64, )( double4 x, __private double4* iptr ); 2340 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f64_p0v8f64, )( double8 x, __private double8* iptr ); 2341 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f64_p0v16f64, )( double16 x, __private double16* iptr ); 2342 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f64_p3f64, )( double x, __local double* iptr ); 2343 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f64_p3v2f64, )( double2 x, __local double2* iptr ); 2344 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f64_p3v3f64, )( double3 x, __local double3* iptr ); 2345 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f64_p3v4f64, )( double4 x, __local double4* iptr ); 2346 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f64_p3v8f64, )( double8 x, __local double8* iptr ); 2347 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f64_p3v16f64, )( double16 x, __local double16* iptr ); 2348 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2349 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _f64_p4f64, )( double x, __generic double* iptr ); 2350 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v2f64_p4v2f64, )( double2 x, __generic double2* iptr ); 2351 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v3f64_p4v3f64, )( double3 x, __generic double3* iptr ); 2352 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v4f64_p4v4f64, )( double4 x, __generic double4* iptr ); 2353 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v8f64_p4v8f64, )( double8 x, __generic double8* iptr ); 2354 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(modf, _v16f64_p4v16f64, )( double16 x, __generic double16* iptr ); 2355 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2356 #endif // defined(cl_khr_fp64) 2357 2358 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _i32, )( int nancode ); 2359 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v2i32, )(int2 x); 2360 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v3i32, )(int3 x); 2361 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v4i32, )(int4 x); 2362 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v8i32, )(int8 x); 2363 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v16i32, )(int16 x); 2364 #if defined(cl_khr_fp64) 2365 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _i64, )( long nancode ); 2366 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v2i64, )(long2 x); 2367 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v3i64, )(long3 x); 2368 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v4i64, )(long4 x); 2369 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v8i64, )(long8 x); 2370 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v16i64, )(long16 x); 2371 #endif // defined(cl_khr_fp64) 2372 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _i16, )( short nancode ); 2373 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v2i16, )(short2 x); 2374 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v3i16, )(short3 x); 2375 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v4i16, )(short4 x); 2376 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v8i16, )(short8 x); 2377 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nan, _v16i16, )(short16 x); 2378 2379 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _f32_f32, )( float x, float y ); 2380 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v2f32_v2f32, )(float2 x, float2 y); 2381 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v3f32_v3f32, )(float3 x, float3 y); 2382 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v4f32_v4f32, )(float4 x, float4 y); 2383 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v8f32_v8f32, )(float8 x, float8 y); 2384 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v16f32_v16f32, )(float16 x, float16 y); 2385 #if defined(cl_khr_fp64) 2386 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _f64_f64, )( double x, double y ); 2387 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v2f64_v2f64, )(double2 x, double2 y); 2388 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v3f64_v3f64, )(double3 x, double3 y); 2389 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v4f64_v4f64, )(double4 x, double4 y); 2390 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v8f64_v8f64, )(double8 x, double8 y); 2391 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v16f64_v16f64, )(double16 x, double16 y); 2392 #endif // defined(cl_khr_fp64) 2393 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _f16_f16, )( half x, half y ); 2394 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v2f16_v2f16, )(half2 x, half2 y); 2395 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v3f16_v3f16, )(half3 x, half3 y); 2396 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v4f16_v4f16, )(half4 x, half4 y); 2397 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v8f16_v8f16, )(half8 x, half8 y); 2398 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(nextafter, _v16f16_v16f16, )(half16 x, half16 y); 2399 2400 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _f32_f32, )( float x, float y ); 2401 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v2f32_v2f32, )(float2 x, float2 y); 2402 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v3f32_v3f32, )(float3 x, float3 y); 2403 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v4f32_v4f32, )(float4 x, float4 y); 2404 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v8f32_v8f32, )(float8 x, float8 y); 2405 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v16f32_v16f32, )(float16 x, float16 y); 2406 #if defined(cl_khr_fp64) 2407 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _f64_f64, )( double x, double y ); 2408 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v2f64_v2f64, )(double2 x, double2 y); 2409 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v3f64_v3f64, )(double3 x, double3 y); 2410 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v4f64_v4f64, )(double4 x, double4 y); 2411 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v8f64_v8f64, )(double8 x, double8 y); 2412 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v16f64_v16f64, )(double16 x, double16 y); 2413 #endif // defined(cl_khr_fp64) 2414 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _f16_f16, )( half x, half y ); 2415 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v2f16_v2f16, )(half2 x, half2 y); 2416 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v3f16_v3f16, )(half3 x, half3 y); 2417 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v4f16_v4f16, )(half4 x, half4 y); 2418 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v8f16_v8f16, )(half8 x, half8 y); 2419 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pow, _v16f16_v16f16, )(half16 x, half16 y); 2420 2421 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _f32_i32, )( float x, int y ); 2422 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v2f32_v2i32, )(float2 x, int2 y); 2423 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v3f32_v3i32, )(float3 x, int3 y); 2424 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v4f32_v4i32, )(float4 x, int4 y); 2425 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v8f32_v8i32, )(float8 x, int8 y); 2426 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v16f32_v16i32, )(float16 x, int16 y); 2427 #if defined(cl_khr_fp64) 2428 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _f64_i32, )( double x, int y ); 2429 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v2f64_v2i32, )(double2 x, int2 y); 2430 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v3f64_v3i32, )(double3 x, int3 y); 2431 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v4f64_v4i32, )(double4 x, int4 y); 2432 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v8f64_v8i32, )(double8 x, int8 y); 2433 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v16f64_v16i32, )(double16 x, int16 y); 2434 #endif // defined(cl_khr_fp64) 2435 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _f16_i32, )( half x, int y ); 2436 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v2f16_v2i32, )(half2 x, int2 y); 2437 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v3f16_v3i32, )(half3 x, int3 y); 2438 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v4f16_v4i32, )(half4 x, int4 y); 2439 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v8f16_v8i32, )(half8 x, int8 y); 2440 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(pown, _v16f16_v16i32, )(half16 x, int16 y); 2441 2442 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _f32_f32, )( float x, float y ); 2443 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v2f32_v2f32, )(float2 x, float2 y); 2444 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v3f32_v3f32, )(float3 x, float3 y); 2445 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v4f32_v4f32, )(float4 x, float4 y); 2446 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v8f32_v8f32, )(float8 x, float8 y); 2447 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v16f32_v16f32, )(float16 x, float16 y); 2448 #if defined(cl_khr_fp64) 2449 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _f64_f64, )( double x, double y ); 2450 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v2f64_v2f64, )(double2 x, double2 y); 2451 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v3f64_v3f64, )(double3 x, double3 y); 2452 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v4f64_v4f64, )(double4 x, double4 y); 2453 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v8f64_v8f64, )(double8 x, double8 y); 2454 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v16f64_v16f64, )(double16 x, double16 y); 2455 #endif // defined(cl_khr_fp64) 2456 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _f16_f16, )( half x, half y ); 2457 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v2f16_v2f16, )(half2 x, half2 y); 2458 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v3f16_v3f16, )(half3 x, half3 y); 2459 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v4f16_v4f16, )(half4 x, half4 y); 2460 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v8f16_v8f16, )(half8 x, half8 y); 2461 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(powr, _v16f16_v16f16, )(half16 x, half16 y); 2462 2463 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _f32_f32, )( float x, float y ); 2464 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v2f32_v2f32, )(float2 x, float2 y); 2465 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v3f32_v3f32, )(float3 x, float3 y); 2466 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v4f32_v4f32, )(float4 x, float4 y); 2467 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v8f32_v8f32, )(float8 x, float8 y); 2468 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v16f32_v16f32, )(float16 x, float16 y); 2469 #if defined(cl_khr_fp64) 2470 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _f64_f64, )( double x, double y ); 2471 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v2f64_v2f64, )(double2 x, double2 y); 2472 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v3f64_v3f64, )(double3 x, double3 y); 2473 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v4f64_v4f64, )(double4 x, double4 y); 2474 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v8f64_v8f64, )(double8 x, double8 y); 2475 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v16f64_v16f64, )(double16 x, double16 y); 2476 #endif // defined(cl_khr_fp64) 2477 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _f16_f16, )( half y, half x ); 2478 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v2f16_v2f16, )(half2 x, half2 y); 2479 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v3f16_v3f16, )(half3 x, half3 y); 2480 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v4f16_v4f16, )(half4 x, half4 y); 2481 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v8f16_v8f16, )(half8 x, half8 y); 2482 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remainder, _v16f16_v16f16, )(half16 x, half16 y); 2483 2484 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f32_f32_p1i32, )( float xx, float yy, __global int* quo ); 2485 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f32_v2f32_p1v2i32, )( float2 xx, float2 yy, __global int2* quo ); 2486 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f32_v3f32_p1v3i32, )( float3 xx, float3 yy, __global int3* quo ); 2487 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f32_v4f32_p1v4i32, )( float4 xx, float4 yy, __global int4* quo ); 2488 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f32_v8f32_p1v8i32, )( float8 xx, float8 yy, __global int8* quo ); 2489 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f32_v16f32_p1v16i32, )( float16 xx, float16 yy, __global int16* quo ); 2490 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f32_f32_p0i32, )( float xx, float yy, __private int* quo ); 2491 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f32_v2f32_p0v2i32, )( float2 xx, float2 yy, __private int2* quo ); 2492 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f32_v3f32_p0v3i32, )( float3 xx, float3 yy, __private int3* quo ); 2493 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f32_v4f32_p0v4i32, )( float4 xx, float4 yy, __private int4* quo ); 2494 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f32_v8f32_p0v8i32, )( float8 xx, float8 yy, __private int8* quo ); 2495 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f32_v16f32_p0v16i32, )( float16 xx, float16 yy, __private int16* quo ); 2496 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f32_f32_p3i32, )( float xx, float yy, __local int* quo ); 2497 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f32_v2f32_p3v2i32, )( float2 xx, float2 yy, __local int2* quo ); 2498 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f32_v3f32_p3v3i32, )( float3 xx, float3 yy, __local int3* quo ); 2499 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f32_v4f32_p3v4i32, )( float4 xx, float4 yy, __local int4* quo ); 2500 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f32_v8f32_p3v8i32, )( float8 xx, float8 yy, __local int8* quo ); 2501 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f32_v16f32_p3v16i32, )( float16 xx, float16 yy, __local int16* quo ); 2502 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2503 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f32_f32_p4i32, )( float xx, float yy, __generic int* quo ); 2504 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f32_v2f32_p4v2i32, )( float2 xx, float2 yy, __generic int2* quo ); 2505 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f32_v3f32_p4v3i32, )( float3 xx, float3 yy, __generic int3* quo ); 2506 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f32_v4f32_p4v4i32, )( float4 xx, float4 yy, __generic int4* quo ); 2507 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f32_v8f32_p4v8i32, )( float8 xx, float8 yy, __generic int8* quo ); 2508 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f32_v16f32_p4v16i32, )( float16 xx, float16 yy, __generic int16* quo ); 2509 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2510 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f16_f16_p1i32, )( half xx, half yy, __global int* quo ); 2511 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f16_v2f16_p1v2i32, )( half2 xx, half2 yy, __global int2* quo ); 2512 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f16_v3f16_p1v3i32, )( half3 xx, half3 yy, __global int3* quo ); 2513 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f16_v4f16_p1v4i32, )( half4 xx, half4 yy, __global int4* quo ); 2514 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f16_v8f16_p1v8i32, )( half8 xx, half8 yy, __global int8* quo ); 2515 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f16_v16f16_p1v16i32, )( half16 xx, half16 yy, __global int16* quo ); 2516 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f16_f16_p0i32, )( half xx, half yy, __private int* quo ); 2517 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f16_v2f16_p0v2i32, )( half2 xx, half2 yy, __private int2* quo ); 2518 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f16_v3f16_p0v3i32, )( half3 xx, half3 yy, __private int3* quo ); 2519 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f16_v4f16_p0v4i32, )( half4 xx, half4 yy, __private int4* quo ); 2520 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f16_v8f16_p0v8i32, )( half8 xx, half8 yy, __private int8* quo ); 2521 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f16_v16f16_p0v16i32, )( half16 xx, half16 yy, __private int16* quo ); 2522 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f16_f16_p3i32, )( half xx, half yy, __local int* quo ); 2523 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f16_v2f16_p3v2i32, )( half2 xx, half2 yy, __local int2* quo ); 2524 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f16_v3f16_p3v3i32, )( half3 xx, half3 yy, __local int3* quo ); 2525 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f16_v4f16_p3v4i32, )( half4 xx, half4 yy, __local int4* quo ); 2526 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f16_v8f16_p3v8i32, )( half8 xx, half8 yy, __local int8* quo ); 2527 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f16_v16f16_p3v16i32, )( half16 xx, half16 yy, __local int16* quo ); 2528 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2529 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f16_f16_p4i32, )( half xx, half yy, __generic int* quo ); 2530 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f16_v2f16_p4v2i32, )( half2 xx, half2 yy, __generic int2* quo ); 2531 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f16_v3f16_p4v3i32, )( half3 xx, half3 yy, __generic int3* quo ); 2532 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f16_v4f16_p4v4i32, )( half4 xx, half4 yy, __generic int4* quo ); 2533 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f16_v8f16_p4v8i32, )( half8 xx, half8 yy, __generic int8* quo ); 2534 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f16_v16f16_p4v16i32, )( half16 xx, half16 yy, __generic int16* quo ); 2535 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2536 #if defined(cl_khr_fp64) 2537 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f64_f64_p1i32, )( double xx, double yy, __global int* quo ); 2538 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f64_v2f64_p1v2i32, )( double2 xx, double2 yy, __global int2* quo ); 2539 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f64_v3f64_p1v3i32, )( double3 xx, double3 yy, __global int3* quo ); 2540 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f64_v4f64_p1v4i32, )( double4 xx, double4 yy, __global int4* quo ); 2541 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f64_v8f64_p1v8i32, )( double8 xx, double8 yy, __global int8* quo ); 2542 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f64_v16f64_p1v16i32, )( double16 xx, double16 yy, __global int16* quo ); 2543 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f64_f64_p0i32, )( double xx, double yy, __private int* quo ); 2544 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f64_v2f64_p0v2i32, )( double2 xx, double2 yy, __private int2* quo ); 2545 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f64_v3f64_p0v3i32, )( double3 xx, double3 yy, __private int3* quo ); 2546 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f64_v4f64_p0v4i32, )( double4 xx, double4 yy, __private int4* quo ); 2547 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f64_v8f64_p0v8i32, )( double8 xx, double8 yy, __private int8* quo ); 2548 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f64_v16f64_p0v16i32, )( double16 xx, double16 yy, __private int16* quo ); 2549 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f64_f64_p3i32, )( double xx, double yy, __local int* quo ); 2550 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f64_v2f64_p3v2i32, )( double2 xx, double2 yy, __local int2* quo ); 2551 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f64_v3f64_p3v3i32, )( double3 xx, double3 yy, __local int3* quo ); 2552 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f64_v4f64_p3v4i32, )( double4 xx, double4 yy, __local int4* quo ); 2553 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f64_v8f64_p3v8i32, )( double8 xx, double8 yy, __local int8* quo ); 2554 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f64_v16f64_p3v16i32, )( double16 xx, double16 yy, __local int16* quo ); 2555 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2556 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _f64_f64_p4i32, )( double xx, double yy, __generic int* quo ); 2557 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v2f64_v2f64_p4v2i32, )( double2 xx, double2 yy, __generic int2* quo ); 2558 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v3f64_v3f64_p4v3i32, )( double3 xx, double3 yy, __generic int3* quo ); 2559 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v4f64_v4f64_p4v4i32, )( double4 xx, double4 yy, __generic int4* quo ); 2560 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v8f64_v8f64_p4v8i32, )( double8 xx, double8 yy, __generic int8* quo ); 2561 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(remquo, _v16f64_v16f64_p4v16i32, )( double16 xx, double16 yy, __generic int16* quo ); 2562 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2563 #endif // defined(cl_khr_fp64) 2564 2565 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _f32, )(float x ); 2566 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v2f32, )(float2 x); 2567 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v3f32, )(float3 x); 2568 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v4f32, )(float4 x); 2569 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v8f32, )(float8 x); 2570 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v16f32, )(float16 x); 2571 #if defined(cl_khr_fp64) 2572 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _f64, )( double x ); 2573 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v2f64, )(double2 x); 2574 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v3f64, )(double3 x); 2575 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v4f64, )(double4 x); 2576 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v8f64, )(double8 x); 2577 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v16f64, )(double16 x); 2578 #endif // defined(cl_khr_fp64) 2579 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _f16, )(half x ); 2580 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v2f16, )(half2 x); 2581 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v3f16, )(half3 x); 2582 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v4f16, )(half4 x); 2583 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v8f16, )(half8 x); 2584 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rint, _v16f16, )(half16 x); 2585 2586 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _f32_i32, )( float x, int n ); 2587 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v2f32_v2i32, )(float2 x, int2 y); 2588 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v3f32_v3i32, )(float3 x, int3 y); 2589 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v4f32_v4i32, )(float4 x, int4 y); 2590 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v8f32_v8i32, )(float8 x, int8 y); 2591 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v16f32_v16i32, )(float16 x, int16 y); 2592 #if defined(cl_khr_fp64) 2593 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _f64_i32, )( double y, int x ); 2594 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v2f64_v2i32, )(double2 x, int2 y); 2595 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v3f64_v3i32, )(double3 x, int3 y); 2596 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v4f64_v4i32, )(double4 x, int4 y); 2597 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v8f64_v8i32, )(double8 x, int8 y); 2598 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v16f64_v16i32, )(double16 x, int16 y); 2599 #endif // defined(cl_khr_fp64) 2600 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _f16_i32, )( half y, int x ); 2601 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v2f16_v2i32, )(half2 x, int2 y); 2602 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v3f16_v3i32, )(half3 x, int3 y); 2603 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v4f16_v4i32, )(half4 x, int4 y); 2604 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v8f16_v8i32, )(half8 x, int8 y); 2605 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rootn, _v16f16_v16i32, )(half16 x, int16 y); 2606 2607 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _f32, )( float x ); 2608 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v2f32, )(float2 x); 2609 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v3f32, )(float3 x); 2610 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v4f32, )(float4 x); 2611 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v8f32, )(float8 x); 2612 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v16f32, )(float16 x); 2613 #if defined(cl_khr_fp64) 2614 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _f64, )( double x ); 2615 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v2f64, )(double2 x); 2616 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v3f64, )(double3 x); 2617 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v4f64, )(double4 x); 2618 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v8f64, )(double8 x); 2619 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v16f64, )(double16 x); 2620 #endif // defined(cl_khr_fp64) 2621 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _f16, )( half x ); 2622 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v2f16, )(half2 x); 2623 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v3f16, )(half3 x); 2624 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v4f16, )(half4 x); 2625 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v8f16, )(half8 x); 2626 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(round, _v16f16, )(half16 x); 2627 2628 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _f32, )( float x ); 2629 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v2f32, )(float2 x); 2630 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v3f32, )(float3 x); 2631 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v4f32, )(float4 x); 2632 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v8f32, )(float8 x); 2633 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v16f32, )(float16 x); 2634 #if defined(cl_khr_fp64) 2635 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _f64, )( double x ); 2636 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v2f64, )(double2 x); 2637 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v3f64, )(double3 x); 2638 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v4f64, )(double4 x); 2639 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v8f64, )(double8 x); 2640 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v16f64, )(double16 x); 2641 #endif // defined(cl_khr_fp64) 2642 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _f16, )( half x ); 2643 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v2f16, )(half2 x); 2644 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v3f16, )(half3 x); 2645 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v4f16, )(half4 x); 2646 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v8f16, )(half8 x); 2647 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(rsqrt, _v16f16, )(half16 x); 2648 2649 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _f32, )( float x ); 2650 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v2f32, )(float2 x); 2651 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v3f32, )(float3 x); 2652 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v4f32, )(float4 x); 2653 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v8f32, )(float8 x); 2654 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v16f32, )(float16 x); 2655 #if defined(cl_khr_fp64) 2656 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _f64, )( double x ); 2657 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v2f64, )(double2 x); 2658 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v3f64, )(double3 x); 2659 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v4f64, )(double4 x); 2660 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v8f64, )(double8 x); 2661 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v16f64, )(double16 x); 2662 #endif // defined(cl_khr_fp64) 2663 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _f16, )( half x ); 2664 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v2f16, )(half2 x); 2665 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v3f16, )(half3 x); 2666 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v4f16, )(half4 x); 2667 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v8f16, )(half8 x); 2668 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sin, _v16f16, )(half16 x); 2669 2670 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f32_p0f32, )( float x, __private float* cosval ); 2671 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f32_p1f32, )( float x, __global float* cosval ); 2672 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f32_p3f32, )( float x, __local float* cosval ); 2673 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f32_p0v2f32, )( float2 x, __private float2* cosval ); 2674 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f32_p1v2f32, )( float2 x, __global float2* cosval ); 2675 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f32_p3v2f32, )( float2 x, __local float2* cosval ); 2676 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f32_p0v3f32, )( float3 x, __private float3* cosval ); 2677 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f32_p1v3f32, )( float3 x, __global float3* cosval ); 2678 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f32_p3v3f32, )( float3 x, __local float3* cosval ); 2679 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f32_p0v4f32, )( float4 x, __private float4* cosval ); 2680 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f32_p1v4f32, )( float4 x, __global float4* cosval ); 2681 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f32_p3v4f32, )( float4 x, __local float4* cosval ); 2682 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f32_p0v8f32, )( float8 x, __private float8* cosval ); 2683 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f32_p1v8f32, )( float8 x, __global float8* cosval ); 2684 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f32_p3v8f32, )( float8 x, __local float8* cosval ); 2685 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f32_p0v16f32, )( float16 x, __private float16* cosval ); 2686 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f32_p1v16f32, )( float16 x, __global float16* cosval ); 2687 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f32_p3v16f32, )( float16 x, __local float16* cosval ); 2688 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2689 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f32_p4f32, )( float x, __generic float* cosval ); 2690 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f32_p4v2f32, )( float2 x, __generic float2* cosval ); 2691 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f32_p4v3f32, )( float3 x, __generic float3* cosval ); 2692 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f32_p4v4f32, )( float4 x, __generic float4* cosval ); 2693 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f32_p4v8f32, )( float8 x, __generic float8* cosval ); 2694 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f32_p4v16f32, )( float16 x, __generic float16* cosval ); 2695 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2696 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f16_p0f16, )( half x, __private half* cosval ); 2697 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f16_p1f16, )( half x, __global half* cosval ); 2698 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f16_p3f16, )( half x, __local half* cosval ); 2699 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f16_p0v2f16, )( half2 x, __private half2* cosval ); 2700 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f16_p1v2f16, )( half2 x, __global half2* cosval ); 2701 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f16_p3v2f16, )( half2 x, __local half2* cosval ); 2702 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f16_p0v3f16, )( half3 x, __private half3* cosval ); 2703 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f16_p1v3f16, )( half3 x, __global half3* cosval ); 2704 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f16_p3v3f16, )( half3 x, __local half3* cosval ); 2705 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f16_p0v4f16, )( half4 x, __private half4* cosval ); 2706 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f16_p1v4f16, )( half4 x, __global half4* cosval ); 2707 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f16_p3v4f16, )( half4 x, __local half4* cosval ); 2708 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f16_p0v8f16, )( half8 x, __private half8* cosval ); 2709 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f16_p1v8f16, )( half8 x, __global half8* cosval ); 2710 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f16_p3v8f16, )( half8 x, __local half8* cosval ); 2711 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f16_p0v16f16, )( half16 x, __private half16* cosval ); 2712 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f16_p1v16f16, )( half16 x, __global half16* cosval ); 2713 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f16_p3v16f16, )( half16 x, __local half16* cosval ); 2714 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2715 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f16_p4f16, )( half x, __generic half* cosval ); 2716 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f16_p4v2f16, )( half2 x, __generic half2* cosval ); 2717 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f16_p4v3f16, )( half3 x, __generic half3* cosval ); 2718 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f16_p4v4f16, )( half4 x, __generic half4* cosval ); 2719 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f16_p4v8f16, )( half8 x, __generic half8* cosval ); 2720 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f16_p4v16f16, )( half16 x, __generic half16* cosval ); 2721 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2722 #if defined(cl_khr_fp64) 2723 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f64_p0f64, )( double x, __private double* cosval ); 2724 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f64_p3f64, )( double x, __local double* cosval ); 2725 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f64_p1f64, )( double x, __global double* cosval ); 2726 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f64_p3f64, )( double x, __local double* cosval ); 2727 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f64_p0v2f64, )( double2 x, __private double2* cosval ); 2728 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f64_p1v2f64, )( double2 x, __global double2* cosval ); 2729 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f64_p3v2f64, )( double2 x, __local double2* cosval ); 2730 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f64_p0v3f64, )( double3 x, __private double3* cosval ); 2731 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f64_p1v3f64, )( double3 x, __global double3* cosval ); 2732 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f64_p3v3f64, )( double3 x, __local double3* cosval ); 2733 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f64_p0v4f64, )( double4 x, __private double4* cosval ); 2734 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f64_p1v4f64, )( double4 x, __global double4* cosval ); 2735 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f64_p3v4f64, )( double4 x, __local double4* cosval ); 2736 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f64_p0v8f64, )( double8 x, __private double8* cosval ); 2737 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f64_p1v8f64, )( double8 x, __global double8* cosval ); 2738 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f64_p3v8f64, )( double8 x, __local double8* cosval ); 2739 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f64_p0v16f64, )( double16 x, __private double16* cosval ); 2740 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f64_p1v16f64, )( double16 x, __global double16* cosval ); 2741 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f64_p3v16f64, )( double16 x, __local double16* cosval ); 2742 #if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) 2743 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _f64_p4f64, )( double x, __generic double* cosval ); 2744 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v2f64_p4v2f64, )( double2 x, __generic double2* cosval ); 2745 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v3f64_p4v3f64, )( double3 x, __generic double3* cosval ); 2746 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v4f64_p4v4f64, )( double4 x, __generic double4* cosval ); 2747 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v8f64_p4v8f64, )( double8 x, __generic double8* cosval ); 2748 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sincos, _v16f32_p4v16f64, )( double16 x, __generic double16* cosval ); 2749 #endif // __OPENCL_C_VERSION__ >= CL_VERSION_2_0 2750 #endif // defined(cl_khr_fp64) 2751 2752 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _f32, )( float x ); 2753 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v2f32, )(float2 x); 2754 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v3f32, )(float3 x); 2755 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v4f32, )(float4 x); 2756 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v8f32, )(float8 x); 2757 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v16f32, )(float16 x); 2758 #if defined(cl_khr_fp64) 2759 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _f64, )( double x ); 2760 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v2f64, )(double2 x); 2761 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v3f64, )(double3 x); 2762 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v4f64, )(double4 x); 2763 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v8f64, )(double8 x); 2764 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v16f64, )(double16 x); 2765 #endif // defined(cl_khr_fp64) 2766 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _f16, )( half x ); 2767 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v2f16, )(half2 x); 2768 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v3f16, )(half3 x); 2769 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v4f16, )(half4 x); 2770 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v8f16, )(half8 x); 2771 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinh, _v16f16, )(half16 x); 2772 2773 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _f32, )( float x ); 2774 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v2f32, )(float2 x); 2775 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v3f32, )(float3 x); 2776 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v4f32, )(float4 x); 2777 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v8f32, )(float8 x); 2778 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v16f32, )(float16 x); 2779 #if defined(cl_khr_fp64) 2780 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _f64, )( double x ); 2781 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v2f64, )(double2 x); 2782 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v3f64, )(double3 x); 2783 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v4f64, )(double4 x); 2784 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v8f64, )(double8 x); 2785 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v16f64, )(double16 x); 2786 #endif // defined(cl_khr_fp64) 2787 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _f16, )( half x ); 2788 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v2f16, )(half2 x); 2789 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v3f16, )(half3 x); 2790 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v4f16, )(half4 x); 2791 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v8f16, )(half8 x); 2792 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sinpi, _v16f16, )(half16 x); 2793 2794 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _f32, )( float x ); 2795 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v2f32, )(float2 x); 2796 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v3f32, )(float3 x); 2797 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v4f32, )(float4 x); 2798 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v8f32, )(float8 x); 2799 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v16f32, )(float16 x); 2800 #if defined(cl_khr_fp64) 2801 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _f64, )( double x ); 2802 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v2f64, )(double2 x); 2803 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v3f64, )(double3 x); 2804 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v4f64, )(double4 x); 2805 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v8f64, )(double8 x); 2806 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v16f64, )(double16 x); 2807 #endif // defined(cl_khr_fp64) 2808 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _f16, )( half x ); 2809 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v2f16, )(half2 x); 2810 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v3f16, )(half3 x); 2811 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v4f16, )(half4 x); 2812 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v8f16, )(half8 x); 2813 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt, _v16f16, )(half16 x); 2814 2815 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _f32, )( float a ); 2816 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v2f32, )(float2 x); 2817 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v3f32, )(float3 x); 2818 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v4f32, )(float4 x); 2819 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v8f32, )(float8 x); 2820 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v16f32, )(float16 x); 2821 #ifdef cl_fp64_basic_ops 2822 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _f64, )( double x ); 2823 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v2f64, )(double2 x); 2824 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v3f64, )(double3 x); 2825 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v4f64, )(double4 x); 2826 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v8f64, )(double8 x); 2827 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v16f64, )(double16 x); 2828 #endif // cl_fp64_basic_ops 2829 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _f16, )( half a ); 2830 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v2f16, )(half2 x); 2831 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v3f16, )(half3 x); 2832 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v4f16, )(half4 x); 2833 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v8f16, )(half8 x); 2834 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(sqrt_cr, _v16f16, )(half16 x); 2835 2836 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _f32, )( float x ); 2837 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v2f32, )(float2 x); 2838 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v3f32, )(float3 x); 2839 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v4f32, )(float4 x); 2840 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v8f32, )(float8 x); 2841 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v16f32, )(float16 x); 2842 #if defined(cl_khr_fp64) 2843 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _f64, )( double x ); 2844 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v2f64, )(double2 x); 2845 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v3f64, )(double3 x); 2846 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v4f64, )(double4 x); 2847 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v8f64, )(double8 x); 2848 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v16f64, )(double16 x); 2849 #endif // defined(cl_khr_fp64) 2850 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _f16, )( half x ); 2851 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v2f16, )(half2 x); 2852 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v3f16, )(half3 x); 2853 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v4f16, )(half4 x); 2854 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v8f16, )(half8 x); 2855 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tan, _v16f16, )(half16 x); 2856 2857 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _f32, )( float x ); 2858 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v2f32, )(float2 x); 2859 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v3f32, )(float3 x); 2860 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v4f32, )(float4 x); 2861 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v8f32, )(float8 x); 2862 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v16f32, )(float16 x); 2863 #if defined(cl_khr_fp64) 2864 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _f64, )( double x ); 2865 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v2f64, )(double2 x); 2866 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v3f64, )(double3 x); 2867 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v4f64, )(double4 x); 2868 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v8f64, )(double8 x); 2869 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v16f64, )(double16 x); 2870 #endif // defined(cl_khr_fp64) 2871 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _f16, )( half x ); 2872 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v2f16, )(half2 x); 2873 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v3f16, )(half3 x); 2874 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v4f16, )(half4 x); 2875 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v8f16, )(half8 x); 2876 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanh, _v16f16, )(half16 x); 2877 2878 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _f32, )( float x ); 2879 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v2f32, )(float2 x); 2880 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v3f32, )(float3 x); 2881 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v4f32, )(float4 x); 2882 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v8f32, )(float8 x); 2883 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v16f32, )(float16 x); 2884 #if defined(cl_khr_fp64) 2885 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _f64, )( double x ); 2886 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v2f64, )(double2 x); 2887 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v3f64, )(double3 x); 2888 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v4f64, )(double4 x); 2889 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v8f64, )(double8 x); 2890 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v16f64, )(double16 x); 2891 #endif // defined(cl_khr_fp64) 2892 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _f16, )( half x ); 2893 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v2f16, )(half2 x); 2894 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v3f16, )(half3 x); 2895 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v4f16, )(half4 x); 2896 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v8f16, )(half8 x); 2897 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tanpi, _v16f16, )(half16 x); 2898 2899 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _f32, )( float x ); 2900 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v2f32, )(float2 x); 2901 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v3f32, )(float3 x); 2902 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v4f32, )(float4 x); 2903 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v8f32, )(float8 x); 2904 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v16f32, )(float16 x); 2905 #if defined(cl_khr_fp64) 2906 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _f64, )( double x ); 2907 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v2f64, )(double2 x); 2908 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v3f64, )(double3 x); 2909 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v4f64, )(double4 x); 2910 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v8f64, )(double8 x); 2911 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v16f64, )(double16 x); 2912 #endif // defined(cl_khr_fp64) 2913 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _f16, )( half x ); 2914 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v2f16, )(half2 x); 2915 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v3f16, )(half3 x); 2916 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v4f16, )(half4 x); 2917 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v8f16, )(half8 x); 2918 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(tgamma, _v16f16, )(half16 x); 2919 2920 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _f32, )(float x ); 2921 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v2f32, )(float2 x); 2922 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v3f32, )(float3 x); 2923 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v4f32, )(float4 x); 2924 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v8f32, )(float8 x); 2925 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v16f32, )(float16 x); 2926 #if defined(cl_khr_fp64) 2927 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _f64, )(double x ); 2928 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v2f64, )(double2 x); 2929 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v3f64, )(double3 x); 2930 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v4f64, )(double4 x); 2931 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v8f64, )(double8 x); 2932 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v16f64, )(double16 x); 2933 #endif // defined(cl_khr_fp64) 2934 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _f16, )(half x ); 2935 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v2f16, )(half2 x); 2936 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v3f16, )(half3 x); 2937 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v4f16, )(half4 x); 2938 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v8f16, )(half8 x); 2939 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(trunc, _v16f16, )(half16 x); 2940 2941 // 2942 // Native 2943 // -native_cos,native_divide,native_exp,native_exp2,native_exp10,native_log,native_log2, 2944 // native_log10,native_powr,native_recip,native_rsqrt,native_sin,native_sqrt,native_tan 2945 // 2946 2947 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _f32, )(float x ); 2948 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v2f32, )(float2 x); 2949 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v3f32, )(float3 x); 2950 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v4f32, )(float4 x); 2951 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v8f32, )(float8 x); 2952 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v16f32, )(float16 x); 2953 #if defined(cl_khr_fp64) 2954 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _f64, )( double x ); 2955 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v2f64, )(double2 x); 2956 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v3f64, )(double3 x); 2957 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v4f64, )(double4 x); 2958 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v8f64, )(double8 x); 2959 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v16f64, )(double16 x); 2960 #endif // defined(cl_khr_fp64) 2961 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _f16, )(half x ); 2962 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v2f16, )(half2 x); 2963 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v3f16, )(half3 x); 2964 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v4f16, )(half4 x); 2965 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v8f16, )(half8 x); 2966 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_cos, _v16f16, )(half16 x); 2967 2968 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _f32_f32, )( float x, float y ); 2969 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v2f32_v2f32, )(float2 x, float2 y); 2970 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v3f32_v3f32, )(float3 x, float3 y); 2971 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v4f32_v4f32, )(float4 x, float4 y); 2972 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v8f32_v8f32, )(float8 x, float8 y); 2973 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v16f32_v16f32, )(float16 x, float16 y); 2974 #if defined(cl_khr_fp64) 2975 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _f64_f64, )( double x, double y ); 2976 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v2f64_v2f64, )(double2 x, double2 y); 2977 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v3f64_v3f64, )(double3 x, double3 y); 2978 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v4f64_v4f64, )(double4 x, double4 y); 2979 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v8f64_v8f64, )(double8 x, double8 y); 2980 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v16f64_v16f64, )(double16 x, double16 y); 2981 #endif // defined(cl_khr_fp64) 2982 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _f16_f16, )( half x, half y ); 2983 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v2f16_v2f16, )(half2 x, half2 y); 2984 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v3f16_v3f16, )(half3 x, half3 y); 2985 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v4f16_v4f16, )(half4 x, half4 y); 2986 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v8f16_v8f16, )(half8 x, half8 y); 2987 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_divide, _v16f16_v16f16, )(half16 x, half16 y); 2988 2989 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _f32, )( float x ); 2990 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v2f32, )(float2 x); 2991 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v3f32, )(float3 x); 2992 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v4f32, )(float4 x); 2993 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v8f32, )(float8 x); 2994 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v16f32, )(float16 x); 2995 #if defined(cl_khr_fp64) 2996 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _f64, )( double x ); 2997 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v2f64, )(double2 x); 2998 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v3f64, )(double3 x); 2999 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v4f64, )(double4 x); 3000 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v8f64, )(double8 x); 3001 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v16f64, )(double16 x); 3002 #endif // defined(cl_khr_fp64) 3003 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _f16, )( half x ); 3004 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v2f16, )(half2 x); 3005 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v3f16, )(half3 x); 3006 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v4f16, )(half4 x); 3007 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v8f16, )(half8 x); 3008 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp, _v16f16, )(half16 x); 3009 3010 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _f32, )(float x ); 3011 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v2f32, )(float2 x); 3012 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v3f32, )(float3 x); 3013 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v4f32, )(float4 x); 3014 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v8f32, )(float8 x); 3015 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v16f32, )(float16 x); 3016 #if defined(cl_khr_fp64) 3017 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _f64, )( double x ); 3018 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v2f64, )(double2 x); 3019 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v3f64, )(double3 x); 3020 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v4f64, )(double4 x); 3021 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v8f64, )(double8 x); 3022 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v16f64, )(double16 x); 3023 #endif // defined(cl_khr_fp64) 3024 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _f16, )(half x ); 3025 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v2f16, )(half2 x); 3026 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v3f16, )(half3 x); 3027 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v4f16, )(half4 x); 3028 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v8f16, )(half8 x); 3029 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp2, _v16f16, )(half16 x); 3030 3031 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _f32, )( float x ); 3032 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v2f32, )(float2 x); 3033 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v3f32, )(float3 x); 3034 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v4f32, )(float4 x); 3035 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v8f32, )(float8 x); 3036 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v16f32, )(float16 x); 3037 #if defined(cl_khr_fp64) 3038 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _f64, )( double x ); 3039 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v2f64, )(double2 x); 3040 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v3f64, )(double3 x); 3041 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v4f64, )(double4 x); 3042 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v8f64, )(double8 x); 3043 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v16f64, )(double16 x); 3044 #endif // defined(cl_khr_fp64) 3045 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _f16, )( half x ); 3046 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v2f16, )(half2 x); 3047 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v3f16, )(half3 x); 3048 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v4f16, )(half4 x); 3049 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v8f16, )(half8 x); 3050 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_exp10, _v16f16, )(half16 x); 3051 3052 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _f32, )( float x ); 3053 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v2f32, )(float2 x); 3054 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v3f32, )(float3 x); 3055 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v4f32, )(float4 x); 3056 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v8f32, )(float8 x); 3057 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v16f32, )(float16 x); 3058 #if defined(cl_khr_fp64) 3059 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _f64, )( double x ); 3060 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v2f64, )(double2 x); 3061 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v3f64, )(double3 x); 3062 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v4f64, )(double4 x); 3063 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v8f64, )(double8 x); 3064 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v16f64, )(double16 x); 3065 #endif // defined(cl_khr_fp64) 3066 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _f16, )( half x ); 3067 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v2f16, )(half2 x); 3068 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v3f16, )(half3 x); 3069 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v4f16, )(half4 x); 3070 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v8f16, )(half8 x); 3071 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log, _v16f16, )(half16 x); 3072 3073 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _f32, )(float x ); 3074 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v2f32, )(float2 x); 3075 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v3f32, )(float3 x); 3076 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v4f32, )(float4 x); 3077 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v8f32, )(float8 x); 3078 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v16f32, )(float16 x); 3079 #if defined(cl_khr_fp64) 3080 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _f64, )( double x ); 3081 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v2f64, )(double2 x); 3082 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v3f64, )(double3 x); 3083 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v4f64, )(double4 x); 3084 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v8f64, )(double8 x); 3085 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v16f64, )(double16 x); 3086 #endif // defined(cl_khr_fp64) 3087 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _f16, )(half x ); 3088 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v2f16, )(half2 x); 3089 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v3f16, )(half3 x); 3090 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v4f16, )(half4 x); 3091 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v8f16, )(half8 x); 3092 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log2, _v16f16, )(half16 x); 3093 3094 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _f32, )( float x ); 3095 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v2f32, )(float2 x); 3096 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v3f32, )(float3 x); 3097 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v4f32, )(float4 x); 3098 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v8f32, )(float8 x); 3099 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v16f32, )(float16 x); 3100 #if defined(cl_khr_fp64) 3101 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _f64, )( double x ); 3102 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v2f64, )(double2 x); 3103 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v3f64, )(double3 x); 3104 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v4f64, )(double4 x); 3105 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v8f64, )(double8 x); 3106 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v16f64, )(double16 x); 3107 #endif // defined(cl_khr_fp64) 3108 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _f16, )( half x ); 3109 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v2f16, )(half2 x); 3110 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v3f16, )(half3 x); 3111 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v4f16, )(half4 x); 3112 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v8f16, )(half8 x); 3113 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_log10, _v16f16, )(half16 x); 3114 3115 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _f32_f32, )(float x, float y); 3116 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v2f32_v2f32, )(float2 x, float2 y); 3117 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v3f32_v3f32, )(float3 x, float3 y); 3118 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v4f32_v4f32, )(float4 x, float4 y); 3119 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v8f32_v8f32, )(float8 x, float8 y); 3120 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v16f32_v16f32, )(float16 x, float16 y); 3121 #if defined(cl_khr_fp64) 3122 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _f64_f64, )( double x, double y ); 3123 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v2f64_v2f64, )(double2 x, double2 y); 3124 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v3f64_v3f64, )(double3 x, double3 y); 3125 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v4f64_v4f64, )(double4 x, double4 y); 3126 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v8f64_v8f64, )(double8 x, double8 y); 3127 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v16f64_v16f64, )(double16 x, double16 y); 3128 #endif // defined(cl_khr_fp64) 3129 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _f16_f16, )(half x, half y); 3130 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v2f16_v2f16, )(half2 x, half2 y); 3131 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v3f16_v3f16, )(half3 x, half3 y); 3132 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v4f16_v4f16, )(half4 x, half4 y); 3133 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v8f16_v8f16, )(half8 x, half8 y); 3134 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_powr, _v16f16_v16f16, )(half16 x, half16 y); 3135 3136 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _f32, )(float x ); 3137 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v2f32, )(float2 x); 3138 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v3f32, )(float3 x); 3139 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v4f32, )(float4 x); 3140 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v8f32, )(float8 x); 3141 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v16f32, )(float16 x); 3142 #if defined(cl_khr_fp64) 3143 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _f64, )( double x ); 3144 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v2f64, )(double2 x); 3145 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v3f64, )(double3 x); 3146 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v4f64, )(double4 x); 3147 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v8f64, )(double8 x); 3148 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v16f64, )(double16 x); 3149 #endif // defined(cl_khr_fp64) 3150 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _f16, )(half x ); 3151 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v2f16, )(half2 x); 3152 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v3f16, )(half3 x); 3153 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v4f16, )(half4 x); 3154 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v8f16, )(half8 x); 3155 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_recip, _v16f16, )(half16 x); 3156 3157 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _f32, )(float x ); 3158 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v2f32, )(float2 x); 3159 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v3f32, )(float3 x); 3160 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v4f32, )(float4 x); 3161 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v8f32, )(float8 x); 3162 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v16f32, )(float16 x); 3163 #if defined(cl_khr_fp64) 3164 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _f64, )(double x ); 3165 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v2f64, )(double2 x); 3166 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v3f64, )(double3 x); 3167 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v4f64, )(double4 x); 3168 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v8f64, )(double8 x); 3169 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v16f64, )(double16 x); 3170 #endif // defined(cl_khr_fp64) 3171 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _f16, )(half x ); 3172 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v2f16, )(half2 x); 3173 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v3f16, )(half3 x); 3174 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v4f16, )(half4 x); 3175 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v8f16, )(half8 x); 3176 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_rsqrt, _v16f16, )(half16 x); 3177 3178 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _f32, )(float x ); 3179 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v2f32, )(float2 x); 3180 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v3f32, )(float3 x); 3181 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v4f32, )(float4 x); 3182 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v8f32, )(float8 x); 3183 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v16f32, )(float16 x); 3184 #if defined(cl_khr_fp64) 3185 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _f64, )( double x ); 3186 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v2f64, )(double2 x); 3187 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v3f64, )(double3 x); 3188 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v4f64, )(double4 x); 3189 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v8f64, )(double8 x); 3190 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v16f64, )(double16 x); 3191 #endif // cl_khr_fp64 3192 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _f16, )(half x ); 3193 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v2f16, )(half2 x); 3194 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v3f16, )(half3 x); 3195 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v4f16, )(half4 x); 3196 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v8f16, )(half8 x); 3197 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sin, _v16f16, )(half16 x); 3198 3199 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _f32, )(float x ); 3200 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v2f32, )(float2 x); 3201 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v3f32, )(float3 x); 3202 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v4f32, )(float4 x); 3203 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v8f32, )(float8 x); 3204 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v16f32, )(float16 x); 3205 #ifdef cl_fp64_basic_ops 3206 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _f64, )(double x ); 3207 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v2f64, )(double2 x); 3208 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v3f64, )(double3 x); 3209 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v4f64, )(double4 x); 3210 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v8f64, )(double8 x); 3211 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v16f64, )(double16 x); 3212 #endif // cl_fp64_basic_ops 3213 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _f16, )(half x ); 3214 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v2f16, )(half2 x); 3215 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v3f16, )(half3 x); 3216 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v4f16, )(half4 x); 3217 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v8f16, )(half8 x); 3218 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_sqrt, _v16f16, )(half16 x); 3219 3220 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _f32, )(float x ); 3221 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v2f32, )(float2 x); 3222 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v3f32, )(float3 x); 3223 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v4f32, )(float4 x); 3224 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v8f32, )(float8 x); 3225 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v16f32, )(float16 x); 3226 #if defined(cl_khr_fp64) 3227 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _f64, )( double x ); 3228 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v2f64, )(double2 x); 3229 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v3f64, )(double3 x); 3230 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v4f64, )(double4 x); 3231 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v8f64, )(double8 x); 3232 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v16f64, )(double16 x); 3233 #endif // defined(cl_khr_fp64) 3234 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _f16, )(half x ); 3235 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v2f16, )(half2 x); 3236 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v3f16, )(half3 x); 3237 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v4f16, )(half4 x); 3238 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v8f16, )(half8 x); 3239 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(native_tan, _v16f16, )(half16 x); 3240 3241 // 3242 // Relational 3243 // -bitselect,select 3244 // 3245 3246 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _i8_i8_i8, )( char a, char b, char c ); 3247 char2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2i8_v2i8_v2i8, )(char2 x, char2 y, char2 z); 3248 char3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3i8_v3i8_v3i8, )(char3 x, char3 y, char3 z); 3249 char4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4i8_v4i8_v4i8, )(char4 x, char4 y, char4 z); 3250 char8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8i8_v8i8_v8i8, )(char8 x, char8 y, char8 z); 3251 char16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16i8_v16i8_v16i8, )(char16 x, char16 y, char16 z); 3252 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _i16_i16_i16, )( short a, short b, short c ); 3253 short2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2i16_v2i16_v2i16, )(short2 x, short2 y, short2 z); 3254 short3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3i16_v3i16_v3i16, )(short3 x, short3 y, short3 z); 3255 short4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4i16_v4i16_v4i16, )(short4 x, short4 y, short4 z); 3256 short8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8i16_v8i16_v8i16, )(short8 x, short8 y, short8 z); 3257 short16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16i16_v16i16_v16i16, )(short16 x, short16 y, short16 z); 3258 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _i32_i32_i32, )( int a, int b, int c ); 3259 int2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2i32_v2i32_v2i32, )(int2 x, int2 y, int2 z); 3260 int3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3i32_v3i32_v3i32, )(int3 x, int3 y, int3 z); 3261 int4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4i32_v4i32_v4i32, )(int4 x, int4 y, int4 z); 3262 int8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8i32_v8i32_v8i32, )(int8 x, int8 y, int8 z); 3263 int16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16i32_v16i32_v16i32, )(int16 x, int16 y, int16 z); 3264 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _i64_i64_i64, )( long a, long b, long c ); 3265 long2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2i64_v2i64_v2i64, )(long2 x, long2 y, long2 z); 3266 long3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3i64_v3i64_v3i64, )(long3 x, long3 y, long3 z); 3267 long4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4i64_v4i64_v4i64, )(long4 x, long4 y, long4 z); 3268 long8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8i64_v8i64_v8i64, )(long8 x, long8 y, long8 z); 3269 long16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16i64_v16i64_v16i64, )(long16 x, long16 y, long16 z); 3270 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _f32_f32_f32, )( float a, float b, float c ); 3271 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2f32_v2f32_v2f32, )(float2 x, float2 y, float2 z); 3272 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3f32_v3f32_v3f32, )(float3 x, float3 y, float3 z); 3273 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4f32_v4f32_v4f32, )(float4 x, float4 y, float4 z); 3274 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8f32_v8f32_v8f32, )(float8 x, float8 y, float8 z); 3275 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16f32_v16f32_v16f32, )(float16 x, float16 y, float16 z); 3276 #if defined(cl_khr_fp64) 3277 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _f64_f64_f64, )( double a, double b, double c ); 3278 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2f64_v2f64_v2f64, )(double2 x, double2 y, double2 z); 3279 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3f64_v3f64_v3f64, )(double3 x, double3 y, double3 z); 3280 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4f64_v4f64_v4f64, )(double4 x, double4 y, double4 z); 3281 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8f64_v8f64_v8f64, )(double8 x, double8 y, double8 z); 3282 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16f64_v16f64_v16f64, )(double16 x, double16 y, double16 z); 3283 #endif // defined(cl_khr_fp64) 3284 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _f16_f16_f16, )( half a, half b, half c ); 3285 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v2f16_v2f16_v2f16, )(half2 x, half2 y, half2 z); 3286 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v3f16_v3f16_v3f16, )(half3 x, half3 y, half3 z); 3287 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v4f16_v4f16_v4f16, )(half4 x, half4 y, half4 z); 3288 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v8f16_v8f16_v8f16, )(half8 x, half8 y, half8 z); 3289 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(bitselect, _v16f16_v16f16_v16f16, )(half16 x, half16 y, half16 z); 3290 3291 char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _i8_i8_i8, )( char a, char b, char c ); 3292 short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _i16_i16_i16, )( short a, short b, short c ); 3293 int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _i32_i32_i32, )( int a, int b, int c ); 3294 long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _i64_i64_i64, )( long a, long b, long c ); 3295 3296 float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _f32_f32_i32, )( float a, float b, int c ); 3297 float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v2f32_v2f32_v2i32, )(float2 a, float2 b, int2 c); 3298 float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v3f32_v3f32_v3i32, )(float3 a, float3 b, int3 c); 3299 float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v4f32_v4f32_v4i32, )(float4 a, float4 b, int4 c); 3300 float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v8f32_v8f32_v8i32, )(float8 a, float8 b, int8 c); 3301 float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v16f32_v16f32_v16i32, )(float16 a, float16 b, int16 c); 3302 3303 #if defined(cl_khr_fp64) 3304 double SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _f64_f64_i64, )( double a, double b, long c ); 3305 double2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v2f64_v2f64_v2i64, )(double2 a, double2 b, long2 c); 3306 double3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v3f64_v3f64_v3i64, )(double3 a, double3 b, long3 c); 3307 double4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v4f64_v4f64_v4i64, )(double4 a, double4 b, long4 c); 3308 double8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v8f64_v8f64_v8i64, )(double8 a, double8 b, long8 c); 3309 double16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v16f64_v16f64_v16i64, )(double16 a, double16 b, long16 c); 3310 3311 #endif // defined(cl_khr_fp64) 3312 3313 #if defined(cl_khr_fp16) 3314 half SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _f16_f16_i16, )( half a, half b, short c ); 3315 half2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v2f16_v2f16_v2i16, )(half2 a, half2 b, short2 c); 3316 half3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v3f16_v3f16_v3i16, )(half3 a, half3 b, short3 c); 3317 half4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v4f16_v4f16_v4i16, )(half4 a, half4 b, short4 c); 3318 half8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v8f16_v8f16_v8i16, )(half8 a, half8 b, short8 c); 3319 half16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(select, _v16f16_v16f16_v16i16, )(half16 a, half16 b, short16 c); 3320 3321 #endif // defined(cl_khr_fp16) 3322 3323 #endif // __SPIRV_MATH_H__ 3324 3325