@@ -176,6 +176,372 @@ const inline float distance(__detail::HLSL_FIXED_VECTOR<float, N> X,
176
176
}
177
177
178
178
// ===----------------------------------------------------------------------===//
179
+ <<<<<<< Updated upstream
180
+ =======
181
+ // dot product builtins
182
+ // ===----------------------------------------------------------------------===//
183
+
184
+ // / \fn K dot(T X, T Y)
185
+ // / \brief Return the dot product (a scalar value) of \a X and \a Y.
186
+ // / \param X The X input value.
187
+ // / \param Y The Y input value.
188
+
189
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
190
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
191
+ half dot (half, half);
192
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
193
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
194
+ half dot (half2, half2);
195
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
196
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
197
+ half dot (half3, half3);
198
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
199
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
200
+ half dot (half4, half4);
201
+
202
+ #ifdef __HLSL_ENABLE_16_BIT
203
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
204
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
205
+ int16_t dot(int16_t , int16_t );
206
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
207
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
208
+ int16_t dot(int16_t2, int16_t2);
209
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
210
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
211
+ int16_t dot(int16_t3, int16_t3);
212
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
213
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
214
+ int16_t dot(int16_t4, int16_t4);
215
+
216
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
217
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
218
+ uint16_t dot(uint16_t , uint16_t );
219
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
220
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
221
+ uint16_t dot(uint16_t2, uint16_t2);
222
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
223
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
224
+ uint16_t dot(uint16_t3, uint16_t3);
225
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
226
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_dot)
227
+ uint16_t dot(uint16_t4, uint16_t4);
228
+ #endif
229
+
230
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
231
+ float dot (float , float );
232
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
233
+ float dot (float2, float2);
234
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
235
+ float dot (float3, float3);
236
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
237
+ float dot (float4, float4);
238
+
239
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
240
+ double dot (double , double );
241
+
242
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
243
+ int dot (int , int );
244
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
245
+ int dot (int2, int2);
246
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
247
+ int dot (int3, int3);
248
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
249
+ int dot (int4, int4);
250
+
251
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
252
+ uint dot (uint, uint);
253
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
254
+ uint dot (uint2, uint2);
255
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
256
+ uint dot (uint3, uint3);
257
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
258
+ uint dot (uint4, uint4);
259
+
260
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
261
+ int64_t dot (int64_t , int64_t );
262
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
263
+ int64_t dot (int64_t2, int64_t2);
264
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
265
+ int64_t dot (int64_t3, int64_t3);
266
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
267
+ int64_t dot (int64_t4, int64_t4);
268
+
269
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
270
+ uint64_t dot (uint64_t , uint64_t );
271
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
272
+ uint64_t dot (uint64_t2, uint64_t2);
273
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
274
+ uint64_t dot (uint64_t3, uint64_t3);
275
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot)
276
+ uint64_t dot (uint64_t4, uint64_t4);
277
+
278
+ // ===----------------------------------------------------------------------===//
279
+ // dot4add builtins
280
+ // ===----------------------------------------------------------------------===//
281
+
282
+ // / \fn int dot4add_i8packed(uint A, uint B, int C)
283
+
284
+ _HLSL_AVAILABILITY (shadermodel, 6.4 )
285
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot4add_i8packed)
286
+ int dot4add_i8packed (uint, uint, int );
287
+
288
+ // / \fn uint dot4add_u8packed(uint A, uint B, uint C)
289
+
290
+ _HLSL_AVAILABILITY (shadermodel, 6.4 )
291
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot4add_u8packed)
292
+ uint dot4add_u8packed (uint, uint, uint);
293
+
294
+ // ===----------------------------------------------------------------------===//
295
+ // dot2add builtins
296
+ // ===----------------------------------------------------------------------===//
297
+
298
+ // / \fn float dot2add(half2 a, half2 b, float c)
299
+
300
+ _HLSL_AVAILABILITY (shadermodel, 6.4 )
301
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_dot2add)
302
+ float dot2add (half2, half2, float );
303
+
304
+ // ===----------------------------------------------------------------------===//
305
+ // exp builtins
306
+ // ===----------------------------------------------------------------------===//
307
+
308
+ // / \fn T exp(T x)
309
+ // / \brief Returns the base-e exponential, or \a e**x, of the specified value.
310
+ // / \param x The specified input value.
311
+ // /
312
+ // / The return value is the base-e exponential of the \a x parameter.
313
+
314
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
315
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
316
+ half exp (half);
317
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
318
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
319
+ half2 exp (half2);
320
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
321
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
322
+ half3 exp (half3);
323
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
324
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
325
+ half4 exp (half4);
326
+
327
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
328
+ float exp (float );
329
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
330
+ float2 exp (float2);
331
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
332
+ float3 exp (float3);
333
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp)
334
+ float4 exp (float4);
335
+
336
+ // ===----------------------------------------------------------------------===//
337
+ // exp2 builtins
338
+ // ===----------------------------------------------------------------------===//
339
+
340
+ // / \fn T exp2(T x)
341
+ // / \brief Returns the base 2 exponential, or \a 2**x, of the specified value.
342
+ // / \param x The specified input value.
343
+ // /
344
+ // / The base 2 exponential of the \a x parameter.
345
+
346
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
347
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
348
+ half exp2 (half);
349
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
350
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
351
+ half2 exp2 (half2);
352
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
353
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
354
+ half3 exp2 (half3);
355
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
356
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
357
+ half4 exp2 (half4);
358
+
359
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
360
+ float exp2 (float );
361
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
362
+ float2 exp2 (float2);
363
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
364
+ float3 exp2 (float3);
365
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_exp2)
366
+ float4 exp2 (float4);
367
+
368
+ // ===----------------------------------------------------------------------===//
369
+ // firstbithigh builtins
370
+ // ===----------------------------------------------------------------------===//
371
+
372
+ // / \fn T firstbithigh(T Val)
373
+ // / \brief Returns the location of the first set bit starting from the highest
374
+ // / order bit and working downward, per component.
375
+ // / \param Val the input value.
376
+
377
+ #ifdef __HLSL_ENABLE_16_BIT
378
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
379
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
380
+ uint firstbithigh(int16_t );
381
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
382
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
383
+ uint2 firstbithigh(int16_t2);
384
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
385
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
386
+ uint3 firstbithigh(int16_t3);
387
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
388
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
389
+ uint4 firstbithigh(int16_t4);
390
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
391
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
392
+ uint firstbithigh(uint16_t );
393
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
394
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
395
+ uint2 firstbithigh(uint16_t2);
396
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
397
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
398
+ uint3 firstbithigh(uint16_t3);
399
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
400
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbithigh)
401
+ uint4 firstbithigh(uint16_t4);
402
+ #endif
403
+
404
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
405
+ uint firstbithigh (int );
406
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
407
+ uint2 firstbithigh (int2);
408
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
409
+ uint3 firstbithigh (int3);
410
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
411
+ uint4 firstbithigh (int4);
412
+
413
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
414
+ uint firstbithigh (uint);
415
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
416
+ uint2 firstbithigh (uint2);
417
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
418
+ uint3 firstbithigh (uint3);
419
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
420
+ uint4 firstbithigh (uint4);
421
+
422
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
423
+ uint firstbithigh (int64_t );
424
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
425
+ uint2 firstbithigh (int64_t2);
426
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
427
+ uint3 firstbithigh (int64_t3);
428
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
429
+ uint4 firstbithigh (int64_t4);
430
+
431
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
432
+ uint firstbithigh (uint64_t );
433
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
434
+ uint2 firstbithigh (uint64_t2);
435
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
436
+ uint3 firstbithigh (uint64_t3);
437
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbithigh)
438
+ uint4 firstbithigh (uint64_t4);
439
+
440
+ // ===----------------------------------------------------------------------===//
441
+ // firstbitlow builtins
442
+ // ===----------------------------------------------------------------------===//
443
+
444
+ // / \fn T firstbitlow(T Val)
445
+ // / \brief Returns the location of the first set bit starting from the lowest
446
+ // / order bit and working upward, per component.
447
+ // / \param Val the input value.
448
+
449
+ #ifdef __HLSL_ENABLE_16_BIT
450
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
451
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
452
+ uint firstbitlow(int16_t );
453
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
454
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
455
+ uint2 firstbitlow(int16_t2);
456
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
457
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
458
+ uint3 firstbitlow(int16_t3);
459
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
460
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
461
+ uint4 firstbitlow(int16_t4);
462
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
463
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
464
+ uint firstbitlow(uint16_t );
465
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
466
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
467
+ uint2 firstbitlow(uint16_t2);
468
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
469
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
470
+ uint3 firstbitlow(uint16_t3);
471
+ _HLSL_AVAILABILITY (shadermodel, 6.2 )
472
+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_firstbitlow)
473
+ uint4 firstbitlow(uint16_t4);
474
+ #endif
475
+
476
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
477
+ uint firstbitlow (int );
478
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
479
+ uint2 firstbitlow (int2);
480
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
481
+ uint3 firstbitlow (int3);
482
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
483
+ uint4 firstbitlow (int4);
484
+
485
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
486
+ uint firstbitlow (uint);
487
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
488
+ uint2 firstbitlow (uint2);
489
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
490
+ uint3 firstbitlow (uint3);
491
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
492
+ uint4 firstbitlow (uint4);
493
+
494
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
495
+ uint firstbitlow (int64_t );
496
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
497
+ uint2 firstbitlow (int64_t2);
498
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
499
+ uint3 firstbitlow (int64_t3);
500
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
501
+ uint4 firstbitlow (int64_t4);
502
+
503
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
504
+ uint firstbitlow (uint64_t );
505
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
506
+ uint2 firstbitlow (uint64_t2);
507
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
508
+ uint3 firstbitlow (uint64_t3);
509
+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_elementwise_firstbitlow)
510
+ uint4 firstbitlow (uint64_t4);
511
+
512
+ // ===----------------------------------------------------------------------===//
513
+ // floor builtins
514
+ // ===----------------------------------------------------------------------===//
515
+
516
+ // / \fn T floor(T Val)
517
+ // / \brief Returns the largest integer that is less than or equal to the input
518
+ // / value, \a Val.
519
+ // / \param Val The input value.
520
+
521
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
522
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
523
+ half floor (half);
524
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
525
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
526
+ half2 floor (half2);
527
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
528
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
529
+ half3 floor (half3);
530
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
531
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
532
+ half4 floor (half4);
533
+
534
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
535
+ float floor (float );
536
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
537
+ float2 floor (float2);
538
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
539
+ float3 floor (float3);
540
+ _HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
541
+ float4 floor (float4);
542
+
543
+ // ===----------------------------------------------------------------------===//
544
+ >>>>>>> Stashed changes
179
545
// fmod builtins
180
546
// ===----------------------------------------------------------------------===//
181
547
0 commit comments