+2015-02-20 Olivier Hainque <hainque@adacore.com>
+
+ * g-allein.ads (vec_vspltw): Remove.
+ * g-alveop.ad?: Replace vec_vspltw renamings by proper Inline_Always
+ wrappers with Intrinsic convention.
+
2015-02-20 Olivier Hainque <hainque@adacore.com>
* g-allein.ads (vec_dstt): Remove.
pragma Import
(LL_Altivec, vec_splat_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
- -- vec_vspltw --
-
- function vec_vspltw_vf_cint_r_vf
- (A : vector_float;
- B : c_int) return vector_float;
-
- pragma Import
- (LL_Altivec, vec_vspltw_vf_cint_r_vf, "__builtin_altivec_vspltw");
-
- function vec_vspltw_vsi_cint_r_vsi
- (A : vector_signed_int;
- B : c_int) return vector_signed_int;
-
- pragma Import
- (LL_Altivec, vec_vspltw_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
-
- function vec_vspltw_vui_cint_r_vui
- (A : vector_unsigned_int;
- B : c_int) return vector_unsigned_int;
-
- pragma Import
- (LL_Altivec, vec_vspltw_vui_cint_r_vui, "__builtin_altivec_vspltw");
-
- function vec_vspltw_vbi_cint_r_vbi
- (A : vector_bool_int;
- B : c_int) return vector_bool_int;
-
- pragma Import
- (LL_Altivec, vec_vspltw_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
-
- -- vec_vsplth --
-
- function vec_vsplth_vbs_cint_r_vbs
- (A : vector_bool_short;
- B : c_int) return vector_bool_short;
-
- pragma Import
- (LL_Altivec, vec_vsplth_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
-
- function vec_vsplth_vss_cint_r_vss
- (A : vector_signed_short;
- B : c_int) return vector_signed_short;
-
- pragma Import
- (LL_Altivec, vec_vsplth_vss_cint_r_vss, "__builtin_altivec_vsplth");
-
- function vec_vsplth_vus_cint_r_vus
- (A : vector_unsigned_short;
- B : c_int) return vector_unsigned_short;
-
- pragma Import
- (LL_Altivec, vec_vsplth_vus_cint_r_vus, "__builtin_altivec_vsplth");
-
- function vec_vsplth_vx_cint_r_vx
- (A : vector_pixel;
- B : c_int) return vector_pixel;
-
- pragma Import
- (LL_Altivec, vec_vsplth_vx_cint_r_vx, "__builtin_altivec_vsplth");
-
-- vec_vspltb --
function vec_vspltb_vsc_cint_r_vsc
dststt (To_PTR (A), B, C);
end vec_dststt;
+ -- vec_vspltw --
+
+ function vec_vspltw
+ (A : vector_float;
+ B : c_int) return vector_float
+ is
+ begin
+ return To_LL_VF (vspltw (To_LL_VSI (A), B));
+ end vec_vspltw;
+
+ function vec_vspltw
+ (A : vector_unsigned_int;
+ B : c_int) return vector_unsigned_int
+ is
+ begin
+ return To_LL_VUI (vspltw (To_LL_VSI (A), B));
+ end vec_vspltw;
+
+ function vec_vspltw
+ (A : vector_bool_int;
+ B : c_int) return vector_bool_int
+ is
+ begin
+ return To_LL_VBI (vspltw (To_LL_VSI (A), B));
+ end vec_vspltw;
+
+ -- vec_vsplth --
+
+ function vec_vsplth
+ (A : vector_bool_short;
+ B : c_int) return vector_bool_short
+ is
+ begin
+ return To_LL_VBS (vsplth (To_LL_VSS (A), B));
+ end vec_vsplth;
+
+ function vec_vsplth
+ (A : vector_unsigned_short;
+ B : c_int) return vector_unsigned_short
+ is
+ begin
+ return To_LL_VUS (vsplth (To_LL_VSS (A), B));
+ end vec_vsplth;
+
+ function vec_vsplth
+ (A : vector_pixel;
+ B : c_int) return vector_pixel
+ is
+ begin
+ return To_LL_VP (vsplth (To_LL_VSS (A), B));
+ end vec_vsplth;
+
-----------------------------------
-- Bodies for Altivec predicates --
-----------------------------------
function vec_vspltw
(A : vector_float;
- B : c_int) return vector_float
- renames Low_Level_Interface.vec_vspltw_vf_cint_r_vf;
-
- function vec_vspltw
- (A : vector_signed_int;
- B : c_int) return vector_signed_int
- renames Low_Level_Interface.vec_vspltw_vsi_cint_r_vsi;
+ B : c_int) return vector_float;
function vec_vspltw
(A : vector_unsigned_int;
- B : c_int) return vector_unsigned_int
- renames Low_Level_Interface.vec_vspltw_vui_cint_r_vui;
+ B : c_int) return vector_unsigned_int;
function vec_vspltw
(A : vector_bool_int;
- B : c_int) return vector_bool_int
- renames Low_Level_Interface.vec_vspltw_vbi_cint_r_vbi;
+ B : c_int) return vector_bool_int;
+
+ pragma Inline_Always (vec_vspltw);
+ pragma Convention (Intrinsic, vec_vspltw);
+
+ function vec_vspltw
+ (A : vector_signed_int;
+ B : c_int) return vector_signed_int
+ renames Low_Level_Vectors.vspltw;
-- vec_vsplth --
function vec_vsplth
(A : vector_bool_short;
- B : c_int) return vector_bool_short
- renames Low_Level_Interface.vec_vsplth_vbs_cint_r_vbs;
-
- function vec_vsplth
- (A : vector_signed_short;
- B : c_int) return vector_signed_short
- renames Low_Level_Interface.vec_vsplth_vss_cint_r_vss;
+ B : c_int) return vector_bool_short;
function vec_vsplth
(A : vector_unsigned_short;
- B : c_int) return vector_unsigned_short
- renames Low_Level_Interface.vec_vsplth_vus_cint_r_vus;
+ B : c_int) return vector_unsigned_short;
function vec_vsplth
(A : vector_pixel;
- B : c_int) return vector_pixel
- renames Low_Level_Interface.vec_vsplth_vx_cint_r_vx;
+ B : c_int) return vector_pixel;
+
+ pragma Inline_Always (vec_vsplth);
+ pragma Convention (Intrinsic, vec_vsplth);
+
+ function vec_vsplth
+ (A : vector_signed_short;
+ B : c_int) return vector_signed_short
+ renames Low_Level_Vectors.vsplth;
-- vec_vspltb --