@@ -14,100 +14,100 @@ INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fclamp, _f32_f32_f32, )(float
14
14
}
15
15
16
16
INLINE
17
- uchar __builtin_spirv_OpenCL_s_abs_i8 (char x ){
17
+ uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_abs , _i8 , ) (char x ){
18
18
return x > 0 ? x : - x ;
19
19
}
20
20
21
21
INLINE
22
- ushort __builtin_spirv_OpenCL_s_abs_i16 (short x ){
22
+ ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_abs , _i16 , ) (short x ){
23
23
return x > 0 ? x : - x ;
24
24
}
25
25
26
26
INLINE
27
- uint __builtin_spirv_OpenCL_s_abs_i32 (int x ){
27
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_abs , _i32 , ) (int x ){
28
28
// Convert signed to unsigned to have consistent result.
29
29
// Also, make abs(INT32_MIN) well defined : abs(INT32_MIN) = (ui32)(-(i64)INT32_MIN)
30
30
uint ux = (uint )x ;
31
31
return x > 0 ? ux : - ux ;
32
32
}
33
33
34
34
INLINE
35
- char __builtin_spirv_OpenCL_s_add_sat_i8_i8 ( char x ,
35
+ char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_add_sat , _i8_i8 , ) ( char x ,
36
36
char y )
37
37
{
38
- return (char )SPIRV_OCL_BUILTIN (s_min , _i32_i32 , )( __builtin_spirv_OpenCL_s_max_i32_i32 ( (int )x + (int )y , CHAR_MIN ), CHAR_MAX );
38
+ return (char )SPIRV_OCL_BUILTIN (s_min , _i32_i32 , )( SPIRV_OCL_BUILTIN ( s_max , _i32_i32 , ) ( (int )x + (int )y , CHAR_MIN ), CHAR_MAX );
39
39
}
40
40
41
41
INLINE
42
- uchar __builtin_spirv_OpenCL_u_add_sat_i8_i8 ( uchar x ,
42
+ uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_add_sat , _i8_i8 , ) ( uchar x ,
43
43
uchar y )
44
44
{
45
- return (uchar )SPIRV_OCL_BUILTIN (u_min , _i32_i32 , )( __builtin_spirv_OpenCL_u_max_i32_i32 ( (uint )x + (uint )y , 0 ), UCHAR_MAX );
45
+ return (uchar )SPIRV_OCL_BUILTIN (u_min , _i32_i32 , )( SPIRV_OCL_BUILTIN ( u_max , _i32_i32 , ) ( (uint )x + (uint )y , 0 ), UCHAR_MAX );
46
46
}
47
47
48
48
INLINE
49
- short __builtin_spirv_OpenCL_s_add_sat_i16_i16 ( short x ,
49
+ short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_add_sat , _i16_i16 , ) ( short x ,
50
50
short y )
51
51
{
52
- return (short )SPIRV_OCL_BUILTIN (s_min , _i32_i32 , )( __builtin_spirv_OpenCL_s_max_i32_i32 ( (int )x + (int )y , SHRT_MIN ), SHRT_MAX );
52
+ return (short )SPIRV_OCL_BUILTIN (s_min , _i32_i32 , )( SPIRV_OCL_BUILTIN ( s_max , _i32_i32 , ) ( (int )x + (int )y , SHRT_MIN ), SHRT_MAX );
53
53
}
54
54
55
55
INLINE
56
- ushort __builtin_spirv_OpenCL_u_add_sat_i16_i16 ( ushort x ,
56
+ ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_add_sat , _i16_i16 , ) ( ushort x ,
57
57
ushort y )
58
58
{
59
- return (ushort )SPIRV_OCL_BUILTIN (u_min , _i32_i32 , )(__builtin_spirv_OpenCL_u_max_i32_i32 ( (uint )x + (uint )y , 0 ), USHRT_MAX );
59
+ return (ushort )SPIRV_OCL_BUILTIN (u_min , _i32_i32 , )(SPIRV_OCL_BUILTIN ( u_max , _i32_i32 , ) ( (uint )x + (uint )y , 0 ), USHRT_MAX );
60
60
}
61
61
62
62
INLINE
63
- int __builtin_spirv_OpenCL_s_add_sat_i32_i32 ( int x ,
63
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_add_sat , _i32_i32 , ) ( int x ,
64
64
int y )
65
65
{
66
66
long tmp = (long ) x + (long ) y ;
67
- return (int ) __builtin_spirv_OpenCL_s_clamp_i64_i64_i64 ( tmp , (long )INT_MIN , (long )INT_MAX );
67
+ return (int ) SPIRV_OCL_BUILTIN ( s_clamp , _i64_i64_i64 , ) ( tmp , (long )INT_MIN , (long )INT_MAX );
68
68
}
69
69
70
70
INLINE
71
- uint __builtin_spirv_OpenCL_u_add_sat_i32_i32 ( uint x ,
71
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_add_sat , _i32_i32 , ) ( uint x ,
72
72
uint y )
73
73
{
74
74
long tmp = (long ) x + (long ) y ;
75
- return (uint ) __builtin_spirv_OpenCL_s_clamp_i64_i64_i64 ( tmp , 0L , (long )UINT_MAX );
75
+ return (uint ) SPIRV_OCL_BUILTIN ( s_clamp , _i64_i64_i64 , ) ( tmp , 0L , (long )UINT_MAX );
76
76
}
77
77
78
78
INLINE
79
- uchar __builtin_spirv_OpenCL_ctz_i8 ( uchar x ){
80
- return (uchar ) __builtin_spirv_OpenCL_ctz_i32 (( uint )x | (1U << sizeof (x ) * 8 ));
79
+ char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( ctz , _i8 , )( char x ){
80
+ return (char ) SPIRV_OCL_BUILTIN ( ctz , _i32 , )(( int )x | (1U << sizeof (x ) * 8 ));
81
81
}
82
82
83
83
INLINE
84
- ushort __builtin_spirv_OpenCL_ctz_i16 ( ushort x ){
85
- return (ushort ) __builtin_spirv_OpenCL_ctz_i32 (( uint )x | (1U << sizeof (x ) * 8 ));
84
+ short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( ctz , _i16 , )( short x ){
85
+ return (short ) SPIRV_OCL_BUILTIN ( ctz , _i32 , )(( int )x | (1U << sizeof (x ) * 8 ));
86
86
}
87
87
88
88
INLINE
89
- uint __builtin_spirv_OpenCL_ctz_i32 ( uint x ){
89
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( ctz , _i32 , )( int x ){
90
90
uint rev = __builtin_IB_bfrev (x );
91
- return __builtin_spirv_OpenCL_clz_i32 ( rev );
91
+ return SPIRV_OCL_BUILTIN ( clz , _i32 , )( as_int ( rev ) );
92
92
}
93
93
94
94
INLINE
95
- int __builtin_spirv_OpenCL_s_mad24_i32_i32_i32 ( int x ,
95
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_mad24 , _i32_i32_i32 , ) ( int x ,
96
96
int y ,
97
97
int z )
98
98
{
99
- return __builtin_spirv_OpenCL_s_mul24_i32_i32 (x , y ) + z ;
99
+ return SPIRV_OCL_BUILTIN ( s_mul24 , _i32_i32 , ) (x , y ) + z ;
100
100
}
101
101
102
102
INLINE
103
- uint __builtin_spirv_OpenCL_u_mad24_i32_i32_i32 ( uint x ,
103
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_mad24 , _i32_i32_i32 , ) ( uint x ,
104
104
uint y ,
105
105
uint z )
106
106
{
107
- return __builtin_spirv_OpenCL_u_mul24_i32_i32 (x , y ) + z ;
107
+ return SPIRV_OCL_BUILTIN ( u_mul24 , _i32_i32 , ) (x , y ) + z ;
108
108
}
109
109
110
- INLINE char __builtin_spirv_OpenCL_s_mad_sat_i8_i8_i8 (
110
+ INLINE char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_mad_sat , _i8_i8_i8 , ) (
111
111
char a ,
112
112
char b ,
113
113
char c )
@@ -116,7 +116,7 @@ INLINE char __builtin_spirv_OpenCL_s_mad_sat_i8_i8_i8(
116
116
return SPIRV_BUILTIN (SConvert , _Sat_i8_i16 , _Rchar_sat )(res );
117
117
}
118
118
119
- INLINE uchar __builtin_spirv_OpenCL_u_mad_sat_i8_i8_i8 (
119
+ INLINE uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_mad_sat , _i8_i8_i8 , ) (
120
120
uchar a ,
121
121
uchar b ,
122
122
uchar c )
@@ -125,7 +125,7 @@ INLINE uchar __builtin_spirv_OpenCL_u_mad_sat_i8_i8_i8(
125
125
return SPIRV_BUILTIN (UConvert , _Sat_i8_i16 , _Ruchar_sat )(res );
126
126
}
127
127
128
- INLINE short __builtin_spirv_OpenCL_s_mad_sat_i16_i16_i16 (
128
+ INLINE short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_mad_sat , _i16_i16_i16 , ) (
129
129
short a ,
130
130
short b ,
131
131
short c )
@@ -134,7 +134,7 @@ INLINE short __builtin_spirv_OpenCL_s_mad_sat_i16_i16_i16(
134
134
return SPIRV_BUILTIN (SConvert , _Sat_i16_i32 , _Rshort_sat )(res );
135
135
}
136
136
137
- INLINE ushort __builtin_spirv_OpenCL_u_mad_sat_i16_i16_i16 (
137
+ INLINE ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_mad_sat , _i16_i16_i16 , ) (
138
138
ushort a ,
139
139
ushort b ,
140
140
ushort c )
@@ -143,7 +143,7 @@ INLINE ushort __builtin_spirv_OpenCL_u_mad_sat_i16_i16_i16(
143
143
return SPIRV_BUILTIN (UConvert , _Sat_i16_i32 , _Rushort_sat )(res );
144
144
}
145
145
146
- INLINE int __builtin_spirv_OpenCL_s_mad_sat_i32_i32_i32 (
146
+ INLINE int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_mad_sat , _i32_i32_i32 , ) (
147
147
int a ,
148
148
int b ,
149
149
int c )
@@ -153,7 +153,7 @@ INLINE int __builtin_spirv_OpenCL_s_mad_sat_i32_i32_i32(
153
153
}
154
154
155
155
INLINE
156
- uint __builtin_spirv_OpenCL_u_mad_sat_i32_i32_i32 ( uint a ,
156
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_mad_sat , _i32_i32_i32 , ) ( uint a ,
157
157
uint b ,
158
158
uint c )
159
159
{
@@ -162,42 +162,42 @@ uint __builtin_spirv_OpenCL_u_mad_sat_i32_i32_i32( uint a,
162
162
}
163
163
164
164
INLINE
165
- char __builtin_spirv_OpenCL_s_max_i8_i8 (char x , char y ){
165
+ char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_max , _i8_i8 , ) (char x , char y ){
166
166
return (x >= y ) ? x : y ;
167
167
}
168
168
169
169
INLINE
170
- uchar __builtin_spirv_OpenCL_u_max_i8_i8 (uchar x , uchar y ){
170
+ uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_max , _i8_i8 , ) (uchar x , uchar y ){
171
171
return (x >= y ) ? x : y ;
172
172
}
173
173
174
174
INLINE
175
- short __builtin_spirv_OpenCL_s_max_i16_i16 (short x , short y ){
175
+ short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_max , _i16_i16 , ) (short x , short y ){
176
176
return (x >= y ) ? x : y ;
177
177
}
178
178
179
179
INLINE
180
- ushort __builtin_spirv_OpenCL_u_max_i16_i16 (ushort x , ushort y ){
180
+ ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_max , _i16_i16 , ) (ushort x , ushort y ){
181
181
return (x >= y ) ? x : y ;
182
182
}
183
183
184
184
INLINE
185
- int __builtin_spirv_OpenCL_s_max_i32_i32 (int x , int y ){
185
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_max , _i32_i32 , ) (int x , int y ){
186
186
return (x >= y ) ? x : y ;
187
187
}
188
188
189
189
INLINE
190
- uint __builtin_spirv_OpenCL_u_max_i32_i32 (uint x , uint y ){
190
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_max , _i32_i32 , ) (uint x , uint y ){
191
191
return (x >= y ) ? x : y ;
192
192
}
193
193
194
194
INLINE
195
- long __builtin_spirv_OpenCL_s_max_i64_i64 (long x , long y ){
195
+ long SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_max , _i64_i64 , ) (long x , long y ){
196
196
return (x >= y ) ? x : y ;
197
197
}
198
198
199
199
INLINE
200
- ulong __builtin_spirv_OpenCL_u_max_i64_i64 (ulong x , ulong y ){
200
+ ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_max , _i64_i64 , ) (ulong x , ulong y ){
201
201
return (x >= y ) ? x : y ;
202
202
}
203
203
@@ -242,74 +242,74 @@ ulong SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(u_min, _i64_i64, )(ulong x, ulong y )
242
242
}
243
243
244
244
INLINE
245
- uint __builtin_spirv_OpenCL_u_mul_hi_i32_i32 ( uint x ,
245
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_mul_hi , _i32_i32 , ) ( uint x ,
246
246
uint y )
247
247
{
248
248
return ((ulong )x * (ulong )y ) >> 32 ;
249
249
}
250
250
251
251
INLINE
252
- int __builtin_spirv_OpenCL_s_mul_hi_i32_i32 ( int x ,
252
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_mul_hi , _i32_i32 , ) ( int x ,
253
253
int y )
254
254
{
255
255
return ((long )x * (long )y ) >> 32 ;
256
256
}
257
257
258
258
INLINE
259
- uchar __builtin_spirv_OpenCL_popcount_i8 ( uchar x ){
259
+ char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( popcount , _i8 , )( char x ){
260
260
return __builtin_IB_popcount_1u8 (x );
261
261
}
262
262
263
263
INLINE
264
- ushort __builtin_spirv_OpenCL_popcount_i16 ( ushort x ){
264
+ short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( popcount , _i16 , )( short x ){
265
265
return __builtin_IB_popcount_1u16 (x );
266
266
}
267
267
268
268
INLINE
269
- uint __builtin_spirv_OpenCL_popcount_i32 ( uint x ){
269
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( popcount , _i32 , )( int x ){
270
270
return __builtin_IB_popcount_1u32 (x );
271
271
}
272
272
273
273
INLINE
274
- char __builtin_spirv_OpenCL_s_sub_sat_i8_i8 ( char x ,
274
+ char SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_sub_sat , _i8_i8 , ) ( char x ,
275
275
char y )
276
276
{
277
277
short tmp = (short )x - (short )y ;
278
- return (char ) __builtin_spirv_OpenCL_s_clamp_i16_i16_i16 (tmp , (short )CHAR_MIN , (short )CHAR_MAX );
278
+ return (char ) SPIRV_OCL_BUILTIN ( s_clamp , _i16_i16_i16 , ) (tmp , (short )CHAR_MIN , (short )CHAR_MAX );
279
279
}
280
280
281
281
INLINE
282
- uchar __builtin_spirv_OpenCL_u_sub_sat_i8_i8 ( uchar x ,
282
+ uchar SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_sub_sat , _i8_i8 , ) ( uchar x ,
283
283
uchar y )
284
284
{
285
285
return ( x <= y ) ? 0 : x - y ;
286
286
}
287
287
288
288
INLINE
289
- short __builtin_spirv_OpenCL_s_sub_sat_i16_i16 ( short x ,
289
+ short SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_sub_sat , _i16_i16 , ) ( short x ,
290
290
short y )
291
291
{
292
292
int tmp = (int )x - (int )y ;
293
- return (short ) __builtin_spirv_OpenCL_s_clamp_i32_i32_i32 ( tmp , (int )SHRT_MIN , (int )SHRT_MAX );
293
+ return (short ) SPIRV_OCL_BUILTIN ( s_clamp , _i32_i32_i32 , ) ( tmp , (int )SHRT_MIN , (int )SHRT_MAX );
294
294
}
295
295
296
296
INLINE
297
- ushort __builtin_spirv_OpenCL_u_sub_sat_i16_i16 ( ushort x ,
297
+ ushort SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_sub_sat , _i16_i16 , ) ( ushort x ,
298
298
ushort y )
299
299
{
300
300
return ( x <= y ) ? 0 : x - y ;
301
301
}
302
302
303
303
INLINE
304
- int __builtin_spirv_OpenCL_s_sub_sat_i32_i32 ( int x ,
304
+ int SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( s_sub_sat , _i32_i32 , ) ( int x ,
305
305
int y )
306
306
{
307
307
long tmp = (long )x - (long )y ;
308
- return (int ) __builtin_spirv_OpenCL_s_clamp_i64_i64_i64 ( tmp , (long )INT_MIN , (long )INT_MAX );
308
+ return (int ) SPIRV_OCL_BUILTIN ( s_clamp , _i64_i64_i64 , ) ( tmp , (long )INT_MIN , (long )INT_MAX );
309
309
}
310
310
311
311
INLINE
312
- uint __builtin_spirv_OpenCL_u_sub_sat_i32_i32 ( uint x ,
312
+ uint SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN ( u_sub_sat , _i32_i32 , ) ( uint x ,
313
313
uint y )
314
314
{
315
315
return ( x <= y ) ? 0 : x - y ;
0 commit comments