2005-12-29 Paul Brook <paul@codesourcery.com>
[official-gcc.git] / gcc / ada / g-allein.ads
blob6721fedd58b74ae1faede95b3373935106bc29c9
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-2005, 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 2, 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. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING. If not, write --
19 -- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
20 -- MA 02111-1307, USA. --
21 -- --
22 -- As a special exception, if other files instantiate generics from this --
23 -- unit, or you link this unit with other files to produce an executable, --
24 -- this unit does not by itself cause the resulting executable to be --
25 -- covered by the GNU General Public License. This exception does not --
26 -- however invalidate any other reasons why the executable file might be --
27 -- covered by the GNU Public License. --
28 -- --
29 -- GNAT was originally developed by the GNAT team at New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc. --
31 -- --
32 ------------------------------------------------------------------------------
34 -- This unit provides entities to be used internally by the units common to
35 -- both bindings (Hard or Soft), and relevant to the interfacing with the
36 -- underlying Low Level support.
38 -- The set of "services" includes:
40 -- o Imports to the low level routines for which a direct binding is
41 -- mandatory (or just possible when analyzed as such).
43 -- o Conversion routines (unchecked) between low level types, or between
44 -- various pointer representations.
46 with GNAT.Altivec.Vector_Types;
47 with GNAT.Altivec.Low_Level_Vectors;
49 with Ada.Unchecked_Conversion;
51 package GNAT.Altivec.Low_Level_Interface is
53 ----------------------------------------------------------------------------
54 -- Imports for "argument must be literal" constraints in the Hard binding --
55 ----------------------------------------------------------------------------
57 use GNAT.Altivec.Vector_Types;
59 -- vec_ctf --
61 function vec_ctf_vui_cint_r_vf
62 (A : vector_unsigned_int;
63 B : c_int) return vector_float;
65 pragma Import
66 (LL_Altivec, vec_ctf_vui_cint_r_vf, "__builtin_altivec_vcfux");
68 function vec_ctf_vsi_cint_r_vf
69 (A : vector_signed_int;
70 B : c_int) return vector_float;
72 pragma Import
73 (LL_Altivec, vec_ctf_vsi_cint_r_vf, "__builtin_altivec_vcfsx");
75 -- vec_vcfsx --
77 function vec_vcfsx_vsi_cint_r_vf
78 (A : vector_signed_int;
79 B : c_int) return vector_float;
81 pragma Import
82 (LL_Altivec, vec_vcfsx_vsi_cint_r_vf, "__builtin_altivec_vcfsx");
84 -- vec_vcfux --
86 function vec_vcfux_vui_cint_r_vf
87 (A : vector_unsigned_int;
88 B : c_int) return vector_float;
90 pragma Import
91 (LL_Altivec, vec_vcfux_vui_cint_r_vf, "__builtin_altivec_vcfux");
93 -- vec_cts --
95 function vec_cts_vf_cint_r_vsi
96 (A : vector_float;
97 B : c_int) return vector_signed_int;
99 pragma Import
100 (LL_Altivec, vec_cts_vf_cint_r_vsi, "__builtin_altivec_vctsxs");
102 -- vec_ctu --
104 function vec_ctu_vf_cint_r_vui
105 (A : vector_float;
106 B : c_int) return vector_unsigned_int;
108 pragma Import
109 (LL_Altivec, vec_ctu_vf_cint_r_vui, "__builtin_altivec_vctuxs");
111 -- vec_dss --
113 procedure vec_dss_cint
114 (A : c_int);
116 pragma Import
117 (LL_Altivec, vec_dss_cint, "__builtin_altivec_dss");
119 -- vec_dst --
121 procedure vec_dst_kvucp_cint_cint
122 (A : const_vector_unsigned_char_ptr;
123 B : c_int;
124 C : c_int);
126 pragma Import
127 (LL_Altivec, vec_dst_kvucp_cint_cint, "__builtin_altivec_dst");
129 procedure vec_dst_kvscp_cint_cint
130 (A : const_vector_signed_char_ptr;
131 B : c_int;
132 C : c_int);
134 pragma Import
135 (LL_Altivec, vec_dst_kvscp_cint_cint, "__builtin_altivec_dst");
137 procedure vec_dst_kvbcp_cint_cint
138 (A : const_vector_bool_char_ptr;
139 B : c_int;
140 C : c_int);
142 pragma Import
143 (LL_Altivec, vec_dst_kvbcp_cint_cint, "__builtin_altivec_dst");
145 procedure vec_dst_kvusp_cint_cint
146 (A : const_vector_unsigned_short_ptr;
147 B : c_int;
148 C : c_int);
150 pragma Import
151 (LL_Altivec, vec_dst_kvusp_cint_cint, "__builtin_altivec_dst");
153 procedure vec_dst_kvssp_cint_cint
154 (A : const_vector_signed_short_ptr;
155 B : c_int;
156 C : c_int);
158 pragma Import
159 (LL_Altivec, vec_dst_kvssp_cint_cint, "__builtin_altivec_dst");
161 procedure vec_dst_kvbsp_cint_cint
162 (A : const_vector_bool_short_ptr;
163 B : c_int;
164 C : c_int);
166 pragma Import
167 (LL_Altivec, vec_dst_kvbsp_cint_cint, "__builtin_altivec_dst");
169 procedure vec_dst_kvxp_cint_cint
170 (A : const_vector_pixel_ptr;
171 B : c_int;
172 C : c_int);
174 pragma Import
175 (LL_Altivec, vec_dst_kvxp_cint_cint, "__builtin_altivec_dst");
177 procedure vec_dst_kvuip_cint_cint
178 (A : const_vector_unsigned_int_ptr;
179 B : c_int;
180 C : c_int);
182 pragma Import
183 (LL_Altivec, vec_dst_kvuip_cint_cint, "__builtin_altivec_dst");
185 procedure vec_dst_kvsip_cint_cint
186 (A : const_vector_signed_int_ptr;
187 B : c_int;
188 C : c_int);
190 pragma Import
191 (LL_Altivec, vec_dst_kvsip_cint_cint, "__builtin_altivec_dst");
193 procedure vec_dst_kvbip_cint_cint
194 (A : const_vector_bool_int_ptr;
195 B : c_int;
196 C : c_int);
198 pragma Import
199 (LL_Altivec, vec_dst_kvbip_cint_cint, "__builtin_altivec_dst");
201 procedure vec_dst_kvfp_cint_cint
202 (A : const_vector_float_ptr;
203 B : c_int;
204 C : c_int);
206 pragma Import
207 (LL_Altivec, vec_dst_kvfp_cint_cint, "__builtin_altivec_dst");
209 procedure vec_dst_kucp_cint_cint
210 (A : const_unsigned_char_ptr;
211 B : c_int;
212 C : c_int);
214 pragma Import
215 (LL_Altivec, vec_dst_kucp_cint_cint, "__builtin_altivec_dst");
217 procedure vec_dst_kscp_cint_cint
218 (A : const_signed_char_ptr;
219 B : c_int;
220 C : c_int);
222 pragma Import
223 (LL_Altivec, vec_dst_kscp_cint_cint, "__builtin_altivec_dst");
225 procedure vec_dst_kusp_cint_cint
226 (A : const_unsigned_short_ptr;
227 B : c_int;
228 C : c_int);
230 pragma Import
231 (LL_Altivec, vec_dst_kusp_cint_cint, "__builtin_altivec_dst");
233 procedure vec_dst_ksp_cint_cint
234 (A : const_short_ptr;
235 B : c_int;
236 C : c_int);
238 pragma Import
239 (LL_Altivec, vec_dst_ksp_cint_cint, "__builtin_altivec_dst");
241 procedure vec_dst_kuip_cint_cint
242 (A : const_unsigned_int_ptr;
243 B : c_int;
244 C : c_int);
246 pragma Import
247 (LL_Altivec, vec_dst_kuip_cint_cint, "__builtin_altivec_dst");
249 procedure vec_dst_kip_cint_cint
250 (A : const_int_ptr;
251 B : c_int;
252 C : c_int);
254 pragma Import
255 (LL_Altivec, vec_dst_kip_cint_cint, "__builtin_altivec_dst");
257 procedure vec_dst_kulongp_cint_cint
258 (A : const_unsigned_long_ptr;
259 B : c_int;
260 C : c_int);
262 pragma Import
263 (LL_Altivec, vec_dst_kulongp_cint_cint, "__builtin_altivec_dst");
265 procedure vec_dst_klongp_cint_cint
266 (A : const_long_ptr;
267 B : c_int;
268 C : c_int);
270 pragma Import
271 (LL_Altivec, vec_dst_klongp_cint_cint, "__builtin_altivec_dst");
273 procedure vec_dst_kfp_cint_cint
274 (A : const_float_ptr;
275 B : c_int;
276 C : c_int);
278 pragma Import
279 (LL_Altivec, vec_dst_kfp_cint_cint, "__builtin_altivec_dst");
281 -- vec_dstst --
283 procedure vec_dstst_kvucp_cint_cint
284 (A : const_vector_unsigned_char_ptr;
285 B : c_int;
286 C : c_int);
288 pragma Import
289 (LL_Altivec, vec_dstst_kvucp_cint_cint, "__builtin_altivec_dstst");
291 procedure vec_dstst_kvscp_cint_cint
292 (A : const_vector_signed_char_ptr;
293 B : c_int;
294 C : c_int);
296 pragma Import
297 (LL_Altivec, vec_dstst_kvscp_cint_cint, "__builtin_altivec_dstst");
299 procedure vec_dstst_kvbcp_cint_cint
300 (A : const_vector_bool_char_ptr;
301 B : c_int;
302 C : c_int);
304 pragma Import
305 (LL_Altivec, vec_dstst_kvbcp_cint_cint, "__builtin_altivec_dstst");
307 procedure vec_dstst_kvusp_cint_cint
308 (A : const_vector_unsigned_short_ptr;
309 B : c_int;
310 C : c_int);
312 pragma Import
313 (LL_Altivec, vec_dstst_kvusp_cint_cint, "__builtin_altivec_dstst");
315 procedure vec_dstst_kvssp_cint_cint
316 (A : const_vector_signed_short_ptr;
317 B : c_int;
318 C : c_int);
320 pragma Import
321 (LL_Altivec, vec_dstst_kvssp_cint_cint, "__builtin_altivec_dstst");
323 procedure vec_dstst_kvbsp_cint_cint
324 (A : const_vector_bool_short_ptr;
325 B : c_int;
326 C : c_int);
328 pragma Import
329 (LL_Altivec, vec_dstst_kvbsp_cint_cint, "__builtin_altivec_dstst");
331 procedure vec_dstst_kvxp_cint_cint
332 (A : const_vector_pixel_ptr;
333 B : c_int;
334 C : c_int);
336 pragma Import
337 (LL_Altivec, vec_dstst_kvxp_cint_cint, "__builtin_altivec_dstst");
339 procedure vec_dstst_kvuip_cint_cint
340 (A : const_vector_unsigned_int_ptr;
341 B : c_int;
342 C : c_int);
344 pragma Import
345 (LL_Altivec, vec_dstst_kvuip_cint_cint, "__builtin_altivec_dstst");
347 procedure vec_dstst_kvsip_cint_cint
348 (A : const_vector_signed_int_ptr;
349 B : c_int;
350 C : c_int);
352 pragma Import
353 (LL_Altivec, vec_dstst_kvsip_cint_cint, "__builtin_altivec_dstst");
355 procedure vec_dstst_kvbip_cint_cint
356 (A : const_vector_bool_int_ptr;
357 B : c_int;
358 C : c_int);
360 pragma Import
361 (LL_Altivec, vec_dstst_kvbip_cint_cint, "__builtin_altivec_dstst");
363 procedure vec_dstst_kvfp_cint_cint
364 (A : const_vector_float_ptr;
365 B : c_int;
366 C : c_int);
368 pragma Import
369 (LL_Altivec, vec_dstst_kvfp_cint_cint, "__builtin_altivec_dstst");
371 procedure vec_dstst_kucp_cint_cint
372 (A : const_unsigned_char_ptr;
373 B : c_int;
374 C : c_int);
376 pragma Import
377 (LL_Altivec, vec_dstst_kucp_cint_cint, "__builtin_altivec_dstst");
379 procedure vec_dstst_kscp_cint_cint
380 (A : const_signed_char_ptr;
381 B : c_int;
382 C : c_int);
384 pragma Import
385 (LL_Altivec, vec_dstst_kscp_cint_cint, "__builtin_altivec_dstst");
387 procedure vec_dstst_kusp_cint_cint
388 (A : const_unsigned_short_ptr;
389 B : c_int;
390 C : c_int);
392 pragma Import
393 (LL_Altivec, vec_dstst_kusp_cint_cint, "__builtin_altivec_dstst");
395 procedure vec_dstst_ksp_cint_cint
396 (A : const_short_ptr;
397 B : c_int;
398 C : c_int);
400 pragma Import
401 (LL_Altivec, vec_dstst_ksp_cint_cint, "__builtin_altivec_dstst");
403 procedure vec_dstst_kuip_cint_cint
404 (A : const_unsigned_int_ptr;
405 B : c_int;
406 C : c_int);
408 pragma Import
409 (LL_Altivec, vec_dstst_kuip_cint_cint, "__builtin_altivec_dstst");
411 procedure vec_dstst_kip_cint_cint
412 (A : const_int_ptr;
413 B : c_int;
414 C : c_int);
416 pragma Import
417 (LL_Altivec, vec_dstst_kip_cint_cint, "__builtin_altivec_dstst");
419 procedure vec_dstst_kulongp_cint_cint
420 (A : const_unsigned_long_ptr;
421 B : c_int;
422 C : c_int);
424 pragma Import
425 (LL_Altivec, vec_dstst_kulongp_cint_cint, "__builtin_altivec_dstst");
427 procedure vec_dstst_klongp_cint_cint
428 (A : const_long_ptr;
429 B : c_int;
430 C : c_int);
432 pragma Import
433 (LL_Altivec, vec_dstst_klongp_cint_cint, "__builtin_altivec_dstst");
435 procedure vec_dstst_kfp_cint_cint
436 (A : const_float_ptr;
437 B : c_int;
438 C : c_int);
440 pragma Import
441 (LL_Altivec, vec_dstst_kfp_cint_cint, "__builtin_altivec_dstst");
443 -- vec_dststt --
445 procedure vec_dststt_kvucp_cint_cint
446 (A : const_vector_unsigned_char_ptr;
447 B : c_int;
448 C : c_int);
450 pragma Import
451 (LL_Altivec, vec_dststt_kvucp_cint_cint, "__builtin_altivec_dststt");
453 procedure vec_dststt_kvscp_cint_cint
454 (A : const_vector_signed_char_ptr;
455 B : c_int;
456 C : c_int);
458 pragma Import
459 (LL_Altivec, vec_dststt_kvscp_cint_cint, "__builtin_altivec_dststt");
461 procedure vec_dststt_kvbcp_cint_cint
462 (A : const_vector_bool_char_ptr;
463 B : c_int;
464 C : c_int);
466 pragma Import
467 (LL_Altivec, vec_dststt_kvbcp_cint_cint, "__builtin_altivec_dststt");
469 procedure vec_dststt_kvusp_cint_cint
470 (A : const_vector_unsigned_short_ptr;
471 B : c_int;
472 C : c_int);
474 pragma Import
475 (LL_Altivec, vec_dststt_kvusp_cint_cint, "__builtin_altivec_dststt");
477 procedure vec_dststt_kvssp_cint_cint
478 (A : const_vector_signed_short_ptr;
479 B : c_int;
480 C : c_int);
482 pragma Import
483 (LL_Altivec, vec_dststt_kvssp_cint_cint, "__builtin_altivec_dststt");
485 procedure vec_dststt_kvbsp_cint_cint
486 (A : const_vector_bool_short_ptr;
487 B : c_int;
488 C : c_int);
490 pragma Import
491 (LL_Altivec, vec_dststt_kvbsp_cint_cint, "__builtin_altivec_dststt");
493 procedure vec_dststt_kvxp_cint_cint
494 (A : const_vector_pixel_ptr;
495 B : c_int;
496 C : c_int);
498 pragma Import
499 (LL_Altivec, vec_dststt_kvxp_cint_cint, "__builtin_altivec_dststt");
501 procedure vec_dststt_kvuip_cint_cint
502 (A : const_vector_unsigned_int_ptr;
503 B : c_int;
504 C : c_int);
506 pragma Import
507 (LL_Altivec, vec_dststt_kvuip_cint_cint, "__builtin_altivec_dststt");
509 procedure vec_dststt_kvsip_cint_cint
510 (A : const_vector_signed_int_ptr;
511 B : c_int;
512 C : c_int);
514 pragma Import
515 (LL_Altivec, vec_dststt_kvsip_cint_cint, "__builtin_altivec_dststt");
517 procedure vec_dststt_kvbip_cint_cint
518 (A : const_vector_bool_int_ptr;
519 B : c_int;
520 C : c_int);
522 pragma Import
523 (LL_Altivec, vec_dststt_kvbip_cint_cint, "__builtin_altivec_dststt");
525 procedure vec_dststt_kvfp_cint_cint
526 (A : const_vector_float_ptr;
527 B : c_int;
528 C : c_int);
530 pragma Import
531 (LL_Altivec, vec_dststt_kvfp_cint_cint, "__builtin_altivec_dststt");
533 procedure vec_dststt_kucp_cint_cint
534 (A : const_unsigned_char_ptr;
535 B : c_int;
536 C : c_int);
538 pragma Import
539 (LL_Altivec, vec_dststt_kucp_cint_cint, "__builtin_altivec_dststt");
541 procedure vec_dststt_kscp_cint_cint
542 (A : const_signed_char_ptr;
543 B : c_int;
544 C : c_int);
546 pragma Import
547 (LL_Altivec, vec_dststt_kscp_cint_cint, "__builtin_altivec_dststt");
549 procedure vec_dststt_kusp_cint_cint
550 (A : const_unsigned_short_ptr;
551 B : c_int;
552 C : c_int);
554 pragma Import
555 (LL_Altivec, vec_dststt_kusp_cint_cint, "__builtin_altivec_dststt");
557 procedure vec_dststt_ksp_cint_cint
558 (A : const_short_ptr;
559 B : c_int;
560 C : c_int);
562 pragma Import
563 (LL_Altivec, vec_dststt_ksp_cint_cint, "__builtin_altivec_dststt");
565 procedure vec_dststt_kuip_cint_cint
566 (A : const_unsigned_int_ptr;
567 B : c_int;
568 C : c_int);
570 pragma Import
571 (LL_Altivec, vec_dststt_kuip_cint_cint, "__builtin_altivec_dststt");
573 procedure vec_dststt_kip_cint_cint
574 (A : const_int_ptr;
575 B : c_int;
576 C : c_int);
578 pragma Import
579 (LL_Altivec, vec_dststt_kip_cint_cint, "__builtin_altivec_dststt");
581 procedure vec_dststt_kulongp_cint_cint
582 (A : const_unsigned_long_ptr;
583 B : c_int;
584 C : c_int);
586 pragma Import
587 (LL_Altivec, vec_dststt_kulongp_cint_cint, "__builtin_altivec_dststt");
589 procedure vec_dststt_klongp_cint_cint
590 (A : const_long_ptr;
591 B : c_int;
592 C : c_int);
594 pragma Import
595 (LL_Altivec, vec_dststt_klongp_cint_cint, "__builtin_altivec_dststt");
597 procedure vec_dststt_kfp_cint_cint
598 (A : const_float_ptr;
599 B : c_int;
600 C : c_int);
602 pragma Import
603 (LL_Altivec, vec_dststt_kfp_cint_cint, "__builtin_altivec_dststt");
605 -- vec_dstt --
607 procedure vec_dstt_kvucp_cint_cint
608 (A : const_vector_unsigned_char_ptr;
609 B : c_int;
610 C : c_int);
612 pragma Import
613 (LL_Altivec, vec_dstt_kvucp_cint_cint, "__builtin_altivec_dstt");
615 procedure vec_dstt_kvscp_cint_cint
616 (A : const_vector_signed_char_ptr;
617 B : c_int;
618 C : c_int);
620 pragma Import
621 (LL_Altivec, vec_dstt_kvscp_cint_cint, "__builtin_altivec_dstt");
623 procedure vec_dstt_kvbcp_cint_cint
624 (A : const_vector_bool_char_ptr;
625 B : c_int;
626 C : c_int);
628 pragma Import
629 (LL_Altivec, vec_dstt_kvbcp_cint_cint, "__builtin_altivec_dstt");
631 procedure vec_dstt_kvusp_cint_cint
632 (A : const_vector_unsigned_short_ptr;
633 B : c_int;
634 C : c_int);
636 pragma Import
637 (LL_Altivec, vec_dstt_kvusp_cint_cint, "__builtin_altivec_dstt");
639 procedure vec_dstt_kvssp_cint_cint
640 (A : const_vector_signed_short_ptr;
641 B : c_int;
642 C : c_int);
644 pragma Import
645 (LL_Altivec, vec_dstt_kvssp_cint_cint, "__builtin_altivec_dstt");
647 procedure vec_dstt_kvbsp_cint_cint
648 (A : const_vector_bool_short_ptr;
649 B : c_int;
650 C : c_int);
652 pragma Import
653 (LL_Altivec, vec_dstt_kvbsp_cint_cint, "__builtin_altivec_dstt");
655 procedure vec_dstt_kvxp_cint_cint
656 (A : const_vector_pixel_ptr;
657 B : c_int;
658 C : c_int);
660 pragma Import
661 (LL_Altivec, vec_dstt_kvxp_cint_cint, "__builtin_altivec_dstt");
663 procedure vec_dstt_kvuip_cint_cint
664 (A : const_vector_unsigned_int_ptr;
665 B : c_int;
666 C : c_int);
668 pragma Import
669 (LL_Altivec, vec_dstt_kvuip_cint_cint, "__builtin_altivec_dstt");
671 procedure vec_dstt_kvsip_cint_cint
672 (A : const_vector_signed_int_ptr;
673 B : c_int;
674 C : c_int);
676 pragma Import
677 (LL_Altivec, vec_dstt_kvsip_cint_cint, "__builtin_altivec_dstt");
679 procedure vec_dstt_kvbip_cint_cint
680 (A : const_vector_bool_int_ptr;
681 B : c_int;
682 C : c_int);
684 pragma Import
685 (LL_Altivec, vec_dstt_kvbip_cint_cint, "__builtin_altivec_dstt");
687 procedure vec_dstt_kvfp_cint_cint
688 (A : const_vector_float_ptr;
689 B : c_int;
690 C : c_int);
692 pragma Import
693 (LL_Altivec, vec_dstt_kvfp_cint_cint, "__builtin_altivec_dstt");
695 procedure vec_dstt_kucp_cint_cint
696 (A : const_unsigned_char_ptr;
697 B : c_int;
698 C : c_int);
700 pragma Import
701 (LL_Altivec, vec_dstt_kucp_cint_cint, "__builtin_altivec_dstt");
703 procedure vec_dstt_kscp_cint_cint
704 (A : const_signed_char_ptr;
705 B : c_int;
706 C : c_int);
708 pragma Import
709 (LL_Altivec, vec_dstt_kscp_cint_cint, "__builtin_altivec_dstt");
711 procedure vec_dstt_kusp_cint_cint
712 (A : const_unsigned_short_ptr;
713 B : c_int;
714 C : c_int);
716 pragma Import
717 (LL_Altivec, vec_dstt_kusp_cint_cint, "__builtin_altivec_dstt");
719 procedure vec_dstt_ksp_cint_cint
720 (A : const_short_ptr;
721 B : c_int;
722 C : c_int);
724 pragma Import
725 (LL_Altivec, vec_dstt_ksp_cint_cint, "__builtin_altivec_dstt");
727 procedure vec_dstt_kuip_cint_cint
728 (A : const_unsigned_int_ptr;
729 B : c_int;
730 C : c_int);
732 pragma Import
733 (LL_Altivec, vec_dstt_kuip_cint_cint, "__builtin_altivec_dstt");
735 procedure vec_dstt_kip_cint_cint
736 (A : const_int_ptr;
737 B : c_int;
738 C : c_int);
740 pragma Import
741 (LL_Altivec, vec_dstt_kip_cint_cint, "__builtin_altivec_dstt");
743 procedure vec_dstt_kulongp_cint_cint
744 (A : const_unsigned_long_ptr;
745 B : c_int;
746 C : c_int);
748 pragma Import
749 (LL_Altivec, vec_dstt_kulongp_cint_cint, "__builtin_altivec_dstt");
751 procedure vec_dstt_klongp_cint_cint
752 (A : const_long_ptr;
753 B : c_int;
754 C : c_int);
756 pragma Import
757 (LL_Altivec, vec_dstt_klongp_cint_cint, "__builtin_altivec_dstt");
759 procedure vec_dstt_kfp_cint_cint
760 (A : const_float_ptr;
761 B : c_int;
762 C : c_int);
764 pragma Import
765 (LL_Altivec, vec_dstt_kfp_cint_cint, "__builtin_altivec_dstt");
767 -- vec_sld --
769 -- ??? The base GCC implementation maps everything to vsldoi_4si, while
770 -- it defines builtin variants for all the modes. Adjust here, to avoid
771 -- the infamous argument mode mismatch.
773 function vec_sld_vf_vf_cint_r_vf
774 (A : vector_float;
775 B : vector_float;
776 C : c_int) return vector_float;
778 pragma Import
779 (LL_Altivec, vec_sld_vf_vf_cint_r_vf, "__builtin_altivec_vsldoi_4sf");
781 function vec_sld_vsi_vsi_cint_r_vsi
782 (A : vector_signed_int;
783 B : vector_signed_int;
784 C : c_int) return vector_signed_int;
786 pragma Import
787 (LL_Altivec, vec_sld_vsi_vsi_cint_r_vsi, "__builtin_altivec_vsldoi_4si");
789 function vec_sld_vui_vui_cint_r_vui
790 (A : vector_unsigned_int;
791 B : vector_unsigned_int;
792 C : c_int) return vector_unsigned_int;
794 pragma Import
795 (LL_Altivec, vec_sld_vui_vui_cint_r_vui, "__builtin_altivec_vsldoi_4si");
797 function vec_sld_vbi_vbi_cint_r_vbi
798 (A : vector_bool_int;
799 B : vector_bool_int;
800 C : c_int) return vector_bool_int;
802 pragma Import
803 (LL_Altivec, vec_sld_vbi_vbi_cint_r_vbi, "__builtin_altivec_vsldoi_4si");
805 function vec_sld_vss_vss_cint_r_vss
806 (A : vector_signed_short;
807 B : vector_signed_short;
808 C : c_int) return vector_signed_short;
810 pragma Import
811 (LL_Altivec, vec_sld_vss_vss_cint_r_vss, "__builtin_altivec_vsldoi_8hi");
813 function vec_sld_vus_vus_cint_r_vus
814 (A : vector_unsigned_short;
815 B : vector_unsigned_short;
816 C : c_int) return vector_unsigned_short;
818 pragma Import
819 (LL_Altivec, vec_sld_vus_vus_cint_r_vus, "__builtin_altivec_vsldoi_8hi");
821 function vec_sld_vbs_vbs_cint_r_vbs
822 (A : vector_bool_short;
823 B : vector_bool_short;
824 C : c_int) return vector_bool_short;
826 pragma Import
827 (LL_Altivec, vec_sld_vbs_vbs_cint_r_vbs, "__builtin_altivec_vsldoi_8hi");
829 function vec_sld_vx_vx_cint_r_vx
830 (A : vector_pixel;
831 B : vector_pixel;
832 C : c_int) return vector_pixel;
834 pragma Import
835 (LL_Altivec, vec_sld_vx_vx_cint_r_vx, "__builtin_altivec_vsldoi_4si");
837 function vec_sld_vsc_vsc_cint_r_vsc
838 (A : vector_signed_char;
839 B : vector_signed_char;
840 C : c_int) return vector_signed_char;
842 pragma Import
843 (LL_Altivec, vec_sld_vsc_vsc_cint_r_vsc, "__builtin_altivec_vsldoi_16qi");
845 function vec_sld_vuc_vuc_cint_r_vuc
846 (A : vector_unsigned_char;
847 B : vector_unsigned_char;
848 C : c_int) return vector_unsigned_char;
850 pragma Import
851 (LL_Altivec, vec_sld_vuc_vuc_cint_r_vuc, "__builtin_altivec_vsldoi_16qi");
853 function vec_sld_vbc_vbc_cint_r_vbc
854 (A : vector_bool_char;
855 B : vector_bool_char;
856 C : c_int) return vector_bool_char;
858 pragma Import
859 (LL_Altivec, vec_sld_vbc_vbc_cint_r_vbc, "__builtin_altivec_vsldoi_16qi");
861 -- vec_splat --
863 function vec_splat_vsc_cint_r_vsc
864 (A : vector_signed_char;
865 B : c_int) return vector_signed_char;
867 pragma Import
868 (LL_Altivec, vec_splat_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
870 function vec_splat_vuc_cint_r_vuc
871 (A : vector_unsigned_char;
872 B : c_int) return vector_unsigned_char;
874 pragma Import
875 (LL_Altivec, vec_splat_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
877 function vec_splat_vbc_cint_r_vbc
878 (A : vector_bool_char;
879 B : c_int) return vector_bool_char;
881 pragma Import
882 (LL_Altivec, vec_splat_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
884 function vec_splat_vss_cint_r_vss
885 (A : vector_signed_short;
886 B : c_int) return vector_signed_short;
888 pragma Import
889 (LL_Altivec, vec_splat_vss_cint_r_vss, "__builtin_altivec_vsplth");
891 function vec_splat_vus_cint_r_vus
892 (A : vector_unsigned_short;
893 B : c_int) return vector_unsigned_short;
895 pragma Import
896 (LL_Altivec, vec_splat_vus_cint_r_vus, "__builtin_altivec_vsplth");
898 function vec_splat_vbs_cint_r_vbs
899 (A : vector_bool_short;
900 B : c_int) return vector_bool_short;
902 pragma Import
903 (LL_Altivec, vec_splat_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
905 function vec_splat_vx_cint_r_vx
906 (A : vector_pixel;
907 B : c_int) return vector_pixel;
909 pragma Import
910 (LL_Altivec, vec_splat_vx_cint_r_vx, "__builtin_altivec_vsplth");
912 function vec_splat_vf_cint_r_vf
913 (A : vector_float;
914 B : c_int) return vector_float;
916 pragma Import
917 (LL_Altivec, vec_splat_vf_cint_r_vf, "__builtin_altivec_vspltw");
919 function vec_splat_vsi_cint_r_vsi
920 (A : vector_signed_int;
921 B : c_int) return vector_signed_int;
923 pragma Import
924 (LL_Altivec, vec_splat_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
926 function vec_splat_vui_cint_r_vui
927 (A : vector_unsigned_int;
928 B : c_int) return vector_unsigned_int;
930 pragma Import
931 (LL_Altivec, vec_splat_vui_cint_r_vui, "__builtin_altivec_vspltw");
933 function vec_splat_vbi_cint_r_vbi
934 (A : vector_bool_int;
935 B : c_int) return vector_bool_int;
937 pragma Import
938 (LL_Altivec, vec_splat_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
940 -- vec_vspltw --
942 function vec_vspltw_vf_cint_r_vf
943 (A : vector_float;
944 B : c_int) return vector_float;
946 pragma Import
947 (LL_Altivec, vec_vspltw_vf_cint_r_vf, "__builtin_altivec_vspltw");
949 function vec_vspltw_vsi_cint_r_vsi
950 (A : vector_signed_int;
951 B : c_int) return vector_signed_int;
953 pragma Import
954 (LL_Altivec, vec_vspltw_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
956 function vec_vspltw_vui_cint_r_vui
957 (A : vector_unsigned_int;
958 B : c_int) return vector_unsigned_int;
960 pragma Import
961 (LL_Altivec, vec_vspltw_vui_cint_r_vui, "__builtin_altivec_vspltw");
963 function vec_vspltw_vbi_cint_r_vbi
964 (A : vector_bool_int;
965 B : c_int) return vector_bool_int;
967 pragma Import
968 (LL_Altivec, vec_vspltw_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
970 -- vec_vsplth --
972 function vec_vsplth_vbs_cint_r_vbs
973 (A : vector_bool_short;
974 B : c_int) return vector_bool_short;
976 pragma Import
977 (LL_Altivec, vec_vsplth_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
979 function vec_vsplth_vss_cint_r_vss
980 (A : vector_signed_short;
981 B : c_int) return vector_signed_short;
983 pragma Import
984 (LL_Altivec, vec_vsplth_vss_cint_r_vss, "__builtin_altivec_vsplth");
986 function vec_vsplth_vus_cint_r_vus
987 (A : vector_unsigned_short;
988 B : c_int) return vector_unsigned_short;
990 pragma Import
991 (LL_Altivec, vec_vsplth_vus_cint_r_vus, "__builtin_altivec_vsplth");
993 function vec_vsplth_vx_cint_r_vx
994 (A : vector_pixel;
995 B : c_int) return vector_pixel;
997 pragma Import
998 (LL_Altivec, vec_vsplth_vx_cint_r_vx, "__builtin_altivec_vsplth");
1000 -- vec_vspltb --
1002 function vec_vspltb_vsc_cint_r_vsc
1003 (A : vector_signed_char;
1004 B : c_int) return vector_signed_char;
1006 pragma Import
1007 (LL_Altivec, vec_vspltb_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
1009 function vec_vspltb_vuc_cint_r_vuc
1010 (A : vector_unsigned_char;
1011 B : c_int) return vector_unsigned_char;
1013 pragma Import
1014 (LL_Altivec, vec_vspltb_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
1016 function vec_vspltb_vbc_cint_r_vbc
1017 (A : vector_bool_char;
1018 B : c_int) return vector_bool_char;
1020 pragma Import
1021 (LL_Altivec, vec_vspltb_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
1023 -- vec_splat_s8 --
1025 function vec_splat_s8_cint_r_vsc
1026 (A : c_int) return vector_signed_char;
1028 pragma Import
1029 (LL_Altivec, vec_splat_s8_cint_r_vsc, "__builtin_altivec_vspltisb");
1031 -- vec_splat_s16 --
1033 function vec_splat_s16_cint_r_vss
1034 (A : c_int) return vector_signed_short;
1036 pragma Import
1037 (LL_Altivec, vec_splat_s16_cint_r_vss, "__builtin_altivec_vspltish");
1039 -- vec_splat_s32 --
1041 function vec_splat_s32_cint_r_vsi
1042 (A : c_int) return vector_signed_int;
1044 pragma Import
1045 (LL_Altivec, vec_splat_s32_cint_r_vsi, "__builtin_altivec_vspltisw");
1047 -- vec_splat_u8 --
1049 function vec_splat_u8_cint_r_vuc
1050 (A : c_int) return vector_unsigned_char;
1052 pragma Import
1053 (LL_Altivec, vec_splat_u8_cint_r_vuc, "__builtin_altivec_vspltisb");
1055 -- vec_splat_u16 --
1057 function vec_splat_u16_cint_r_vus
1058 (A : c_int) return vector_unsigned_short;
1060 pragma Import
1061 (LL_Altivec, vec_splat_u16_cint_r_vus, "__builtin_altivec_vspltish");
1063 -- vec_splat_u32 --
1065 function vec_splat_u32_cint_r_vui
1066 (A : c_int) return vector_unsigned_int;
1068 pragma Import
1069 (LL_Altivec, vec_splat_u32_cint_r_vui, "__builtin_altivec_vspltisw");
1071 ------------------------------------------------------------
1072 -- Imports for low-level signature consistent subprograms --
1073 ------------------------------------------------------------
1075 -- vec_dssall --
1077 procedure vec_dssall;
1079 pragma Import
1080 (LL_Altivec, vec_dssall, "__builtin_altivec_dssall");
1082 -----------------------------------------
1083 -- Conversions between low level types --
1084 -----------------------------------------
1086 use GNAT.Altivec.Low_Level_Vectors;
1088 -- Something like...
1090 -- TYPES="LL_VBC LL_VUC LL_VSC LL_VBS LL_VUS LL_VSS \
1091 -- LL_VBI LL_VUI LL_VSI LL_VF LL_VP"
1092 -- for TT in `echo $TYPES`; do
1093 -- for ST in `echo $TYPES`; do
1094 -- echo "function To_$TT is new Ada.Unchecked_Conversion ($ST, $TT);"
1095 -- done
1096 -- echo ""
1097 -- done
1099 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBC, LL_VBC);
1100 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUC, LL_VBC);
1101 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSC, LL_VBC);
1102 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBS, LL_VBC);
1103 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUS, LL_VBC);
1104 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSS, LL_VBC);
1105 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBI, LL_VBC);
1106 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUI, LL_VBC);
1107 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSI, LL_VBC);
1108 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VF, LL_VBC);
1109 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VP, LL_VBC);
1111 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBC, LL_VUC);
1112 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUC, LL_VUC);
1113 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSC, LL_VUC);
1114 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBS, LL_VUC);
1115 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUS, LL_VUC);
1116 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSS, LL_VUC);
1117 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBI, LL_VUC);
1118 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUI, LL_VUC);
1119 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSI, LL_VUC);
1120 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VF, LL_VUC);
1121 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VP, LL_VUC);
1123 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBC, LL_VSC);
1124 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUC, LL_VSC);
1125 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSC, LL_VSC);
1126 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBS, LL_VSC);
1127 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUS, LL_VSC);
1128 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSS, LL_VSC);
1129 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBI, LL_VSC);
1130 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUI, LL_VSC);
1131 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSI, LL_VSC);
1132 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VF, LL_VSC);
1133 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VP, LL_VSC);
1135 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBC, LL_VBS);
1136 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUC, LL_VBS);
1137 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSC, LL_VBS);
1138 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBS, LL_VBS);
1139 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUS, LL_VBS);
1140 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSS, LL_VBS);
1141 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBI, LL_VBS);
1142 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUI, LL_VBS);
1143 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSI, LL_VBS);
1144 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VF, LL_VBS);
1145 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VP, LL_VBS);
1147 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBC, LL_VUS);
1148 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUC, LL_VUS);
1149 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSC, LL_VUS);
1150 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBS, LL_VUS);
1151 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUS, LL_VUS);
1152 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSS, LL_VUS);
1153 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBI, LL_VUS);
1154 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUI, LL_VUS);
1155 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSI, LL_VUS);
1156 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VF, LL_VUS);
1157 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VP, LL_VUS);
1159 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBC, LL_VSS);
1160 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUC, LL_VSS);
1161 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSC, LL_VSS);
1162 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBS, LL_VSS);
1163 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUS, LL_VSS);
1164 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSS, LL_VSS);
1165 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBI, LL_VSS);
1166 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUI, LL_VSS);
1167 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSI, LL_VSS);
1168 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VF, LL_VSS);
1169 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VP, LL_VSS);
1171 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBC, LL_VBI);
1172 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUC, LL_VBI);
1173 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSC, LL_VBI);
1174 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBS, LL_VBI);
1175 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUS, LL_VBI);
1176 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSS, LL_VBI);
1177 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBI, LL_VBI);
1178 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUI, LL_VBI);
1179 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSI, LL_VBI);
1180 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VF, LL_VBI);
1181 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VP, LL_VBI);
1183 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBC, LL_VUI);
1184 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUC, LL_VUI);
1185 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSC, LL_VUI);
1186 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBS, LL_VUI);
1187 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUS, LL_VUI);
1188 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSS, LL_VUI);
1189 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBI, LL_VUI);
1190 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUI, LL_VUI);
1191 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSI, LL_VUI);
1192 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VF, LL_VUI);
1193 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VP, LL_VUI);
1195 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBC, LL_VSI);
1196 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUC, LL_VSI);
1197 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSC, LL_VSI);
1198 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBS, LL_VSI);
1199 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUS, LL_VSI);
1200 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSS, LL_VSI);
1201 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBI, LL_VSI);
1202 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUI, LL_VSI);
1203 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSI, LL_VSI);
1204 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VF, LL_VSI);
1205 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VP, LL_VSI);
1207 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBC, LL_VF);
1208 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUC, LL_VF);
1209 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSC, LL_VF);
1210 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBS, LL_VF);
1211 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUS, LL_VF);
1212 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSS, LL_VF);
1213 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBI, LL_VF);
1214 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUI, LL_VF);
1215 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSI, LL_VF);
1216 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VF, LL_VF);
1217 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VP, LL_VF);
1219 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBC, LL_VP);
1220 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUC, LL_VP);
1221 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSC, LL_VP);
1222 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBS, LL_VP);
1223 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUS, LL_VP);
1224 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSS, LL_VP);
1225 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBI, LL_VP);
1226 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUI, LL_VP);
1227 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSI, LL_VP);
1228 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VF, LL_VP);
1229 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VP, LL_VP);
1231 ----------------------------------------------
1232 -- Conversions between pointer/access types --
1233 ----------------------------------------------
1235 function To_PTR is
1236 new Ada.Unchecked_Conversion (vector_unsigned_char_ptr, c_ptr);
1237 function To_PTR is
1238 new Ada.Unchecked_Conversion (vector_signed_char_ptr, c_ptr);
1239 function To_PTR is
1240 new Ada.Unchecked_Conversion (vector_bool_char_ptr, c_ptr);
1241 function To_PTR is
1242 new Ada.Unchecked_Conversion (vector_unsigned_short_ptr, c_ptr);
1243 function To_PTR is
1244 new Ada.Unchecked_Conversion (vector_signed_short_ptr, c_ptr);
1245 function To_PTR is
1246 new Ada.Unchecked_Conversion (vector_bool_short_ptr, c_ptr);
1247 function To_PTR is
1248 new Ada.Unchecked_Conversion (vector_unsigned_int_ptr, c_ptr);
1249 function To_PTR is
1250 new Ada.Unchecked_Conversion (vector_signed_int_ptr, c_ptr);
1251 function To_PTR is
1252 new Ada.Unchecked_Conversion (vector_bool_int_ptr, c_ptr);
1253 function To_PTR is
1254 new Ada.Unchecked_Conversion (vector_float_ptr, c_ptr);
1255 function To_PTR is
1256 new Ada.Unchecked_Conversion (vector_pixel_ptr, c_ptr);
1257 function To_PTR is
1258 new Ada.Unchecked_Conversion (const_vector_bool_char_ptr, c_ptr);
1259 function To_PTR is
1260 new Ada.Unchecked_Conversion (const_vector_signed_char_ptr, c_ptr);
1261 function To_PTR is
1262 new Ada.Unchecked_Conversion (const_vector_unsigned_char_ptr, c_ptr);
1263 function To_PTR is
1264 new Ada.Unchecked_Conversion (const_vector_bool_short_ptr, c_ptr);
1265 function To_PTR is
1266 new Ada.Unchecked_Conversion (const_vector_signed_short_ptr, c_ptr);
1267 function To_PTR is
1268 new Ada.Unchecked_Conversion (const_vector_unsigned_short_ptr, c_ptr);
1269 function To_PTR is
1270 new Ada.Unchecked_Conversion (const_vector_bool_int_ptr, c_ptr);
1271 function To_PTR is
1272 new Ada.Unchecked_Conversion (const_vector_signed_int_ptr, c_ptr);
1273 function To_PTR is
1274 new Ada.Unchecked_Conversion (const_vector_unsigned_int_ptr, c_ptr);
1275 function To_PTR is
1276 new Ada.Unchecked_Conversion (const_vector_float_ptr, c_ptr);
1277 function To_PTR is
1278 new Ada.Unchecked_Conversion (const_vector_pixel_ptr, c_ptr);
1279 function To_PTR is
1280 new Ada.Unchecked_Conversion (c_ptr, c_ptr);
1281 function To_PTR is
1282 new Ada.Unchecked_Conversion (signed_char_ptr, c_ptr);
1283 function To_PTR is
1284 new Ada.Unchecked_Conversion (unsigned_char_ptr, c_ptr);
1285 function To_PTR is
1286 new Ada.Unchecked_Conversion (short_ptr, c_ptr);
1287 function To_PTR is
1288 new Ada.Unchecked_Conversion (signed_short_ptr, c_ptr);
1289 function To_PTR is
1290 new Ada.Unchecked_Conversion (unsigned_short_ptr, c_ptr);
1291 function To_PTR is
1292 new Ada.Unchecked_Conversion (int_ptr, c_ptr);
1293 function To_PTR is
1294 new Ada.Unchecked_Conversion (signed_int_ptr, c_ptr);
1295 function To_PTR is
1296 new Ada.Unchecked_Conversion (unsigned_int_ptr, c_ptr);
1297 function To_PTR is
1298 new Ada.Unchecked_Conversion (long_ptr, c_ptr);
1299 function To_PTR is
1300 new Ada.Unchecked_Conversion (signed_long_ptr, c_ptr);
1301 function To_PTR is
1302 new Ada.Unchecked_Conversion (unsigned_long_ptr, c_ptr);
1303 function To_PTR is
1304 new Ada.Unchecked_Conversion (float_ptr, c_ptr);
1305 function To_PTR is
1306 new Ada.Unchecked_Conversion (const_signed_char_ptr, c_ptr);
1307 function To_PTR is
1308 new Ada.Unchecked_Conversion (const_unsigned_char_ptr, c_ptr);
1309 function To_PTR is
1310 new Ada.Unchecked_Conversion (const_short_ptr, c_ptr);
1311 function To_PTR is
1312 new Ada.Unchecked_Conversion (const_signed_short_ptr, c_ptr);
1313 function To_PTR is
1314 new Ada.Unchecked_Conversion (const_unsigned_short_ptr, c_ptr);
1315 function To_PTR is
1316 new Ada.Unchecked_Conversion (const_int_ptr, c_ptr);
1317 function To_PTR is
1318 new Ada.Unchecked_Conversion (const_signed_int_ptr, c_ptr);
1319 function To_PTR is
1320 new Ada.Unchecked_Conversion (const_unsigned_int_ptr, c_ptr);
1321 function To_PTR is
1322 new Ada.Unchecked_Conversion (const_long_ptr, c_ptr);
1323 function To_PTR is
1324 new Ada.Unchecked_Conversion (const_signed_long_ptr, c_ptr);
1325 function To_PTR is
1326 new Ada.Unchecked_Conversion (const_unsigned_long_ptr, c_ptr);
1327 function To_PTR is
1328 new Ada.Unchecked_Conversion (const_float_ptr, c_ptr);
1329 function To_PTR is
1330 new Ada.Unchecked_Conversion (constv_char_ptr, c_ptr);
1331 function To_PTR is
1332 new Ada.Unchecked_Conversion (constv_signed_char_ptr, c_ptr);
1333 function To_PTR is
1334 new Ada.Unchecked_Conversion (constv_unsigned_char_ptr, c_ptr);
1335 function To_PTR is
1336 new Ada.Unchecked_Conversion (constv_short_ptr, c_ptr);
1337 function To_PTR is
1338 new Ada.Unchecked_Conversion (constv_signed_short_ptr, c_ptr);
1339 function To_PTR is
1340 new Ada.Unchecked_Conversion (constv_unsigned_short_ptr, c_ptr);
1341 function To_PTR is
1342 new Ada.Unchecked_Conversion (constv_int_ptr, c_ptr);
1343 function To_PTR is
1344 new Ada.Unchecked_Conversion (constv_signed_int_ptr, c_ptr);
1345 function To_PTR is
1346 new Ada.Unchecked_Conversion (constv_unsigned_int_ptr, c_ptr);
1347 function To_PTR is
1348 new Ada.Unchecked_Conversion (constv_long_ptr, c_ptr);
1349 function To_PTR is
1350 new Ada.Unchecked_Conversion (constv_signed_long_ptr, c_ptr);
1351 function To_PTR is
1352 new Ada.Unchecked_Conversion (constv_unsigned_long_ptr, c_ptr);
1353 function To_PTR is
1354 new Ada.Unchecked_Conversion (constv_float_ptr, c_ptr);
1356 end GNAT.Altivec.Low_Level_Interface;