diff options
Diffstat (limited to 'gcc/ada/g-alveop.adb')
-rw-r--r-- | gcc/ada/g-alveop.adb | 436 |
1 files changed, 430 insertions, 6 deletions
diff --git a/gcc/ada/g-alveop.adb b/gcc/ada/g-alveop.adb index 8dcfe17..c90c09c 100644 --- a/gcc/ada/g-alveop.adb +++ b/gcc/ada/g-alveop.adb @@ -29,7 +29,15 @@ -- -- ------------------------------------------------------------------------------ -with GNAT.Altivec.Low_Level_Interface; use GNAT.Altivec.Low_Level_Interface; +with GNAT.Altivec.Low_Level_Interface; use GNAT.Altivec.Low_Level_Interface; + +------------------------------------ +-- GNAT.Altivec.Vector_Operations -- +------------------------------------ + +------------------------------------ +-- GNAT.Altivec.Vector_Operations -- +------------------------------------ package body GNAT.Altivec.Vector_Operations is @@ -37,7 +45,9 @@ package body GNAT.Altivec.Vector_Operations is -- Bodies for generic and specific Altivec operations -- -------------------------------------------------------- + ------------- -- vec_abs -- + ------------- function vec_abs (A : vector_signed_char) return vector_signed_char @@ -67,7 +77,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (abs_v4sf (A)); end vec_abs; + -------------- -- vec_abss -- + -------------- function vec_abss (A : vector_signed_char) return vector_signed_char @@ -90,7 +102,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (abss_v4si (A)); end vec_abss; + ------------- -- vec_add -- + ------------- function vec_add (A : vector_bool_char; @@ -244,7 +258,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vaddfp (To_LL_VF (A), To_LL_VF (B))); end vec_add; + ---------------- -- vec_vaddfp -- + ---------------- function vec_vaddfp (A : vector_float; @@ -254,7 +270,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vaddfp (To_LL_VF (A), To_LL_VF (B))); end vec_vaddfp; + ----------------- -- vec_vadduwm -- + ----------------- function vec_vadduwm (A : vector_bool_int; @@ -304,7 +322,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vadduwm (To_LL_VSI (A), To_LL_VSI (B))); end vec_vadduwm; + ----------------- -- vec_vadduhm -- + ----------------- function vec_vadduhm (A : vector_bool_short; @@ -354,7 +374,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vadduhm (To_LL_VSS (A), To_LL_VSS (B))); end vec_vadduhm; + ----------------- -- vec_vaddubm -- + ----------------- function vec_vaddubm (A : vector_bool_char; @@ -404,7 +426,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vaddubm (To_LL_VSC (A), To_LL_VSC (B))); end vec_vaddubm; + -------------- -- vec_addc -- + -------------- function vec_addc (A : vector_unsigned_int; @@ -414,7 +438,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vaddcuw (To_LL_VSI (A), To_LL_VSI (B))); end vec_addc; + -------------- -- vec_adds -- + -------------- function vec_adds (A : vector_bool_char; @@ -560,7 +586,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vaddsws (To_LL_VSI (A), To_LL_VSI (B))); end vec_adds; + ----------------- -- vec_vaddsws -- + ----------------- function vec_vaddsws (A : vector_bool_int; @@ -586,7 +614,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vaddsws (To_LL_VSI (A), To_LL_VSI (B))); end vec_vaddsws; + ----------------- -- vec_vadduws -- + ----------------- function vec_vadduws (A : vector_bool_int; @@ -612,7 +642,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vadduws (To_LL_VSI (A), To_LL_VSI (B))); end vec_vadduws; + ----------------- -- vec_vaddshs -- + ----------------- function vec_vaddshs (A : vector_bool_short; @@ -638,7 +670,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vaddshs (To_LL_VSS (A), To_LL_VSS (B))); end vec_vaddshs; + ----------------- -- vec_vadduhs -- + ----------------- function vec_vadduhs (A : vector_bool_short; @@ -664,7 +698,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vadduhs (To_LL_VSS (A), To_LL_VSS (B))); end vec_vadduhs; + ----------------- -- vec_vaddsbs -- + ----------------- function vec_vaddsbs (A : vector_bool_char; @@ -690,7 +726,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSC (vaddsbs (To_LL_VSC (A), To_LL_VSC (B))); end vec_vaddsbs; + ----------------- -- vec_vaddubs -- + ----------------- function vec_vaddubs (A : vector_bool_char; @@ -716,7 +754,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vaddubs (To_LL_VSC (A), To_LL_VSC (B))); end vec_vaddubs; + ------------- -- vec_and -- + ------------- function vec_and (A : vector_float; @@ -910,7 +950,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vand (To_LL_VSI (A), To_LL_VSI (B))); end vec_and; + -------------- -- vec_andc -- + -------------- function vec_andc (A : vector_float; @@ -1104,7 +1146,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vandc (To_LL_VSI (A), To_LL_VSI (B))); end vec_andc; + ------------- -- vec_avg -- + ------------- function vec_avg (A : vector_unsigned_char; @@ -1154,7 +1198,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vavgsw (To_LL_VSI (A), To_LL_VSI (B))); end vec_avg; + ---------------- -- vec_vavgsw -- + ---------------- function vec_vavgsw (A : vector_signed_int; @@ -1164,7 +1210,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vavgsw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vavgsw; + ---------------- -- vec_vavguw -- + ---------------- function vec_vavguw (A : vector_unsigned_int; @@ -1174,7 +1222,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vavguw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vavguw; + ---------------- -- vec_vavgsh -- + ---------------- function vec_vavgsh (A : vector_signed_short; @@ -1184,7 +1234,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vavgsh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vavgsh; + ---------------- -- vec_vavguh -- + ---------------- function vec_vavguh (A : vector_unsigned_short; @@ -1194,7 +1246,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vavguh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vavguh; + ---------------- -- vec_vavgsb -- + ---------------- function vec_vavgsb (A : vector_signed_char; @@ -1204,7 +1258,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSC (vavgsb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vavgsb; + ---------------- -- vec_vavgub -- + ---------------- function vec_vavgub (A : vector_unsigned_char; @@ -1214,7 +1270,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vavgub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vavgub; + -------------- -- vec_ceil -- + -------------- function vec_ceil (A : vector_float) return vector_float @@ -1223,7 +1281,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vrfip (To_LL_VF (A))); end vec_ceil; + -------------- -- vec_cmpb -- + -------------- function vec_cmpb (A : vector_float; @@ -1233,7 +1293,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vcmpbfp (To_LL_VF (A), To_LL_VF (B))); end vec_cmpb; + --------------- -- vec_cmpeq -- + --------------- function vec_cmpeq (A : vector_signed_char; @@ -1291,7 +1353,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpeqfp (To_LL_VF (A), To_LL_VF (B))); end vec_cmpeq; + ------------------ -- vec_vcmpeqfp -- + ------------------ function vec_vcmpeqfp (A : vector_float; @@ -1301,7 +1365,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpeqfp (To_LL_VF (A), To_LL_VF (B))); end vec_vcmpeqfp; + ------------------ -- vec_vcmpequw -- + ------------------ function vec_vcmpequw (A : vector_signed_int; @@ -1319,7 +1385,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpequw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vcmpequw; + ------------------ -- vec_vcmpequh -- + ------------------ function vec_vcmpequh (A : vector_signed_short; @@ -1337,7 +1405,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBS (vcmpequh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vcmpequh; + ------------------ -- vec_vcmpequb -- + ------------------ function vec_vcmpequb (A : vector_signed_char; @@ -1355,7 +1425,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vcmpequb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vcmpequb; + --------------- -- vec_cmpge -- + --------------- function vec_cmpge (A : vector_float; @@ -1365,7 +1437,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgefp (To_LL_VF (A), To_LL_VF (B))); end vec_cmpge; + --------------- -- vec_cmpgt -- + --------------- function vec_cmpgt (A : vector_unsigned_char; @@ -1423,7 +1497,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgtfp (To_LL_VF (A), To_LL_VF (B))); end vec_cmpgt; + ------------------ -- vec_vcmpgtfp -- + ------------------ function vec_vcmpgtfp (A : vector_float; @@ -1433,7 +1509,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgtfp (To_LL_VF (A), To_LL_VF (B))); end vec_vcmpgtfp; + ------------------ -- vec_vcmpgtsw -- + ------------------ function vec_vcmpgtsw (A : vector_signed_int; @@ -1443,7 +1521,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgtsw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vcmpgtsw; + ------------------ -- vec_vcmpgtuw -- + ------------------ function vec_vcmpgtuw (A : vector_unsigned_int; @@ -1453,7 +1533,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgtuw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vcmpgtuw; + ------------------ -- vec_vcmpgtsh -- + ------------------ function vec_vcmpgtsh (A : vector_signed_short; @@ -1463,7 +1545,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBS (vcmpgtsh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vcmpgtsh; + ------------------ -- vec_vcmpgtuh -- + ------------------ function vec_vcmpgtuh (A : vector_unsigned_short; @@ -1473,7 +1557,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBS (vcmpgtuh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vcmpgtuh; + ------------------ -- vec_vcmpgtsb -- + ------------------ function vec_vcmpgtsb (A : vector_signed_char; @@ -1483,7 +1569,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vcmpgtsb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vcmpgtsb; + ------------------ -- vec_vcmpgtub -- + ------------------ function vec_vcmpgtub (A : vector_unsigned_char; @@ -1493,7 +1581,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vcmpgtub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vcmpgtub; + --------------- -- vec_cmple -- + --------------- function vec_cmple (A : vector_float; @@ -1503,7 +1593,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgefp (To_LL_VF (B), To_LL_VF (A))); end vec_cmple; + --------------- -- vec_cmplt -- + --------------- function vec_cmplt (A : vector_unsigned_char; @@ -1561,7 +1653,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vcmpgtfp (To_LL_VF (B), To_LL_VF (A))); end vec_cmplt; + --------------- -- vec_expte -- + --------------- function vec_expte (A : vector_float) return vector_float @@ -1570,7 +1664,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vexptefp (To_LL_VF (A))); end vec_expte; + --------------- -- vec_floor -- + --------------- function vec_floor (A : vector_float) return vector_float @@ -1579,7 +1675,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vrfim (To_LL_VF (A))); end vec_floor; + ------------ -- vec_ld -- + ------------ function vec_ld (A : c_long; @@ -1741,7 +1839,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (lvx (A, To_PTR (B))); end vec_ld; + ------------- -- vec_lde -- + ------------- function vec_lde (A : c_long; @@ -1815,7 +1915,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (lvewx (A, To_PTR (B))); end vec_lde; + --------------- -- vec_lvewx -- + --------------- function vec_lvewx (A : c_long; @@ -1857,7 +1959,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (lvewx (A, To_PTR (B))); end vec_lvewx; + --------------- -- vec_lvehx -- + --------------- function vec_lvehx (A : c_long; @@ -1875,7 +1979,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (lvehx (A, To_PTR (B))); end vec_lvehx; + --------------- -- vec_lvebx -- + --------------- function vec_lvebx (A : c_long; @@ -1893,7 +1999,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (lvebx (A, To_PTR (B))); end vec_lvebx; + ------------- -- vec_ldl -- + ------------- function vec_ldl (A : c_long; @@ -2055,7 +2163,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (lvxl (A, To_PTR (B))); end vec_ldl; + -------------- -- vec_loge -- + -------------- function vec_loge (A : vector_float) return vector_float @@ -2064,7 +2174,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vlogefp (To_LL_VF (A))); end vec_loge; + -------------- -- vec_lvsl -- + -------------- function vec_lvsl (A : c_long; @@ -2138,7 +2250,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (lvsl (A, To_PTR (B))); end vec_lvsl; + -------------- -- vec_lvsr -- + -------------- function vec_lvsr (A : c_long; @@ -2212,7 +2326,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (lvsr (A, To_PTR (B))); end vec_lvsr; + -------------- -- vec_madd -- + -------------- function vec_madd (A : vector_float; @@ -2223,7 +2339,9 @@ package body GNAT.Altivec.Vector_Operations is return vmaddfp (A, B, C); end vec_madd; + --------------- -- vec_madds -- + --------------- function vec_madds (A : vector_signed_short; @@ -2234,7 +2352,9 @@ package body GNAT.Altivec.Vector_Operations is return vmhaddshs (A, B, C); end vec_madds; + ------------- -- vec_max -- + ------------- function vec_max (A : vector_bool_char; @@ -2388,7 +2508,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vmaxfp (To_LL_VF (A), To_LL_VF (B))); end vec_max; + ---------------- -- vec_vmaxfp -- + ---------------- function vec_vmaxfp (A : vector_float; @@ -2398,7 +2520,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vmaxfp (To_LL_VF (A), To_LL_VF (B))); end vec_vmaxfp; + ---------------- -- vec_vmaxsw -- + ---------------- function vec_vmaxsw (A : vector_bool_int; @@ -2424,7 +2548,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vmaxsw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vmaxsw; + ---------------- -- vec_vmaxuw -- + ---------------- function vec_vmaxuw (A : vector_bool_int; @@ -2450,7 +2576,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vmaxuw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vmaxuw; + ---------------- -- vec_vmaxsh -- + ---------------- function vec_vmaxsh (A : vector_bool_short; @@ -2476,7 +2604,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vmaxsh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmaxsh; + ---------------- -- vec_vmaxuh -- + ---------------- function vec_vmaxuh (A : vector_bool_short; @@ -2502,7 +2632,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vmaxuh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmaxuh; + ---------------- -- vec_vmaxsb -- + ---------------- function vec_vmaxsb (A : vector_bool_char; @@ -2528,7 +2660,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSC (vmaxsb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmaxsb; + ---------------- -- vec_vmaxub -- + ---------------- function vec_vmaxub (A : vector_bool_char; @@ -2554,7 +2688,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vmaxub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmaxub; + ---------------- -- vec_mergeh -- + ---------------- function vec_mergeh (A : vector_bool_char; @@ -2644,7 +2780,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vmrghw (To_LL_VSI (A), To_LL_VSI (B))); end vec_mergeh; + ---------------- -- vec_vmrghw -- + ---------------- function vec_vmrghw (A : vector_float; @@ -2678,7 +2816,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vmrghw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vmrghw; + ---------------- -- vec_vmrghh -- + ---------------- function vec_vmrghh (A : vector_bool_short; @@ -2712,7 +2852,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VP (vmrghh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmrghh; + ---------------- -- vec_vmrghb -- + ---------------- function vec_vmrghb (A : vector_bool_char; @@ -2738,7 +2880,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vmrghb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmrghb; + ---------------- -- vec_mergel -- + ---------------- function vec_mergel (A : vector_bool_char; @@ -2828,7 +2972,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vmrglw (To_LL_VSI (A), To_LL_VSI (B))); end vec_mergel; + ---------------- -- vec_vmrglw -- + ---------------- function vec_vmrglw (A : vector_float; @@ -2862,7 +3008,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vmrglw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vmrglw; + ---------------- -- vec_vmrglh -- + ---------------- function vec_vmrglh (A : vector_bool_short; @@ -2896,7 +3044,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VP (vmrglh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmrglh; + ---------------- -- vec_vmrglb -- + ---------------- function vec_vmrglb (A : vector_bool_char; @@ -2922,7 +3072,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vmrglb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmrglb; + ---------------- -- vec_mfvscr -- + ---------------- function vec_mfvscr return vector_unsigned_short is @@ -2930,7 +3082,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (mfvscr); end vec_mfvscr; + ------------- -- vec_min -- + ------------- function vec_min (A : vector_bool_char; @@ -3172,7 +3326,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vminsh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vminsh; + ---------------- -- vec_vminuh -- + ---------------- function vec_vminuh (A : vector_bool_short; @@ -3198,7 +3354,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vminuh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vminuh; + ---------------- -- vec_vminsb -- + ---------------- function vec_vminsb (A : vector_bool_char; @@ -3224,7 +3382,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSC (vminsb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vminsb; + ---------------- -- vec_vminub -- + ---------------- function vec_vminub (A : vector_bool_char; @@ -3250,7 +3410,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vminub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vminub; + --------------- -- vec_mladd -- + --------------- function vec_mladd (A : vector_signed_short; @@ -3289,7 +3451,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VUS (vmladduhm (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSS (C))); end vec_mladd; + ---------------- -- vec_mradds -- + ---------------- function vec_mradds (A : vector_signed_short; @@ -3300,7 +3464,9 @@ package body GNAT.Altivec.Vector_Operations is return vmhraddshs (A, B, C); end vec_mradds; + -------------- -- vec_msum -- + -------------- function vec_msum (A : vector_unsigned_char; @@ -3342,7 +3508,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VSI (vmsumshm (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSI (C))); end vec_msum; + ------------------ -- vec_vmsumshm -- + ------------------ function vec_vmsumshm (A : vector_signed_short; @@ -3354,7 +3522,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VSI (vmsumshm (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSI (C))); end vec_vmsumshm; + ------------------ -- vec_vmsumuhm -- + ------------------ function vec_vmsumuhm (A : vector_unsigned_short; @@ -3366,7 +3536,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VUI (vmsumuhm (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSI (C))); end vec_vmsumuhm; + ------------------ -- vec_vmsummbm -- + ------------------ function vec_vmsummbm (A : vector_signed_char; @@ -3378,7 +3550,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VSI (vmsummbm (To_LL_VSC (A), To_LL_VSC (B), To_LL_VSI (C))); end vec_vmsummbm; + ------------------ -- vec_vmsumubm -- + ------------------ function vec_vmsumubm (A : vector_unsigned_char; @@ -3390,7 +3564,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VUI (vmsumubm (To_LL_VSC (A), To_LL_VSC (B), To_LL_VSI (C))); end vec_vmsumubm; + --------------- -- vec_msums -- + --------------- function vec_msums (A : vector_unsigned_short; @@ -3412,7 +3588,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VSI (vmsumshs (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSI (C))); end vec_msums; + ------------------ -- vec_vmsumshs -- + ------------------ function vec_vmsumshs (A : vector_signed_short; @@ -3424,7 +3602,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VSI (vmsumshs (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSI (C))); end vec_vmsumshs; + ------------------ -- vec_vmsumuhs -- + ------------------ function vec_vmsumuhs (A : vector_unsigned_short; @@ -3436,7 +3616,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VUI (vmsumuhs (To_LL_VSS (A), To_LL_VSS (B), To_LL_VSI (C))); end vec_vmsumuhs; + ---------------- -- vec_mtvscr -- + ---------------- procedure vec_mtvscr (A : vector_signed_int) @@ -3508,7 +3690,9 @@ package body GNAT.Altivec.Vector_Operations is mtvscr (To_LL_VSI (A)); end vec_mtvscr; + -------------- -- vec_mule -- + -------------- function vec_mule (A : vector_unsigned_char; @@ -3542,7 +3726,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vmulesh (To_LL_VSS (A), To_LL_VSS (B))); end vec_mule; + ----------------- -- vec_vmulesh -- + ----------------- function vec_vmulesh (A : vector_signed_short; @@ -3552,7 +3738,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vmulesh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmulesh; + ----------------- -- vec_vmuleuh -- + ----------------- function vec_vmuleuh (A : vector_unsigned_short; @@ -3562,7 +3750,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vmuleuh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmuleuh; + ----------------- -- vec_vmulesb -- + ----------------- function vec_vmulesb (A : vector_signed_char; @@ -3572,7 +3762,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vmuleub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmulesb; + ----------------- -- vec_vmuleub -- + ----------------- function vec_vmuleub (A : vector_unsigned_char; @@ -3582,7 +3774,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vmuleub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmuleub; + -------------- -- vec_mulo -- + -------------- function vec_mulo (A : vector_unsigned_char; @@ -3616,7 +3810,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vmulosh (To_LL_VSS (A), To_LL_VSS (B))); end vec_mulo; + ----------------- -- vec_vmulosh -- + ----------------- function vec_vmulosh (A : vector_signed_short; @@ -3626,7 +3822,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vmulosh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmulosh; + ----------------- -- vec_vmulouh -- + ----------------- function vec_vmulouh (A : vector_unsigned_short; @@ -3636,7 +3834,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vmulouh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vmulouh; + ----------------- -- vec_vmulosb -- + ----------------- function vec_vmulosb (A : vector_signed_char; @@ -3646,7 +3846,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vmulosb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmulosb; + ----------------- -- vec_vmuloub -- + ----------------- function vec_vmuloub (A : vector_unsigned_char; @@ -3656,7 +3858,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vmuloub (To_LL_VSC (A), To_LL_VSC (B))); end vec_vmuloub; + --------------- -- vec_nmsub -- + --------------- function vec_nmsub (A : vector_float; @@ -3667,7 +3871,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vnmsubfp (To_LL_VF (A), To_LL_VF (B), To_LL_VF (C))); end vec_nmsub; + ------------- -- vec_nor -- + ------------- function vec_nor (A : vector_float; @@ -3749,7 +3955,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vnor (To_LL_VSI (A), To_LL_VSI (B))); end vec_nor; + ------------ -- vec_or -- + ------------ function vec_or (A : vector_float; @@ -3943,7 +4151,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vor (To_LL_VSI (A), To_LL_VSI (B))); end vec_or; + -------------- -- vec_pack -- + -------------- function vec_pack (A : vector_signed_short; @@ -3993,7 +4203,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBS (vpkuwum (To_LL_VSI (A), To_LL_VSI (B))); end vec_pack; + ----------------- -- vec_vpkuwum -- + ----------------- function vec_vpkuwum (A : vector_bool_int; @@ -4019,7 +4231,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vpkuwum (To_LL_VSI (A), To_LL_VSI (B))); end vec_vpkuwum; + ----------------- -- vec_vpkuhum -- + ----------------- function vec_vpkuhum (A : vector_bool_short; @@ -4045,7 +4259,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vpkuhum (To_LL_VSS (A), To_LL_VSS (B))); end vec_vpkuhum; + ---------------- -- vec_packpx -- + ---------------- function vec_packpx (A : vector_unsigned_int; @@ -4055,7 +4271,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VP (vpkpx (To_LL_VSI (A), To_LL_VSI (B))); end vec_packpx; + --------------- -- vec_packs -- + --------------- function vec_packs (A : vector_unsigned_short; @@ -4089,7 +4307,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vpkswss (To_LL_VSI (A), To_LL_VSI (B))); end vec_packs; + ----------------- -- vec_vpkswss -- + ----------------- function vec_vpkswss (A : vector_signed_int; @@ -4099,7 +4319,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vpkswss (To_LL_VSI (A), To_LL_VSI (B))); end vec_vpkswss; + ----------------- -- vec_vpkuwus -- + ----------------- function vec_vpkuwus (A : vector_unsigned_int; @@ -4109,7 +4331,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vpkuwus (To_LL_VSI (A), To_LL_VSI (B))); end vec_vpkuwus; + ----------------- -- vec_vpkshss -- + ----------------- function vec_vpkshss (A : vector_signed_short; @@ -4119,7 +4343,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSC (vpkshss (To_LL_VSS (A), To_LL_VSS (B))); end vec_vpkshss; + ----------------- -- vec_vpkuhus -- + ----------------- function vec_vpkuhus (A : vector_unsigned_short; @@ -4129,7 +4355,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vpkuhus (To_LL_VSS (A), To_LL_VSS (B))); end vec_vpkuhus; + ---------------- -- vec_packsu -- + ---------------- function vec_packsu (A : vector_unsigned_short; @@ -4163,7 +4391,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vpkswus (To_LL_VSI (A), To_LL_VSI (B))); end vec_packsu; + ----------------- -- vec_vpkswus -- + ----------------- function vec_vpkswus (A : vector_signed_int; @@ -4173,7 +4403,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vpkswus (To_LL_VSI (A), To_LL_VSI (B))); end vec_vpkswus; + ----------------- -- vec_vpkshus -- + ----------------- function vec_vpkshus (A : vector_signed_short; @@ -4183,7 +4415,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vpkshus (To_LL_VSS (A), To_LL_VSS (B))); end vec_vpkshus; + -------------- -- vec_perm -- + -------------- function vec_perm (A : vector_float; @@ -4295,7 +4529,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VBC (vperm_4si (To_LL_VSI (A), To_LL_VSI (B), To_LL_VSC (C))); end vec_perm; + ------------ -- vec_re -- + ------------ function vec_re (A : vector_float) return vector_float @@ -4304,7 +4540,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vrefp (To_LL_VF (A))); end vec_re; + ------------ -- vec_rl -- + ------------ function vec_rl (A : vector_signed_char; @@ -4354,7 +4592,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vrlw (To_LL_VSI (A), To_LL_VSI (B))); end vec_rl; + -------------- -- vec_vrlw -- + -------------- function vec_vrlw (A : vector_signed_int; @@ -4372,7 +4612,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vrlw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vrlw; + -------------- -- vec_vrlh -- + -------------- function vec_vrlh (A : vector_signed_short; @@ -4390,7 +4632,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vrlh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vrlh; + -------------- -- vec_vrlb -- + -------------- function vec_vrlb (A : vector_signed_char; @@ -4408,7 +4652,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vrlb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vrlb; + --------------- -- vec_round -- + --------------- function vec_round (A : vector_float) return vector_float @@ -4417,7 +4663,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vrfin (To_LL_VF (A))); end vec_round; + ---------------- -- vec_rsqrte -- + ---------------- function vec_rsqrte (A : vector_float) return vector_float @@ -4426,7 +4674,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vrsqrtefp (To_LL_VF (A))); end vec_rsqrte; + ------------- -- vec_sel -- + ------------- function vec_sel (A : vector_float; @@ -4626,7 +4876,9 @@ package body GNAT.Altivec.Vector_Operations is To_LL_VBC (vsel_4si (To_LL_VSI (A), To_LL_VSI (B), To_LL_VSI (C))); end vec_sel; + ------------ -- vec_sl -- + ------------ function vec_sl (A : vector_signed_char; @@ -4676,7 +4928,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vslw (To_LL_VSI (A), To_LL_VSI (B))); end vec_sl; + -------------- -- vec_vslw -- + -------------- function vec_vslw (A : vector_signed_int; @@ -4694,7 +4948,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vslw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vslw; + -------------- -- vec_vslh -- + -------------- function vec_vslh (A : vector_signed_short; @@ -4712,7 +4968,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vslh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vslh; + -------------- -- vec_vslb -- + -------------- function vec_vslb (A : vector_signed_char; @@ -4730,7 +4988,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vslb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vslb; + ------------- -- vec_sll -- + ------------- function vec_sll (A : vector_signed_int; @@ -4972,7 +5232,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vsl (To_LL_VSI (A), To_LL_VSI (B))); end vec_sll; + ------------- -- vec_slo -- + ------------- function vec_slo (A : vector_float; @@ -5102,7 +5364,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vslo (To_LL_VSI (A), To_LL_VSI (B))); end vec_slo; + ------------ -- vec_sr -- + ------------ function vec_sr (A : vector_signed_char; @@ -5152,7 +5416,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsrw (To_LL_VSI (A), To_LL_VSI (B))); end vec_sr; + -------------- -- vec_vsrw -- + -------------- function vec_vsrw (A : vector_signed_int; @@ -5170,7 +5436,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsrw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vsrw; + -------------- -- vec_vsrh -- + -------------- function vec_vsrh (A : vector_signed_short; @@ -5188,7 +5456,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vsrh (To_LL_VSS (A), To_LL_VSS (B))); end vec_vsrh; + -------------- -- vec_vsrb -- + -------------- function vec_vsrb (A : vector_signed_char; @@ -5206,7 +5476,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vsrb (To_LL_VSC (A), To_LL_VSC (B))); end vec_vsrb; + ------------- -- vec_sra -- + ------------- function vec_sra (A : vector_signed_char; @@ -5256,7 +5528,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsraw (To_LL_VSI (A), To_LL_VSI (B))); end vec_sra; + --------------- -- vec_vsraw -- + --------------- function vec_vsraw (A : vector_signed_int; @@ -5274,7 +5548,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsraw (To_LL_VSI (A), To_LL_VSI (B))); end vec_vsraw; + --------------- -- vec_vsrah -- + --------------- function vec_vsrah (A : vector_signed_short; @@ -5292,7 +5568,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vsrah (To_LL_VSS (A), To_LL_VSS (B))); end vec_vsrah; + --------------- -- vec_vsrab -- + --------------- function vec_vsrab (A : vector_signed_char; @@ -5310,7 +5588,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vsrab (To_LL_VSC (A), To_LL_VSC (B))); end vec_vsrab; + ------------- -- vec_srl -- + ------------- function vec_srl (A : vector_signed_int; @@ -5552,7 +5832,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vsr (To_LL_VSI (A), To_LL_VSI (B))); end vec_srl; + ------------- -- vec_sro -- + ------------- function vec_sro (A : vector_float; @@ -5682,7 +5964,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vsro (To_LL_VSI (A), To_LL_VSI (B))); end vec_sro; + ------------ -- vec_st -- + ------------ procedure vec_st (A : vector_float; @@ -5918,7 +6202,9 @@ package body GNAT.Altivec.Vector_Operations is stvx (To_LL_VSI (A), B, To_PTR (C)); end vec_st; + ------------- -- vec_ste -- + ------------- procedure vec_ste (A : vector_signed_char; @@ -6055,7 +6341,9 @@ package body GNAT.Altivec.Vector_Operations is stvewx (To_LL_VSI (A), B, To_PTR (C)); end vec_ste; + ---------------- -- vec_stvewx -- + ---------------- procedure vec_stvewx (A : vector_float; @@ -6102,7 +6390,9 @@ package body GNAT.Altivec.Vector_Operations is stvewx (To_LL_VSI (A), B, To_PTR (C)); end vec_stvewx; + ---------------- -- vec_stvehx -- + ---------------- procedure vec_stvehx (A : vector_signed_short; @@ -6158,7 +6448,9 @@ package body GNAT.Altivec.Vector_Operations is stvehx (To_LL_VSS (A), B, To_PTR (C)); end vec_stvehx; + ---------------- -- vec_stvebx -- + ---------------- procedure vec_stvebx (A : vector_signed_char; @@ -6196,7 +6488,9 @@ package body GNAT.Altivec.Vector_Operations is stvebx (To_LL_VSC (A), B, To_PTR (C)); end vec_stvebx; + ------------- -- vec_stl -- + ------------- procedure vec_stl (A : vector_float; @@ -6432,7 +6726,9 @@ package body GNAT.Altivec.Vector_Operations is stvxl (To_LL_VSI (A), B, To_PTR (C)); end vec_stl; + ------------- -- vec_sub -- + ------------- function vec_sub (A : vector_bool_char; @@ -6586,7 +6882,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vsubfp (To_LL_VF (A), To_LL_VF (B))); end vec_sub; + ---------------- -- vec_vsubfp -- + ---------------- function vec_vsubfp (A : vector_float; @@ -6596,7 +6894,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vsubfp (To_LL_VF (A), To_LL_VF (B))); end vec_vsubfp; + ----------------- -- vec_vsubuwm -- + ----------------- function vec_vsubuwm (A : vector_bool_int; @@ -6646,7 +6946,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsubuwm (To_LL_VSI (A), To_LL_VSI (B))); end vec_vsubuwm; + ----------------- -- vec_vsubuhm -- + ----------------- function vec_vsubuhm (A : vector_bool_short; @@ -6696,7 +6998,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vsubuhm (To_LL_VSS (A), To_LL_VSS (B))); end vec_vsubuhm; + ----------------- -- vec_vsububm -- + ----------------- function vec_vsububm (A : vector_bool_char; @@ -6746,7 +7050,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vsububm (To_LL_VSC (A), To_LL_VSC (B))); end vec_vsububm; + -------------- -- vec_subc -- + -------------- function vec_subc (A : vector_unsigned_int; @@ -6756,7 +7062,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsubcuw (To_LL_VSI (A), To_LL_VSI (B))); end vec_subc; + -------------- -- vec_subs -- + -------------- function vec_subs (A : vector_bool_char; @@ -6902,7 +7210,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsubsws (To_LL_VSI (A), To_LL_VSI (B))); end vec_subs; + ----------------- -- vec_vsubsws -- + ----------------- function vec_vsubsws (A : vector_bool_int; @@ -6928,7 +7238,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsubsws (To_LL_VSI (A), To_LL_VSI (B))); end vec_vsubsws; + ----------------- -- vec_vsubuws -- + ----------------- function vec_vsubuws (A : vector_bool_int; @@ -6954,7 +7266,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsubuws (To_LL_VSI (A), To_LL_VSI (B))); end vec_vsubuws; + ----------------- -- vec_vsubshs -- + ----------------- function vec_vsubshs (A : vector_bool_short; @@ -6980,7 +7294,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vsubshs (To_LL_VSS (A), To_LL_VSS (B))); end vec_vsubshs; + ----------------- -- vec_vsubuhs -- + ----------------- function vec_vsubuhs (A : vector_bool_short; @@ -7006,7 +7322,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vsubuhs (To_LL_VSS (A), To_LL_VSS (B))); end vec_vsubuhs; + ----------------- -- vec_vsubsbs -- + ----------------- function vec_vsubsbs (A : vector_bool_char; @@ -7032,7 +7350,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSC (vsubsbs (To_LL_VSC (A), To_LL_VSC (B))); end vec_vsubsbs; + ----------------- -- vec_vsububs -- + ----------------- function vec_vsububs (A : vector_bool_char; @@ -7058,7 +7378,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vsububs (To_LL_VSC (A), To_LL_VSC (B))); end vec_vsububs; + --------------- -- vec_sum4s -- + --------------- function vec_sum4s (A : vector_unsigned_char; @@ -7084,7 +7406,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsum4shs (To_LL_VSS (A), To_LL_VSI (B))); end vec_sum4s; + ------------------ -- vec_vsum4shs -- + ------------------ function vec_vsum4shs (A : vector_signed_short; @@ -7094,7 +7418,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsum4shs (To_LL_VSS (A), To_LL_VSI (B))); end vec_vsum4shs; + ------------------ -- vec_vsum4sbs -- + ------------------ function vec_vsum4sbs (A : vector_signed_char; @@ -7104,7 +7430,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsum4sbs (To_LL_VSC (A), To_LL_VSI (B))); end vec_vsum4sbs; + ------------------ -- vec_vsum4ubs -- + ------------------ function vec_vsum4ubs (A : vector_unsigned_char; @@ -7114,7 +7442,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vsum4ubs (To_LL_VSC (A), To_LL_VSI (B))); end vec_vsum4ubs; + --------------- -- vec_sum2s -- + --------------- function vec_sum2s (A : vector_signed_int; @@ -7124,7 +7454,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsum2sws (To_LL_VSI (A), To_LL_VSI (B))); end vec_sum2s; + -------------- -- vec_sums -- + -------------- function vec_sums (A : vector_signed_int; @@ -7134,7 +7466,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vsumsws (To_LL_VSI (A), To_LL_VSI (B))); end vec_sums; + --------------- -- vec_trunc -- + --------------- function vec_trunc (A : vector_float) return vector_float @@ -7143,7 +7477,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VF (vrfiz (To_LL_VF (A))); end vec_trunc; + ----------------- -- vec_unpackh -- + ----------------- function vec_unpackh (A : vector_signed_char) return vector_signed_short @@ -7180,7 +7516,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vupkhpx (To_LL_VSS (A))); end vec_unpackh; + ----------------- -- vec_vupkhsh -- + ----------------- function vec_vupkhsh (A : vector_bool_short) return vector_bool_int @@ -7196,7 +7534,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vupkhsh (To_LL_VSS (A))); end vec_vupkhsh; + ----------------- -- vec_vupkhpx -- + ----------------- function vec_vupkhpx (A : vector_pixel) return vector_unsigned_int @@ -7205,7 +7545,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vupkhpx (To_LL_VSS (A))); end vec_vupkhpx; + ----------------- -- vec_vupkhsb -- + ----------------- function vec_vupkhsb (A : vector_bool_char) return vector_bool_short @@ -7221,7 +7563,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vupkhsb (To_LL_VSC (A))); end vec_vupkhsb; + ----------------- -- vec_unpackl -- + ----------------- function vec_unpackl (A : vector_signed_char) return vector_signed_short @@ -7258,7 +7602,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vupklsh (To_LL_VSS (A))); end vec_unpackl; + ----------------- -- vec_vupklpx -- + ----------------- function vec_vupklpx (A : vector_pixel) return vector_unsigned_int @@ -7267,7 +7613,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vupklpx (To_LL_VSS (A))); end vec_vupklpx; - -- vec_upklsh -- + ----------------- + -- vec_vupklsh -- + ----------------- function vec_vupklsh (A : vector_bool_short) return vector_bool_int @@ -7283,7 +7631,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSI (vupklsh (To_LL_VSS (A))); end vec_vupklsh; + ----------------- -- vec_vupklsb -- + ----------------- function vec_vupklsb (A : vector_bool_char) return vector_bool_short @@ -7299,7 +7649,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VSS (vupklsb (To_LL_VSC (A))); end vec_vupklsb; + ------------- -- vec_xor -- + ------------- function vec_xor (A : vector_float; @@ -7493,7 +7845,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vxor (To_LL_VSI (A), To_LL_VSI (B))); end vec_xor; + ------------- -- vec_dst -- + ------------- procedure vec_dst (A : const_vector_unsigned_char_ptr; @@ -7675,7 +8029,9 @@ package body GNAT.Altivec.Vector_Operations is dst (To_PTR (A), B, C); end vec_dst; + -------------- -- vec_dstt -- + -------------- procedure vec_dstt (A : const_vector_unsigned_char_ptr; @@ -7857,7 +8213,9 @@ package body GNAT.Altivec.Vector_Operations is dstt (To_PTR (A), B, C); end vec_dstt; + --------------- -- vec_dstst -- + --------------- procedure vec_dstst (A : const_vector_unsigned_char_ptr; @@ -8039,7 +8397,9 @@ package body GNAT.Altivec.Vector_Operations is dstst (To_PTR (A), B, C); end vec_dstst; + ---------------- -- vec_dststt -- + ---------------- procedure vec_dststt (A : const_vector_unsigned_char_ptr; @@ -8221,7 +8581,9 @@ package body GNAT.Altivec.Vector_Operations is dststt (To_PTR (A), B, C); end vec_dststt; + ---------------- -- vec_vspltw -- + ---------------- function vec_vspltw (A : vector_float; @@ -8247,7 +8609,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBI (vspltw (To_LL_VSI (A), B)); end vec_vspltw; + ---------------- -- vec_vsplth -- + ---------------- function vec_vsplth (A : vector_bool_short; @@ -8273,7 +8637,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VP (vsplth (To_LL_VSS (A), B)); end vec_vsplth; + ---------------- -- vec_vspltb -- + ---------------- function vec_vspltb (A : vector_unsigned_char; @@ -8291,7 +8657,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vspltb (To_LL_VSC (A), B)); end vec_vspltb; + ------------------ -- vec_splat_u8 -- + ------------------ function vec_splat_u8 (A : c_int) return vector_unsigned_char @@ -8300,7 +8668,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUC (vspltisb (A)); end vec_splat_u8; + ------------------- -- vec_splat_u16 -- + ------------------- function vec_splat_u16 (A : c_int) return vector_unsigned_short @@ -8309,7 +8679,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUS (vspltish (A)); end vec_splat_u16; + ------------------- -- vec_splat_u32 -- + ------------------- function vec_splat_u32 (A : c_int) return vector_unsigned_int @@ -8318,7 +8690,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VUI (vspltisw (A)); end vec_splat_u32; + ------------- -- vec_sld -- + ------------- function vec_sld (A : vector_unsigned_int; @@ -8383,11 +8757,9 @@ package body GNAT.Altivec.Vector_Operations is return To_LL_VBC (vsldoi_16qi (To_LL_VSC (A), To_LL_VSC (B), C)); end vec_sld; - ----------------------------------- - -- Bodies for Altivec predicates -- - ----------------------------------- - + ---------------- -- vec_all_eq -- + ---------------- function vec_all_eq (A : vector_signed_char; @@ -8573,7 +8945,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_LT, To_LL_VF (A), To_LL_VF (B)); end vec_all_eq; + ---------------- -- vec_all_ge -- + ---------------- function vec_all_ge (A : vector_bool_char; @@ -8727,7 +9101,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_LT, To_LL_VF (A), To_LL_VF (B)); end vec_all_ge; + ---------------- -- vec_all_gt -- + ---------------- function vec_all_gt (A : vector_bool_char; @@ -8881,7 +9257,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_LT, To_LL_VF (A), To_LL_VF (B)); end vec_all_gt; + ---------------- -- vec_all_in -- + ---------------- function vec_all_in (A : vector_float; @@ -8891,7 +9269,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpbfp_p (CR6_EQ, To_LL_VF (A), To_LL_VF (B)); end vec_all_in; + ---------------- -- vec_all_le -- + ---------------- function vec_all_le (A : vector_bool_char; @@ -9045,7 +9425,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_LT, To_LL_VF (B), To_LL_VF (A)); end vec_all_le; + ---------------- -- vec_all_lt -- + ---------------- function vec_all_lt (A : vector_bool_char; @@ -9199,7 +9581,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_LT, To_LL_VF (B), To_LL_VF (A)); end vec_all_lt; + ----------------- -- vec_all_nan -- + ----------------- function vec_all_nan (A : vector_float) return c_int @@ -9208,7 +9592,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_EQ, To_LL_VF (A), To_LL_VF (A)); end vec_all_nan; + ---------------- -- vec_all_ne -- + ---------------- function vec_all_ne (A : vector_signed_char; @@ -9394,7 +9780,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_EQ, To_LL_VF (A), To_LL_VF (B)); end vec_all_ne; + ----------------- -- vec_all_nge -- + ----------------- function vec_all_nge (A : vector_float; @@ -9404,7 +9792,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_EQ, To_LL_VF (A), To_LL_VF (B)); end vec_all_nge; + ----------------- -- vec_all_ngt -- + ----------------- function vec_all_ngt (A : vector_float; @@ -9414,7 +9804,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_EQ, To_LL_VF (A), To_LL_VF (B)); end vec_all_ngt; + ----------------- -- vec_all_nle -- + ----------------- function vec_all_nle (A : vector_float; @@ -9424,7 +9816,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_EQ, To_LL_VF (B), To_LL_VF (A)); end vec_all_nle; + ----------------- -- vec_all_nlt -- + ----------------- function vec_all_nlt (A : vector_float; @@ -9434,7 +9828,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_EQ, To_LL_VF (B), To_LL_VF (A)); end vec_all_nlt; + --------------------- -- vec_all_numeric -- + --------------------- function vec_all_numeric (A : vector_float) return c_int @@ -9443,7 +9839,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_LT, To_LL_VF (A), To_LL_VF (A)); end vec_all_numeric; + ---------------- -- vec_any_eq -- + ---------------- function vec_any_eq (A : vector_signed_char; @@ -9629,7 +10027,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_EQ_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_eq; + ---------------- -- vec_any_ge -- + ---------------- function vec_any_ge (A : vector_signed_char; @@ -9783,7 +10183,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_EQ_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_ge; + ---------------- -- vec_any_gt -- + ---------------- function vec_any_gt (A : vector_bool_char; @@ -9937,7 +10339,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_EQ_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_gt; + ---------------- -- vec_any_le -- + ---------------- function vec_any_le (A : vector_bool_char; @@ -10091,7 +10495,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_EQ_REV, To_LL_VF (B), To_LL_VF (A)); end vec_any_le; + ---------------- -- vec_any_lt -- + ---------------- function vec_any_lt (A : vector_bool_char; @@ -10245,7 +10651,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_EQ_REV, To_LL_VF (B), To_LL_VF (A)); end vec_any_lt; + ----------------- -- vec_any_nan -- + ----------------- function vec_any_nan (A : vector_float) return c_int @@ -10254,7 +10662,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_LT_REV, To_LL_VF (A), To_LL_VF (A)); end vec_any_nan; + ---------------- -- vec_any_ne -- + ---------------- function vec_any_ne (A : vector_signed_char; @@ -10440,7 +10850,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_LT_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_ne; + ----------------- -- vec_any_nge -- + ----------------- function vec_any_nge (A : vector_float; @@ -10450,7 +10862,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_LT_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_nge; + ----------------- -- vec_any_ngt -- + ----------------- function vec_any_ngt (A : vector_float; @@ -10460,7 +10874,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_LT_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_ngt; + ----------------- -- vec_any_nle -- + ----------------- function vec_any_nle (A : vector_float; @@ -10470,7 +10886,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgefp_p (CR6_LT_REV, To_LL_VF (B), To_LL_VF (A)); end vec_any_nle; + ----------------- -- vec_any_nlt -- + ----------------- function vec_any_nlt (A : vector_float; @@ -10480,7 +10898,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpgtfp_p (CR6_LT_REV, To_LL_VF (B), To_LL_VF (A)); end vec_any_nlt; + --------------------- -- vec_any_numeric -- + --------------------- function vec_any_numeric (A : vector_float) return c_int @@ -10489,7 +10909,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpeqfp_p (CR6_EQ_REV, To_LL_VF (A), To_LL_VF (A)); end vec_any_numeric; + ----------------- -- vec_any_out -- + ----------------- function vec_any_out (A : vector_float; @@ -10499,7 +10921,9 @@ package body GNAT.Altivec.Vector_Operations is return vcmpbfp_p (CR6_EQ_REV, To_LL_VF (A), To_LL_VF (B)); end vec_any_out; + -------------- -- vec_step -- + -------------- function vec_step (V : vector_unsigned_char) return Integer |