spirv: reduce array size in vtn_handle_constant
[mesa.git] / src / compiler / spirv / OpenCL.std.h
1 /*
2 ** Copyright (c) 2015-2017 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a copy
5 ** of this software and/or associated documentation files (the "Materials"),
6 ** to deal in the Materials without restriction, including without limitation
7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 ** and/or sell copies of the Materials, and to permit persons to whom the
9 ** Materials are furnished to do so, subject to the following conditions:
10 **
11 ** The above copyright notice and this permission notice shall be included in
12 ** all copies or substantial portions of the Materials.
13 **
14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 **
18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24 ** IN THE MATERIALS.
25 */
26
27 #ifndef OpenCLstd_H
28 #define OpenCLstd_H
29
30 enum OpenCLstd {
31
32 // Section 2.1: Math extended instructions
33 Acos = 0,
34 Acosh = 1,
35 Acospi = 2,
36 Asin = 3,
37 Asinh = 4,
38 Asinpi = 5,
39 Atan = 6,
40 Atan2 = 7,
41 Atanh = 8,
42 Atanpi = 9,
43 Atan2pi = 10,
44 Cbrt = 11,
45 Ceil = 12,
46 Copysign = 13,
47 Cos = 14,
48 Cosh = 15,
49 Cospi = 16,
50 Erfc = 17,
51 Erf = 18,
52 Exp = 19,
53 Exp2 = 20,
54 Exp10 = 21,
55 Expm1 = 22,
56 Fabs = 23,
57 Fdim = 24,
58 Floor = 25,
59 Fma = 26,
60 Fmax = 27,
61 Fmin = 28,
62 Fmod = 29,
63 Fract = 30,
64 Frexp = 31,
65 Hypot = 32,
66 Ilogb = 33,
67 Ldexp = 34,
68 Lgamma = 35,
69 Lgamma_r = 36,
70 Log = 37,
71 Log2 = 38,
72 Log10 = 39,
73 Log1p = 40,
74 Logb = 41,
75 Mad = 42,
76 Maxmag = 43,
77 Minmag = 44,
78 Modf = 45,
79 Nan = 46,
80 Nextafter = 47,
81 Pow = 48,
82 Pown = 49,
83 Powr = 50,
84 Remainder = 51,
85 Remquo = 52,
86 Rint = 53,
87 Rootn = 54,
88 Round = 55,
89 Rsqrt = 56,
90 Sin = 57,
91 Sincos = 58,
92 Sinh = 59,
93 Sinpi = 60,
94 Sqrt = 61,
95 Tan = 62,
96 Tanh = 63,
97 Tanpi = 64,
98 Tgamma = 65,
99 Trunc = 66,
100 Half_cos = 67,
101 Half_divide = 68,
102 Half_exp = 69,
103 Half_exp2 = 70,
104 Half_exp10 = 71,
105 Half_log = 72,
106 Half_log2 = 73,
107 Half_log10 = 74,
108 Half_powr = 75,
109 Half_recip = 76,
110 Half_rsqrt = 77,
111 Half_sin = 78,
112 Half_sqrt = 79,
113 Half_tan = 80,
114 Native_cos = 81,
115 Native_divide = 82,
116 Native_exp = 83,
117 Native_exp2 = 84,
118 Native_exp10 = 85,
119 Native_log = 86,
120 Native_log2 = 87,
121 Native_log10 = 88,
122 Native_powr = 89,
123 Native_recip = 90,
124 Native_rsqrt = 91,
125 Native_sin = 92,
126 Native_sqrt = 93,
127 Native_tan = 94,
128
129 // Section 2.2: Integer instructions
130 SAbs = 141,
131 SAbs_diff = 142,
132 SAdd_sat = 143,
133 UAdd_sat = 144,
134 SHadd = 145,
135 UHadd = 146,
136 SRhadd = 147,
137 URhadd = 148,
138 SClamp = 149,
139 UClamp = 150,
140 Clz = 151,
141 Ctz = 152,
142 SMad_hi = 153,
143 UMad_sat = 154,
144 SMad_sat = 155,
145 SMax = 156,
146 UMax = 157,
147 SMin = 158,
148 UMin = 159,
149 SMul_hi = 160,
150 Rotate = 161,
151 SSub_sat = 162,
152 USub_sat = 163,
153 U_Upsample = 164,
154 S_Upsample = 165,
155 Popcount = 166,
156 SMad24 = 167,
157 UMad24 = 168,
158 SMul24 = 169,
159 UMul24 = 170,
160 UAbs = 201,
161 UAbs_diff = 202,
162 UMul_hi = 203,
163 UMad_hi = 204,
164
165 // Section 2.3: Common instructions
166 FClamp = 95,
167 Degrees = 96,
168 FMax_common = 97,
169 FMin_common = 98,
170 Mix = 99,
171 Radians = 100,
172 Step = 101,
173 Smoothstep = 102,
174 Sign = 103,
175
176 // Section 2.4: Geometric instructions
177 Cross = 104,
178 Distance = 105,
179 Length = 106,
180 Normalize = 107,
181 Fast_distance = 108,
182 Fast_length = 109,
183 Fast_normalize = 110,
184
185 // Section 2.5: Relational instructions
186 Bitselect = 186,
187 Select = 187,
188
189 // Section 2.6: Vector Data Load and Store instructions
190 Vloadn = 171,
191 Vstoren = 172,
192 Vload_half = 173,
193 Vload_halfn = 174,
194 Vstore_half = 175,
195 Vstore_half_r = 176,
196 Vstore_halfn = 177,
197 Vstore_halfn_r = 178,
198 Vloada_halfn = 179,
199 Vstorea_halfn = 180,
200 Vstorea_halfn_r = 181,
201
202 // Section 2.7: Miscellaneous Vector instructions
203 Shuffle = 182,
204 Shuffle2 = 183,
205
206 // Section 2.8: Misc instructions
207 Printf = 184,
208 Prefetch = 185,
209 };
210
211 #endif