Skip to content

Commit c5b750f

Browse files
committed
[libclc] Move log2/log10 tables to CLC tables impl
These two tables were being used by the CLC library but their definitions still remained in the OpenCL layer. This worked out after linking the two together but is a layering violation. This had a side effect of removing the two table getters from the final bytecode library, which were never intended to be exposed. These two tables should probably be refactored so allow better vectorization of log/log2/log10, but that is left to future work.
1 parent 6c4dd8d commit c5b750f

File tree

2 files changed

+269
-267
lines changed

2 files changed

+269
-267
lines changed

libclc/clc/lib/generic/math/clc_tables.cl

Lines changed: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,275 @@ DECLARE_TABLE(float, LOG_INV_TBL, 129) = {
197197

198198
CLC_TABLE_FUNCTION(float, LOG_INV_TBL, log_inv_tbl);
199199

200+
DECLARE_TABLE(float2, LOG2_TBL, 129) = {
201+
(float2)(0x0.000000p+0f, 0x0.000000p+0f),
202+
(float2)(0x1.6f8000p-7f, 0x1.942dbap-17f),
203+
(float2)(0x1.6e0000p-6f, 0x1.e5a170p-16f),
204+
(float2)(0x1.118000p-5f, 0x1.347544p-15f),
205+
(float2)(0x1.6b8000p-5f, 0x1.69bac6p-16f),
206+
(float2)(0x1.c48000p-5f, 0x1.7eae42p-15f),
207+
(float2)(0x1.0e8000p-4f, 0x1.9c4fd0p-15f),
208+
(float2)(0x1.3a8000p-4f, 0x1.17ee92p-15f),
209+
(float2)(0x1.660000p-4f, 0x1.fb7d64p-15f),
210+
(float2)(0x1.918000p-4f, 0x1.42dc8cp-17f),
211+
(float2)(0x1.bc8000p-4f, 0x1.0902b6p-18f),
212+
(float2)(0x1.e70000p-4f, 0x1.7608bep-15f),
213+
(float2)(0x1.088000p-3f, 0x1.162336p-13f),
214+
(float2)(0x1.1d8000p-3f, 0x1.3465d4p-13f),
215+
(float2)(0x1.328000p-3f, 0x1.74f13cp-14f),
216+
(float2)(0x1.470000p-3f, 0x1.aa7e60p-13f),
217+
(float2)(0x1.5c0000p-3f, 0x1.a39fbcp-19f),
218+
(float2)(0x1.700000p-3f, 0x1.d0b53ap-13f),
219+
(float2)(0x1.848000p-3f, 0x1.0af40ap-13f),
220+
(float2)(0x1.988000p-3f, 0x1.b741dep-13f),
221+
(float2)(0x1.ac8000p-3f, 0x1.d78b6cp-13f),
222+
(float2)(0x1.c08000p-3f, 0x1.6db376p-13f),
223+
(float2)(0x1.d48000p-3f, 0x1.ee4c32p-15f),
224+
(float2)(0x1.e80000p-3f, 0x1.02f9d2p-13f),
225+
(float2)(0x1.fb8000p-3f, 0x1.05ae40p-13f),
226+
(float2)(0x1.078000p-2f, 0x1.0adbb0p-14f),
227+
(float2)(0x1.110000p-2f, 0x1.83ed68p-13f),
228+
(float2)(0x1.1a8000p-2f, 0x1.016ca4p-12f),
229+
(float2)(0x1.240000p-2f, 0x1.01eac2p-12f),
230+
(float2)(0x1.2d8000p-2f, 0x1.887e26p-13f),
231+
(float2)(0x1.370000p-2f, 0x1.24cea4p-14f),
232+
(float2)(0x1.400000p-2f, 0x1.918ec6p-12f),
233+
(float2)(0x1.498000p-2f, 0x1.3c25e6p-13f),
234+
(float2)(0x1.528000p-2f, 0x1.6f7f12p-12f),
235+
(float2)(0x1.5c0000p-2f, 0x1.a39fbcp-18f),
236+
(float2)(0x1.650000p-2f, 0x1.8fe466p-14f),
237+
(float2)(0x1.6e0000p-2f, 0x1.10e6cep-13f),
238+
(float2)(0x1.770000p-2f, 0x1.d2ba7ep-14f),
239+
(float2)(0x1.800000p-2f, 0x1.4ac62cp-15f),
240+
(float2)(0x1.888000p-2f, 0x1.a71cb8p-12f),
241+
(float2)(0x1.918000p-2f, 0x1.dd448ep-13f),
242+
(float2)(0x1.9a8000p-2f, 0x1.1c8f10p-21f),
243+
(float2)(0x1.a30000p-2f, 0x1.bb053ep-13f),
244+
(float2)(0x1.ab8000p-2f, 0x1.861e5ep-12f),
245+
(float2)(0x1.b40000p-2f, 0x1.fafdcep-12f),
246+
(float2)(0x1.bd0000p-2f, 0x1.e5d3cep-15f),
247+
(float2)(0x1.c58000p-2f, 0x1.2fad28p-14f),
248+
(float2)(0x1.ce0000p-2f, 0x1.492474p-15f),
249+
(float2)(0x1.d60000p-2f, 0x1.d4f80cp-12f),
250+
(float2)(0x1.de8000p-2f, 0x1.4ff510p-12f),
251+
(float2)(0x1.e70000p-2f, 0x1.3550f2p-13f),
252+
(float2)(0x1.ef0000p-2f, 0x1.b59ccap-12f),
253+
(float2)(0x1.f78000p-2f, 0x1.42b464p-13f),
254+
(float2)(0x1.ff8000p-2f, 0x1.5e66a0p-12f),
255+
(float2)(0x1.038000p-1f, 0x1.f6a2e4p-11f),
256+
(float2)(0x1.080000p-1f, 0x1.39e4fep-14f),
257+
(float2)(0x1.0c0000p-1f, 0x1.0500d6p-13f),
258+
(float2)(0x1.100000p-1f, 0x1.13b152p-13f),
259+
(float2)(0x1.140000p-1f, 0x1.93f542p-14f),
260+
(float2)(0x1.180000p-1f, 0x1.467b94p-16f),
261+
(float2)(0x1.1b8000p-1f, 0x1.cc47a4p-11f),
262+
(float2)(0x1.1f8000p-1f, 0x1.78f4c2p-11f),
263+
(float2)(0x1.238000p-1f, 0x1.107508p-11f),
264+
(float2)(0x1.278000p-1f, 0x1.2602c2p-12f),
265+
(float2)(0x1.2b8000p-1f, 0x1.a39fbcp-20f),
266+
(float2)(0x1.2f0000p-1f, 0x1.5a1d7ap-11f),
267+
(float2)(0x1.330000p-1f, 0x1.3e355ap-12f),
268+
(float2)(0x1.368000p-1f, 0x1.cffedap-11f),
269+
(float2)(0x1.3a8000p-1f, 0x1.d9fd50p-12f),
270+
(float2)(0x1.3e0000p-1f, 0x1.f64de6p-11f),
271+
(float2)(0x1.420000p-1f, 0x1.d83f4cp-12f),
272+
(float2)(0x1.458000p-1f, 0x1.cea628p-11f),
273+
(float2)(0x1.498000p-1f, 0x1.3c25e6p-12f),
274+
(float2)(0x1.4d0000p-1f, 0x1.5a96ccp-11f),
275+
(float2)(0x1.510000p-1f, 0x1.18708ap-17f),
276+
(float2)(0x1.548000p-1f, 0x1.374652p-12f),
277+
(float2)(0x1.580000p-1f, 0x1.2089a6p-11f),
278+
(float2)(0x1.5b8000p-1f, 0x1.93432cp-11f),
279+
(float2)(0x1.5f0000p-1f, 0x1.f3fd06p-11f),
280+
(float2)(0x1.630000p-1f, 0x1.0b8f54p-13f),
281+
(float2)(0x1.668000p-1f, 0x1.004722p-12f),
282+
(float2)(0x1.6a0000p-1f, 0x1.57cf2cp-12f),
283+
(float2)(0x1.6d8000p-1f, 0x1.8cb53ap-12f),
284+
(float2)(0x1.710000p-1f, 0x1.9f4d8ap-12f),
285+
(float2)(0x1.748000p-1f, 0x1.8feb26p-12f),
286+
(float2)(0x1.780000p-1f, 0x1.5edfeep-12f),
287+
(float2)(0x1.7b8000p-1f, 0x1.0c7c9ap-12f),
288+
(float2)(0x1.7f0000p-1f, 0x1.322182p-13f),
289+
(float2)(0x1.828000p-1f, 0x1.3ab7cep-18f),
290+
(float2)(0x1.858000p-1f, 0x1.a82c2cp-11f),
291+
(float2)(0x1.890000p-1f, 0x1.3dd2c0p-11f),
292+
(float2)(0x1.8c8000p-1f, 0x1.871da4p-12f),
293+
(float2)(0x1.900000p-1f, 0x1.cc2c00p-14f),
294+
(float2)(0x1.930000p-1f, 0x1.9fdb68p-11f),
295+
(float2)(0x1.968000p-1f, 0x1.ed6956p-12f),
296+
(float2)(0x1.9a0000p-1f, 0x1.f1a760p-14f),
297+
(float2)(0x1.9d0000p-1f, 0x1.767f54p-11f),
298+
(float2)(0x1.a08000p-1f, 0x1.3f6d26p-12f),
299+
(float2)(0x1.a38000p-1f, 0x1.b9fce2p-11f),
300+
(float2)(0x1.a70000p-1f, 0x1.8ae816p-12f),
301+
(float2)(0x1.aa0000p-1f, 0x1.c23d60p-11f),
302+
(float2)(0x1.ad8000p-1f, 0x1.60f388p-12f),
303+
(float2)(0x1.b08000p-1f, 0x1.9049aep-11f),
304+
(float2)(0x1.b40000p-1f, 0x1.8734a8p-13f),
305+
(float2)(0x1.b70000p-1f, 0x1.2523d4p-11f),
306+
(float2)(0x1.ba0000p-1f, 0x1.da6ce6p-11f),
307+
(float2)(0x1.bd8000p-1f, 0x1.038e62p-12f),
308+
(float2)(0x1.c08000p-1f, 0x1.1b511ep-11f),
309+
(float2)(0x1.c38000p-1f, 0x1.a728b8p-11f),
310+
(float2)(0x1.c70000p-1f, 0x1.2b5d22p-14f),
311+
(float2)(0x1.ca0000p-1f, 0x1.2c6e54p-12f),
312+
(float2)(0x1.cd0000p-1f, 0x1.f35064p-12f),
313+
(float2)(0x1.d00000p-1f, 0x1.4fdb48p-11f),
314+
(float2)(0x1.d30000p-1f, 0x1.98ec9ep-11f),
315+
(float2)(0x1.d60000p-1f, 0x1.d4f80cp-11f),
316+
(float2)(0x1.d98000p-1f, 0x1.0643d6p-17f),
317+
(float2)(0x1.dc8000p-1f, 0x1.33567ep-14f),
318+
(float2)(0x1.df8000p-1f, 0x1.e0410cp-14f),
319+
(float2)(0x1.e28000p-1f, 0x1.142e0ep-13f),
320+
(float2)(0x1.e58000p-1f, 0x1.063c88p-13f),
321+
(float2)(0x1.e88000p-1f, 0x1.8d66c4p-14f),
322+
(float2)(0x1.eb8000p-1f, 0x1.57e32ap-15f),
323+
(float2)(0x1.ee0000p-1f, 0x1.ed1c6cp-11f),
324+
(float2)(0x1.f10000p-1f, 0x1.b8a076p-11f),
325+
(float2)(0x1.f40000p-1f, 0x1.7822f2p-11f),
326+
(float2)(0x1.f70000p-1f, 0x1.2bbc3ap-11f),
327+
(float2)(0x1.fa0000p-1f, 0x1.a708bap-12f),
328+
(float2)(0x1.fd0000p-1f, 0x1.be4c7ep-13f),
329+
(float2)(0x1.000000p+0f, 0x0.000000p+0f)
330+
};
331+
332+
TABLE_FUNCTION(float2, LOG2_TBL, log2_tbl);
333+
334+
DECLARE_TABLE(float2, LOG10_TBL, 129) = {
335+
(float2)(0x0.000000p+0f, 0x0.000000p+0f),
336+
(float2)(0x1.ba8000p-9f, 0x1.f51c88p-19f),
337+
(float2)(0x1.b90000p-8f, 0x1.1da93ep-18f),
338+
(float2)(0x1.498000p-7f, 0x1.8428a2p-18f),
339+
(float2)(0x1.b58000p-7f, 0x1.a423acp-17f),
340+
(float2)(0x1.108000p-6f, 0x1.41d422p-17f),
341+
(float2)(0x1.458000p-6f, 0x1.d3d6b2p-16f),
342+
(float2)(0x1.7a8000p-6f, 0x1.70f7cep-16f),
343+
(float2)(0x1.af0000p-6f, 0x1.7e4ac0p-16f),
344+
(float2)(0x1.e38000p-6f, 0x1.ab2f40p-24f),
345+
(float2)(0x1.0b8000p-5f, 0x1.00d40ap-16f),
346+
(float2)(0x1.250000p-5f, 0x1.40b03ep-15f),
347+
(float2)(0x1.3e8000p-5f, 0x1.446668p-15f),
348+
(float2)(0x1.580000p-5f, 0x1.1c7758p-16f),
349+
(float2)(0x1.710000p-5f, 0x1.20d09ep-15f),
350+
(float2)(0x1.8a0000p-5f, 0x1.fd6f5cp-16f),
351+
(float2)(0x1.a30000p-5f, 0x1.53ac12p-18f),
352+
(float2)(0x1.bb8000p-5f, 0x1.4d02c6p-16f),
353+
(float2)(0x1.d40000p-5f, 0x1.d5164ep-17f),
354+
(float2)(0x1.ec0000p-5f, 0x1.991facp-15f),
355+
(float2)(0x1.020000p-4f, 0x1.0a307cp-14f),
356+
(float2)(0x1.0e0000p-4f, 0x1.e94ec0p-15f),
357+
(float2)(0x1.1a0000p-4f, 0x1.1a22a8p-15f),
358+
(float2)(0x1.258000p-4f, 0x1.d4857ap-14f),
359+
(float2)(0x1.318000p-4f, 0x1.982ae2p-15f),
360+
(float2)(0x1.3d0000p-4f, 0x1.74cd70p-14f),
361+
(float2)(0x1.488000p-4f, 0x1.cfb476p-14f),
362+
(float2)(0x1.540000p-4f, 0x1.ddcc64p-14f),
363+
(float2)(0x1.5f8000p-4f, 0x1.a01222p-14f),
364+
(float2)(0x1.6b0000p-4f, 0x1.177dbcp-14f),
365+
(float2)(0x1.768000p-4f, 0x1.140a24p-16f),
366+
(float2)(0x1.818000p-4f, 0x1.298f40p-14f),
367+
(float2)(0x1.8c8000p-4f, 0x1.c60e20p-14f),
368+
(float2)(0x1.980000p-4f, 0x1.b65052p-18f),
369+
(float2)(0x1.a30000p-4f, 0x1.53ac12p-17f),
370+
(float2)(0x1.ad8000p-4f, 0x1.f41d04p-14f),
371+
(float2)(0x1.b88000p-4f, 0x1.7934eap-14f),
372+
(float2)(0x1.c38000p-4f, 0x1.75252ep-15f),
373+
(float2)(0x1.ce0000p-4f, 0x1.b90790p-14f),
374+
(float2)(0x1.d90000p-4f, 0x1.d5866ap-16f),
375+
(float2)(0x1.e38000p-4f, 0x1.e0d586p-15f),
376+
(float2)(0x1.ee0000p-4f, 0x1.2ae984p-14f),
377+
(float2)(0x1.f88000p-4f, 0x1.25a0d0p-14f),
378+
(float2)(0x1.018000p-3f, 0x1.c2a064p-15f),
379+
(float2)(0x1.068000p-3f, 0x1.2f59e8p-13f),
380+
(float2)(0x1.0b8000p-3f, 0x1.cf424cp-13f),
381+
(float2)(0x1.110000p-3f, 0x1.42f080p-15f),
382+
(float2)(0x1.160000p-3f, 0x1.684156p-14f),
383+
(float2)(0x1.1b0000p-3f, 0x1.f38f64p-14f),
384+
(float2)(0x1.200000p-3f, 0x1.22077ap-13f),
385+
(float2)(0x1.250000p-3f, 0x1.2d34d6p-13f),
386+
(float2)(0x1.2a0000p-3f, 0x1.1ba328p-13f),
387+
(float2)(0x1.2f0000p-3f, 0x1.db48e2p-14f),
388+
(float2)(0x1.340000p-3f, 0x1.4712a0p-14f),
389+
(float2)(0x1.390000p-3f, 0x1.ed0894p-16f),
390+
(float2)(0x1.3d8000p-3f, 0x1.bc39b6p-13f),
391+
(float2)(0x1.428000p-3f, 0x1.1f9ff8p-13f),
392+
(float2)(0x1.478000p-3f, 0x1.a07d3ap-15f),
393+
(float2)(0x1.4c0000p-3f, 0x1.9601fap-13f),
394+
(float2)(0x1.510000p-3f, 0x1.532214p-14f),
395+
(float2)(0x1.558000p-3f, 0x1.a31462p-13f),
396+
(float2)(0x1.5a8000p-3f, 0x1.05a584p-14f),
397+
(float2)(0x1.5f0000p-3f, 0x1.4911c8p-13f),
398+
(float2)(0x1.638000p-3f, 0x1.f615fep-13f),
399+
(float2)(0x1.688000p-3f, 0x1.1445b0p-14f),
400+
(float2)(0x1.6d0000p-3f, 0x1.057abcp-13f),
401+
(float2)(0x1.718000p-3f, 0x1.685f0ap-13f),
402+
(float2)(0x1.760000p-3f, 0x1.b31022p-13f),
403+
(float2)(0x1.7a8000p-3f, 0x1.e5cd62p-13f),
404+
(float2)(0x1.7f8000p-3f, 0x1.aa6ca8p-22f),
405+
(float2)(0x1.840000p-3f, 0x1.1944bcp-19f),
406+
(float2)(0x1.880000p-3f, 0x1.f0b980p-13f),
407+
(float2)(0x1.8c8000p-3f, 0x1.c60e20p-13f),
408+
(float2)(0x1.910000p-3f, 0x1.849daep-13f),
409+
(float2)(0x1.958000p-3f, 0x1.2ca202p-13f),
410+
(float2)(0x1.9a0000p-3f, 0x1.7ca842p-14f),
411+
(float2)(0x1.9e8000p-3f, 0x1.cf6180p-16f),
412+
(float2)(0x1.a28000p-3f, 0x1.9fa186p-13f),
413+
(float2)(0x1.a70000p-3f, 0x1.df5554p-14f),
414+
(float2)(0x1.ab8000p-3f, 0x1.51eaccp-16f),
415+
(float2)(0x1.af8000p-3f, 0x1.4f8e88p-13f),
416+
(float2)(0x1.b40000p-3f, 0x1.7f49aap-15f),
417+
(float2)(0x1.b80000p-3f, 0x1.5b3c72p-13f),
418+
(float2)(0x1.bc8000p-3f, 0x1.07fd5cp-15f),
419+
(float2)(0x1.c08000p-3f, 0x1.144d18p-13f),
420+
(float2)(0x1.c48000p-3f, 0x1.d25700p-13f),
421+
(float2)(0x1.c90000p-3f, 0x1.f1369ep-15f),
422+
(float2)(0x1.cd0000p-3f, 0x1.1260fap-13f),
423+
(float2)(0x1.d10000p-3f, 0x1.94c038p-13f),
424+
(float2)(0x1.d58000p-3f, 0x1.ccfdb8p-20f),
425+
(float2)(0x1.d98000p-3f, 0x1.7c70dap-15f),
426+
(float2)(0x1.dd8000p-3f, 0x1.4ee87ap-14f),
427+
(float2)(0x1.e18000p-3f, 0x1.b99d86p-14f),
428+
(float2)(0x1.e58000p-3f, 0x1.feafc0p-14f),
429+
(float2)(0x1.e98000p-3f, 0x1.0f3b16p-13f),
430+
(float2)(0x1.ed8000p-3f, 0x1.0ca34cp-13f),
431+
(float2)(0x1.f18000p-3f, 0x1.ef75b2p-14f),
432+
(float2)(0x1.f58000p-3f, 0x1.a15704p-14f),
433+
(float2)(0x1.f98000p-3f, 0x1.2f3cfap-14f),
434+
(float2)(0x1.fd8000p-3f, 0x1.32f1dcp-15f),
435+
(float2)(0x1.008000p-2f, 0x1.f02d90p-13f),
436+
(float2)(0x1.028000p-2f, 0x1.821964p-13f),
437+
(float2)(0x1.048000p-2f, 0x1.02a708p-13f),
438+
(float2)(0x1.068000p-2f, 0x1.c7f450p-15f),
439+
(float2)(0x1.080000p-2f, 0x1.e820cap-12f),
440+
(float2)(0x1.0a0000p-2f, 0x1.8ecd14p-12f),
441+
(float2)(0x1.0c0000p-2f, 0x1.2d15f4p-12f),
442+
(float2)(0x1.0e0000p-2f, 0x1.861b72p-13f),
443+
(float2)(0x1.100000p-2f, 0x1.4319e6p-14f),
444+
(float2)(0x1.118000p-2f, 0x1.d6520ep-12f),
445+
(float2)(0x1.138000p-2f, 0x1.53c218p-12f),
446+
(float2)(0x1.158000p-2f, 0x1.925000p-13f),
447+
(float2)(0x1.178000p-2f, 0x1.b4a7a2p-15f),
448+
(float2)(0x1.190000p-2f, 0x1.9c19eep-12f),
449+
(float2)(0x1.1b0000p-2f, 0x1.f38f64p-13f),
450+
(float2)(0x1.1d0000p-2f, 0x1.3ebb32p-14f),
451+
(float2)(0x1.1e8000p-2f, 0x1.9ddf96p-12f),
452+
(float2)(0x1.208000p-2f, 0x1.c8d472p-13f),
453+
(float2)(0x1.228000p-2f, 0x1.1af536p-15f),
454+
(float2)(0x1.240000p-2f, 0x1.5acca0p-12f),
455+
(float2)(0x1.260000p-2f, 0x1.158770p-13f),
456+
(float2)(0x1.278000p-2f, 0x1.b35350p-12f),
457+
(float2)(0x1.298000p-2f, 0x1.a91532p-13f),
458+
(float2)(0x1.2b0000p-2f, 0x1.ee7896p-12f),
459+
(float2)(0x1.2d0000p-2f, 0x1.012c1cp-12f),
460+
(float2)(0x1.2f0000p-2f, 0x1.967ab4p-17f),
461+
(float2)(0x1.308000p-2f, 0x1.111e3cp-12f),
462+
(float2)(0x1.328000p-2f, 0x1.cf340ep-17f),
463+
(float2)(0x1.340000p-2f, 0x1.04d426p-12f),
464+
};
465+
466+
TABLE_FUNCTION(float2, LOG10_TBL, log10_tbl);
467+
468+
200469
DECLARE_TABLE(float, EXP_TBL, 65) = {
201470
0x1.000000p+0f, 0x1.02c9a4p+0f, 0x1.059b0ep+0f, 0x1.087452p+0f,
202471
0x1.0b5586p+0f, 0x1.0e3ec4p+0f, 0x1.11301ep+0f, 0x1.1429aap+0f,

0 commit comments

Comments
 (0)