PowerPC AltiVec Built-in Functions on ISA 2.05 (Using the GNU Compiler Collection (GCC))

#### 7.13.24.1 PowerPC AltiVec Built-in Functions on ISA 2.05 ¶

The following interfaces are supported for the generic and specific AltiVec operations and the AltiVec predicates. In cases where there is a direct mapping between generic and specific operations, only the generic names are shown here, although the specific operations can also be used.

Arguments that are documented as `const int` require literal integral values within the range required for that operation.

Only functions excluded from the PVIPR are listed here.

    void vec_dss (const int);

    void vec_dssall (void);

    void vec_dst (const vector unsigned char *, int, const int);
    void vec_dst (const vector signed char *, int, const int);
    void vec_dst (const vector bool char *, int, const int);
    void vec_dst (const vector unsigned short *, int, const int);
    void vec_dst (const vector signed short *, int, const int);
    void vec_dst (const vector bool short *, int, const int);
    void vec_dst (const vector pixel *, int, const int);
    void vec_dst (const vector unsigned int *, int, const int);
    void vec_dst (const vector signed int *, int, const int);
    void vec_dst (const vector bool int *, int, const int);
    void vec_dst (const vector float *, int, const int);
    void vec_dst (const unsigned char *, int, const int);
    void vec_dst (const signed char *, int, const int);
    void vec_dst (const unsigned short *, int, const int);
    void vec_dst (const short *, int, const int);
    void vec_dst (const unsigned int *, int, const int);
    void vec_dst (const int *, int, const int);
    void vec_dst (const float *, int, const int);

    void vec_dstst (const vector unsigned char *, int, const int);
    void vec_dstst (const vector signed char *, int, const int);
    void vec_dstst (const vector bool char *, int, const int);
    void vec_dstst (const vector unsigned short *, int, const int);
    void vec_dstst (const vector signed short *, int, const int);
    void vec_dstst (const vector bool short *, int, const int);
    void vec_dstst (const vector pixel *, int, const int);
    void vec_dstst (const vector unsigned int *, int, const int);
    void vec_dstst (const vector signed int *, int, const int);
    void vec_dstst (const vector bool int *, int, const int);
    void vec_dstst (const vector float *, int, const int);
    void vec_dstst (const unsigned char *, int, const int);
    void vec_dstst (const signed char *, int, const int);
    void vec_dstst (const unsigned short *, int, const int);
    void vec_dstst (const short *, int, const int);
    void vec_dstst (const unsigned int *, int, const int);
    void vec_dstst (const int *, int, const int);
    void vec_dstst (const unsigned long *, int, const int);
    void vec_dstst (const long *, int, const int);
    void vec_dstst (const float *, int, const int);

    void vec_dststt (const vector unsigned char *, int, const int);
    void vec_dststt (const vector signed char *, int, const int);
    void vec_dststt (const vector bool char *, int, const int);
    void vec_dststt (const vector unsigned short *, int, const int);
    void vec_dststt (const vector signed short *, int, const int);
    void vec_dststt (const vector bool short *, int, const int);
    void vec_dststt (const vector pixel *, int, const int);
    void vec_dststt (const vector unsigned int *, int, const int);
    void vec_dststt (const vector signed int *, int, const int);
    void vec_dststt (const vector bool int *, int, const int);
    void vec_dststt (const vector float *, int, const int);
    void vec_dststt (const unsigned char *, int, const int);
    void vec_dststt (const signed char *, int, const int);
    void vec_dststt (const unsigned short *, int, const int);
    void vec_dststt (const short *, int, const int);
    void vec_dststt (const unsigned int *, int, const int);
    void vec_dststt (const int *, int, const int);
    void vec_dststt (const float *, int, const int);

    void vec_dstt (const vector unsigned char *, int, const int);
    void vec_dstt (const vector signed char *, int, const int);
    void vec_dstt (const vector bool char *, int, const int);
    void vec_dstt (const vector unsigned short *, int, const int);
    void vec_dstt (const vector signed short *, int, const int);
    void vec_dstt (const vector bool short *, int, const int);
    void vec_dstt (const vector pixel *, int, const int);
    void vec_dstt (const vector unsigned int *, int, const int);
    void vec_dstt (const vector signed int *, int, const int);
    void vec_dstt (const vector bool int *, int, const int);
    void vec_dstt (const vector float *, int, const int);
    void vec_dstt (const unsigned char *, int, const int);
    void vec_dstt (const signed char *, int, const int);
    void vec_dstt (const unsigned short *, int, const int);
    void vec_dstt (const short *, int, const int);
    void vec_dstt (const unsigned int *, int, const int);
    void vec_dstt (const int *, int, const int);
    void vec_dstt (const float *, int, const int);

    vector signed char vec_lvebx (int, char *);
    vector unsigned char vec_lvebx (int, unsigned char *);

    vector signed short vec_lvehx (int, short *);
    vector unsigned short vec_lvehx (int, unsigned short *);

    vector float vec_lvewx (int, float *);
    vector signed int vec_lvewx (int, int *);
    vector unsigned int vec_lvewx (int, unsigned int *);

    vector unsigned char vec_lvsl (int, const unsigned char *);
    vector unsigned char vec_lvsl (int, const signed char *);
    vector unsigned char vec_lvsl (int, const unsigned short *);
    vector unsigned char vec_lvsl (int, const short *);
    vector unsigned char vec_lvsl (int, const unsigned int *);
    vector unsigned char vec_lvsl (int, const int *);
    vector unsigned char vec_lvsl (int, const float *);

    vector unsigned char vec_lvsr (int, const unsigned char *);
    vector unsigned char vec_lvsr (int, const signed char *);
    vector unsigned char vec_lvsr (int, const unsigned short *);
    vector unsigned char vec_lvsr (int, const short *);
    vector unsigned char vec_lvsr (int, const unsigned int *);
    vector unsigned char vec_lvsr (int, const int *);
    vector unsigned char vec_lvsr (int, const float *);

    void vec_stvebx (vector signed char, int, signed char *);
    void vec_stvebx (vector unsigned char, int, unsigned char *);
    void vec_stvebx (vector bool char, int, signed char *);
    void vec_stvebx (vector bool char, int, unsigned char *);

    void vec_stvehx (vector signed short, int, short *);
    void vec_stvehx (vector unsigned short, int, unsigned short *);
    void vec_stvehx (vector bool short, int, short *);
    void vec_stvehx (vector bool short, int, unsigned short *);

    void vec_stvewx (vector float, int, float *);
    void vec_stvewx (vector signed int, int, int *);
    void vec_stvewx (vector unsigned int, int, unsigned int *);
    void vec_stvewx (vector bool int, int, int *);
    void vec_stvewx (vector bool int, int, unsigned int *);

    vector float vec_vaddfp (vector float, vector float);

    vector signed char vec_vaddsbs (vector bool char, vector signed char);
    vector signed char vec_vaddsbs (vector signed char, vector bool char);
    vector signed char vec_vaddsbs (vector signed char, vector signed char);

    vector signed short vec_vaddshs (vector bool short, vector signed short);
    vector signed short vec_vaddshs (vector signed short, vector bool short);
    vector signed short vec_vaddshs (vector signed short, vector signed short);

    vector signed int vec_vaddsws (vector bool int, vector signed int);
    vector signed int vec_vaddsws (vector signed int, vector bool int);
    vector signed int vec_vaddsws (vector signed int, vector signed int);

    vector signed char vec_vaddubm (vector bool char, vector signed char);
    vector signed char vec_vaddubm (vector signed char, vector bool char);
    vector signed char vec_vaddubm (vector signed char, vector signed char);
    vector unsigned char vec_vaddubm (vector bool char, vector unsigned char);
    vector unsigned char vec_vaddubm (vector unsigned char, vector bool char);
    vector unsigned char vec_vaddubm (vector unsigned char, vector unsigned char);

    vector unsigned char vec_vaddubs (vector bool char, vector unsigned char);
    vector unsigned char vec_vaddubs (vector unsigned char, vector bool char);
    vector unsigned char vec_vaddubs (vector unsigned char, vector unsigned char);

    vector signed short vec_vadduhm (vector bool short, vector signed short);
    vector signed short vec_vadduhm (vector signed short, vector bool short);
    vector signed short vec_vadduhm (vector signed short, vector signed short);
    vector unsigned short vec_vadduhm (vector bool short, vector unsigned short);
    vector unsigned short vec_vadduhm (vector unsigned short, vector bool short);
    vector unsigned short vec_vadduhm (vector unsigned short, vector unsigned short);

    vector unsigned short vec_vadduhs (vector bool short, vector unsigned short);
    vector unsigned short vec_vadduhs (vector unsigned short, vector bool short);
    vector unsigned short vec_vadduhs (vector unsigned short, vector unsigned short);

    vector signed int vec_vadduwm (vector bool int, vector signed int);
    vector signed int vec_vadduwm (vector signed int, vector bool int);
    vector signed int vec_vadduwm (vector signed int, vector signed int);
    vector unsigned int vec_vadduwm (vector bool int, vector unsigned int);
    vector unsigned int vec_vadduwm (vector unsigned int, vector bool int);
    vector unsigned int vec_vadduwm (vector unsigned int, vector unsigned int);

    vector unsigned int vec_vadduws (vector bool int, vector unsigned int);
    vector unsigned int vec_vadduws (vector unsigned int, vector bool int);
    vector unsigned int vec_vadduws (vector unsigned int, vector unsigned int);

    vector signed char vec_vavgsb (vector signed char, vector signed char);

    vector signed short vec_vavgsh (vector signed short, vector signed short);

    vector signed int vec_vavgsw (vector signed int, vector signed int);

    vector unsigned char vec_vavgub (vector unsigned char, vector unsigned char);

    vector unsigned short vec_vavguh (vector unsigned short, vector unsigned short);

    vector unsigned int vec_vavguw (vector unsigned int, vector unsigned int);

    vector float vec_vcfsx (vector signed int, const int);

    vector float vec_vcfux (vector unsigned int, const int);

    vector bool int vec_vcmpeqfp (vector float, vector float);

    vector bool char vec_vcmpequb (vector signed char, vector signed char);
    vector bool char vec_vcmpequb (vector unsigned char, vector unsigned char);

    vector bool short vec_vcmpequh (vector signed short, vector signed short);
    vector bool short vec_vcmpequh (vector unsigned short, vector unsigned short);

    vector bool int vec_vcmpequw (vector signed int, vector signed int);
    vector bool int vec_vcmpequw (vector unsigned int, vector unsigned int);

    vector bool int vec_vcmpgtfp (vector float, vector float);

    vector bool char vec_vcmpgtsb (vector signed char, vector signed char);

    vector bool short vec_vcmpgtsh (vector signed short, vector signed short);

    vector bool int vec_vcmpgtsw (vector signed int, vector signed int);

    vector bool char vec_vcmpgtub (vector unsigned char, vector unsigned char);

    vector bool short vec_vcmpgtuh (vector unsigned short, vector unsigned short);

    vector bool int vec_vcmpgtuw (vector unsigned int, vector unsigned int);

    vector float vec_vmaxfp (vector float, vector float);

    vector signed char vec_vmaxsb (vector bool char, vector signed char);
    vector signed char vec_vmaxsb (vector signed char, vector bool char);
    vector signed char vec_vmaxsb (vector signed char, vector signed char);

    vector signed short vec_vmaxsh (vector bool short, vector signed short);
    vector signed short vec_vmaxsh (vector signed short, vector bool short);
    vector signed short vec_vmaxsh (vector signed short, vector signed short);

    vector signed int vec_vmaxsw (vector bool int, vector signed int);
    vector signed int vec_vmaxsw (vector signed int, vector bool int);
    vector signed int vec_vmaxsw (vector signed int, vector signed int);

    vector unsigned char vec_vmaxub (vector bool char, vector unsigned char);
    vector unsigned char vec_vmaxub (vector unsigned char, vector bool char);
    vector unsigned char vec_vmaxub (vector unsigned char, vector unsigned char);

    vector unsigned short vec_vmaxuh (vector bool short, vector unsigned short);
    vector unsigned short vec_vmaxuh (vector unsigned short, vector bool short);
    vector unsigned short vec_vmaxuh (vector unsigned short, vector unsigned short);

    vector unsigned int vec_vmaxuw (vector bool int, vector unsigned int);
    vector unsigned int vec_vmaxuw (vector unsigned int, vector bool int);
    vector unsigned int vec_vmaxuw (vector unsigned int, vector unsigned int);

    vector float vec_vminfp (vector float, vector float);

    vector signed char vec_vminsb (vector bool char, vector signed char);
    vector signed char vec_vminsb (vector signed char, vector bool char);
    vector signed char vec_vminsb (vector signed char, vector signed char);

    vector signed short vec_vminsh (vector bool short, vector signed short);
    vector signed short vec_vminsh (vector signed short, vector bool short);
    vector signed short vec_vminsh (vector signed short, vector signed short);

    vector signed int vec_vminsw (vector bool int, vector signed int);
    vector signed int vec_vminsw (vector signed int, vector bool int);
    vector signed int vec_vminsw (vector signed int, vector signed int);

    vector unsigned char vec_vminub (vector bool char, vector unsigned char);
    vector unsigned char vec_vminub (vector unsigned char, vector bool char);
    vector unsigned char vec_vminub (vector unsigned char, vector unsigned char);

    vector unsigned short vec_vminuh (vector bool short, vector unsigned short);
    vector unsigned short vec_vminuh (vector unsigned short, vector bool short);
    vector unsigned short vec_vminuh (vector unsigned short, vector unsigned short);

    vector unsigned int vec_vminuw (vector bool int, vector unsigned int);
    vector unsigned int vec_vminuw (vector unsigned int, vector bool int);
    vector unsigned int vec_vminuw (vector unsigned int, vector unsigned int);

    vector bool char vec_vmrghb (vector bool char, vector bool char);
    vector signed char vec_vmrghb (vector signed char, vector signed char);
    vector unsigned char vec_vmrghb (vector unsigned char, vector unsigned char);

    vector bool short vec_vmrghh (vector bool short, vector bool short);
    vector signed short vec_vmrghh (vector signed short, vector signed short);
    vector unsigned short vec_vmrghh (vector unsigned short, vector unsigned short);
    vector pixel vec_vmrghh (vector pixel, vector pixel);

    vector float vec_vmrghw (vector float, vector float);
    vector bool int vec_vmrghw (vector bool int, vector bool int);
    vector signed int vec_vmrghw (vector signed int, vector signed int);
    vector unsigned int vec_vmrghw (vector unsigned int, vector unsigned int);

    vector bool char vec_vmrglb (vector bool char, vector bool char);
    vector signed char vec_vmrglb (vector signed char, vector signed char);
    vector unsigned char vec_vmrglb (vector unsigned char, vector unsigned char);

    vector bool short vec_vmrglh (vector bool short, vector bool short);
    vector signed short vec_vmrglh (vector signed short, vector signed short);
    vector unsigned short vec_vmrglh (vector unsigned short, vector unsigned short);
    vector pixel vec_vmrglh (vector pixel, vector pixel);

    vector float vec_vmrglw (vector float, vector float);
    vector signed int vec_vmrglw (vector signed int, vector signed int);
    vector unsigned int vec_vmrglw (vector unsigned int, vector unsigned int);
    vector bool int vec_vmrglw (vector bool int, vector bool int);

    vector signed int vec_vmsummbm (vector signed char, vector unsigned char,
                                    vector signed int);

    vector signed int vec_vmsumshm (vector signed short, vector signed short,
                                    vector signed int);

    vector signed int vec_vmsumshs (vector signed short, vector signed short,
                                    vector signed int);

    vector unsigned int vec_vmsumubm (vector unsigned char, vector unsigned char,
                                      vector unsigned int);

    vector unsigned int vec_vmsumuhm (vector unsigned short, vector unsigned short,
                                      vector unsigned int);

    vector unsigned int vec_vmsumuhs (vector unsigned short, vector unsigned short,
                                      vector unsigned int);

    vector signed short vec_vmulesb (vector signed char, vector signed char);

    vector signed int vec_vmulesh (vector signed short, vector signed short);

    vector unsigned short vec_vmuleub (vector unsigned char, vector unsigned char);

    vector unsigned int vec_vmuleuh (vector unsigned short, vector unsigned short);

    vector signed short vec_vmulosb (vector signed char, vector signed char);

    vector signed int vec_vmulosh (vector signed short, vector signed short);

    vector unsigned short vec_vmuloub (vector unsigned char, vector unsigned char);

    vector unsigned int vec_vmulouh (vector unsigned short, vector unsigned short);

    vector signed char vec_vpkshss (vector signed short, vector signed short);

    vector unsigned char vec_vpkshus (vector signed short, vector signed short);

    vector signed short vec_vpkswss (vector signed int, vector signed int);

    vector unsigned short vec_vpkswus (vector signed int, vector signed int);

    vector bool char vec_vpkuhum (vector bool short, vector bool short);
    vector signed char vec_vpkuhum (vector signed short, vector signed short);
    vector unsigned char vec_vpkuhum (vector unsigned short, vector unsigned short);

    vector unsigned char vec_vpkuhus (vector unsigned short, vector unsigned short);

    vector bool short vec_vpkuwum (vector bool int, vector bool int);
    vector signed short vec_vpkuwum (vector signed int, vector signed int);
    vector unsigned short vec_vpkuwum (vector unsigned int, vector unsigned int);

    vector unsigned short vec_vpkuwus (vector unsigned int, vector unsigned int);

    vector signed char vec_vrlb (vector signed char, vector unsigned char);
    vector unsigned char vec_vrlb (vector unsigned char, vector unsigned char);

    vector signed short vec_vrlh (vector signed short, vector unsigned short);
    vector unsigned short vec_vrlh (vector unsigned short, vector unsigned short);

    vector signed int vec_vrlw (vector signed int, vector unsigned int);
    vector unsigned int vec_vrlw (vector unsigned int, vector unsigned int);

    vector signed char vec_vslb (vector signed char, vector unsigned char);
    vector unsigned char vec_vslb (vector unsigned char, vector unsigned char);

    vector signed short vec_vslh (vector signed short, vector unsigned short);
    vector unsigned short vec_vslh (vector unsigned short, vector unsigned short);

    vector signed int vec_vslw (vector signed int, vector unsigned int);
    vector unsigned int vec_vslw (vector unsigned int, vector unsigned int);

    vector signed char vec_vspltb (vector signed char, const int);
    vector unsigned char vec_vspltb (vector unsigned char, const int);
    vector bool char vec_vspltb (vector bool char, const int);

    vector bool short vec_vsplth (vector bool short, const int);
    vector signed short vec_vsplth (vector signed short, const int);
    vector unsigned short vec_vsplth (vector unsigned short, const int);
    vector pixel vec_vsplth (vector pixel, const int);

    vector float vec_vspltw (vector float, const int);
    vector signed int vec_vspltw (vector signed int, const int);
    vector unsigned int vec_vspltw (vector unsigned int, const int);
    vector bool int vec_vspltw (vector bool int, const int);

    vector signed char vec_vsrab (vector signed char, vector unsigned char);
    vector unsigned char vec_vsrab (vector unsigned char, vector unsigned char);

    vector signed short vec_vsrah (vector signed short, vector unsigned short);
    vector unsigned short vec_vsrah (vector unsigned short, vector unsigned short);

    vector signed int vec_vsraw (vector signed int, vector unsigned int);
    vector unsigned int vec_vsraw (vector unsigned int, vector unsigned int);

    vector signed char vec_vsrb (vector signed char, vector unsigned char);
    vector unsigned char vec_vsrb (vector unsigned char, vector unsigned char);

    vector signed short vec_vsrh (vector signed short, vector unsigned short);
    vector unsigned short vec_vsrh (vector unsigned short, vector unsigned short);

    vector signed int vec_vsrw (vector signed int, vector unsigned int);
    vector unsigned int vec_vsrw (vector unsigned int, vector unsigned int);

    vector float vec_vsubfp (vector float, vector float);

    vector signed char vec_vsubsbs (vector bool char, vector signed char);
    vector signed char vec_vsubsbs (vector signed char, vector bool char);
    vector signed char vec_vsubsbs (vector signed char, vector signed char);

    vector signed short vec_vsubshs (vector bool short, vector signed short);
    vector signed short vec_vsubshs (vector signed short, vector bool short);
    vector signed short vec_vsubshs (vector signed short, vector signed short);

    vector signed int vec_vsubsws (vector bool int, vector signed int);
    vector signed int vec_vsubsws (vector signed int, vector bool int);
    vector signed int vec_vsubsws (vector signed int, vector signed int);

    vector signed char vec_vsububm (vector bool char, vector signed char);
    vector signed char vec_vsububm (vector signed char, vector bool char);
    vector signed char vec_vsububm (vector signed char, vector signed char);
    vector unsigned char vec_vsububm (vector bool char, vector unsigned char);
    vector unsigned char vec_vsububm (vector unsigned char, vector bool char);
    vector unsigned char vec_vsububm (vector unsigned char, vector unsigned char);

    vector unsigned char vec_vsububs (vector bool char, vector unsigned char);
    vector unsigned char vec_vsububs (vector unsigned char, vector bool char);
    vector unsigned char vec_vsububs (vector unsigned char, vector unsigned char);

    vector signed short vec_vsubuhm (vector bool short, vector signed short);
    vector signed short vec_vsubuhm (vector signed short, vector bool short);
    vector signed short vec_vsubuhm (vector signed short, vector signed short);
    vector unsigned short vec_vsubuhm (vector bool short, vector unsigned short);
    vector unsigned short vec_vsubuhm (vector unsigned short, vector bool short);
    vector unsigned short vec_vsubuhm (vector unsigned short, vector unsigned short);

    vector unsigned short vec_vsubuhs (vector bool short, vector unsigned short);
    vector unsigned short vec_vsubuhs (vector unsigned short, vector bool short);
    vector unsigned short vec_vsubuhs (vector unsigned short, vector unsigned short);

    vector signed int vec_vsubuwm (vector bool int, vector signed int);
    vector signed int vec_vsubuwm (vector signed int, vector bool int);
    vector signed int vec_vsubuwm (vector signed int, vector signed int);
    vector unsigned int vec_vsubuwm (vector bool int, vector unsigned int);
    vector unsigned int vec_vsubuwm (vector unsigned int, vector bool int);
    vector unsigned int vec_vsubuwm (vector unsigned int, vector unsigned int);

    vector unsigned int vec_vsubuws (vector bool int, vector unsigned int);
    vector unsigned int vec_vsubuws (vector unsigned int, vector bool int);
    vector unsigned int vec_vsubuws (vector unsigned int, vector unsigned int);

    vector signed int vec_vsum4sbs (vector signed char, vector signed int);

    vector signed int vec_vsum4shs (vector signed short, vector signed int);

    vector unsigned int vec_vsum4ubs (vector unsigned char, vector unsigned int);

    vector unsigned int vec_vupkhpx (vector pixel);

    vector bool short vec_vupkhsb (vector bool char);
    vector signed short vec_vupkhsb (vector signed char);

    vector bool int vec_vupkhsh (vector bool short);
    vector signed int vec_vupkhsh (vector signed short);

    vector unsigned int vec_vupklpx (vector pixel);

    vector bool short vec_vupklsb (vector bool char);
    vector signed short vec_vupklsb (vector signed char);

    vector bool int vec_vupklsh (vector bool short);
    vector signed int vec_vupklsh (vector signed short);