+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * g-allein.ads, g-alveop.adb, g-alveop.ads, opt.ads: Minor reformatting
+
2015-02-20 Tristan Gingold <gingold@adacore.com>
* opt.ads (GNAT_Mode_Config): New variable.
-- both bindings (Hard or Soft), and relevant to the interfacing with the
-- underlying Low Level support.
-with GNAT.Altivec.Vector_Types; use GNAT.Altivec.Vector_Types;
-with GNAT.Altivec.Low_Level_Vectors; use GNAT.Altivec.Low_Level_Vectors;
+with GNAT.Altivec.Vector_Types; use GNAT.Altivec.Vector_Types;
+with GNAT.Altivec.Low_Level_Vectors; use GNAT.Altivec.Low_Level_Vectors;
with Ada.Unchecked_Conversion;
function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBI, LL_VBC);
function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUI, LL_VBC);
function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSI, LL_VBC);
- function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VF, LL_VBC);
- function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VP, LL_VBC);
+ function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VF, LL_VBC);
+ function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VP, LL_VBC);
function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBC, LL_VUC);
function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUC, LL_VUC);
function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBI, LL_VUC);
function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUI, LL_VUC);
function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSI, LL_VUC);
- function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VF, LL_VUC);
- function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VP, LL_VUC);
+ function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VF, LL_VUC);
+ function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VP, LL_VUC);
function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBC, LL_VSC);
function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUC, LL_VSC);
function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBI, LL_VSC);
function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUI, LL_VSC);
function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSI, LL_VSC);
- function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VF, LL_VSC);
- function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VP, LL_VSC);
+ function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VF, LL_VSC);
+ function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VP, LL_VSC);
function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBC, LL_VBS);
function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUC, LL_VBS);
function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBI, LL_VUS);
function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUI, LL_VUS);
function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSI, LL_VUS);
- function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VF, LL_VUS);
- function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VP, LL_VUS);
+ function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VF, LL_VUS);
+ function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VP, LL_VUS);
function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBC, LL_VSS);
function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUC, LL_VSS);
function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBI, LL_VSS);
function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUI, LL_VSS);
function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSI, LL_VSS);
- function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VF, LL_VSS);
- function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VP, LL_VSS);
+ function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VF, LL_VSS);
+ function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VP, LL_VSS);
function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBC, LL_VBI);
function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUC, LL_VBI);
function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBI, LL_VBI);
function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUI, LL_VBI);
function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSI, LL_VBI);
- function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VF, LL_VBI);
- function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VP, LL_VBI);
+ function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VF, LL_VBI);
+ function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VP, LL_VBI);
function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBC, LL_VUI);
function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUC, LL_VUI);
function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBI, LL_VUI);
function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUI, LL_VUI);
function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSI, LL_VUI);
- function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VF, LL_VUI);
- function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VP, LL_VUI);
+ function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VF, LL_VUI);
+ function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VP, LL_VUI);
function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBC, LL_VSI);
function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUC, LL_VSI);
function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBI, LL_VSI);
function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUI, LL_VSI);
function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSI, LL_VSI);
- function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VF, LL_VSI);
- function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VP, LL_VSI);
+ function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VF, LL_VSI);
+ function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VP, LL_VSI);
function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBC, LL_VF);
function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUC, LL_VF);
function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBI, LL_VF);
function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUI, LL_VF);
function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSI, LL_VF);
- function To_LL_VF is new Ada.Unchecked_Conversion (LL_VF, LL_VF);
- function To_LL_VF is new Ada.Unchecked_Conversion (LL_VP, LL_VF);
+ function To_LL_VF is new Ada.Unchecked_Conversion (LL_VF, LL_VF);
+ function To_LL_VF is new Ada.Unchecked_Conversion (LL_VP, LL_VF);
function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBC, LL_VP);
function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUC, LL_VP);
function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBI, LL_VP);
function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUI, LL_VP);
function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSI, LL_VP);
- function To_LL_VP is new Ada.Unchecked_Conversion (LL_VF, LL_VP);
- function To_LL_VP is new Ada.Unchecked_Conversion (LL_VP, LL_VP);
+ function To_LL_VP is new Ada.Unchecked_Conversion (LL_VF, LL_VP);
+ function To_LL_VP is new Ada.Unchecked_Conversion (LL_VP, LL_VP);
----------------------------------------------
- -- Conversions between pointer/access types --
+ -- Conversions Between Pointer/Access Types --
----------------------------------------------
function To_PTR is
-- --
------------------------------------------------------------------------------
-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
-- Bodies for generic and specific Altivec operations --
--------------------------------------------------------
+ -------------
-- vec_abs --
+ -------------
function vec_abs
(A : vector_signed_char) return vector_signed_char
return To_LL_VF (abs_v4sf (A));
end vec_abs;
+ --------------
-- vec_abss --
+ --------------
function vec_abss
(A : vector_signed_char) return vector_signed_char
return To_LL_VSI (abss_v4si (A));
end vec_abss;
+ -------------
-- vec_add --
+ -------------
function vec_add
(A : vector_bool_char;
return To_LL_VF (vaddfp (To_LL_VF (A), To_LL_VF (B)));
end vec_add;
+ ----------------
-- vec_vaddfp --
+ ----------------
function vec_vaddfp
(A : vector_float;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
return To_LL_VUC (vaddubs (To_LL_VSC (A), To_LL_VSC (B)));
end vec_vaddubs;
+ -------------
-- vec_and --
+ -------------
function vec_and
(A : vector_float;
return To_LL_VUC (vand (To_LL_VSI (A), To_LL_VSI (B)));
end vec_and;
+ --------------
-- vec_andc --
+ --------------
function vec_andc
(A : vector_float;
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;
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;
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;
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;
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;
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;
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;
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
return To_LL_VF (vrfip (To_LL_VF (A)));
end vec_ceil;
+ --------------
-- vec_cmpb --
+ --------------
function vec_cmpb
(A : vector_float;
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;
return To_LL_VBI (vcmpeqfp (To_LL_VF (A), To_LL_VF (B)));
end vec_cmpeq;
+ ------------------
-- vec_vcmpeqfp --
+ ------------------
function vec_vcmpeqfp
(A : vector_float;
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;
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;
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;
return To_LL_VBC (vcmpequb (To_LL_VSC (A), To_LL_VSC (B)));
end vec_vcmpequb;
+ ---------------
-- vec_cmpge --
+ ---------------
function vec_cmpge
(A : vector_float;
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;
return To_LL_VBI (vcmpgtfp (To_LL_VF (A), To_LL_VF (B)));
end vec_cmpgt;
+ ------------------
-- vec_vcmpgtfp --
+ ------------------
function vec_vcmpgtfp
(A : vector_float;
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;
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;
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;
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;
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;
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;
return To_LL_VBC (vcmpgtub (To_LL_VSC (A), To_LL_VSC (B)));
end vec_vcmpgtub;
+ ---------------
-- vec_cmple --
+ ---------------
function vec_cmple
(A : vector_float;
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;
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
return To_LL_VF (vexptefp (To_LL_VF (A)));
end vec_expte;
+ ---------------
-- vec_floor --
+ ---------------
function vec_floor
(A : vector_float) return vector_float
return To_LL_VF (vrfim (To_LL_VF (A)));
end vec_floor;
+ ------------
-- vec_ld --
+ ------------
function vec_ld
(A : c_long;
return To_LL_VUC (lvx (A, To_PTR (B)));
end vec_ld;
+ -------------
-- vec_lde --
+ -------------
function vec_lde
(A : c_long;
return To_LL_VUI (lvewx (A, To_PTR (B)));
end vec_lde;
+ ---------------
-- vec_lvewx --
+ ---------------
function vec_lvewx
(A : c_long;
return To_LL_VUI (lvewx (A, To_PTR (B)));
end vec_lvewx;
+ ---------------
-- vec_lvehx --
+ ---------------
function vec_lvehx
(A : c_long;
return To_LL_VUS (lvehx (A, To_PTR (B)));
end vec_lvehx;
+ ---------------
-- vec_lvebx --
+ ---------------
function vec_lvebx
(A : c_long;
return To_LL_VUC (lvebx (A, To_PTR (B)));
end vec_lvebx;
+ -------------
-- vec_ldl --
+ -------------
function vec_ldl
(A : c_long;
return To_LL_VUC (lvxl (A, To_PTR (B)));
end vec_ldl;
+ --------------
-- vec_loge --
+ --------------
function vec_loge
(A : vector_float) return vector_float
return To_LL_VF (vlogefp (To_LL_VF (A)));
end vec_loge;
+ --------------
-- vec_lvsl --
+ --------------
function vec_lvsl
(A : c_long;
return To_LL_VUC (lvsl (A, To_PTR (B)));
end vec_lvsl;
+ --------------
-- vec_lvsr --
+ --------------
function vec_lvsr
(A : c_long;
return To_LL_VUC (lvsr (A, To_PTR (B)));
end vec_lvsr;
+ --------------
-- vec_madd --
+ --------------
function vec_madd
(A : vector_float;
return vmaddfp (A, B, C);
end vec_madd;
+ ---------------
-- vec_madds --
+ ---------------
function vec_madds
(A : vector_signed_short;
return vmhaddshs (A, B, C);
end vec_madds;
+ -------------
-- vec_max --
+ -------------
function vec_max
(A : vector_bool_char;
return To_LL_VF (vmaxfp (To_LL_VF (A), To_LL_VF (B)));
end vec_max;
+ ----------------
-- vec_vmaxfp --
+ ----------------
function vec_vmaxfp
(A : vector_float;
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;
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;
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;
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;
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;
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;
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;
return To_LL_VUI (vmrghw (To_LL_VSI (A), To_LL_VSI (B)));
end vec_mergeh;
+ ----------------
-- vec_vmrghw --
+ ----------------
function vec_vmrghw
(A : vector_float;
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;
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;
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;
return To_LL_VUI (vmrglw (To_LL_VSI (A), To_LL_VSI (B)));
end vec_mergel;
+ ----------------
-- vec_vmrglw --
+ ----------------
function vec_vmrglw
(A : vector_float;
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;
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;
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
return To_LL_VUS (mfvscr);
end vec_mfvscr;
+ -------------
-- vec_min --
+ -------------
function vec_min
(A : vector_bool_char;
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;
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;
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;
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;
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;
return vmhraddshs (A, B, C);
end vec_mradds;
+ --------------
-- vec_msum --
+ --------------
function vec_msum
(A : vector_unsigned_char;
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;
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;
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;
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;
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;
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;
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;
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)
mtvscr (To_LL_VSI (A));
end vec_mtvscr;
+ --------------
-- vec_mule --
+ --------------
function vec_mule
(A : vector_unsigned_char;
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;
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;
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;
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;
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;
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;
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;
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;
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;
return To_LL_VUS (vmuloub (To_LL_VSC (A), To_LL_VSC (B)));
end vec_vmuloub;
+ ---------------
-- vec_nmsub --
+ ---------------
function vec_nmsub
(A : vector_float;
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;
return To_LL_VBC (vnor (To_LL_VSI (A), To_LL_VSI (B)));
end vec_nor;
+ ------------
-- vec_or --
+ ------------
function vec_or
(A : vector_float;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
return To_LL_VUC (vpkshus (To_LL_VSS (A), To_LL_VSS (B)));
end vec_vpkshus;
+ --------------
-- vec_perm --
+ --------------
function vec_perm
(A : vector_float;
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
return To_LL_VF (vrefp (To_LL_VF (A)));
end vec_re;
+ ------------
-- vec_rl --
+ ------------
function vec_rl
(A : vector_signed_char;
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;
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;
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;
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
return To_LL_VF (vrfin (To_LL_VF (A)));
end vec_round;
+ ----------------
-- vec_rsqrte --
+ ----------------
function vec_rsqrte
(A : vector_float) return vector_float
return To_LL_VF (vrsqrtefp (To_LL_VF (A)));
end vec_rsqrte;
+ -------------
-- vec_sel --
+ -------------
function vec_sel
(A : vector_float;
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;
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;
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;
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;
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;
return To_LL_VBC (vsl (To_LL_VSI (A), To_LL_VSI (B)));
end vec_sll;
+ -------------
-- vec_slo --
+ -------------
function vec_slo
(A : vector_float;
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;
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;
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;
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;
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;
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;
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;
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;
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;
return To_LL_VBC (vsr (To_LL_VSI (A), To_LL_VSI (B)));
end vec_srl;
+ -------------
-- vec_sro --
+ -------------
function vec_sro
(A : vector_float;
return To_LL_VUC (vsro (To_LL_VSI (A), To_LL_VSI (B)));
end vec_sro;
+ ------------
-- vec_st --
+ ------------
procedure vec_st
(A : vector_float;
stvx (To_LL_VSI (A), B, To_PTR (C));
end vec_st;
+ -------------
-- vec_ste --
+ -------------
procedure vec_ste
(A : vector_signed_char;
stvewx (To_LL_VSI (A), B, To_PTR (C));
end vec_ste;
+ ----------------
-- vec_stvewx --
+ ----------------
procedure vec_stvewx
(A : vector_float;
stvewx (To_LL_VSI (A), B, To_PTR (C));
end vec_stvewx;
+ ----------------
-- vec_stvehx --
+ ----------------
procedure vec_stvehx
(A : vector_signed_short;
stvehx (To_LL_VSS (A), B, To_PTR (C));
end vec_stvehx;
+ ----------------
-- vec_stvebx --
+ ----------------
procedure vec_stvebx
(A : vector_signed_char;
stvebx (To_LL_VSC (A), B, To_PTR (C));
end vec_stvebx;
+ -------------
-- vec_stl --
+ -------------
procedure vec_stl
(A : vector_float;
stvxl (To_LL_VSI (A), B, To_PTR (C));
end vec_stl;
+ -------------
-- vec_sub --
+ -------------
function vec_sub
(A : vector_bool_char;
return To_LL_VF (vsubfp (To_LL_VF (A), To_LL_VF (B)));
end vec_sub;
+ ----------------
-- vec_vsubfp --
+ ----------------
function vec_vsubfp
(A : vector_float;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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
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
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
return To_LL_VSI (vupkhsh (To_LL_VSS (A)));
end vec_vupkhsh;
+ -----------------
-- vec_vupkhpx --
+ -----------------
function vec_vupkhpx
(A : vector_pixel) return vector_unsigned_int
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
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
return To_LL_VBI (vupklsh (To_LL_VSS (A)));
end vec_unpackl;
+ -----------------
-- vec_vupklpx --
+ -----------------
function vec_vupklpx
(A : vector_pixel) return vector_unsigned_int
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
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
return To_LL_VSS (vupklsb (To_LL_VSC (A)));
end vec_vupklsb;
+ -------------
-- vec_xor --
+ -------------
function vec_xor
(A : vector_float;
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;
dst (To_PTR (A), B, C);
end vec_dst;
+ --------------
-- vec_dstt --
+ --------------
procedure vec_dstt
(A : const_vector_unsigned_char_ptr;
dstt (To_PTR (A), B, C);
end vec_dstt;
+ ---------------
-- vec_dstst --
+ ---------------
procedure vec_dstst
(A : const_vector_unsigned_char_ptr;
dstst (To_PTR (A), B, C);
end vec_dstst;
+ ----------------
-- vec_dststt --
+ ----------------
procedure vec_dststt
(A : const_vector_unsigned_char_ptr;
dststt (To_PTR (A), B, C);
end vec_dststt;
+ ----------------
-- vec_vspltw --
+ ----------------
function vec_vspltw
(A : vector_float;
return To_LL_VBI (vspltw (To_LL_VSI (A), B));
end vec_vspltw;
+ ----------------
-- vec_vsplth --
+ ----------------
function vec_vsplth
(A : vector_bool_short;
return To_LL_VP (vsplth (To_LL_VSS (A), B));
end vec_vsplth;
+ ----------------
-- vec_vspltb --
+ ----------------
function vec_vspltb
(A : vector_unsigned_char;
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
return To_LL_VUC (vspltisb (A));
end vec_splat_u8;
+ -------------------
-- vec_splat_u16 --
+ -------------------
function vec_splat_u16
(A : c_int) return vector_unsigned_short
return To_LL_VUS (vspltish (A));
end vec_splat_u16;
+ -------------------
-- vec_splat_u32 --
+ -------------------
function vec_splat_u32
(A : c_int) return vector_unsigned_int
return To_LL_VUI (vspltisw (A));
end vec_splat_u32;
+ -------------
-- vec_sld --
+ -------------
function vec_sld
(A : vector_unsigned_int;
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;
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;
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;
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;
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;
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;
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
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;
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;
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;
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;
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;
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
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;
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;
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;
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;
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;
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
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;
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;
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;
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;
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;
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
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;
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
-- This unit is the user-level Ada interface to AltiVec operations on vector
-- objects. It is common to both the Soft and the Hard bindings.
-with GNAT.Altivec.Vector_Types; use GNAT.Altivec.Vector_Types;
+with GNAT.Altivec.Vector_Types; use GNAT.Altivec.Vector_Types;
with GNAT.Altivec.Low_Level_Vectors; use GNAT.Altivec.Low_Level_Vectors;
+------------------------------------
+-- GNAT.Altivec.Vector_Operations --
+------------------------------------
+
+------------------------------------
+-- GNAT.Altivec.Vector_Operations --
+------------------------------------
+
package GNAT.Altivec.Vector_Operations is
-------------------------------------
- -- Different flavors of interfaces --
+ -- Different Flavors of Interfaces --
-------------------------------------
-- The vast majority of the user visible functions are just neutral type
-- conversion wrappers around calls to low level primitives. For instance:
- --
+
-- function vec_sll
-- (A : vector_signed_int;
-- B : vector_unsigned_char) return vector_signed_int is
-- begin
-- return To_VSI (vsl (To_VSI (A), To_VSI (B)));
-- end vec_sll;
- --
+
-- We actually don't always need an explicit wrapper and can bind directly
-- with a straight Import of the low level routine, or a renaming of such
-- instead.
- --
+
-- A direct binding is not possible (that is, a wrapper is mandatory) in
-- a number of cases:
- --
+
-- o When the high-level/low-level types don't match, in which case a
-- straight import would risk wrong code generation or compiler blowups in
-- the Hard binding case. This is the case for 'B' in the example above.
- --
+
-- o When the high-level/low-level argument lists differ, as is the case
-- for most of the AltiVec predicates, relying on a low-level primitive
-- which expects a control code argument, like:
- --
+
-- function vec_any_ne
-- (A : vector_signed_int;
-- B : vector_signed_int) return c_int is
-- begin
-- return vcmpequw_p (CR6_LT_REV, To_VSI (A), To_VSI (B));
-- end vec_any_ne;
- --
+
-- o When the high-level/low-level arguments order don't match, as in:
- --
+
-- function vec_cmplt
-- (A : vector_unsigned_char;
-- B : vector_unsigned_char) return vector_bool_char is
-- end vec_cmplt;
-----------------------------
- -- Inlining considerations --
+ -- Inlining Considerations --
-----------------------------
- -- The intent in the Hard binding case is to eventually map operations to
+ -- The intent in the hard binding case is to eventually map operations to
-- hardware instructions. Needless to say, intermediate function calls do
- -- not fit this purpose, so all the user visible subprograms need to be
- -- marked Inline_Always. Some of the builtins we eventually bind to expect
- -- literal arguments. Wrappers to such builtins are made Convention
- -- Intrinsic as well so we don't attempt to compile the bodies on their
- -- own.
+ -- not fit this purpose, so all user visible subprograms need to be marked
+ -- Inline_Always. Some of the builtins we eventually bind to expect literal
+ -- arguments. Wrappers to such builtins are made Convention Intrinsic as
+ -- well so we don't attempt to compile the bodies on their own.
-- In the soft case, the bulk of the work is performed by the low level
-- routines, and those exported by this unit are short enough for the
-- [PIM-4.4 Generic and Specific AltiVec operations] --
-------------------------------------------------------
+ -------------
-- vec_abs --
+ -------------
function vec_abs
(A : vector_signed_char) return vector_signed_char;
function vec_abs
(A : vector_float) return vector_float;
+ --------------
-- vec_abss --
+ --------------
function vec_abss
(A : vector_signed_char) return vector_signed_char;
function vec_abss
(A : vector_signed_int) return vector_signed_int;
+ -------------
-- vec_add --
+ -------------
function vec_add
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return vector_float;
+ ----------------
-- vec_vaddfp --
+ ----------------
function vec_vaddfp
(A : vector_float;
B : vector_float) return vector_float;
+ -----------------
-- vec_vadduwm --
+ -----------------
function vec_vadduwm
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ -----------------
-- vec_vadduhm --
+ -----------------
function vec_vadduhm
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ -----------------
-- vec_vaddubm --
+ -----------------
function vec_vaddubm
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ --------------
-- vec_addc --
+ --------------
function vec_addc
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_adds --
+ --------------
function vec_adds
(A : vector_bool_char;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ -----------------
-- vec_vaddsws --
+ -----------------
function vec_vaddsws
(A : vector_bool_int;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ -----------------
-- vec_vadduws --
+ -----------------
function vec_vadduws
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ -----------------
-- vec_vaddshs --
+ -----------------
function vec_vaddshs
(A : vector_bool_short;
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_short;
+ -----------------
-- vec_vadduhs --
+ -----------------
function vec_vadduhs
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ -----------------
-- vec_vaddsbs --
+ -----------------
function vec_vaddsbs
(A : vector_bool_char;
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_char;
+ -----------------
-- vec_vaddubs --
+ -----------------
function vec_vaddubs
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ -------------
-- vec_and --
+ -------------
function vec_and
(A : vector_float;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ --------------
-- vec_andc --
+ --------------
function vec_andc
(A : vector_float;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ -------------
-- vec_avg --
+ -------------
function vec_avg
(A : vector_unsigned_char;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ ----------------
-- vec_vavgsw --
+ ----------------
function vec_vavgsw
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ ----------------
-- vec_vavguw --
+ ----------------
function vec_vavguw
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_vavgsh --
+ ----------------
function vec_vavgsh
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_short;
+ ----------------
-- vec_vavguh --
+ ----------------
function vec_vavguh
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ ----------------
-- vec_vavgsb --
+ ----------------
function vec_vavgsb
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_char;
+ ----------------
-- vec_vavgub --
+ ----------------
function vec_vavgub
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ --------------
-- vec_ceil --
+ --------------
function vec_ceil
(A : vector_float) return vector_float;
+ --------------
-- vec_cmpb --
+ --------------
function vec_cmpb
(A : vector_float;
B : vector_float) return vector_signed_int;
- -- vec_cmpeq --
-
function vec_cmpeq
(A : vector_signed_char;
B : vector_signed_char) return vector_bool_char;
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ------------------
-- vec_vcmpeqfp --
+ ------------------
function vec_vcmpeqfp
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ------------------
-- vec_vcmpequw --
+ ------------------
function vec_vcmpequw
(A : vector_signed_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_bool_int;
+ ------------------
-- vec_vcmpequh --
+ ------------------
function vec_vcmpequh
(A : vector_signed_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_bool_short;
+ ------------------
-- vec_vcmpequb --
+ ------------------
function vec_vcmpequb
(A : vector_signed_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_bool_char;
+ ---------------
-- vec_cmpge --
+ ---------------
function vec_cmpge
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ---------------
-- vec_cmpgt --
+ ---------------
function vec_cmpgt
(A : vector_unsigned_char;
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ------------------
-- vec_vcmpgtfp --
+ ------------------
function vec_vcmpgtfp
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ------------------
-- vec_vcmpgtsw --
+ ------------------
function vec_vcmpgtsw
(A : vector_signed_int;
B : vector_signed_int) return vector_bool_int;
+ ------------------
-- vec_vcmpgtuw --
+ ------------------
function vec_vcmpgtuw
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_bool_int;
+ ------------------
-- vec_vcmpgtsh --
+ ------------------
function vec_vcmpgtsh
(A : vector_signed_short;
B : vector_signed_short) return vector_bool_short;
+ ------------------
-- vec_vcmpgtuh --
+ ------------------
function vec_vcmpgtuh
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_bool_short;
+ ------------------
-- vec_vcmpgtsb --
+ ------------------
function vec_vcmpgtsb
(A : vector_signed_char;
B : vector_signed_char) return vector_bool_char;
+ ------------------
-- vec_vcmpgtub --
+ ------------------
function vec_vcmpgtub
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_bool_char;
+ ---------------
-- vec_cmple --
+ ---------------
function vec_cmple
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ---------------
-- vec_cmplt --
+ ---------------
function vec_cmplt
(A : vector_unsigned_char;
(A : vector_float;
B : vector_float) return vector_bool_int;
+ ---------------
-- vec_vcfsx --
+ ---------------
function vec_vcfsx
(A : vector_signed_int;
B : c_int) return vector_float
renames Low_Level_Vectors.vcfsx;
+ ---------------
-- vec_vcfux --
+ ---------------
function vec_vcfux
(A : vector_unsigned_int;
B : c_int) return vector_float
renames Low_Level_Vectors.vcfux;
+ ----------------
-- vec_vctsxs --
+ ----------------
function vec_vctsxs
(A : vector_float;
B : c_int) return vector_signed_int
renames Low_Level_Vectors.vctsxs;
+ ----------------
-- vec_vctuxs --
+ ----------------
function vec_vctuxs
(A : vector_float;
B : c_int) return vector_unsigned_int
renames Low_Level_Vectors.vctuxs;
+ -------------
-- vec_dss --
+ -------------
procedure vec_dss
(A : c_int)
renames Low_Level_Vectors.dss;
+ ----------------
-- vec_dssall --
+ ----------------
procedure vec_dssall
renames Low_Level_Vectors.dssall;
+ -------------
-- vec_dst --
+ -------------
procedure vec_dst
(A : const_vector_unsigned_char_ptr;
(A : const_float_ptr;
B : c_int;
C : c_int);
-
pragma Inline_Always (vec_dst);
pragma Convention (Intrinsic, vec_dst);
+ ---------------
-- vec_dstst --
+ ---------------
procedure vec_dstst
(A : const_vector_unsigned_char_ptr;
(A : const_float_ptr;
B : c_int;
C : c_int);
-
pragma Inline_Always (vec_dstst);
pragma Convention (Intrinsic, vec_dstst);
+ ----------------
-- vec_dststt --
+ ----------------
procedure vec_dststt
(A : const_vector_unsigned_char_ptr;
(A : const_float_ptr;
B : c_int;
C : c_int);
-
pragma Inline_Always (vec_dststt);
pragma Convention (Intrinsic, vec_dststt);
+ --------------
-- vec_dstt --
+ --------------
procedure vec_dstt
(A : const_vector_unsigned_char_ptr;
(A : const_float_ptr;
B : c_int;
C : c_int);
-
pragma Inline_Always (vec_dstt);
pragma Convention (Intrinsic, vec_dstt);
+ ---------------
-- vec_expte --
+ ---------------
function vec_expte
(A : vector_float) return vector_float;
+ ---------------
-- vec_floor --
+ ---------------
function vec_floor
(A : vector_float) return vector_float;
+ ------------
-- vec_ld --
+ ------------
function vec_ld
(A : c_long;
(A : c_long;
B : const_unsigned_char_ptr) return vector_unsigned_char;
+ -------------
-- vec_lde --
+ -------------
function vec_lde
(A : c_long;
(A : c_long;
B : const_unsigned_long_ptr) return vector_unsigned_int;
+ ---------------
-- vec_lvewx --
+ ---------------
function vec_lvewx
(A : c_long;
(A : c_long;
B : unsigned_long_ptr) return vector_unsigned_int;
+ ---------------
-- vec_lvehx --
+ ---------------
function vec_lvehx
(A : c_long;
(A : c_long;
B : unsigned_short_ptr) return vector_unsigned_short;
+ ---------------
-- vec_lvebx --
+ ---------------
function vec_lvebx
(A : c_long;
(A : c_long;
B : unsigned_char_ptr) return vector_unsigned_char;
+ -------------
-- vec_ldl --
+ -------------
function vec_ldl
(A : c_long;
(A : c_long;
B : const_unsigned_char_ptr) return vector_unsigned_char;
+ --------------
-- vec_loge --
+ --------------
function vec_loge
(A : vector_float) return vector_float;
+ --------------
-- vec_lvsl --
+ --------------
function vec_lvsl
(A : c_long;
(A : c_long;
B : constv_float_ptr) return vector_unsigned_char;
+ --------------
-- vec_lvsr --
+ --------------
function vec_lvsr
(A : c_long;
(A : c_long;
B : constv_float_ptr) return vector_unsigned_char;
+ --------------
-- vec_madd --
+ --------------
function vec_madd
(A : vector_float;
B : vector_float;
C : vector_float) return vector_float;
+ ---------------
-- vec_madds --
+ ---------------
function vec_madds
(A : vector_signed_short;
B : vector_signed_short;
C : vector_signed_short) return vector_signed_short;
+ -------------
-- vec_max --
+ -------------
function vec_max
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return vector_float;
+ ----------------
-- vec_vmaxfp --
+ ----------------
function vec_vmaxfp
(A : vector_float;
B : vector_float) return vector_float;
+ ----------------
-- vec_vmaxsw --
+ ----------------
function vec_vmaxsw
(A : vector_bool_int;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ ----------------
-- vec_vmaxuw --
+ ----------------
function vec_vmaxuw
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_vmaxsh --
+ ----------------
function vec_vmaxsh
(A : vector_bool_short;
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_short;
+ ----------------
-- vec_vmaxuh --
+ ----------------
function vec_vmaxuh
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ ----------------
-- vec_vmaxsb --
+ ----------------
function vec_vmaxsb
(A : vector_bool_char;
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_char;
+ ----------------
-- vec_vmaxub --
+ ----------------
function vec_vmaxub
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ----------------
-- vec_mergeh --
+ ----------------
function vec_mergeh
(A : vector_bool_char;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_vmrghw --
+ ----------------
function vec_vmrghw
(A : vector_float;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_vmrghh --
+ ----------------
function vec_vmrghh
(A : vector_bool_short;
(A : vector_pixel;
B : vector_pixel) return vector_pixel;
+ ----------------
-- vec_vmrghb --
+ ----------------
function vec_vmrghb
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ----------------
-- vec_mergel --
+ ----------------
function vec_mergel
(A : vector_bool_char;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_vmrglw --
+ ----------------
function vec_vmrglw
(A : vector_float;
(A : vector_bool_int;
B : vector_bool_int) return vector_bool_int;
+ ----------------
-- vec_vmrglh --
+ ----------------
function vec_vmrglh
(A : vector_bool_short;
(A : vector_pixel;
B : vector_pixel) return vector_pixel;
+ ----------------
-- vec_vmrglb --
+ ----------------
function vec_vmrglb
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ----------------
-- vec_mfvscr --
+ ----------------
function vec_mfvscr return vector_unsigned_short;
+ -------------
-- vec_min --
+ -------------
function vec_min
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return vector_float;
+ ----------------
-- vec_vminfp --
+ ----------------
function vec_vminfp
(A : vector_float;
B : vector_float) return vector_float;
+ ----------------
-- vec_vminsw --
+ ----------------
function vec_vminsw
(A : vector_bool_int;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ ----------------
-- vec_vminuw --
+ ----------------
function vec_vminuw
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_vminsh --
+ ----------------
function vec_vminsh
(A : vector_bool_short;
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_short;
+ ----------------
-- vec_vminuh --
+ ----------------
function vec_vminuh
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ ----------------
-- vec_vminsb --
+ ----------------
function vec_vminsb
(A : vector_bool_char;
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_char;
+ ----------------
-- vec_vminub --
+ ----------------
function vec_vminub
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ---------------
-- vec_mladd --
+ ---------------
function vec_mladd
(A : vector_signed_short;
B : vector_unsigned_short;
C : vector_unsigned_short) return vector_unsigned_short;
+ ----------------
-- vec_mradds --
+ ----------------
function vec_mradds
(A : vector_signed_short;
B : vector_signed_short;
C : vector_signed_short) return vector_signed_short;
+ --------------
-- vec_msum --
+ --------------
function vec_msum
(A : vector_unsigned_char;
B : vector_signed_short;
C : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vmsumshm --
+ ------------------
function vec_vmsumshm
(A : vector_signed_short;
B : vector_signed_short;
C : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vmsumuhm --
+ ------------------
function vec_vmsumuhm
(A : vector_unsigned_short;
B : vector_unsigned_short;
C : vector_unsigned_int) return vector_unsigned_int;
+ ------------------
-- vec_vmsummbm --
+ ------------------
function vec_vmsummbm
(A : vector_signed_char;
B : vector_unsigned_char;
C : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vmsumubm --
+ ------------------
function vec_vmsumubm
(A : vector_unsigned_char;
B : vector_unsigned_char;
C : vector_unsigned_int) return vector_unsigned_int;
+ ---------------
-- vec_msums --
+ ---------------
function vec_msums
(A : vector_unsigned_short;
B : vector_signed_short;
C : vector_signed_int) return vector_signed_int;
- -- vec_vmsumshs --
-
function vec_vmsumshs
(A : vector_signed_short;
B : vector_signed_short;
C : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vmsumuhs --
+ ------------------
function vec_vmsumuhs
(A : vector_unsigned_short;
B : vector_unsigned_short;
C : vector_unsigned_int) return vector_unsigned_int;
+ ----------------
-- vec_mtvscr --
+ ----------------
procedure vec_mtvscr
(A : vector_signed_int);
procedure vec_mtvscr
(A : vector_bool_char);
+ --------------
-- vec_mule --
+ --------------
function vec_mule
(A : vector_unsigned_char;
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_int;
+ -----------------
-- vec_vmulesh --
+ -----------------
function vec_vmulesh
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_int;
+ -----------------
-- vec_vmuleuh --
+ -----------------
function vec_vmuleuh
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_int;
+ -----------------
-- vec_vmulesb --
+ -----------------
function vec_vmulesb
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_short;
+ -----------------
-- vec_vmuleub --
+ -----------------
function vec_vmuleub
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_short;
+ --------------
-- vec_mulo --
+ --------------
function vec_mulo
(A : vector_unsigned_char;
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_int;
+ -----------------
-- vec_vmulosh --
+ -----------------
function vec_vmulosh
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_int;
+ -----------------
-- vec_vmulouh --
+ -----------------
function vec_vmulouh
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_int;
+ -----------------
-- vec_vmulosb --
+ -----------------
function vec_vmulosb
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_short;
+ -----------------
-- vec_vmuloub --
+ -----------------
function vec_vmuloub
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_short;
+ ---------------
-- vec_nmsub --
+ ---------------
function vec_nmsub
(A : vector_float;
B : vector_float;
C : vector_float) return vector_float;
+ -------------
-- vec_nor --
+ -------------
function vec_nor
(A : vector_float;
(A : vector_bool_char;
B : vector_bool_char) return vector_bool_char;
+ ------------
-- vec_or --
+ ------------
function vec_or
(A : vector_float;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ --------------
-- vec_pack --
+ --------------
function vec_pack
(A : vector_signed_short;
(A : vector_bool_int;
B : vector_bool_int) return vector_bool_short;
+ -----------------
-- vec_vpkuwum --
+ -----------------
function vec_vpkuwum
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_short;
+ -----------------
-- vec_vpkuhum --
+ -----------------
function vec_vpkuhum
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_char;
+ ----------------
-- vec_packpx --
+ ----------------
function vec_packpx
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_pixel;
+ ---------------
-- vec_packs --
+ ---------------
function vec_packs
(A : vector_unsigned_short;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_short;
+ -----------------
-- vec_vpkswss --
+ -----------------
function vec_vpkswss
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_short;
+ -----------------
-- vec_vpkuwus --
+ -----------------
function vec_vpkuwus
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_short;
+ -----------------
-- vec_vpkshss --
+ -----------------
function vec_vpkshss
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_char;
+ -----------------
-- vec_vpkuhus --
+ -----------------
function vec_vpkuhus
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_char;
+ ----------------
-- vec_packsu --
+ ----------------
function vec_packsu
(A : vector_unsigned_short;
(A : vector_signed_int;
B : vector_signed_int) return vector_unsigned_short;
+ -----------------
-- vec_vpkswus --
+ -----------------
function vec_vpkswus
(A : vector_signed_int;
B : vector_signed_int) return vector_unsigned_short;
+ -----------------
-- vec_vpkshus --
+ -----------------
function vec_vpkshus
(A : vector_signed_short;
B : vector_signed_short) return vector_unsigned_char;
+ --------------
-- vec_perm --
+ --------------
function vec_perm
(A : vector_float;
B : vector_bool_char;
C : vector_unsigned_char) return vector_bool_char;
+ ------------
-- vec_re --
+ ------------
function vec_re
(A : vector_float) return vector_float;
+ ------------
-- vec_rl --
+ ------------
function vec_rl
(A : vector_signed_char;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_vrlw --
+ --------------
function vec_vrlw
(A : vector_signed_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_vrlh --
+ --------------
function vec_vrlh
(A : vector_signed_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ --------------
-- vec_vrlb --
+ --------------
function vec_vrlb
(A : vector_signed_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ---------------
-- vec_round --
+ ---------------
function vec_round
(A : vector_float) return vector_float;
+ ----------------
-- vec_rsqrte --
+ ----------------
function vec_rsqrte
(A : vector_float) return vector_float;
+ -------------
-- vec_sel --
+ -------------
function vec_sel
(A : vector_float;
B : vector_bool_char;
C : vector_unsigned_char) return vector_bool_char;
+ ------------
-- vec_sl --
+ ------------
function vec_sl
(A : vector_signed_char;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_vslw --
+ --------------
function vec_vslw
(A : vector_signed_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_vslh --
+ --------------
function vec_vslh
(A : vector_signed_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ --------------
-- vec_vslb --
+ --------------
function vec_vslb
(A : vector_signed_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ -------------
-- vec_sld --
+ -------------
function vec_sld
(A : vector_unsigned_int;
(A : vector_bool_char;
B : vector_bool_char;
C : c_int) return vector_bool_char;
-
pragma Inline_Always (vec_sld);
pragma Convention (Intrinsic, vec_sld);
C : c_int) return vector_signed_char
renames Low_Level_Vectors.vsldoi_16qi;
+ -------------
-- vec_sll --
+ -------------
function vec_sll
(A : vector_signed_int;
(A : vector_bool_char;
B : vector_unsigned_char) return vector_bool_char;
+ -------------
-- vec_slo --
+ -------------
function vec_slo
(A : vector_float;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ----------------
-- vec_vspltw --
+ ----------------
function vec_vspltw
(A : vector_float;
function vec_vspltw
(A : vector_bool_int;
B : c_int) return vector_bool_int;
-
pragma Inline_Always (vec_vspltw);
pragma Convention (Intrinsic, vec_vspltw);
B : c_int) return vector_signed_int
renames Low_Level_Vectors.vspltw;
+ ----------------
-- vec_vsplth --
+ ----------------
function vec_vsplth
(A : vector_bool_short;
function vec_vsplth
(A : vector_pixel;
B : c_int) return vector_pixel;
-
pragma Inline_Always (vec_vsplth);
pragma Convention (Intrinsic, vec_vsplth);
B : c_int) return vector_signed_short
renames Low_Level_Vectors.vsplth;
+ ----------------
-- vec_vspltb --
+ ----------------
function vec_vspltb
(A : vector_unsigned_char;
function vec_vspltb
(A : vector_bool_char;
B : c_int) return vector_bool_char;
-
pragma Inline_Always (vec_vspltb);
pragma Convention (Intrinsic, vec_vspltb);
B : c_int) return vector_signed_char
renames Low_Level_Vectors.vspltb;
+ ------------------
-- vec_vspltisb --
+ ------------------
function vec_vspltisb
(A : c_int) return vector_signed_char
renames Low_Level_Vectors.vspltisb;
+ ------------------
-- vec_vspltish --
+ ------------------
function vec_vspltish
(A : c_int) return vector_signed_short
renames Low_Level_Vectors.vspltish;
+ ------------------
-- vec_vspltisw --
+ ------------------
function vec_vspltisw
(A : c_int) return vector_signed_int
renames Low_Level_Vectors.vspltisw;
+ ------------
-- vec_sr --
+ ------------
function vec_sr
(A : vector_signed_char;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_vsrw --
+ --------------
function vec_vsrw
(A : vector_signed_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_vsrh --
+ --------------
function vec_vsrh
(A : vector_signed_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ --------------
-- vec_vsrb --
+ --------------
function vec_vsrb
(A : vector_signed_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ -------------
-- vec_sra --
+ -------------
function vec_sra
(A : vector_signed_char;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ ---------------
-- vec_vsraw --
+ ---------------
function vec_vsraw
(A : vector_signed_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
- -- vec_vsrah --
-
function vec_vsrah
(A : vector_signed_short;
B : vector_unsigned_short) return vector_signed_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
- -- vec_vsrab --
-
function vec_vsrab
(A : vector_signed_char;
B : vector_unsigned_char) return vector_signed_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ -------------
-- vec_srl --
+ -------------
function vec_srl
(A : vector_signed_int;
(A : vector_bool_char;
B : vector_unsigned_char) return vector_bool_char;
- -- vec_sro --
-
function vec_sro
(A : vector_float;
B : vector_signed_char) return vector_float;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
- -- vec_st --
-
procedure vec_st
(A : vector_float;
B : c_int;
B : c_int;
C : signed_char_ptr);
+ -------------
-- vec_ste --
+ -------------
procedure vec_ste
(A : vector_signed_char;
B : c_int;
C : unsigned_int_ptr);
+ ----------------
-- vec_stvewx --
+ ----------------
procedure vec_stvewx
(A : vector_float;
B : c_int;
C : unsigned_int_ptr);
- -- vec_stvehx --
-
procedure vec_stvehx
(A : vector_signed_short;
B : c_int;
B : c_int;
C : unsigned_short_ptr);
- -- vec_stvebx --
-
procedure vec_stvebx
(A : vector_signed_char;
B : c_int;
B : c_int;
C : unsigned_char_ptr);
- -- vec_stl --
-
procedure vec_stl
(A : vector_float;
B : c_int;
B : c_int;
C : signed_char_ptr);
+ -------------
-- vec_sub --
+ -------------
function vec_sub
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return vector_float;
+ ----------------
-- vec_vsubfp --
+ ----------------
function vec_vsubfp
(A : vector_float;
B : vector_float) return vector_float;
+ -----------------
-- vec_vsubuwm --
+ -----------------
function vec_vsubuwm
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ -----------------
-- vec_vsubuhm --
+ -----------------
function vec_vsubuhm
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ -----------------
-- vec_vsububm --
+ -----------------
function vec_vsububm
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ --------------
-- vec_subc --
+ --------------
function vec_subc
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ --------------
-- vec_subs --
+ --------------
function vec_subs
(A : vector_bool_char;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ -----------------
-- vec_vsubsws --
+ -----------------
function vec_vsubsws
(A : vector_bool_int;
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ -----------------
-- vec_vsubuws --
+ -----------------
function vec_vsubuws
(A : vector_bool_int;
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int;
+ -----------------
-- vec_vsubshs --
+ -----------------
function vec_vsubshs
(A : vector_bool_short;
(A : vector_signed_short;
B : vector_signed_short) return vector_signed_short;
+ -----------------
-- vec_vsubuhs --
+ -----------------
function vec_vsubuhs
(A : vector_bool_short;
(A : vector_unsigned_short;
B : vector_unsigned_short) return vector_unsigned_short;
+ -----------------
-- vec_vsubsbs --
+ -----------------
function vec_vsubsbs
(A : vector_bool_char;
(A : vector_signed_char;
B : vector_signed_char) return vector_signed_char;
+ -----------------
-- vec_vsububs --
+ -----------------
function vec_vsububs
(A : vector_bool_char;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
+ ---------------
-- vec_sum4s --
+ ---------------
function vec_sum4s
(A : vector_unsigned_char;
(A : vector_signed_short;
B : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vsum4shs --
+ ------------------
function vec_vsum4shs
(A : vector_signed_short;
B : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vsum4sbs --
+ ------------------
function vec_vsum4sbs
(A : vector_signed_char;
B : vector_signed_int) return vector_signed_int;
+ ------------------
-- vec_vsum4ubs --
+ ------------------
function vec_vsum4ubs
(A : vector_unsigned_char;
B : vector_unsigned_int) return vector_unsigned_int;
+ ---------------
-- vec_sum2s --
+ ---------------
function vec_sum2s
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
+ --------------
-- vec_sums --
+ --------------
function vec_sums
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int;
- -- vec_trunc --
-
function vec_trunc
(A : vector_float) return vector_float;
- -- vec_unpackh --
-
function vec_unpackh
(A : vector_signed_char) return vector_signed_short;
function vec_unpackh
(A : vector_pixel) return vector_unsigned_int;
- -- vec_vupkhsh --
-
function vec_vupkhsh
(A : vector_bool_short) return vector_bool_int;
function vec_vupkhsh
(A : vector_signed_short) return vector_signed_int;
- -- vec_vupkhpx --
-
function vec_vupkhpx
(A : vector_pixel) return vector_unsigned_int;
- -- vec_vupkhsb --
-
function vec_vupkhsb
(A : vector_bool_char) return vector_bool_short;
function vec_vupkhsb
(A : vector_signed_char) return vector_signed_short;
- -- vec_unpackl --
-
function vec_unpackl
(A : vector_signed_char) return vector_signed_short;
function vec_unpackl
(A : vector_bool_short) return vector_bool_int;
- -- vec_vupklpx --
-
function vec_vupklpx
(A : vector_pixel) return vector_unsigned_int;
- -- vec_upklsh --
+ -----------------
+ -- vec_vupklsh --
+ -----------------
function vec_vupklsh
(A : vector_bool_short) return vector_bool_int;
function vec_vupklsh
(A : vector_signed_short) return vector_signed_int;
+ -----------------
-- vec_vupklsb --
+ -----------------
function vec_vupklsb
(A : vector_bool_char) return vector_bool_short;
function vec_vupklsb
(A : vector_signed_char) return vector_signed_short;
+ -------------
-- vec_xor --
+ -------------
function vec_xor
(A : vector_float;
(A : vector_unsigned_char;
B : vector_unsigned_char) return vector_unsigned_char;
- ----------------------------------
- -- [PIM-4.5 AltiVec predicates] --
- ----------------------------------
-
-- vec_all_eq --
function vec_all_eq
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_all_ge --
+ ----------------
function vec_all_ge
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_all_gt --
+ ----------------
function vec_all_gt
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_all_in --
+ ----------------
function vec_all_in
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_all_le --
+ ----------------
function vec_all_le
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_all_lt --
+ ----------------
function vec_all_lt
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return c_int;
+ -----------------
-- vec_all_nan --
+ -----------------
function vec_all_nan
(A : vector_float) return c_int;
+ ----------------
-- vec_all_ne --
+ ----------------
function vec_all_ne
(A : vector_signed_char;
(A : vector_float;
B : vector_float) return c_int;
+ -----------------
-- vec_all_nge --
+ -----------------
function vec_all_nge
(A : vector_float;
B : vector_float) return c_int;
+ -----------------
-- vec_all_ngt --
+ -----------------
function vec_all_ngt
(A : vector_float;
B : vector_float) return c_int;
+ -----------------
-- vec_all_nle --
+ -----------------
function vec_all_nle
(A : vector_float;
B : vector_float) return c_int;
+ -----------------
-- vec_all_nlt --
+ -----------------
function vec_all_nlt
(A : vector_float;
B : vector_float) return c_int;
+ ---------------------
-- vec_all_numeric --
+ ---------------------
function vec_all_numeric
(A : vector_float) return c_int;
+ ----------------
-- vec_any_eq --
+ ----------------
function vec_any_eq
(A : vector_signed_char;
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_any_ge --
+ ----------------
function vec_any_ge
(A : vector_signed_char;
(A : vector_float;
B : vector_float) return c_int;
+ ----------------
-- vec_any_gt --
+ ----------------
function vec_any_gt
(A : vector_bool_char;
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_le --
-
function vec_any_le
(A : vector_bool_char;
B : vector_unsigned_char) return c_int;
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_lt --
-
function vec_any_lt
(A : vector_bool_char;
B : vector_unsigned_char) return c_int;
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_nan --
-
function vec_any_nan
(A : vector_float) return c_int;
- -- vec_any_ne --
-
function vec_any_ne
(A : vector_signed_char;
B : vector_bool_char) return c_int;
(A : vector_float;
B : vector_float) return c_int;
+ -----------------
-- vec_any_nge --
+ -----------------
function vec_any_nge
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_ngt --
-
function vec_any_ngt
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_nle --
-
function vec_any_nle
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_nlt --
-
function vec_any_nlt
(A : vector_float;
B : vector_float) return c_int;
- -- vec_any_numeric --
-
function vec_any_numeric
(A : vector_float) return c_int;
- -- vec_any_out --
-
function vec_any_out
(A : vector_float;
B : vector_float) return c_int;
- -------------------------------------------
- -- Straight overloads of routines aboves --
- -------------------------------------------
-
- -- vec_splat_s8 --
-
function vec_splat_s8
(A : c_int) return vector_signed_char
renames vec_vspltisb;
+ -------------------
-- vec_splat_s16 --
+ -------------------
function vec_splat_s16
(A : c_int) return vector_signed_short
renames vec_vspltish;
+ -------------------
-- vec_splat_s32 --
+ -------------------
function vec_splat_s32
(A : c_int) return vector_signed_int
renames vec_vspltisw;
- -- vec_splat --
-
function vec_splat
(A : vector_signed_char;
B : c_int) return vector_signed_char
B : c_int) return vector_bool_int
renames vec_vspltw;
+ ------------------
-- vec_splat_u8 --
+ ------------------
function vec_splat_u8
(A : c_int) return vector_unsigned_char;
-
pragma Inline_Always (vec_splat_u8);
pragma Convention (Intrinsic, vec_splat_u8);
+ -------------------
-- vec_splat_u16 --
+ -------------------
function vec_splat_u16
(A : c_int) return vector_unsigned_short;
-
pragma Inline_Always (vec_splat_u16);
pragma Convention (Intrinsic, vec_splat_u16);
+ -------------------
-- vec_splat_u32 --
+ -------------------
function vec_splat_u32
(A : c_int) return vector_unsigned_int;
-
pragma Inline_Always (vec_splat_u32);
pragma Convention (Intrinsic, vec_splat_u32);
+ -------------
-- vec_ctf --
+ -------------
function vec_ctf
(A : vector_unsigned_int;
B : c_int) return vector_float
renames vec_vcfsx;
+ -------------
-- vec_cts --
+ -------------
function vec_cts
(A : vector_float;
B : c_int) return vector_signed_int
renames vec_vctsxs;
- -- vec_ctu --
-
function vec_ctu
(A : vector_float;
B : c_int) return vector_unsigned_int
renames vec_vctuxs;
- -- vec_vaddcuw --
-
function vec_vaddcuw
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int
renames vec_addc;
- -- vec_vand --
-
function vec_vand
(A : vector_float;
B : vector_float) return vector_float
B : vector_unsigned_char) return vector_unsigned_char
renames vec_and;
+ ---------------
-- vec_vandc --
+ ---------------
function vec_vandc
(A : vector_float;
B : vector_unsigned_char) return vector_unsigned_char
renames vec_andc;
+ ---------------
-- vec_vrfip --
+ ---------------
function vec_vrfip
(A : vector_float) return vector_float
renames vec_ceil;
+ -----------------
-- vec_vcmpbfp --
+ -----------------
function vec_vcmpbfp
(A : vector_float;
B : vector_float) return vector_signed_int
renames vec_cmpb;
- -- vec_vcmpgefp --
-
function vec_vcmpgefp
(A : vector_float;
B : vector_float) return vector_bool_int
renames vec_cmpge;
- -- vec_vexptefp --
-
function vec_vexptefp
(A : vector_float) return vector_float
renames vec_expte;
+ ---------------
-- vec_vrfim --
+ ---------------
function vec_vrfim
(A : vector_float) return vector_float
renames vec_floor;
- -- vec_lvx --
-
function vec_lvx
(A : c_long;
B : const_vector_float_ptr) return vector_float
B : const_unsigned_char_ptr) return vector_unsigned_char
renames vec_ld;
- -- vec_lvxl --
-
function vec_lvxl
(A : c_long;
B : const_vector_float_ptr) return vector_float
B : const_unsigned_char_ptr) return vector_unsigned_char
renames vec_ldl;
- -- vec_vlogefp --
-
function vec_vlogefp
(A : vector_float) return vector_float
renames vec_loge;
+ -----------------
-- vec_vmaddfp --
+ -----------------
function vec_vmaddfp
(A : vector_float;
C : vector_float) return vector_float
renames vec_madd;
+ -------------------
-- vec_vmhaddshs --
+ -------------------
function vec_vmhaddshs
(A : vector_signed_short;
C : vector_signed_short) return vector_signed_short
renames vec_madds;
+ -------------------
-- vec_vmladduhm --
+ -------------------
function vec_vmladduhm
(A : vector_signed_short;
C : vector_unsigned_short) return vector_unsigned_short
renames vec_mladd;
+ --------------------
-- vec_vmhraddshs --
+ --------------------
function vec_vmhraddshs
(A : vector_signed_short;
C : vector_signed_short) return vector_signed_short
renames vec_mradds;
+ ------------------
-- vec_vnmsubfp --
+ ------------------
function vec_vnmsubfp
(A : vector_float;
C : vector_float) return vector_float
renames vec_nmsub;
+ --------------
-- vec_vnor --
+ --------------
function vec_vnor
(A : vector_float;
B : vector_bool_char) return vector_bool_char
renames vec_nor;
+ -------------
-- vec_vor --
+ -------------
function vec_vor
(A : vector_float;
B : vector_unsigned_char) return vector_unsigned_char
renames vec_or;
+ ---------------
-- vec_vpkpx --
+ ---------------
function vec_vpkpx
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_pixel
renames vec_packpx;
+ ---------------
-- vec_vperm --
+ ---------------
function vec_vperm
(A : vector_float;
C : vector_unsigned_char) return vector_bool_char
renames vec_perm;
+ ---------------
-- vec_vrefp --
+ ---------------
function vec_vrefp
(A : vector_float) return vector_float
renames vec_re;
+ ---------------
-- vec_vrfin --
+ ---------------
function vec_vrfin
(A : vector_float) return vector_float
renames vec_round;
- -- vec_vrsqrtefp --
-
function vec_vrsqrtefp
(A : vector_float) return vector_float
renames vec_rsqrte;
- -- vec_vsel --
-
function vec_vsel
(A : vector_float;
B : vector_float;
C : vector_unsigned_char) return vector_bool_char
renames vec_sel;
+ ----------------
-- vec_vsldoi --
+ ----------------
function vec_vsldoi
(A : vector_float;
C : c_int) return vector_bool_char
renames vec_sld;
+ -------------
-- vec_vsl --
+ -------------
function vec_vsl
(A : vector_signed_int;
B : vector_unsigned_char) return vector_bool_char
renames vec_sll;
+ --------------
-- vec_vslo --
+ --------------
function vec_vslo
(A : vector_float;
B : vector_unsigned_char) return vector_unsigned_char
renames vec_slo;
- -- vec_vsr --
-
function vec_vsr
(A : vector_signed_int;
B : vector_unsigned_int) return vector_signed_int
B : vector_unsigned_char) return vector_bool_char
renames vec_srl;
- -- vec_vsro --
-
function vec_vsro
(A : vector_float;
B : vector_signed_char) return vector_float
B : vector_unsigned_char) return vector_unsigned_char
renames vec_sro;
+ --------------
-- vec_stvx --
+ --------------
procedure vec_stvx
(A : vector_float;
C : signed_char_ptr)
renames vec_st;
+ ---------------
-- vec_stvxl --
+ ---------------
procedure vec_stvxl
(A : vector_float;
C : signed_char_ptr)
renames vec_stl;
- -- vec_vsubcuw --
-
function vec_vsubcuw
(A : vector_unsigned_int;
B : vector_unsigned_int) return vector_unsigned_int
renames vec_subc;
+ ------------------
-- vec_vsum2sws --
+ ------------------
function vec_vsum2sws
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int
renames vec_sum2s;
- -- vec_vsumsws --
-
function vec_vsumsws
(A : vector_signed_int;
B : vector_signed_int) return vector_signed_int
renames vec_sums;
- -- vec_vrfiz --
-
function vec_vrfiz
(A : vector_float) return vector_float
renames vec_trunc;
+ --------------
-- vec_vxor --
+ --------------
function vec_vxor
(A : vector_float;
B : vector_unsigned_char) return vector_unsigned_char
renames vec_xor;
- ----------------------------------------------
- -- [PIM 2.5.3 Value for adjusting pointers] --
- ----------------------------------------------
-
- -- "At compile time, vec_step (vec_data) produces the integer value
- -- representing the amount by which a pointer to a component of an AltiVec
- -- data type should increment to cause a pointer increment to increment by
- -- 16 bytes".
+ --------------
+ -- vec_step --
+ --------------
function vec_step (V : vector_unsigned_char) return Integer;
function vec_step (V : vector_signed_char) return Integer;
pragma Inline_Always (vec_any_nlt);
pragma Inline_Always (vec_any_numeric);
pragma Inline_Always (vec_any_out);
-
- -- Similarly, vec_step is expected to be turned into a compile time
- -- constant, so ...
-
pragma Inline_Always (vec_step);
end GNAT.Altivec.Vector_Operations;
-- GNAT
-- True if -gnatg switch is present. GNAT_Mode may be temporary set to
-- True during the analysis of a system unit, but GNAT_Mode_Config must
- -- not changed once scanned.
+ -- not change once scanned and set.
- -- Setting this switch has the following effects on the language that is
+ -- Setting GNAT mode has the following effects on the language that is
-- accepted. Note that several of the following have the effect of changing
-- an error to a warning. But warnings are usually treated as fatal errors
-- in -gnatg mode, so to actually take advantage of such a change, it is