3224c2cf01f4ad425f698fc02c3575e7a3f99945
[gcc.git] / gcc / ada / g-allein.ads
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-2015, 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 ------------------------------------------------------------------------------
31
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.
35
36 -- The set of "services" includes:
37 --
38 -- o Imports to the low level routines for which a direct binding is
39 -- mandatory (or just possible when analyzed as such).
40 --
41 -- o Conversion routines (unchecked) between low level types, or between
42 -- various pointer representations.
43
44 with GNAT.Altivec.Vector_Types;
45 with GNAT.Altivec.Low_Level_Vectors;
46
47 with Ada.Unchecked_Conversion;
48
49 package GNAT.Altivec.Low_Level_Interface is
50
51 ----------------------------------------------------------------------------
52 -- Imports for "argument must be literal" constraints in the Hard binding --
53 ----------------------------------------------------------------------------
54
55 use GNAT.Altivec.Vector_Types;
56
57 -- vec_dss --
58
59 procedure vec_dss_cint
60 (A : c_int);
61
62 pragma Import
63 (LL_Altivec, vec_dss_cint, "__builtin_altivec_dss");
64
65 -- vec_dst --
66
67 procedure vec_dst_kvucp_cint_cint
68 (A : const_vector_unsigned_char_ptr;
69 B : c_int;
70 C : c_int);
71
72 pragma Import
73 (LL_Altivec, vec_dst_kvucp_cint_cint, "__builtin_altivec_dst");
74
75 procedure vec_dst_kvscp_cint_cint
76 (A : const_vector_signed_char_ptr;
77 B : c_int;
78 C : c_int);
79
80 pragma Import
81 (LL_Altivec, vec_dst_kvscp_cint_cint, "__builtin_altivec_dst");
82
83 procedure vec_dst_kvbcp_cint_cint
84 (A : const_vector_bool_char_ptr;
85 B : c_int;
86 C : c_int);
87
88 pragma Import
89 (LL_Altivec, vec_dst_kvbcp_cint_cint, "__builtin_altivec_dst");
90
91 procedure vec_dst_kvusp_cint_cint
92 (A : const_vector_unsigned_short_ptr;
93 B : c_int;
94 C : c_int);
95
96 pragma Import
97 (LL_Altivec, vec_dst_kvusp_cint_cint, "__builtin_altivec_dst");
98
99 procedure vec_dst_kvssp_cint_cint
100 (A : const_vector_signed_short_ptr;
101 B : c_int;
102 C : c_int);
103
104 pragma Import
105 (LL_Altivec, vec_dst_kvssp_cint_cint, "__builtin_altivec_dst");
106
107 procedure vec_dst_kvbsp_cint_cint
108 (A : const_vector_bool_short_ptr;
109 B : c_int;
110 C : c_int);
111
112 pragma Import
113 (LL_Altivec, vec_dst_kvbsp_cint_cint, "__builtin_altivec_dst");
114
115 procedure vec_dst_kvxp_cint_cint
116 (A : const_vector_pixel_ptr;
117 B : c_int;
118 C : c_int);
119
120 pragma Import
121 (LL_Altivec, vec_dst_kvxp_cint_cint, "__builtin_altivec_dst");
122
123 procedure vec_dst_kvuip_cint_cint
124 (A : const_vector_unsigned_int_ptr;
125 B : c_int;
126 C : c_int);
127
128 pragma Import
129 (LL_Altivec, vec_dst_kvuip_cint_cint, "__builtin_altivec_dst");
130
131 procedure vec_dst_kvsip_cint_cint
132 (A : const_vector_signed_int_ptr;
133 B : c_int;
134 C : c_int);
135
136 pragma Import
137 (LL_Altivec, vec_dst_kvsip_cint_cint, "__builtin_altivec_dst");
138
139 procedure vec_dst_kvbip_cint_cint
140 (A : const_vector_bool_int_ptr;
141 B : c_int;
142 C : c_int);
143
144 pragma Import
145 (LL_Altivec, vec_dst_kvbip_cint_cint, "__builtin_altivec_dst");
146
147 procedure vec_dst_kvfp_cint_cint
148 (A : const_vector_float_ptr;
149 B : c_int;
150 C : c_int);
151
152 pragma Import
153 (LL_Altivec, vec_dst_kvfp_cint_cint, "__builtin_altivec_dst");
154
155 procedure vec_dst_kucp_cint_cint
156 (A : const_unsigned_char_ptr;
157 B : c_int;
158 C : c_int);
159
160 pragma Import
161 (LL_Altivec, vec_dst_kucp_cint_cint, "__builtin_altivec_dst");
162
163 procedure vec_dst_kscp_cint_cint
164 (A : const_signed_char_ptr;
165 B : c_int;
166 C : c_int);
167
168 pragma Import
169 (LL_Altivec, vec_dst_kscp_cint_cint, "__builtin_altivec_dst");
170
171 procedure vec_dst_kusp_cint_cint
172 (A : const_unsigned_short_ptr;
173 B : c_int;
174 C : c_int);
175
176 pragma Import
177 (LL_Altivec, vec_dst_kusp_cint_cint, "__builtin_altivec_dst");
178
179 procedure vec_dst_ksp_cint_cint
180 (A : const_short_ptr;
181 B : c_int;
182 C : c_int);
183
184 pragma Import
185 (LL_Altivec, vec_dst_ksp_cint_cint, "__builtin_altivec_dst");
186
187 procedure vec_dst_kuip_cint_cint
188 (A : const_unsigned_int_ptr;
189 B : c_int;
190 C : c_int);
191
192 pragma Import
193 (LL_Altivec, vec_dst_kuip_cint_cint, "__builtin_altivec_dst");
194
195 procedure vec_dst_kip_cint_cint
196 (A : const_int_ptr;
197 B : c_int;
198 C : c_int);
199
200 pragma Import
201 (LL_Altivec, vec_dst_kip_cint_cint, "__builtin_altivec_dst");
202
203 procedure vec_dst_kulongp_cint_cint
204 (A : const_unsigned_long_ptr;
205 B : c_int;
206 C : c_int);
207
208 pragma Import
209 (LL_Altivec, vec_dst_kulongp_cint_cint, "__builtin_altivec_dst");
210
211 procedure vec_dst_klongp_cint_cint
212 (A : const_long_ptr;
213 B : c_int;
214 C : c_int);
215
216 pragma Import
217 (LL_Altivec, vec_dst_klongp_cint_cint, "__builtin_altivec_dst");
218
219 procedure vec_dst_kfp_cint_cint
220 (A : const_float_ptr;
221 B : c_int;
222 C : c_int);
223
224 pragma Import
225 (LL_Altivec, vec_dst_kfp_cint_cint, "__builtin_altivec_dst");
226
227 -- vec_dstst --
228
229 procedure vec_dstst_kvucp_cint_cint
230 (A : const_vector_unsigned_char_ptr;
231 B : c_int;
232 C : c_int);
233
234 pragma Import
235 (LL_Altivec, vec_dstst_kvucp_cint_cint, "__builtin_altivec_dstst");
236
237 procedure vec_dstst_kvscp_cint_cint
238 (A : const_vector_signed_char_ptr;
239 B : c_int;
240 C : c_int);
241
242 pragma Import
243 (LL_Altivec, vec_dstst_kvscp_cint_cint, "__builtin_altivec_dstst");
244
245 procedure vec_dstst_kvbcp_cint_cint
246 (A : const_vector_bool_char_ptr;
247 B : c_int;
248 C : c_int);
249
250 pragma Import
251 (LL_Altivec, vec_dstst_kvbcp_cint_cint, "__builtin_altivec_dstst");
252
253 procedure vec_dstst_kvusp_cint_cint
254 (A : const_vector_unsigned_short_ptr;
255 B : c_int;
256 C : c_int);
257
258 pragma Import
259 (LL_Altivec, vec_dstst_kvusp_cint_cint, "__builtin_altivec_dstst");
260
261 procedure vec_dstst_kvssp_cint_cint
262 (A : const_vector_signed_short_ptr;
263 B : c_int;
264 C : c_int);
265
266 pragma Import
267 (LL_Altivec, vec_dstst_kvssp_cint_cint, "__builtin_altivec_dstst");
268
269 procedure vec_dstst_kvbsp_cint_cint
270 (A : const_vector_bool_short_ptr;
271 B : c_int;
272 C : c_int);
273
274 pragma Import
275 (LL_Altivec, vec_dstst_kvbsp_cint_cint, "__builtin_altivec_dstst");
276
277 procedure vec_dstst_kvxp_cint_cint
278 (A : const_vector_pixel_ptr;
279 B : c_int;
280 C : c_int);
281
282 pragma Import
283 (LL_Altivec, vec_dstst_kvxp_cint_cint, "__builtin_altivec_dstst");
284
285 procedure vec_dstst_kvuip_cint_cint
286 (A : const_vector_unsigned_int_ptr;
287 B : c_int;
288 C : c_int);
289
290 pragma Import
291 (LL_Altivec, vec_dstst_kvuip_cint_cint, "__builtin_altivec_dstst");
292
293 procedure vec_dstst_kvsip_cint_cint
294 (A : const_vector_signed_int_ptr;
295 B : c_int;
296 C : c_int);
297
298 pragma Import
299 (LL_Altivec, vec_dstst_kvsip_cint_cint, "__builtin_altivec_dstst");
300
301 procedure vec_dstst_kvbip_cint_cint
302 (A : const_vector_bool_int_ptr;
303 B : c_int;
304 C : c_int);
305
306 pragma Import
307 (LL_Altivec, vec_dstst_kvbip_cint_cint, "__builtin_altivec_dstst");
308
309 procedure vec_dstst_kvfp_cint_cint
310 (A : const_vector_float_ptr;
311 B : c_int;
312 C : c_int);
313
314 pragma Import
315 (LL_Altivec, vec_dstst_kvfp_cint_cint, "__builtin_altivec_dstst");
316
317 procedure vec_dstst_kucp_cint_cint
318 (A : const_unsigned_char_ptr;
319 B : c_int;
320 C : c_int);
321
322 pragma Import
323 (LL_Altivec, vec_dstst_kucp_cint_cint, "__builtin_altivec_dstst");
324
325 procedure vec_dstst_kscp_cint_cint
326 (A : const_signed_char_ptr;
327 B : c_int;
328 C : c_int);
329
330 pragma Import
331 (LL_Altivec, vec_dstst_kscp_cint_cint, "__builtin_altivec_dstst");
332
333 procedure vec_dstst_kusp_cint_cint
334 (A : const_unsigned_short_ptr;
335 B : c_int;
336 C : c_int);
337
338 pragma Import
339 (LL_Altivec, vec_dstst_kusp_cint_cint, "__builtin_altivec_dstst");
340
341 procedure vec_dstst_ksp_cint_cint
342 (A : const_short_ptr;
343 B : c_int;
344 C : c_int);
345
346 pragma Import
347 (LL_Altivec, vec_dstst_ksp_cint_cint, "__builtin_altivec_dstst");
348
349 procedure vec_dstst_kuip_cint_cint
350 (A : const_unsigned_int_ptr;
351 B : c_int;
352 C : c_int);
353
354 pragma Import
355 (LL_Altivec, vec_dstst_kuip_cint_cint, "__builtin_altivec_dstst");
356
357 procedure vec_dstst_kip_cint_cint
358 (A : const_int_ptr;
359 B : c_int;
360 C : c_int);
361
362 pragma Import
363 (LL_Altivec, vec_dstst_kip_cint_cint, "__builtin_altivec_dstst");
364
365 procedure vec_dstst_kulongp_cint_cint
366 (A : const_unsigned_long_ptr;
367 B : c_int;
368 C : c_int);
369
370 pragma Import
371 (LL_Altivec, vec_dstst_kulongp_cint_cint, "__builtin_altivec_dstst");
372
373 procedure vec_dstst_klongp_cint_cint
374 (A : const_long_ptr;
375 B : c_int;
376 C : c_int);
377
378 pragma Import
379 (LL_Altivec, vec_dstst_klongp_cint_cint, "__builtin_altivec_dstst");
380
381 procedure vec_dstst_kfp_cint_cint
382 (A : const_float_ptr;
383 B : c_int;
384 C : c_int);
385
386 pragma Import
387 (LL_Altivec, vec_dstst_kfp_cint_cint, "__builtin_altivec_dstst");
388
389 -- vec_dststt --
390
391 procedure vec_dststt_kvucp_cint_cint
392 (A : const_vector_unsigned_char_ptr;
393 B : c_int;
394 C : c_int);
395
396 pragma Import
397 (LL_Altivec, vec_dststt_kvucp_cint_cint, "__builtin_altivec_dststt");
398
399 procedure vec_dststt_kvscp_cint_cint
400 (A : const_vector_signed_char_ptr;
401 B : c_int;
402 C : c_int);
403
404 pragma Import
405 (LL_Altivec, vec_dststt_kvscp_cint_cint, "__builtin_altivec_dststt");
406
407 procedure vec_dststt_kvbcp_cint_cint
408 (A : const_vector_bool_char_ptr;
409 B : c_int;
410 C : c_int);
411
412 pragma Import
413 (LL_Altivec, vec_dststt_kvbcp_cint_cint, "__builtin_altivec_dststt");
414
415 procedure vec_dststt_kvusp_cint_cint
416 (A : const_vector_unsigned_short_ptr;
417 B : c_int;
418 C : c_int);
419
420 pragma Import
421 (LL_Altivec, vec_dststt_kvusp_cint_cint, "__builtin_altivec_dststt");
422
423 procedure vec_dststt_kvssp_cint_cint
424 (A : const_vector_signed_short_ptr;
425 B : c_int;
426 C : c_int);
427
428 pragma Import
429 (LL_Altivec, vec_dststt_kvssp_cint_cint, "__builtin_altivec_dststt");
430
431 procedure vec_dststt_kvbsp_cint_cint
432 (A : const_vector_bool_short_ptr;
433 B : c_int;
434 C : c_int);
435
436 pragma Import
437 (LL_Altivec, vec_dststt_kvbsp_cint_cint, "__builtin_altivec_dststt");
438
439 procedure vec_dststt_kvxp_cint_cint
440 (A : const_vector_pixel_ptr;
441 B : c_int;
442 C : c_int);
443
444 pragma Import
445 (LL_Altivec, vec_dststt_kvxp_cint_cint, "__builtin_altivec_dststt");
446
447 procedure vec_dststt_kvuip_cint_cint
448 (A : const_vector_unsigned_int_ptr;
449 B : c_int;
450 C : c_int);
451
452 pragma Import
453 (LL_Altivec, vec_dststt_kvuip_cint_cint, "__builtin_altivec_dststt");
454
455 procedure vec_dststt_kvsip_cint_cint
456 (A : const_vector_signed_int_ptr;
457 B : c_int;
458 C : c_int);
459
460 pragma Import
461 (LL_Altivec, vec_dststt_kvsip_cint_cint, "__builtin_altivec_dststt");
462
463 procedure vec_dststt_kvbip_cint_cint
464 (A : const_vector_bool_int_ptr;
465 B : c_int;
466 C : c_int);
467
468 pragma Import
469 (LL_Altivec, vec_dststt_kvbip_cint_cint, "__builtin_altivec_dststt");
470
471 procedure vec_dststt_kvfp_cint_cint
472 (A : const_vector_float_ptr;
473 B : c_int;
474 C : c_int);
475
476 pragma Import
477 (LL_Altivec, vec_dststt_kvfp_cint_cint, "__builtin_altivec_dststt");
478
479 procedure vec_dststt_kucp_cint_cint
480 (A : const_unsigned_char_ptr;
481 B : c_int;
482 C : c_int);
483
484 pragma Import
485 (LL_Altivec, vec_dststt_kucp_cint_cint, "__builtin_altivec_dststt");
486
487 procedure vec_dststt_kscp_cint_cint
488 (A : const_signed_char_ptr;
489 B : c_int;
490 C : c_int);
491
492 pragma Import
493 (LL_Altivec, vec_dststt_kscp_cint_cint, "__builtin_altivec_dststt");
494
495 procedure vec_dststt_kusp_cint_cint
496 (A : const_unsigned_short_ptr;
497 B : c_int;
498 C : c_int);
499
500 pragma Import
501 (LL_Altivec, vec_dststt_kusp_cint_cint, "__builtin_altivec_dststt");
502
503 procedure vec_dststt_ksp_cint_cint
504 (A : const_short_ptr;
505 B : c_int;
506 C : c_int);
507
508 pragma Import
509 (LL_Altivec, vec_dststt_ksp_cint_cint, "__builtin_altivec_dststt");
510
511 procedure vec_dststt_kuip_cint_cint
512 (A : const_unsigned_int_ptr;
513 B : c_int;
514 C : c_int);
515
516 pragma Import
517 (LL_Altivec, vec_dststt_kuip_cint_cint, "__builtin_altivec_dststt");
518
519 procedure vec_dststt_kip_cint_cint
520 (A : const_int_ptr;
521 B : c_int;
522 C : c_int);
523
524 pragma Import
525 (LL_Altivec, vec_dststt_kip_cint_cint, "__builtin_altivec_dststt");
526
527 procedure vec_dststt_kulongp_cint_cint
528 (A : const_unsigned_long_ptr;
529 B : c_int;
530 C : c_int);
531
532 pragma Import
533 (LL_Altivec, vec_dststt_kulongp_cint_cint, "__builtin_altivec_dststt");
534
535 procedure vec_dststt_klongp_cint_cint
536 (A : const_long_ptr;
537 B : c_int;
538 C : c_int);
539
540 pragma Import
541 (LL_Altivec, vec_dststt_klongp_cint_cint, "__builtin_altivec_dststt");
542
543 procedure vec_dststt_kfp_cint_cint
544 (A : const_float_ptr;
545 B : c_int;
546 C : c_int);
547
548 pragma Import
549 (LL_Altivec, vec_dststt_kfp_cint_cint, "__builtin_altivec_dststt");
550
551 -- vec_dstt --
552
553 procedure vec_dstt_kvucp_cint_cint
554 (A : const_vector_unsigned_char_ptr;
555 B : c_int;
556 C : c_int);
557
558 pragma Import
559 (LL_Altivec, vec_dstt_kvucp_cint_cint, "__builtin_altivec_dstt");
560
561 procedure vec_dstt_kvscp_cint_cint
562 (A : const_vector_signed_char_ptr;
563 B : c_int;
564 C : c_int);
565
566 pragma Import
567 (LL_Altivec, vec_dstt_kvscp_cint_cint, "__builtin_altivec_dstt");
568
569 procedure vec_dstt_kvbcp_cint_cint
570 (A : const_vector_bool_char_ptr;
571 B : c_int;
572 C : c_int);
573
574 pragma Import
575 (LL_Altivec, vec_dstt_kvbcp_cint_cint, "__builtin_altivec_dstt");
576
577 procedure vec_dstt_kvusp_cint_cint
578 (A : const_vector_unsigned_short_ptr;
579 B : c_int;
580 C : c_int);
581
582 pragma Import
583 (LL_Altivec, vec_dstt_kvusp_cint_cint, "__builtin_altivec_dstt");
584
585 procedure vec_dstt_kvssp_cint_cint
586 (A : const_vector_signed_short_ptr;
587 B : c_int;
588 C : c_int);
589
590 pragma Import
591 (LL_Altivec, vec_dstt_kvssp_cint_cint, "__builtin_altivec_dstt");
592
593 procedure vec_dstt_kvbsp_cint_cint
594 (A : const_vector_bool_short_ptr;
595 B : c_int;
596 C : c_int);
597
598 pragma Import
599 (LL_Altivec, vec_dstt_kvbsp_cint_cint, "__builtin_altivec_dstt");
600
601 procedure vec_dstt_kvxp_cint_cint
602 (A : const_vector_pixel_ptr;
603 B : c_int;
604 C : c_int);
605
606 pragma Import
607 (LL_Altivec, vec_dstt_kvxp_cint_cint, "__builtin_altivec_dstt");
608
609 procedure vec_dstt_kvuip_cint_cint
610 (A : const_vector_unsigned_int_ptr;
611 B : c_int;
612 C : c_int);
613
614 pragma Import
615 (LL_Altivec, vec_dstt_kvuip_cint_cint, "__builtin_altivec_dstt");
616
617 procedure vec_dstt_kvsip_cint_cint
618 (A : const_vector_signed_int_ptr;
619 B : c_int;
620 C : c_int);
621
622 pragma Import
623 (LL_Altivec, vec_dstt_kvsip_cint_cint, "__builtin_altivec_dstt");
624
625 procedure vec_dstt_kvbip_cint_cint
626 (A : const_vector_bool_int_ptr;
627 B : c_int;
628 C : c_int);
629
630 pragma Import
631 (LL_Altivec, vec_dstt_kvbip_cint_cint, "__builtin_altivec_dstt");
632
633 procedure vec_dstt_kvfp_cint_cint
634 (A : const_vector_float_ptr;
635 B : c_int;
636 C : c_int);
637
638 pragma Import
639 (LL_Altivec, vec_dstt_kvfp_cint_cint, "__builtin_altivec_dstt");
640
641 procedure vec_dstt_kucp_cint_cint
642 (A : const_unsigned_char_ptr;
643 B : c_int;
644 C : c_int);
645
646 pragma Import
647 (LL_Altivec, vec_dstt_kucp_cint_cint, "__builtin_altivec_dstt");
648
649 procedure vec_dstt_kscp_cint_cint
650 (A : const_signed_char_ptr;
651 B : c_int;
652 C : c_int);
653
654 pragma Import
655 (LL_Altivec, vec_dstt_kscp_cint_cint, "__builtin_altivec_dstt");
656
657 procedure vec_dstt_kusp_cint_cint
658 (A : const_unsigned_short_ptr;
659 B : c_int;
660 C : c_int);
661
662 pragma Import
663 (LL_Altivec, vec_dstt_kusp_cint_cint, "__builtin_altivec_dstt");
664
665 procedure vec_dstt_ksp_cint_cint
666 (A : const_short_ptr;
667 B : c_int;
668 C : c_int);
669
670 pragma Import
671 (LL_Altivec, vec_dstt_ksp_cint_cint, "__builtin_altivec_dstt");
672
673 procedure vec_dstt_kuip_cint_cint
674 (A : const_unsigned_int_ptr;
675 B : c_int;
676 C : c_int);
677
678 pragma Import
679 (LL_Altivec, vec_dstt_kuip_cint_cint, "__builtin_altivec_dstt");
680
681 procedure vec_dstt_kip_cint_cint
682 (A : const_int_ptr;
683 B : c_int;
684 C : c_int);
685
686 pragma Import
687 (LL_Altivec, vec_dstt_kip_cint_cint, "__builtin_altivec_dstt");
688
689 procedure vec_dstt_kulongp_cint_cint
690 (A : const_unsigned_long_ptr;
691 B : c_int;
692 C : c_int);
693
694 pragma Import
695 (LL_Altivec, vec_dstt_kulongp_cint_cint, "__builtin_altivec_dstt");
696
697 procedure vec_dstt_klongp_cint_cint
698 (A : const_long_ptr;
699 B : c_int;
700 C : c_int);
701
702 pragma Import
703 (LL_Altivec, vec_dstt_klongp_cint_cint, "__builtin_altivec_dstt");
704
705 procedure vec_dstt_kfp_cint_cint
706 (A : const_float_ptr;
707 B : c_int;
708 C : c_int);
709
710 pragma Import
711 (LL_Altivec, vec_dstt_kfp_cint_cint, "__builtin_altivec_dstt");
712
713 -- vec_sld --
714
715 -- ??? The base GCC implementation maps everything to vsldoi_4si, while
716 -- it defines builtin variants for all the modes. Adjust here, to avoid
717 -- the infamous argument mode mismatch.
718
719 function vec_sld_vf_vf_cint_r_vf
720 (A : vector_float;
721 B : vector_float;
722 C : c_int) return vector_float;
723
724 pragma Import
725 (LL_Altivec, vec_sld_vf_vf_cint_r_vf, "__builtin_altivec_vsldoi_4sf");
726
727 function vec_sld_vsi_vsi_cint_r_vsi
728 (A : vector_signed_int;
729 B : vector_signed_int;
730 C : c_int) return vector_signed_int;
731
732 pragma Import
733 (LL_Altivec, vec_sld_vsi_vsi_cint_r_vsi, "__builtin_altivec_vsldoi_4si");
734
735 function vec_sld_vui_vui_cint_r_vui
736 (A : vector_unsigned_int;
737 B : vector_unsigned_int;
738 C : c_int) return vector_unsigned_int;
739
740 pragma Import
741 (LL_Altivec, vec_sld_vui_vui_cint_r_vui, "__builtin_altivec_vsldoi_4si");
742
743 function vec_sld_vbi_vbi_cint_r_vbi
744 (A : vector_bool_int;
745 B : vector_bool_int;
746 C : c_int) return vector_bool_int;
747
748 pragma Import
749 (LL_Altivec, vec_sld_vbi_vbi_cint_r_vbi, "__builtin_altivec_vsldoi_4si");
750
751 function vec_sld_vss_vss_cint_r_vss
752 (A : vector_signed_short;
753 B : vector_signed_short;
754 C : c_int) return vector_signed_short;
755
756 pragma Import
757 (LL_Altivec, vec_sld_vss_vss_cint_r_vss, "__builtin_altivec_vsldoi_8hi");
758
759 function vec_sld_vus_vus_cint_r_vus
760 (A : vector_unsigned_short;
761 B : vector_unsigned_short;
762 C : c_int) return vector_unsigned_short;
763
764 pragma Import
765 (LL_Altivec, vec_sld_vus_vus_cint_r_vus, "__builtin_altivec_vsldoi_8hi");
766
767 function vec_sld_vbs_vbs_cint_r_vbs
768 (A : vector_bool_short;
769 B : vector_bool_short;
770 C : c_int) return vector_bool_short;
771
772 pragma Import
773 (LL_Altivec, vec_sld_vbs_vbs_cint_r_vbs, "__builtin_altivec_vsldoi_8hi");
774
775 function vec_sld_vx_vx_cint_r_vx
776 (A : vector_pixel;
777 B : vector_pixel;
778 C : c_int) return vector_pixel;
779
780 pragma Import
781 (LL_Altivec, vec_sld_vx_vx_cint_r_vx, "__builtin_altivec_vsldoi_8hi");
782
783 function vec_sld_vsc_vsc_cint_r_vsc
784 (A : vector_signed_char;
785 B : vector_signed_char;
786 C : c_int) return vector_signed_char;
787
788 pragma Import
789 (LL_Altivec, vec_sld_vsc_vsc_cint_r_vsc, "__builtin_altivec_vsldoi_16qi");
790
791 function vec_sld_vuc_vuc_cint_r_vuc
792 (A : vector_unsigned_char;
793 B : vector_unsigned_char;
794 C : c_int) return vector_unsigned_char;
795
796 pragma Import
797 (LL_Altivec, vec_sld_vuc_vuc_cint_r_vuc, "__builtin_altivec_vsldoi_16qi");
798
799 function vec_sld_vbc_vbc_cint_r_vbc
800 (A : vector_bool_char;
801 B : vector_bool_char;
802 C : c_int) return vector_bool_char;
803
804 pragma Import
805 (LL_Altivec, vec_sld_vbc_vbc_cint_r_vbc, "__builtin_altivec_vsldoi_16qi");
806
807 -- vec_splat --
808
809 function vec_splat_vsc_cint_r_vsc
810 (A : vector_signed_char;
811 B : c_int) return vector_signed_char;
812
813 pragma Import
814 (LL_Altivec, vec_splat_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
815
816 function vec_splat_vuc_cint_r_vuc
817 (A : vector_unsigned_char;
818 B : c_int) return vector_unsigned_char;
819
820 pragma Import
821 (LL_Altivec, vec_splat_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
822
823 function vec_splat_vbc_cint_r_vbc
824 (A : vector_bool_char;
825 B : c_int) return vector_bool_char;
826
827 pragma Import
828 (LL_Altivec, vec_splat_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
829
830 function vec_splat_vss_cint_r_vss
831 (A : vector_signed_short;
832 B : c_int) return vector_signed_short;
833
834 pragma Import
835 (LL_Altivec, vec_splat_vss_cint_r_vss, "__builtin_altivec_vsplth");
836
837 function vec_splat_vus_cint_r_vus
838 (A : vector_unsigned_short;
839 B : c_int) return vector_unsigned_short;
840
841 pragma Import
842 (LL_Altivec, vec_splat_vus_cint_r_vus, "__builtin_altivec_vsplth");
843
844 function vec_splat_vbs_cint_r_vbs
845 (A : vector_bool_short;
846 B : c_int) return vector_bool_short;
847
848 pragma Import
849 (LL_Altivec, vec_splat_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
850
851 function vec_splat_vx_cint_r_vx
852 (A : vector_pixel;
853 B : c_int) return vector_pixel;
854
855 pragma Import
856 (LL_Altivec, vec_splat_vx_cint_r_vx, "__builtin_altivec_vsplth");
857
858 function vec_splat_vf_cint_r_vf
859 (A : vector_float;
860 B : c_int) return vector_float;
861
862 pragma Import
863 (LL_Altivec, vec_splat_vf_cint_r_vf, "__builtin_altivec_vspltw");
864
865 function vec_splat_vsi_cint_r_vsi
866 (A : vector_signed_int;
867 B : c_int) return vector_signed_int;
868
869 pragma Import
870 (LL_Altivec, vec_splat_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
871
872 function vec_splat_vui_cint_r_vui
873 (A : vector_unsigned_int;
874 B : c_int) return vector_unsigned_int;
875
876 pragma Import
877 (LL_Altivec, vec_splat_vui_cint_r_vui, "__builtin_altivec_vspltw");
878
879 function vec_splat_vbi_cint_r_vbi
880 (A : vector_bool_int;
881 B : c_int) return vector_bool_int;
882
883 pragma Import
884 (LL_Altivec, vec_splat_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
885
886 -- vec_vspltw --
887
888 function vec_vspltw_vf_cint_r_vf
889 (A : vector_float;
890 B : c_int) return vector_float;
891
892 pragma Import
893 (LL_Altivec, vec_vspltw_vf_cint_r_vf, "__builtin_altivec_vspltw");
894
895 function vec_vspltw_vsi_cint_r_vsi
896 (A : vector_signed_int;
897 B : c_int) return vector_signed_int;
898
899 pragma Import
900 (LL_Altivec, vec_vspltw_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
901
902 function vec_vspltw_vui_cint_r_vui
903 (A : vector_unsigned_int;
904 B : c_int) return vector_unsigned_int;
905
906 pragma Import
907 (LL_Altivec, vec_vspltw_vui_cint_r_vui, "__builtin_altivec_vspltw");
908
909 function vec_vspltw_vbi_cint_r_vbi
910 (A : vector_bool_int;
911 B : c_int) return vector_bool_int;
912
913 pragma Import
914 (LL_Altivec, vec_vspltw_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
915
916 -- vec_vsplth --
917
918 function vec_vsplth_vbs_cint_r_vbs
919 (A : vector_bool_short;
920 B : c_int) return vector_bool_short;
921
922 pragma Import
923 (LL_Altivec, vec_vsplth_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
924
925 function vec_vsplth_vss_cint_r_vss
926 (A : vector_signed_short;
927 B : c_int) return vector_signed_short;
928
929 pragma Import
930 (LL_Altivec, vec_vsplth_vss_cint_r_vss, "__builtin_altivec_vsplth");
931
932 function vec_vsplth_vus_cint_r_vus
933 (A : vector_unsigned_short;
934 B : c_int) return vector_unsigned_short;
935
936 pragma Import
937 (LL_Altivec, vec_vsplth_vus_cint_r_vus, "__builtin_altivec_vsplth");
938
939 function vec_vsplth_vx_cint_r_vx
940 (A : vector_pixel;
941 B : c_int) return vector_pixel;
942
943 pragma Import
944 (LL_Altivec, vec_vsplth_vx_cint_r_vx, "__builtin_altivec_vsplth");
945
946 -- vec_vspltb --
947
948 function vec_vspltb_vsc_cint_r_vsc
949 (A : vector_signed_char;
950 B : c_int) return vector_signed_char;
951
952 pragma Import
953 (LL_Altivec, vec_vspltb_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
954
955 function vec_vspltb_vuc_cint_r_vuc
956 (A : vector_unsigned_char;
957 B : c_int) return vector_unsigned_char;
958
959 pragma Import
960 (LL_Altivec, vec_vspltb_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
961
962 function vec_vspltb_vbc_cint_r_vbc
963 (A : vector_bool_char;
964 B : c_int) return vector_bool_char;
965
966 pragma Import
967 (LL_Altivec, vec_vspltb_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
968
969 -- vec_splat_s8 --
970
971 function vec_splat_s8_cint_r_vsc
972 (A : c_int) return vector_signed_char;
973
974 pragma Import
975 (LL_Altivec, vec_splat_s8_cint_r_vsc, "__builtin_altivec_vspltisb");
976
977 -- vec_splat_s16 --
978
979 function vec_splat_s16_cint_r_vss
980 (A : c_int) return vector_signed_short;
981
982 pragma Import
983 (LL_Altivec, vec_splat_s16_cint_r_vss, "__builtin_altivec_vspltish");
984
985 -- vec_splat_s32 --
986
987 function vec_splat_s32_cint_r_vsi
988 (A : c_int) return vector_signed_int;
989
990 pragma Import
991 (LL_Altivec, vec_splat_s32_cint_r_vsi, "__builtin_altivec_vspltisw");
992
993 -- vec_splat_u8 --
994
995 function vec_splat_u8_cint_r_vuc
996 (A : c_int) return vector_unsigned_char;
997
998 pragma Import
999 (LL_Altivec, vec_splat_u8_cint_r_vuc, "__builtin_altivec_vspltisb");
1000
1001 -- vec_splat_u16 --
1002
1003 function vec_splat_u16_cint_r_vus
1004 (A : c_int) return vector_unsigned_short;
1005
1006 pragma Import
1007 (LL_Altivec, vec_splat_u16_cint_r_vus, "__builtin_altivec_vspltish");
1008
1009 -- vec_splat_u32 --
1010
1011 function vec_splat_u32_cint_r_vui
1012 (A : c_int) return vector_unsigned_int;
1013
1014 pragma Import
1015 (LL_Altivec, vec_splat_u32_cint_r_vui, "__builtin_altivec_vspltisw");
1016
1017 ------------------------------------------------------------
1018 -- Imports for low-level signature consistent subprograms --
1019 ------------------------------------------------------------
1020
1021 -- vec_dssall --
1022
1023 procedure vec_dssall;
1024
1025 pragma Import
1026 (LL_Altivec, vec_dssall, "__builtin_altivec_dssall");
1027
1028 -----------------------------------------
1029 -- Conversions between low level types --
1030 -----------------------------------------
1031
1032 use GNAT.Altivec.Low_Level_Vectors;
1033
1034 -- Something like...
1035 --
1036 -- TYPES="LL_VBC LL_VUC LL_VSC LL_VBS LL_VUS LL_VSS \
1037 -- LL_VBI LL_VUI LL_VSI LL_VF LL_VP"
1038 -- for TT in `echo $TYPES`; do
1039 -- for ST in `echo $TYPES`; do
1040 -- echo "function To_$TT is new Ada.Unchecked_Conversion ($ST, $TT);"
1041 -- done
1042 -- echo ""
1043 -- done
1044
1045 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBC, LL_VBC);
1046 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUC, LL_VBC);
1047 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSC, LL_VBC);
1048 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBS, LL_VBC);
1049 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUS, LL_VBC);
1050 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSS, LL_VBC);
1051 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBI, LL_VBC);
1052 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUI, LL_VBC);
1053 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSI, LL_VBC);
1054 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VF, LL_VBC);
1055 function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VP, LL_VBC);
1056
1057 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBC, LL_VUC);
1058 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUC, LL_VUC);
1059 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSC, LL_VUC);
1060 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBS, LL_VUC);
1061 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUS, LL_VUC);
1062 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSS, LL_VUC);
1063 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBI, LL_VUC);
1064 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUI, LL_VUC);
1065 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSI, LL_VUC);
1066 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VF, LL_VUC);
1067 function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VP, LL_VUC);
1068
1069 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBC, LL_VSC);
1070 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUC, LL_VSC);
1071 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSC, LL_VSC);
1072 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBS, LL_VSC);
1073 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUS, LL_VSC);
1074 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSS, LL_VSC);
1075 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBI, LL_VSC);
1076 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUI, LL_VSC);
1077 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSI, LL_VSC);
1078 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VF, LL_VSC);
1079 function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VP, LL_VSC);
1080
1081 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBC, LL_VBS);
1082 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUC, LL_VBS);
1083 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSC, LL_VBS);
1084 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBS, LL_VBS);
1085 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUS, LL_VBS);
1086 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSS, LL_VBS);
1087 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBI, LL_VBS);
1088 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUI, LL_VBS);
1089 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSI, LL_VBS);
1090 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VF, LL_VBS);
1091 function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VP, LL_VBS);
1092
1093 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBC, LL_VUS);
1094 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUC, LL_VUS);
1095 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSC, LL_VUS);
1096 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBS, LL_VUS);
1097 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUS, LL_VUS);
1098 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSS, LL_VUS);
1099 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBI, LL_VUS);
1100 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUI, LL_VUS);
1101 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSI, LL_VUS);
1102 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VF, LL_VUS);
1103 function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VP, LL_VUS);
1104
1105 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBC, LL_VSS);
1106 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUC, LL_VSS);
1107 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSC, LL_VSS);
1108 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBS, LL_VSS);
1109 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUS, LL_VSS);
1110 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSS, LL_VSS);
1111 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBI, LL_VSS);
1112 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUI, LL_VSS);
1113 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSI, LL_VSS);
1114 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VF, LL_VSS);
1115 function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VP, LL_VSS);
1116
1117 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBC, LL_VBI);
1118 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUC, LL_VBI);
1119 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSC, LL_VBI);
1120 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBS, LL_VBI);
1121 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUS, LL_VBI);
1122 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSS, LL_VBI);
1123 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBI, LL_VBI);
1124 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUI, LL_VBI);
1125 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSI, LL_VBI);
1126 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VF, LL_VBI);
1127 function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VP, LL_VBI);
1128
1129 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBC, LL_VUI);
1130 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUC, LL_VUI);
1131 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSC, LL_VUI);
1132 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBS, LL_VUI);
1133 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUS, LL_VUI);
1134 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSS, LL_VUI);
1135 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBI, LL_VUI);
1136 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUI, LL_VUI);
1137 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSI, LL_VUI);
1138 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VF, LL_VUI);
1139 function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VP, LL_VUI);
1140
1141 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBC, LL_VSI);
1142 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUC, LL_VSI);
1143 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSC, LL_VSI);
1144 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBS, LL_VSI);
1145 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUS, LL_VSI);
1146 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSS, LL_VSI);
1147 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBI, LL_VSI);
1148 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUI, LL_VSI);
1149 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSI, LL_VSI);
1150 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VF, LL_VSI);
1151 function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VP, LL_VSI);
1152
1153 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBC, LL_VF);
1154 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUC, LL_VF);
1155 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSC, LL_VF);
1156 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBS, LL_VF);
1157 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUS, LL_VF);
1158 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSS, LL_VF);
1159 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBI, LL_VF);
1160 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUI, LL_VF);
1161 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSI, LL_VF);
1162 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VF, LL_VF);
1163 function To_LL_VF is new Ada.Unchecked_Conversion (LL_VP, LL_VF);
1164
1165 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBC, LL_VP);
1166 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUC, LL_VP);
1167 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSC, LL_VP);
1168 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBS, LL_VP);
1169 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUS, LL_VP);
1170 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSS, LL_VP);
1171 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBI, LL_VP);
1172 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUI, LL_VP);
1173 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSI, LL_VP);
1174 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VF, LL_VP);
1175 function To_LL_VP is new Ada.Unchecked_Conversion (LL_VP, LL_VP);
1176
1177 ----------------------------------------------
1178 -- Conversions between pointer/access types --
1179 ----------------------------------------------
1180
1181 function To_PTR is
1182 new Ada.Unchecked_Conversion (vector_unsigned_char_ptr, c_ptr);
1183 function To_PTR is
1184 new Ada.Unchecked_Conversion (vector_signed_char_ptr, c_ptr);
1185 function To_PTR is
1186 new Ada.Unchecked_Conversion (vector_bool_char_ptr, c_ptr);
1187 function To_PTR is
1188 new Ada.Unchecked_Conversion (vector_unsigned_short_ptr, c_ptr);
1189 function To_PTR is
1190 new Ada.Unchecked_Conversion (vector_signed_short_ptr, c_ptr);
1191 function To_PTR is
1192 new Ada.Unchecked_Conversion (vector_bool_short_ptr, c_ptr);
1193 function To_PTR is
1194 new Ada.Unchecked_Conversion (vector_unsigned_int_ptr, c_ptr);
1195 function To_PTR is
1196 new Ada.Unchecked_Conversion (vector_signed_int_ptr, c_ptr);
1197 function To_PTR is
1198 new Ada.Unchecked_Conversion (vector_bool_int_ptr, c_ptr);
1199 function To_PTR is
1200 new Ada.Unchecked_Conversion (vector_float_ptr, c_ptr);
1201 function To_PTR is
1202 new Ada.Unchecked_Conversion (vector_pixel_ptr, c_ptr);
1203 function To_PTR is
1204 new Ada.Unchecked_Conversion (const_vector_bool_char_ptr, c_ptr);
1205 function To_PTR is
1206 new Ada.Unchecked_Conversion (const_vector_signed_char_ptr, c_ptr);
1207 function To_PTR is
1208 new Ada.Unchecked_Conversion (const_vector_unsigned_char_ptr, c_ptr);
1209 function To_PTR is
1210 new Ada.Unchecked_Conversion (const_vector_bool_short_ptr, c_ptr);
1211 function To_PTR is
1212 new Ada.Unchecked_Conversion (const_vector_signed_short_ptr, c_ptr);
1213 function To_PTR is
1214 new Ada.Unchecked_Conversion (const_vector_unsigned_short_ptr, c_ptr);
1215 function To_PTR is
1216 new Ada.Unchecked_Conversion (const_vector_bool_int_ptr, c_ptr);
1217 function To_PTR is
1218 new Ada.Unchecked_Conversion (const_vector_signed_int_ptr, c_ptr);
1219 function To_PTR is
1220 new Ada.Unchecked_Conversion (const_vector_unsigned_int_ptr, c_ptr);
1221 function To_PTR is
1222 new Ada.Unchecked_Conversion (const_vector_float_ptr, c_ptr);
1223 function To_PTR is
1224 new Ada.Unchecked_Conversion (const_vector_pixel_ptr, c_ptr);
1225 function To_PTR is
1226 new Ada.Unchecked_Conversion (c_ptr, c_ptr);
1227 function To_PTR is
1228 new Ada.Unchecked_Conversion (signed_char_ptr, c_ptr);
1229 function To_PTR is
1230 new Ada.Unchecked_Conversion (unsigned_char_ptr, c_ptr);
1231 function To_PTR is
1232 new Ada.Unchecked_Conversion (short_ptr, c_ptr);
1233 function To_PTR is
1234 new Ada.Unchecked_Conversion (signed_short_ptr, c_ptr);
1235 function To_PTR is
1236 new Ada.Unchecked_Conversion (unsigned_short_ptr, c_ptr);
1237 function To_PTR is
1238 new Ada.Unchecked_Conversion (int_ptr, c_ptr);
1239 function To_PTR is
1240 new Ada.Unchecked_Conversion (signed_int_ptr, c_ptr);
1241 function To_PTR is
1242 new Ada.Unchecked_Conversion (unsigned_int_ptr, c_ptr);
1243 function To_PTR is
1244 new Ada.Unchecked_Conversion (long_ptr, c_ptr);
1245 function To_PTR is
1246 new Ada.Unchecked_Conversion (signed_long_ptr, c_ptr);
1247 function To_PTR is
1248 new Ada.Unchecked_Conversion (unsigned_long_ptr, c_ptr);
1249 function To_PTR is
1250 new Ada.Unchecked_Conversion (float_ptr, c_ptr);
1251 function To_PTR is
1252 new Ada.Unchecked_Conversion (const_signed_char_ptr, c_ptr);
1253 function To_PTR is
1254 new Ada.Unchecked_Conversion (const_unsigned_char_ptr, c_ptr);
1255 function To_PTR is
1256 new Ada.Unchecked_Conversion (const_short_ptr, c_ptr);
1257 function To_PTR is
1258 new Ada.Unchecked_Conversion (const_signed_short_ptr, c_ptr);
1259 function To_PTR is
1260 new Ada.Unchecked_Conversion (const_unsigned_short_ptr, c_ptr);
1261 function To_PTR is
1262 new Ada.Unchecked_Conversion (const_int_ptr, c_ptr);
1263 function To_PTR is
1264 new Ada.Unchecked_Conversion (const_signed_int_ptr, c_ptr);
1265 function To_PTR is
1266 new Ada.Unchecked_Conversion (const_unsigned_int_ptr, c_ptr);
1267 function To_PTR is
1268 new Ada.Unchecked_Conversion (const_long_ptr, c_ptr);
1269 function To_PTR is
1270 new Ada.Unchecked_Conversion (const_signed_long_ptr, c_ptr);
1271 function To_PTR is
1272 new Ada.Unchecked_Conversion (const_unsigned_long_ptr, c_ptr);
1273 function To_PTR is
1274 new Ada.Unchecked_Conversion (const_float_ptr, c_ptr);
1275 function To_PTR is
1276 new Ada.Unchecked_Conversion (constv_char_ptr, c_ptr);
1277 function To_PTR is
1278 new Ada.Unchecked_Conversion (constv_signed_char_ptr, c_ptr);
1279 function To_PTR is
1280 new Ada.Unchecked_Conversion (constv_unsigned_char_ptr, c_ptr);
1281 function To_PTR is
1282 new Ada.Unchecked_Conversion (constv_short_ptr, c_ptr);
1283 function To_PTR is
1284 new Ada.Unchecked_Conversion (constv_signed_short_ptr, c_ptr);
1285 function To_PTR is
1286 new Ada.Unchecked_Conversion (constv_unsigned_short_ptr, c_ptr);
1287 function To_PTR is
1288 new Ada.Unchecked_Conversion (constv_int_ptr, c_ptr);
1289 function To_PTR is
1290 new Ada.Unchecked_Conversion (constv_signed_int_ptr, c_ptr);
1291 function To_PTR is
1292 new Ada.Unchecked_Conversion (constv_unsigned_int_ptr, c_ptr);
1293 function To_PTR is
1294 new Ada.Unchecked_Conversion (constv_long_ptr, c_ptr);
1295 function To_PTR is
1296 new Ada.Unchecked_Conversion (constv_signed_long_ptr, c_ptr);
1297 function To_PTR is
1298 new Ada.Unchecked_Conversion (constv_unsigned_long_ptr, c_ptr);
1299 function To_PTR is
1300 new Ada.Unchecked_Conversion (constv_float_ptr, c_ptr);
1301
1302 end GNAT.Altivec.Low_Level_Interface;