2014-12-12 Marc Glisse <marc.glisse@inria.fr>
[official-gcc.git] / gcc / ada / g-allein.ads
blob1346fdd56c56e230427ebd0f0aee19fdb9f6bd82
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT COMPILER COMPONENTS --
4 -- --
5 -- G N A T . A L T I V E C . L O W _ L E V E L _ I N T E R F A C E --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 2004-2014, Free Software Foundation, Inc. --
10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
17 -- --
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
19 -- additional permissions described in the GCC Runtime Library Exception, --
20 -- version 3.1, as published by the Free Software Foundation. --
21 -- --
22 -- You should have received a copy of the GNU General Public License and --
23 -- a copy of the GCC Runtime Library Exception along with this program; --
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
25 -- <http://www.gnu.org/licenses/>. --
26 -- --
27 -- GNAT was originally developed by the GNAT team at New York University. --
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
29 -- --
30 ------------------------------------------------------------------------------
32 -- This unit provides entities to be used internally by the units common to
33 -- both bindings (Hard or Soft), and relevant to the interfacing with the
34 -- underlying Low Level support.
36 -- The set of "services" includes:
38 -- o Imports to the low level routines for which a direct binding is
39 -- mandatory (or just possible when analyzed as such).
41 -- o Conversion routines (unchecked) between low level types, or between
42 -- various pointer representations.
44 with GNAT.Altivec.Vector_Types;
45 with GNAT.Altivec.Low_Level_Vectors;
47 with Ada.Unchecked_Conversion;
49 package GNAT.Altivec.Low_Level_Interface is
51 ----------------------------------------------------------------------------
52 -- Imports for "argument must be literal" constraints in the Hard binding --
53 ----------------------------------------------------------------------------
55 use GNAT.Altivec.Vector_Types;
57 -- vec_ctf --
59 function vec_ctf_vui_cint_r_vf
60 (A : vector_unsigned_int;
61 B : c_int) return vector_float;
63 pragma Import
64 (LL_Altivec, vec_ctf_vui_cint_r_vf, "__builtin_altivec_vcfux");
66 function vec_ctf_vsi_cint_r_vf
67 (A : vector_signed_int;
68 B : c_int) return vector_float;
70 pragma Import
71 (LL_Altivec, vec_ctf_vsi_cint_r_vf, "__builtin_altivec_vcfsx");
73 -- vec_vcfsx --
75 function vec_vcfsx_vsi_cint_r_vf
76 (A : vector_signed_int;
77 B : c_int) return vector_float;
79 pragma Import
80 (LL_Altivec, vec_vcfsx_vsi_cint_r_vf, "__builtin_altivec_vcfsx");
82 -- vec_vcfux --
84 function vec_vcfux_vui_cint_r_vf
85 (A : vector_unsigned_int;
86 B : c_int) return vector_float;
88 pragma Import
89 (LL_Altivec, vec_vcfux_vui_cint_r_vf, "__builtin_altivec_vcfux");
91 -- vec_cts --
93 function vec_cts_vf_cint_r_vsi
94 (A : vector_float;
95 B : c_int) return vector_signed_int;
97 pragma Import
98 (LL_Altivec, vec_cts_vf_cint_r_vsi, "__builtin_altivec_vctsxs");
100 -- vec_ctu --
102 function vec_ctu_vf_cint_r_vui
103 (A : vector_float;
104 B : c_int) return vector_unsigned_int;
106 pragma Import
107 (LL_Altivec, vec_ctu_vf_cint_r_vui, "__builtin_altivec_vctuxs");
109 -- vec_dss --
111 procedure vec_dss_cint
112 (A : c_int);
114 pragma Import
115 (LL_Altivec, vec_dss_cint, "__builtin_altivec_dss");
117 -- vec_dst --
119 procedure vec_dst_kvucp_cint_cint
120 (A : const_vector_unsigned_char_ptr;
121 B : c_int;
122 C : c_int);
124 pragma Import
125 (LL_Altivec, vec_dst_kvucp_cint_cint, "__builtin_altivec_dst");
127 procedure vec_dst_kvscp_cint_cint
128 (A : const_vector_signed_char_ptr;
129 B : c_int;
130 C : c_int);
132 pragma Import
133 (LL_Altivec, vec_dst_kvscp_cint_cint, "__builtin_altivec_dst");
135 procedure vec_dst_kvbcp_cint_cint
136 (A : const_vector_bool_char_ptr;
137 B : c_int;
138 C : c_int);
140 pragma Import
141 (LL_Altivec, vec_dst_kvbcp_cint_cint, "__builtin_altivec_dst");
143 procedure vec_dst_kvusp_cint_cint
144 (A : const_vector_unsigned_short_ptr;
145 B : c_int;
146 C : c_int);
148 pragma Import
149 (LL_Altivec, vec_dst_kvusp_cint_cint, "__builtin_altivec_dst");
151 procedure vec_dst_kvssp_cint_cint
152 (A : const_vector_signed_short_ptr;
153 B : c_int;
154 C : c_int);
156 pragma Import
157 (LL_Altivec, vec_dst_kvssp_cint_cint, "__builtin_altivec_dst");
159 procedure vec_dst_kvbsp_cint_cint
160 (A : const_vector_bool_short_ptr;
161 B : c_int;
162 C : c_int);
164 pragma Import
165 (LL_Altivec, vec_dst_kvbsp_cint_cint, "__builtin_altivec_dst");
167 procedure vec_dst_kvxp_cint_cint
168 (A : const_vector_pixel_ptr;
169 B : c_int;
170 C : c_int);
172 pragma Import
173 (LL_Altivec, vec_dst_kvxp_cint_cint, "__builtin_altivec_dst");
175 procedure vec_dst_kvuip_cint_cint
176 (A : const_vector_unsigned_int_ptr;
177 B : c_int;
178 C : c_int);
180 pragma Import
181 (LL_Altivec, vec_dst_kvuip_cint_cint, "__builtin_altivec_dst");
183 procedure vec_dst_kvsip_cint_cint
184 (A : const_vector_signed_int_ptr;
185 B : c_int;
186 C : c_int);
188 pragma Import
189 (LL_Altivec, vec_dst_kvsip_cint_cint, "__builtin_altivec_dst");
191 procedure vec_dst_kvbip_cint_cint
192 (A : const_vector_bool_int_ptr;
193 B : c_int;
194 C : c_int);
196 pragma Import
197 (LL_Altivec, vec_dst_kvbip_cint_cint, "__builtin_altivec_dst");
199 procedure vec_dst_kvfp_cint_cint
200 (A : const_vector_float_ptr;
201 B : c_int;
202 C : c_int);
204 pragma Import
205 (LL_Altivec, vec_dst_kvfp_cint_cint, "__builtin_altivec_dst");
207 procedure vec_dst_kucp_cint_cint
208 (A : const_unsigned_char_ptr;
209 B : c_int;
210 C : c_int);
212 pragma Import
213 (LL_Altivec, vec_dst_kucp_cint_cint, "__builtin_altivec_dst");
215 procedure vec_dst_kscp_cint_cint
216 (A : const_signed_char_ptr;
217 B : c_int;
218 C : c_int);
220 pragma Import
221 (LL_Altivec, vec_dst_kscp_cint_cint, "__builtin_altivec_dst");
223 procedure vec_dst_kusp_cint_cint
224 (A : const_unsigned_short_ptr;
225 B : c_int;
226 C : c_int);
228 pragma Import
229 (LL_Altivec, vec_dst_kusp_cint_cint, "__builtin_altivec_dst");
231 procedure vec_dst_ksp_cint_cint
232 (A : const_short_ptr;
233 B : c_int;
234 C : c_int);
236 pragma Import
237 (LL_Altivec, vec_dst_ksp_cint_cint, "__builtin_altivec_dst");
239 procedure vec_dst_kuip_cint_cint
240 (A : const_unsigned_int_ptr;
241 B : c_int;
242 C : c_int);
244 pragma Import
245 (LL_Altivec, vec_dst_kuip_cint_cint, "__builtin_altivec_dst");
247 procedure vec_dst_kip_cint_cint
248 (A : const_int_ptr;
249 B : c_int;
250 C : c_int);
252 pragma Import
253 (LL_Altivec, vec_dst_kip_cint_cint, "__builtin_altivec_dst");
255 procedure vec_dst_kulongp_cint_cint
256 (A : const_unsigned_long_ptr;
257 B : c_int;
258 C : c_int);
260 pragma Import
261 (LL_Altivec, vec_dst_kulongp_cint_cint, "__builtin_altivec_dst");
263 procedure vec_dst_klongp_cint_cint
264 (A : const_long_ptr;
265 B : c_int;
266 C : c_int);
268 pragma Import
269 (LL_Altivec, vec_dst_klongp_cint_cint, "__builtin_altivec_dst");
271 procedure vec_dst_kfp_cint_cint
272 (A : const_float_ptr;
273 B : c_int;
274 C : c_int);
276 pragma Import
277 (LL_Altivec, vec_dst_kfp_cint_cint, "__builtin_altivec_dst");
279 -- vec_dstst --
281 procedure vec_dstst_kvucp_cint_cint
282 (A : const_vector_unsigned_char_ptr;
283 B : c_int;
284 C : c_int);
286 pragma Import
287 (LL_Altivec, vec_dstst_kvucp_cint_cint, "__builtin_altivec_dstst");
289 procedure vec_dstst_kvscp_cint_cint
290 (A : const_vector_signed_char_ptr;
291 B : c_int;
292 C : c_int);
294 pragma Import
295 (LL_Altivec, vec_dstst_kvscp_cint_cint, "__builtin_altivec_dstst");
297 procedure vec_dstst_kvbcp_cint_cint
298 (A : const_vector_bool_char_ptr;
299 B : c_int;
300 C : c_int);
302 pragma Import
303 (LL_Altivec, vec_dstst_kvbcp_cint_cint, "__builtin_altivec_dstst");
305 procedure vec_dstst_kvusp_cint_cint
306 (A : const_vector_unsigned_short_ptr;
307 B : c_int;
308 C : c_int);
310 pragma Import
311 (LL_Altivec, vec_dstst_kvusp_cint_cint, "__builtin_altivec_dstst");
313 procedure vec_dstst_kvssp_cint_cint
314 (A : const_vector_signed_short_ptr;
315 B : c_int;
316 C : c_int);
318 pragma Import
319 (LL_Altivec, vec_dstst_kvssp_cint_cint, "__builtin_altivec_dstst");
321 procedure vec_dstst_kvbsp_cint_cint
322 (A : const_vector_bool_short_ptr;
323 B : c_int;
324 C : c_int);
326 pragma Import
327 (LL_Altivec, vec_dstst_kvbsp_cint_cint, "__builtin_altivec_dstst");
329 procedure vec_dstst_kvxp_cint_cint
330 (A : const_vector_pixel_ptr;
331 B : c_int;
332 C : c_int);
334 pragma Import
335 (LL_Altivec, vec_dstst_kvxp_cint_cint, "__builtin_altivec_dstst");
337 procedure vec_dstst_kvuip_cint_cint
338 (A : const_vector_unsigned_int_ptr;
339 B : c_int;
340 C : c_int);
342 pragma Import
343 (LL_Altivec, vec_dstst_kvuip_cint_cint, "__builtin_altivec_dstst");
345 procedure vec_dstst_kvsip_cint_cint
346 (A : const_vector_signed_int_ptr;
347 B : c_int;
348 C : c_int);
350 pragma Import
351 (LL_Altivec, vec_dstst_kvsip_cint_cint, "__builtin_altivec_dstst");
353 procedure vec_dstst_kvbip_cint_cint
354 (A : const_vector_bool_int_ptr;
355 B : c_int;
356 C : c_int);
358 pragma Import
359 (LL_Altivec, vec_dstst_kvbip_cint_cint, "__builtin_altivec_dstst");
361 procedure vec_dstst_kvfp_cint_cint
362 (A : const_vector_float_ptr;
363 B : c_int;
364 C : c_int);
366 pragma Import
367 (LL_Altivec, vec_dstst_kvfp_cint_cint, "__builtin_altivec_dstst");
369 procedure vec_dstst_kucp_cint_cint
370 (A : const_unsigned_char_ptr;
371 B : c_int;
372 C : c_int);
374 pragma Import
375 (LL_Altivec, vec_dstst_kucp_cint_cint, "__builtin_altivec_dstst");
377 procedure vec_dstst_kscp_cint_cint
378 (A : const_signed_char_ptr;
379 B : c_int;
380 C : c_int);
382 pragma Import
383 (LL_Altivec, vec_dstst_kscp_cint_cint, "__builtin_altivec_dstst");
385 procedure vec_dstst_kusp_cint_cint
386 (A : const_unsigned_short_ptr;
387 B : c_int;
388 C : c_int);
390 pragma Import
391 (LL_Altivec, vec_dstst_kusp_cint_cint, "__builtin_altivec_dstst");
393 procedure vec_dstst_ksp_cint_cint
394 (A : const_short_ptr;
395 B : c_int;
396 C : c_int);
398 pragma Import
399 (LL_Altivec, vec_dstst_ksp_cint_cint, "__builtin_altivec_dstst");
401 procedure vec_dstst_kuip_cint_cint
402 (A : const_unsigned_int_ptr;
403 B : c_int;
404 C : c_int);
406 pragma Import
407 (LL_Altivec, vec_dstst_kuip_cint_cint, "__builtin_altivec_dstst");
409 procedure vec_dstst_kip_cint_cint
410 (A : const_int_ptr;
411 B : c_int;
412 C : c_int);
414 pragma Import
415 (LL_Altivec, vec_dstst_kip_cint_cint, "__builtin_altivec_dstst");
417 procedure vec_dstst_kulongp_cint_cint
418 (A : const_unsigned_long_ptr;
419 B : c_int;
420 C : c_int);
422 pragma Import
423 (LL_Altivec, vec_dstst_kulongp_cint_cint, "__builtin_altivec_dstst");
425 procedure vec_dstst_klongp_cint_cint
426 (A : const_long_ptr;
427 B : c_int;
428 C : c_int);
430 pragma Import
431 (LL_Altivec, vec_dstst_klongp_cint_cint, "__builtin_altivec_dstst");
433 procedure vec_dstst_kfp_cint_cint
434 (A : const_float_ptr;
435 B : c_int;
436 C : c_int);
438 pragma Import
439 (LL_Altivec, vec_dstst_kfp_cint_cint, "__builtin_altivec_dstst");
441 -- vec_dststt --
443 procedure vec_dststt_kvucp_cint_cint
444 (A : const_vector_unsigned_char_ptr;
445 B : c_int;
446 C : c_int);
448 pragma Import
449 (LL_Altivec, vec_dststt_kvucp_cint_cint, "__builtin_altivec_dststt");
451 procedure vec_dststt_kvscp_cint_cint
452 (A : const_vector_signed_char_ptr;
453 B : c_int;
454 C : c_int);
456 pragma Import
457 (LL_Altivec, vec_dststt_kvscp_cint_cint, "__builtin_altivec_dststt");
459 procedure vec_dststt_kvbcp_cint_cint
460 (A : const_vector_bool_char_ptr;
461 B : c_int;
462 C : c_int);
464 pragma Import
465 (LL_Altivec, vec_dststt_kvbcp_cint_cint, "__builtin_altivec_dststt");
467 procedure vec_dststt_kvusp_cint_cint
468 (A : const_vector_unsigned_short_ptr;
469 B : c_int;
470 C : c_int);
472 pragma Import
473 (LL_Altivec, vec_dststt_kvusp_cint_cint, "__builtin_altivec_dststt");
475 procedure vec_dststt_kvssp_cint_cint
476 (A : const_vector_signed_short_ptr;
477 B : c_int;
478 C : c_int);
480 pragma Import
481 (LL_Altivec, vec_dststt_kvssp_cint_cint, "__builtin_altivec_dststt");
483 procedure vec_dststt_kvbsp_cint_cint
484 (A : const_vector_bool_short_ptr;
485 B : c_int;
486 C : c_int);
488 pragma Import
489 (LL_Altivec, vec_dststt_kvbsp_cint_cint, "__builtin_altivec_dststt");
491 procedure vec_dststt_kvxp_cint_cint
492 (A : const_vector_pixel_ptr;
493 B : c_int;
494 C : c_int);
496 pragma Import
497 (LL_Altivec, vec_dststt_kvxp_cint_cint, "__builtin_altivec_dststt");
499 procedure vec_dststt_kvuip_cint_cint
500 (A : const_vector_unsigned_int_ptr;
501 B : c_int;
502 C : c_int);
504 pragma Import
505 (LL_Altivec, vec_dststt_kvuip_cint_cint, "__builtin_altivec_dststt");
507 procedure vec_dststt_kvsip_cint_cint
508 (A : const_vector_signed_int_ptr;
509 B : c_int;
510 C : c_int);
512 pragma Import
513 (LL_Altivec, vec_dststt_kvsip_cint_cint, "__builtin_altivec_dststt");
515 procedure vec_dststt_kvbip_cint_cint
516 (A : const_vector_bool_int_ptr;
517 B : c_int;
518 C : c_int);
520 pragma Import
521 (LL_Altivec, vec_dststt_kvbip_cint_cint, "__builtin_altivec_dststt");
523 procedure vec_dststt_kvfp_cint_cint
524 (A : const_vector_float_ptr;
525 B : c_int;
526 C : c_int);
528 pragma Import
529 (LL_Altivec, vec_dststt_kvfp_cint_cint, "__builtin_altivec_dststt");
531 procedure vec_dststt_kucp_cint_cint
532 (A : const_unsigned_char_ptr;
533 B : c_int;
534 C : c_int);
536 pragma Import
537 (LL_Altivec, vec_dststt_kucp_cint_cint, "__builtin_altivec_dststt");
539 procedure vec_dststt_kscp_cint_cint
540 (A : const_signed_char_ptr;
541 B : c_int;
542 C : c_int);
544 pragma Import
545 (LL_Altivec, vec_dststt_kscp_cint_cint, "__builtin_altivec_dststt");
547 procedure vec_dststt_kusp_cint_cint
548 (A : const_unsigned_short_ptr;
549 B : c_int;
550 C : c_int);
552 pragma Import
553 (LL_Altivec, vec_dststt_kusp_cint_cint, "__builtin_altivec_dststt");
555 procedure vec_dststt_ksp_cint_cint
556 (A : const_short_ptr;
557 B : c_int;
558 C : c_int);
560 pragma Import
561 (LL_Altivec, vec_dststt_ksp_cint_cint, "__builtin_altivec_dststt");
563 procedure vec_dststt_kuip_cint_cint
564 (A : const_unsigned_int_ptr;
565 B : c_int;
566 C : c_int);
568 pragma Import
569 (LL_Altivec, vec_dststt_kuip_cint_cint, "__builtin_altivec_dststt");
571 procedure vec_dststt_kip_cint_cint
572 (A : const_int_ptr;
573 B : c_int;
574 C : c_int);
576 pragma Import
577 (LL_Altivec, vec_dststt_kip_cint_cint, "__builtin_altivec_dststt");
579 procedure vec_dststt_kulongp_cint_cint
580 (A : const_unsigned_long_ptr;
581 B : c_int;
582 C : c_int);
584 pragma Import
585 (LL_Altivec, vec_dststt_kulongp_cint_cint, "__builtin_altivec_dststt");
587 procedure vec_dststt_klongp_cint_cint
588 (A : const_long_ptr;
589 B : c_int;
590 C : c_int);
592 pragma Import
593 (LL_Altivec, vec_dststt_klongp_cint_cint, "__builtin_altivec_dststt");
595 procedure vec_dststt_kfp_cint_cint
596 (A : const_float_ptr;
597 B : c_int;
598 C : c_int);
600 pragma Import
601 (LL_Altivec, vec_dststt_kfp_cint_cint, "__builtin_altivec_dststt");
603 -- vec_dstt --
605 procedure vec_dstt_kvucp_cint_cint
606 (A : const_vector_unsigned_char_ptr;
607 B : c_int;
608 C : c_int);
610 pragma Import
611 (LL_Altivec, vec_dstt_kvucp_cint_cint, "__builtin_altivec_dstt");
613 procedure vec_dstt_kvscp_cint_cint
614 (A : const_vector_signed_char_ptr;
615 B : c_int;
616 C : c_int);
618 pragma Import
619 (LL_Altivec, vec_dstt_kvscp_cint_cint, "__builtin_altivec_dstt");
621 procedure vec_dstt_kvbcp_cint_cint
622 (A : const_vector_bool_char_ptr;
623 B : c_int;
624 C : c_int);
626 pragma Import
627 (LL_Altivec, vec_dstt_kvbcp_cint_cint, "__builtin_altivec_dstt");
629 procedure vec_dstt_kvusp_cint_cint
630 (A : const_vector_unsigned_short_ptr;
631 B : c_int;
632 C : c_int);
634 pragma Import
635 (LL_Altivec, vec_dstt_kvusp_cint_cint, "__builtin_altivec_dstt");
637 procedure vec_dstt_kvssp_cint_cint
638 (A : const_vector_signed_short_ptr;
639 B : c_int;
640 C : c_int);
642 pragma Import
643 (LL_Altivec, vec_dstt_kvssp_cint_cint, "__builtin_altivec_dstt");
645 procedure vec_dstt_kvbsp_cint_cint
646 (A : const_vector_bool_short_ptr;
647 B : c_int;
648 C : c_int);
650 pragma Import
651 (LL_Altivec, vec_dstt_kvbsp_cint_cint, "__builtin_altivec_dstt");
653 procedure vec_dstt_kvxp_cint_cint
654 (A : const_vector_pixel_ptr;
655 B : c_int;
656 C : c_int);
658 pragma Import
659 (LL_Altivec, vec_dstt_kvxp_cint_cint, "__builtin_altivec_dstt");
661 procedure vec_dstt_kvuip_cint_cint
662 (A : const_vector_unsigned_int_ptr;
663 B : c_int;
664 C : c_int);
666 pragma Import
667 (LL_Altivec, vec_dstt_kvuip_cint_cint, "__builtin_altivec_dstt");
669 procedure vec_dstt_kvsip_cint_cint
670 (A : const_vector_signed_int_ptr;
671 B : c_int;
672 C : c_int);
674 pragma Import
675 (LL_Altivec, vec_dstt_kvsip_cint_cint, "__builtin_altivec_dstt");
677 procedure vec_dstt_kvbip_cint_cint
678 (A : const_vector_bool_int_ptr;
679 B : c_int;
680 C : c_int);
682 pragma Import
683 (LL_Altivec, vec_dstt_kvbip_cint_cint, "__builtin_altivec_dstt");
685 procedure vec_dstt_kvfp_cint_cint
686 (A : const_vector_float_ptr;
687 B : c_int;
688 C : c_int);
690 pragma Import
691 (LL_Altivec, vec_dstt_kvfp_cint_cint, "__builtin_altivec_dstt");
693 procedure vec_dstt_kucp_cint_cint
694 (A : const_unsigned_char_ptr;
695 B : c_int;
696 C : c_int);
698 pragma Import
699 (LL_Altivec, vec_dstt_kucp_cint_cint, "__builtin_altivec_dstt");
701 procedure vec_dstt_kscp_cint_cint
702 (A : const_signed_char_ptr;
703 B : c_int;
704 C : c_int);
706 pragma Import
707 (LL_Altivec, vec_dstt_kscp_cint_cint, "__builtin_altivec_dstt");
709 procedure vec_dstt_kusp_cint_cint
710 (A : const_unsigned_short_ptr;
711 B : c_int;
712 C : c_int);
714 pragma Import
715 (LL_Altivec, vec_dstt_kusp_cint_cint, "__builtin_altivec_dstt");
717 procedure vec_dstt_ksp_cint_cint
718 (A : const_short_ptr;
719 B : c_int;
720 C : c_int);
722 pragma Import
723 (LL_Altivec, vec_dstt_ksp_cint_cint, "__builtin_altivec_dstt");
725 procedure vec_dstt_kuip_cint_cint
726 (A : const_unsigned_int_ptr;
727 B : c_int;
728 C : c_int);
730 pragma Import
731 (LL_Altivec, vec_dstt_kuip_cint_cint, "__builtin_altivec_dstt");
733 procedure vec_dstt_kip_cint_cint
734 (A : const_int_ptr;
735 B : c_int;
736 C : c_int);
738 pragma Import
739 (LL_Altivec, vec_dstt_kip_cint_cint, "__builtin_altivec_dstt");
741 procedure vec_dstt_kulongp_cint_cint
742 (A : const_unsigned_long_ptr;
743 B : c_int;
744 C : c_int);
746 pragma Import
747 (LL_Altivec, vec_dstt_kulongp_cint_cint, "__builtin_altivec_dstt");
749 procedure vec_dstt_klongp_cint_cint
750 (A : const_long_ptr;
751 B : c_int;
752 C : c_int);
754 pragma Import
755 (LL_Altivec, vec_dstt_klongp_cint_cint, "__builtin_altivec_dstt");
757 procedure vec_dstt_kfp_cint_cint
758 (A : const_float_ptr;
759 B : c_int;
760 C : c_int);
762 pragma Import
763 (LL_Altivec, vec_dstt_kfp_cint_cint, "__builtin_altivec_dstt");
765 -- vec_sld --
767 -- ??? The base GCC implementation maps everything to vsldoi_4si, while
768 -- it defines builtin variants for all the modes. Adjust here, to avoid
769 -- the infamous argument mode mismatch.
771 function vec_sld_vf_vf_cint_r_vf
772 (A : vector_float;
773 B : vector_float;
774 C : c_int) return vector_float;
776 pragma Import
777 (LL_Altivec, vec_sld_vf_vf_cint_r_vf, "__builtin_altivec_vsldoi_4sf");
779 function vec_sld_vsi_vsi_cint_r_vsi
780 (A : vector_signed_int;
781 B : vector_signed_int;
782 C : c_int) return vector_signed_int;
784 pragma Import
785 (LL_Altivec, vec_sld_vsi_vsi_cint_r_vsi, "__builtin_altivec_vsldoi_4si");
787 function vec_sld_vui_vui_cint_r_vui
788 (A : vector_unsigned_int;
789 B : vector_unsigned_int;
790 C : c_int) return vector_unsigned_int;
792 pragma Import
793 (LL_Altivec, vec_sld_vui_vui_cint_r_vui, "__builtin_altivec_vsldoi_4si");
795 function vec_sld_vbi_vbi_cint_r_vbi
796 (A : vector_bool_int;
797 B : vector_bool_int;
798 C : c_int) return vector_bool_int;
800 pragma Import
801 (LL_Altivec, vec_sld_vbi_vbi_cint_r_vbi, "__builtin_altivec_vsldoi_4si");
803 function vec_sld_vss_vss_cint_r_vss
804 (A : vector_signed_short;
805 B : vector_signed_short;
806 C : c_int) return vector_signed_short;
808 pragma Import
809 (LL_Altivec, vec_sld_vss_vss_cint_r_vss, "__builtin_altivec_vsldoi_8hi");
811 function vec_sld_vus_vus_cint_r_vus
812 (A : vector_unsigned_short;
813 B : vector_unsigned_short;
814 C : c_int) return vector_unsigned_short;
816 pragma Import
817 (LL_Altivec, vec_sld_vus_vus_cint_r_vus, "__builtin_altivec_vsldoi_8hi");
819 function vec_sld_vbs_vbs_cint_r_vbs
820 (A : vector_bool_short;
821 B : vector_bool_short;
822 C : c_int) return vector_bool_short;
824 pragma Import
825 (LL_Altivec, vec_sld_vbs_vbs_cint_r_vbs, "__builtin_altivec_vsldoi_8hi");
827 function vec_sld_vx_vx_cint_r_vx
828 (A : vector_pixel;
829 B : vector_pixel;
830 C : c_int) return vector_pixel;
832 pragma Import
833 (LL_Altivec, vec_sld_vx_vx_cint_r_vx, "__builtin_altivec_vsldoi_8hi");
835 function vec_sld_vsc_vsc_cint_r_vsc
836 (A : vector_signed_char;
837 B : vector_signed_char;
838 C : c_int) return vector_signed_char;
840 pragma Import
841 (LL_Altivec, vec_sld_vsc_vsc_cint_r_vsc, "__builtin_altivec_vsldoi_16qi");
843 function vec_sld_vuc_vuc_cint_r_vuc
844 (A : vector_unsigned_char;
845 B : vector_unsigned_char;
846 C : c_int) return vector_unsigned_char;
848 pragma Import
849 (LL_Altivec, vec_sld_vuc_vuc_cint_r_vuc, "__builtin_altivec_vsldoi_16qi");
851 function vec_sld_vbc_vbc_cint_r_vbc
852 (A : vector_bool_char;
853 B : vector_bool_char;
854 C : c_int) return vector_bool_char;
856 pragma Import
857 (LL_Altivec, vec_sld_vbc_vbc_cint_r_vbc, "__builtin_altivec_vsldoi_16qi");
859 -- vec_splat --
861 function vec_splat_vsc_cint_r_vsc
862 (A : vector_signed_char;
863 B : c_int) return vector_signed_char;
865 pragma Import
866 (LL_Altivec, vec_splat_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
868 function vec_splat_vuc_cint_r_vuc
869 (A : vector_unsigned_char;
870 B : c_int) return vector_unsigned_char;
872 pragma Import
873 (LL_Altivec, vec_splat_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
875 function vec_splat_vbc_cint_r_vbc
876 (A : vector_bool_char;
877 B : c_int) return vector_bool_char;
879 pragma Import
880 (LL_Altivec, vec_splat_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
882 function vec_splat_vss_cint_r_vss
883 (A : vector_signed_short;
884 B : c_int) return vector_signed_short;
886 pragma Import
887 (LL_Altivec, vec_splat_vss_cint_r_vss, "__builtin_altivec_vsplth");
889 function vec_splat_vus_cint_r_vus
890 (A : vector_unsigned_short;
891 B : c_int) return vector_unsigned_short;
893 pragma Import
894 (LL_Altivec, vec_splat_vus_cint_r_vus, "__builtin_altivec_vsplth");
896 function vec_splat_vbs_cint_r_vbs
897 (A : vector_bool_short;
898 B : c_int) return vector_bool_short;
900 pragma Import
901 (LL_Altivec, vec_splat_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
903 function vec_splat_vx_cint_r_vx
904 (A : vector_pixel;
905 B : c_int) return vector_pixel;
907 pragma Import
908 (LL_Altivec, vec_splat_vx_cint_r_vx, "__builtin_altivec_vsplth");
910 function vec_splat_vf_cint_r_vf
911 (A : vector_float;
912 B : c_int) return vector_float;
914 pragma Import
915 (LL_Altivec, vec_splat_vf_cint_r_vf, "__builtin_altivec_vspltw");
917 function vec_splat_vsi_cint_r_vsi
918 (A : vector_signed_int;
919 B : c_int) return vector_signed_int;
921 pragma Import
922 (LL_Altivec, vec_splat_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
924 function vec_splat_vui_cint_r_vui
925 (A : vector_unsigned_int;
926 B : c_int) return vector_unsigned_int;
928 pragma Import
929 (LL_Altivec, vec_splat_vui_cint_r_vui, "__builtin_altivec_vspltw");
931 function vec_splat_vbi_cint_r_vbi
932 (A : vector_bool_int;
933 B : c_int) return vector_bool_int;
935 pragma Import
936 (LL_Altivec, vec_splat_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
938 -- vec_vspltw --
940 function vec_vspltw_vf_cint_r_vf
941 (A : vector_float;
942 B : c_int) return vector_float;
944 pragma Import
945 (LL_Altivec, vec_vspltw_vf_cint_r_vf, "__builtin_altivec_vspltw");
947 function vec_vspltw_vsi_cint_r_vsi
948 (A : vector_signed_int;
949 B : c_int) return vector_signed_int;
951 pragma Import
952 (LL_Altivec, vec_vspltw_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
954 function vec_vspltw_vui_cint_r_vui
955 (A : vector_unsigned_int;
956 B : c_int) return vector_unsigned_int;
958 pragma Import
959 (LL_Altivec, vec_vspltw_vui_cint_r_vui, "__builtin_altivec_vspltw");
961 function vec_vspltw_vbi_cint_r_vbi
962 (A : vector_bool_int;
963 B : c_int) return vector_bool_int;
965 pragma Import
966 (LL_Altivec, vec_vspltw_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
968 -- vec_vsplth --
970 function vec_vsplth_vbs_cint_r_vbs
971 (A : vector_bool_short;
972 B : c_int) return vector_bool_short;
974 pragma Import
975 (LL_Altivec, vec_vsplth_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
977 function vec_vsplth_vss_cint_r_vss
978 (A : vector_signed_short;
979 B : c_int) return vector_signed_short;
981 pragma Import
982 (LL_Altivec, vec_vsplth_vss_cint_r_vss, "__builtin_altivec_vsplth");
984 function vec_vsplth_vus_cint_r_vus
985 (A : vector_unsigned_short;
986 B : c_int) return vector_unsigned_short;
988 pragma Import
989 (LL_Altivec, vec_vsplth_vus_cint_r_vus, "__builtin_altivec_vsplth");
991 function vec_vsplth_vx_cint_r_vx
992 (A : vector_pixel;
993 B : c_int) return vector_pixel;
995 pragma Import
996 (LL_Altivec, vec_vsplth_vx_cint_r_vx, "__builtin_altivec_vsplth");
998 -- vec_vspltb --
1000 function vec_vspltb_vsc_cint_r_vsc
1001 (A : vector_signed_char;
1002 B : c_int) return vector_signed_char;
1004 pragma Import
1005 (LL_Altivec, vec_vspltb_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
1007 function vec_vspltb_vuc_cint_r_vuc
1008 (A : vector_unsigned_char;
1009 B : c_int) return vector_unsigned_char;
1011 pragma Import
1012 (LL_Altivec, vec_vspltb_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
1014 function vec_vspltb_vbc_cint_r_vbc
1015 (A : vector_bool_char;
1016 B : c_int) return vector_bool_char;
1018 pragma Import
1019 (LL_Altivec, vec_vspltb_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
1021 -- vec_splat_s8 --
1023 function vec_splat_s8_cint_r_vsc
1024 (A : c_int) return vector_signed_char;
1026 pragma Import
1027 (LL_Altivec, vec_splat_s8_cint_r_vsc, "__builtin_altivec_vspltisb");
1029 -- vec_splat_s16 --
1031 function vec_splat_s16_cint_r_vss
1032 (A : c_int) return vector_signed_short;
1034 pragma Import
1035 (LL_Altivec, vec_splat_s16_cint_r_vss, "__builtin_altivec_vspltish");
1037 -- vec_splat_s32 --
1039 function vec_splat_s32_cint_r_vsi
1040 (A : c_int) return vector_signed_int;
1042 pragma Import
1043 (LL_Altivec, vec_splat_s32_cint_r_vsi, "__builtin_altivec_vspltisw");
1045 -- vec_splat_u8 --
1047 function vec_splat_u8_cint_r_vuc
1048 (A : c_int) return vector_unsigned_char;
1050 pragma Import
1051 (LL_Altivec, vec_splat_u8_cint_r_vuc, "__builtin_altivec_vspltisb");
1053 -- vec_splat_u16 --
1055 function vec_splat_u16_cint_r_vus
1056 (A : c_int) return vector_unsigned_short;
1058 pragma Import
1059 (LL_Altivec, vec_splat_u16_cint_r_vus, "__builtin_altivec_vspltish");
1061 -- vec_splat_u32 --
1063 function vec_splat_u32_cint_r_vui
1064 (A : c_int) return vector_unsigned_int;
1066 pragma Import
1067 (LL_Altivec, vec_splat_u32_cint_r_vui, "__builtin_altivec_vspltisw");
1069 ------------------------------------------------------------
1070 -- Imports for low-level signature consistent subprograms --
1071 ------------------------------------------------------------
1073 -- vec_dssall --
1075 procedure vec_dssall;
1077 pragma Import
1078 (LL_Altivec, vec_dssall, "__builtin_altivec_dssall");
1080 -----------------------------------------
1081 -- Conversions between low level types --
1082 -----------------------------------------
1084 use GNAT.Altivec.Low_Level_Vectors;
1086 -- Something like...
1088 -- TYPES="LL_VBC LL_VUC LL_VSC LL_VBS LL_VUS LL_VSS \
1089 -- LL_VBI LL_VUI LL_VSI LL_VF LL_VP"
1090 -- for TT in `echo $TYPES`; do
1091 -- for ST in `echo $TYPES`; do
1092 -- echo "function To_$TT is new Ada.Unchecked_Conversion ($ST, $TT);"
1093 -- done
1094 -- echo ""
1095 -- done
1097 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBC, LL_VBC);
1098 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUC, LL_VBC);
1099 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSC, LL_VBC);
1100 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBS, LL_VBC);
1101 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUS, LL_VBC);
1102 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSS, LL_VBC);
1103 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBI, LL_VBC);
1104 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUI, LL_VBC);
1105 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSI, LL_VBC);
1106 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VF, LL_VBC);
1107 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VP, LL_VBC);
1109 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBC, LL_VUC);
1110 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUC, LL_VUC);
1111 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSC, LL_VUC);
1112 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBS, LL_VUC);
1113 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUS, LL_VUC);
1114 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSS, LL_VUC);
1115 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBI, LL_VUC);
1116 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUI, LL_VUC);
1117 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSI, LL_VUC);
1118 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VF, LL_VUC);
1119 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VP, LL_VUC);
1121 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBC, LL_VSC);
1122 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUC, LL_VSC);
1123 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSC, LL_VSC);
1124 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBS, LL_VSC);
1125 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUS, LL_VSC);
1126 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSS, LL_VSC);
1127 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBI, LL_VSC);
1128 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUI, LL_VSC);
1129 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSI, LL_VSC);
1130 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VF, LL_VSC);
1131 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VP, LL_VSC);
1133 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBC, LL_VBS);
1134 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUC, LL_VBS);
1135 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSC, LL_VBS);
1136 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBS, LL_VBS);
1137 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUS, LL_VBS);
1138 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSS, LL_VBS);
1139 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBI, LL_VBS);
1140 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUI, LL_VBS);
1141 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSI, LL_VBS);
1142 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VF, LL_VBS);
1143 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VP, LL_VBS);
1145 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBC, LL_VUS);
1146 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUC, LL_VUS);
1147 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSC, LL_VUS);
1148 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBS, LL_VUS);
1149 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUS, LL_VUS);
1150 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSS, LL_VUS);
1151 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBI, LL_VUS);
1152 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUI, LL_VUS);
1153 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSI, LL_VUS);
1154 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VF, LL_VUS);
1155 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VP, LL_VUS);
1157 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBC, LL_VSS);
1158 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUC, LL_VSS);
1159 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSC, LL_VSS);
1160 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBS, LL_VSS);
1161 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUS, LL_VSS);
1162 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSS, LL_VSS);
1163 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBI, LL_VSS);
1164 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUI, LL_VSS);
1165 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSI, LL_VSS);
1166 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VF, LL_VSS);
1167 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VP, LL_VSS);
1169 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBC, LL_VBI);
1170 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUC, LL_VBI);
1171 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSC, LL_VBI);
1172 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBS, LL_VBI);
1173 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUS, LL_VBI);
1174 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSS, LL_VBI);
1175 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBI, LL_VBI);
1176 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUI, LL_VBI);
1177 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSI, LL_VBI);
1178 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VF, LL_VBI);
1179 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VP, LL_VBI);
1181 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBC, LL_VUI);
1182 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUC, LL_VUI);
1183 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSC, LL_VUI);
1184 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBS, LL_VUI);
1185 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUS, LL_VUI);
1186 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSS, LL_VUI);
1187 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBI, LL_VUI);
1188 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUI, LL_VUI);
1189 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSI, LL_VUI);
1190 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VF, LL_VUI);
1191 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VP, LL_VUI);
1193 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBC, LL_VSI);
1194 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUC, LL_VSI);
1195 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSC, LL_VSI);
1196 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBS, LL_VSI);
1197 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUS, LL_VSI);
1198 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSS, LL_VSI);
1199 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBI, LL_VSI);
1200 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUI, LL_VSI);
1201 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSI, LL_VSI);
1202 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VF, LL_VSI);
1203 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VP, LL_VSI);
1205 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBC, LL_VF);
1206 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUC, LL_VF);
1207 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSC, LL_VF);
1208 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBS, LL_VF);
1209 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUS, LL_VF);
1210 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSS, LL_VF);
1211 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBI, LL_VF);
1212 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUI, LL_VF);
1213 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSI, LL_VF);
1214 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VF, LL_VF);
1215 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VP, LL_VF);
1217 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBC, LL_VP);
1218 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUC, LL_VP);
1219 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSC, LL_VP);
1220 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBS, LL_VP);
1221 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUS, LL_VP);
1222 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSS, LL_VP);
1223 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBI, LL_VP);
1224 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUI, LL_VP);
1225 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSI, LL_VP);
1226 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VF, LL_VP);
1227 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VP, LL_VP);
1229 ----------------------------------------------
1230 -- Conversions between pointer/access types --
1231 ----------------------------------------------
1233 function To_PTR is
1234 new Ada.Unchecked_Conversion (vector_unsigned_char_ptr, c_ptr);
1235 function To_PTR is
1236 new Ada.Unchecked_Conversion (vector_signed_char_ptr, c_ptr);
1237 function To_PTR is
1238 new Ada.Unchecked_Conversion (vector_bool_char_ptr, c_ptr);
1239 function To_PTR is
1240 new Ada.Unchecked_Conversion (vector_unsigned_short_ptr, c_ptr);
1241 function To_PTR is
1242 new Ada.Unchecked_Conversion (vector_signed_short_ptr, c_ptr);
1243 function To_PTR is
1244 new Ada.Unchecked_Conversion (vector_bool_short_ptr, c_ptr);
1245 function To_PTR is
1246 new Ada.Unchecked_Conversion (vector_unsigned_int_ptr, c_ptr);
1247 function To_PTR is
1248 new Ada.Unchecked_Conversion (vector_signed_int_ptr, c_ptr);
1249 function To_PTR is
1250 new Ada.Unchecked_Conversion (vector_bool_int_ptr, c_ptr);
1251 function To_PTR is
1252 new Ada.Unchecked_Conversion (vector_float_ptr, c_ptr);
1253 function To_PTR is
1254 new Ada.Unchecked_Conversion (vector_pixel_ptr, c_ptr);
1255 function To_PTR is
1256 new Ada.Unchecked_Conversion (const_vector_bool_char_ptr, c_ptr);
1257 function To_PTR is
1258 new Ada.Unchecked_Conversion (const_vector_signed_char_ptr, c_ptr);
1259 function To_PTR is
1260 new Ada.Unchecked_Conversion (const_vector_unsigned_char_ptr, c_ptr);
1261 function To_PTR is
1262 new Ada.Unchecked_Conversion (const_vector_bool_short_ptr, c_ptr);
1263 function To_PTR is
1264 new Ada.Unchecked_Conversion (const_vector_signed_short_ptr, c_ptr);
1265 function To_PTR is
1266 new Ada.Unchecked_Conversion (const_vector_unsigned_short_ptr, c_ptr);
1267 function To_PTR is
1268 new Ada.Unchecked_Conversion (const_vector_bool_int_ptr, c_ptr);
1269 function To_PTR is
1270 new Ada.Unchecked_Conversion (const_vector_signed_int_ptr, c_ptr);
1271 function To_PTR is
1272 new Ada.Unchecked_Conversion (const_vector_unsigned_int_ptr, c_ptr);
1273 function To_PTR is
1274 new Ada.Unchecked_Conversion (const_vector_float_ptr, c_ptr);
1275 function To_PTR is
1276 new Ada.Unchecked_Conversion (const_vector_pixel_ptr, c_ptr);
1277 function To_PTR is
1278 new Ada.Unchecked_Conversion (c_ptr, c_ptr);
1279 function To_PTR is
1280 new Ada.Unchecked_Conversion (signed_char_ptr, c_ptr);
1281 function To_PTR is
1282 new Ada.Unchecked_Conversion (unsigned_char_ptr, c_ptr);
1283 function To_PTR is
1284 new Ada.Unchecked_Conversion (short_ptr, c_ptr);
1285 function To_PTR is
1286 new Ada.Unchecked_Conversion (signed_short_ptr, c_ptr);
1287 function To_PTR is
1288 new Ada.Unchecked_Conversion (unsigned_short_ptr, c_ptr);
1289 function To_PTR is
1290 new Ada.Unchecked_Conversion (int_ptr, c_ptr);
1291 function To_PTR is
1292 new Ada.Unchecked_Conversion (signed_int_ptr, c_ptr);
1293 function To_PTR is
1294 new Ada.Unchecked_Conversion (unsigned_int_ptr, c_ptr);
1295 function To_PTR is
1296 new Ada.Unchecked_Conversion (long_ptr, c_ptr);
1297 function To_PTR is
1298 new Ada.Unchecked_Conversion (signed_long_ptr, c_ptr);
1299 function To_PTR is
1300 new Ada.Unchecked_Conversion (unsigned_long_ptr, c_ptr);
1301 function To_PTR is
1302 new Ada.Unchecked_Conversion (float_ptr, c_ptr);
1303 function To_PTR is
1304 new Ada.Unchecked_Conversion (const_signed_char_ptr, c_ptr);
1305 function To_PTR is
1306 new Ada.Unchecked_Conversion (const_unsigned_char_ptr, c_ptr);
1307 function To_PTR is
1308 new Ada.Unchecked_Conversion (const_short_ptr, c_ptr);
1309 function To_PTR is
1310 new Ada.Unchecked_Conversion (const_signed_short_ptr, c_ptr);
1311 function To_PTR is
1312 new Ada.Unchecked_Conversion (const_unsigned_short_ptr, c_ptr);
1313 function To_PTR is
1314 new Ada.Unchecked_Conversion (const_int_ptr, c_ptr);
1315 function To_PTR is
1316 new Ada.Unchecked_Conversion (const_signed_int_ptr, c_ptr);
1317 function To_PTR is
1318 new Ada.Unchecked_Conversion (const_unsigned_int_ptr, c_ptr);
1319 function To_PTR is
1320 new Ada.Unchecked_Conversion (const_long_ptr, c_ptr);
1321 function To_PTR is
1322 new Ada.Unchecked_Conversion (const_signed_long_ptr, c_ptr);
1323 function To_PTR is
1324 new Ada.Unchecked_Conversion (const_unsigned_long_ptr, c_ptr);
1325 function To_PTR is
1326 new Ada.Unchecked_Conversion (const_float_ptr, c_ptr);
1327 function To_PTR is
1328 new Ada.Unchecked_Conversion (constv_char_ptr, c_ptr);
1329 function To_PTR is
1330 new Ada.Unchecked_Conversion (constv_signed_char_ptr, c_ptr);
1331 function To_PTR is
1332 new Ada.Unchecked_Conversion (constv_unsigned_char_ptr, c_ptr);
1333 function To_PTR is
1334 new Ada.Unchecked_Conversion (constv_short_ptr, c_ptr);
1335 function To_PTR is
1336 new Ada.Unchecked_Conversion (constv_signed_short_ptr, c_ptr);
1337 function To_PTR is
1338 new Ada.Unchecked_Conversion (constv_unsigned_short_ptr, c_ptr);
1339 function To_PTR is
1340 new Ada.Unchecked_Conversion (constv_int_ptr, c_ptr);
1341 function To_PTR is
1342 new Ada.Unchecked_Conversion (constv_signed_int_ptr, c_ptr);
1343 function To_PTR is
1344 new Ada.Unchecked_Conversion (constv_unsigned_int_ptr, c_ptr);
1345 function To_PTR is
1346 new Ada.Unchecked_Conversion (constv_long_ptr, c_ptr);
1347 function To_PTR is
1348 new Ada.Unchecked_Conversion (constv_signed_long_ptr, c_ptr);
1349 function To_PTR is
1350 new Ada.Unchecked_Conversion (constv_unsigned_long_ptr, c_ptr);
1351 function To_PTR is
1352 new Ada.Unchecked_Conversion (constv_float_ptr, c_ptr);
1354 end GNAT.Altivec.Low_Level_Interface;