@@ -21,6 +21,13 @@ namespace hlsl {
21
21
#define _HLSL_AVAILABILITY (environment, version ) \
22
22
__attribute__ ((availability(environment, introduced = version)))
23
23
24
+ #ifdef __HLSL_ENABLE_16_BIT
25
+ #define _HLSL_16BIT_AVAILABILITY (environment, version ) \
26
+ __attribute__ ((availability(environment, introduced = version)))
27
+ #else
28
+ #define _HLSL_16BIT_AVAILABILITY (environment, version )
29
+ #endif
30
+
24
31
// ===----------------------------------------------------------------------===//
25
32
// abs builtins
26
33
// ===----------------------------------------------------------------------===//
@@ -42,20 +49,20 @@ int16_t3 abs(int16_t3);
42
49
_HLSL_AVAILABILITY (shadermodel, 6.2 )
43
50
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_abs)
44
51
int16_t4 abs(int16_t4);
52
+ #endif
45
53
46
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
54
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
47
55
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_abs)
48
56
half abs (half);
49
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
57
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
50
58
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_abs)
51
59
half2 abs (half2);
52
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
60
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
53
61
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_abs)
54
62
half3 abs (half3);
55
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
63
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
56
64
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_abs)
57
65
half4 abs (half4);
58
- #endif
59
66
60
67
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_abs)
61
68
int abs (int );
@@ -102,20 +109,18 @@ double4 abs(double4);
102
109
// / the input value, \a Val.
103
110
// / \param Val The input value.
104
111
105
- #ifdef __HLSL_ENABLE_16_BIT
106
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
112
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
107
113
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_ceil)
108
114
half ceil (half);
109
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
115
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
110
116
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_ceil)
111
117
half2 ceil (half2);
112
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
118
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
113
119
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_ceil)
114
120
half3 ceil (half3);
115
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
121
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
116
122
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_ceil)
117
123
half4 ceil (half4);
118
- #endif
119
124
120
125
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_ceil)
121
126
float ceil (float );
@@ -143,20 +148,18 @@ double4 ceil(double4);
143
148
// / \brief Returns the cosine of the input value, \a Val.
144
149
// / \param Val The input value.
145
150
146
- #ifdef __HLSL_ENABLE_16_BIT
147
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
151
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
148
152
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_cos)
149
153
half cos (half);
150
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
154
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
151
155
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_cos)
152
156
half2 cos (half2);
153
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
157
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
154
158
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_cos)
155
159
half3 cos (half3);
156
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
160
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
157
161
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_cos)
158
162
half4 cos (half4);
159
- #endif
160
163
161
164
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_cos)
162
165
float cos (float );
@@ -185,20 +188,18 @@ double4 cos(double4);
185
188
// / value, \a Val.
186
189
// / \param Val The input value.
187
190
188
- #ifdef __HLSL_ENABLE_16_BIT
189
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
191
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
190
192
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
191
193
half floor (half);
192
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
194
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
193
195
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
194
196
half2 floor (half2);
195
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
197
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
196
198
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
197
199
half3 floor (half3);
198
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
200
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
199
201
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
200
202
half4 floor (half4);
201
- #endif
202
203
203
204
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_floor)
204
205
float floor (float );
@@ -229,20 +230,18 @@ double4 floor(double4);
229
230
// / If \a Val is negative, this result is undefined. If \a Val is 0, this
230
231
// / function returns negative infinity.
231
232
232
- #ifdef __HLSL_ENABLE_16_BIT
233
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
233
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
234
234
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log)
235
235
half log (half);
236
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
236
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
237
237
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log)
238
238
half2 log (half2);
239
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
239
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
240
240
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log)
241
241
half3 log (half3);
242
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
242
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
243
243
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log)
244
244
half4 log (half4);
245
- #endif
246
245
247
246
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log)
248
247
float log (float );
@@ -273,20 +272,18 @@ double4 log(double4);
273
272
// / If \a Val is negative, this result is undefined. If \a Val is 0, this
274
273
// / function returns negative infinity.
275
274
276
- #ifdef __HLSL_ENABLE_16_BIT
277
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
275
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
278
276
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log10)
279
277
half log10 (half);
280
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
278
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
281
279
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log10)
282
280
half2 log10 (half2);
283
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
281
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
284
282
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log10)
285
283
half3 log10 (half3);
286
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
284
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
287
285
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log10)
288
286
half4 log10 (half4);
289
- #endif
290
287
291
288
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log10)
292
289
float log10 (float );
@@ -317,20 +314,18 @@ double4 log10(double4);
317
314
// / If \a Val is negative, this result is undefined. If \a Val is 0, this
318
315
// / function returns negative infinity.
319
316
320
- #ifdef __HLSL_ENABLE_16_BIT
321
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
317
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
322
318
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log2)
323
319
half log2 (half);
324
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
320
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
325
321
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log2)
326
322
half2 log2 (half2);
327
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
323
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
328
324
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log2)
329
325
half3 log2 (half3);
330
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
326
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
331
327
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log2)
332
328
half4 log2 (half4);
333
- #endif
334
329
335
330
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_log2)
336
331
float log2 (float );
@@ -359,20 +354,20 @@ double4 log2(double4);
359
354
// / \param X The X input value.
360
355
// / \param Y The Y input value.
361
356
362
- #ifdef __HLSL_ENABLE_16_BIT
363
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
357
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
364
358
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_max)
365
359
half max (half, half);
366
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
360
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
367
361
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_max)
368
362
half2 max (half2, half2);
369
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
363
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
370
364
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_max)
371
365
half3 max (half3, half3);
372
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
366
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
373
367
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_max)
374
368
half4 max (half4, half4);
375
369
370
+ #ifdef __HLSL_ENABLE_16_BIT
376
371
_HLSL_AVAILABILITY (shadermodel, 6.2 )
377
372
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_max)
378
373
int16_t max(int16_t , int16_t );
@@ -463,20 +458,20 @@ double4 max(double4, double4);
463
458
// / \param X The X input value.
464
459
// / \param Y The Y input value.
465
460
466
- #ifdef __HLSL_ENABLE_16_BIT
467
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
461
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
468
462
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_min)
469
463
half min (half, half);
470
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
464
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
471
465
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_min)
472
466
half2 min (half2, half2);
473
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
467
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
474
468
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_min)
475
469
half3 min (half3, half3);
476
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
470
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
477
471
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_min)
478
472
half4 min (half4, half4);
479
473
474
+ #ifdef __HLSL_ENABLE_16_BIT
480
475
_HLSL_AVAILABILITY (shadermodel, 6.2 )
481
476
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_min)
482
477
int16_t min(int16_t , int16_t );
@@ -567,20 +562,18 @@ double4 min(double4, double4);
567
562
// / \param Val The input value.
568
563
// / \param Pow The specified power.
569
564
570
- #ifdef __HLSL_ENABLE_16_BIT
571
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
565
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
572
566
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_pow)
573
567
half pow (half, half);
574
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
568
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
575
569
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_pow)
576
570
half2 pow (half2, half2);
577
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
571
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
578
572
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_pow)
579
573
half3 pow (half3, half3);
580
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
574
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
581
575
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_pow)
582
576
half4 pow (half4, half4);
583
- #endif
584
577
585
578
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_pow)
586
579
float pow (float , float );
@@ -680,20 +673,18 @@ uint64_t4 reversebits(uint64_t4);
680
673
// / \brief Returns the sine of the input value, \a Val.
681
674
// / \param Val The input value.
682
675
683
- #ifdef __HLSL_ENABLE_16_BIT
684
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
676
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
685
677
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_sin)
686
678
half sin (half);
687
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
679
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
688
680
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_sin)
689
681
half2 sin (half2);
690
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
682
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
691
683
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_sin)
692
684
half3 sin (half3);
693
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
685
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
694
686
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_sin)
695
687
half4 sin (half4);
696
- #endif
697
688
698
689
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_sin)
699
690
float sin (float );
@@ -721,11 +712,9 @@ double4 sin(double4);
721
712
// / \brief Returns the square root of the input value, \a Val.
722
713
// / \param Val The input value.
723
714
724
- #ifdef __HLSL_ENABLE_16_BIT
725
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
715
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
726
716
_HLSL_BUILTIN_ALIAS (__builtin_sqrtf16)
727
717
half sqrt (half In);
728
- #endif
729
718
730
719
_HLSL_BUILTIN_ALIAS (__builtin_sqrtf)
731
720
float sqrt (float In);
@@ -741,20 +730,18 @@ double sqrt(double In);
741
730
// / \brief Returns the truncated integer value of the input value, \a Val.
742
731
// / \param Val The input value.
743
732
744
- #ifdef __HLSL_ENABLE_16_BIT
745
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
733
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
746
734
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_trunc)
747
735
half trunc (half);
748
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
736
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
749
737
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_trunc)
750
738
half2 trunc (half2);
751
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
739
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
752
740
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_trunc)
753
741
half3 trunc (half3);
754
- _HLSL_AVAILABILITY (shadermodel, 6.2 )
742
+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.2 )
755
743
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_trunc)
756
744
half4 trunc (half4);
757
- #endif
758
745
759
746
_HLSL_BUILTIN_ALIAS (__builtin_elementwise_trunc)
760
747
float trunc (float );
0 commit comments