Supported GCC vector built-in functions

The following GCC vector built-in functions are also supported in IBM® XL C/C++ for Linux, V13.1.4.

  • vec_vsx_ld
  • vec_vsx_st
  • vec_xxsldi
  • vec_dstt
  • vec_xxpermdi

The following tables describe how vector built-in functions in GCC and IBM XL C/C++ for Linux, V13.1.4 are mapped.

Table 1. Vector built-in function mappings: vec_vsx_ld and vec_xl

Supported GCC vector built-in function:

vec_vsx_ld

Equivalent IBM XL C/C++ for Linux function:

vec_xl

vector double vec_vsx_ld (int, const vector double *) vector double vec_xl (signed long, const vector double *)
vector double vec_vsx_ld (int, const double *) vector double vec_xl (signed long, const double *)
vector float vec_vsx_ld (int, const vector float *) vector float vec_xl (signed long, const vector float *)
vector float vec_vsx_ld (int, const float *) vector float vec_xl (signed long, const float *)
vector bool int vec_vsx_ld (int, const vector bool int *)  
vector signed int vec_vsx_ld (int, const vector signed int *) vector signed int vec_xl (signed long, const vector signed int *)
vector signed int vec_vsx_ld (int, const int *) vector signed int vec_xl (signed long, const signed int *)
vector signed int vec_vsx_ld (int, const long *)  
vector unsigned int vec_vsx_ld (int, const vector unsigned int *) vector unsigned int vec_xl (signed long, const vector unsigned int *)
vector unsigned int vec_vsx_ld (int, const unsigned int *) vector unsigned int vec_xl (signed long, const unsigned int *)
vector unsigned int vec_vsx_ld (int, const unsigned long *)  
vector bool short vec_vsx_ld (int, const vector bool short *)  
vector pixel vec_vsx_ld (int, const vector pixel *)  
vector signed short vec_vsx_ld (int, const vector signed short *) vector signed short vec_xl (signed long, const vector signed short *)
vector signed short vec_vsx_ld (int, const short *) vector signed short vec_xl (signed long, const signed short *)
vector unsigned short vec_vsx_ld (int, const vector unsigned short *) vector unsigned short vec_xl (signed long, const vector unsigned short *)
vector unsigned short vec_vsx_ld (int, const unsigned short *) vector unsigned short vec_xl (signed long, const unsigned short *)
vector bool char vec_vsx_ld (int, const vector bool char *)  
vector signed char vec_vsx_ld (int, const vector signed char *) vector signed char vec_xl (signed long, const vector signed char *)
vector signed char vec_vsx_ld (int, const signed char *) vector signed char vec_xl (signed long, const signed char *)
vector unsigned char vec_vsx_ld (int, const vector unsigned char *) vector unsigned char vec_xl (signed long, const vector unsigned char *)
vector unsigned char vec_vsx_ld (int, const unsigned char *) vector unsigned char vec_xl (signed long, const unsigned char *)
Table 2. Vector built-in function mappings: vec_vsx_st and vec_xst

Supported GCC vector built-in function:

vec_vsx_st

Equivalent IBM XL C/C++ for Linux function:

vec_xst

void vec_vsx_st (vector double, int, vector double *) void vec_xst (vector double, signed long, const vector double *)
void vec_vsx_st (vector double, int, double *) void vec_xst (vector double, signed long, double *)
void vec_vsx_st (vector float, int, vector float *) void vec_xst (vector float, signed long, const vector float *)
void vec_vsx_st (vector float, int, float *) void vec_xst (vector float, signed long, float *)
void vec_vsx_st (vector signed int, int, vector signed int *) void vec_xst (vector signed int, signed long, const vector signed int *)
void vec_vsx_st (vector signed int, int, int *) void vec_xst (vector signed int, signed long, signed int *)
void vec_vsx_st (vector unsigned int, int, vector unsigned int *) void vec_xst (vector unsigned short, signed long, const vector unsigned short *)
void vec_vsx_st (vector unsigned int, int, unsigned int *) void vec_xst (vector unsigned int, signed long, unsigned int*)
void vec_vsx_st (vector bool int, int, vector bool int *)  
void vec_vsx_st (vector bool int, int, unsigned int *)  
void vec_vsx_st (vector bool int, int, int *)  
void vec_vsx_st (vector signed short, int, vector signed short *) void vec_xst (vector signed short, signed long, const vector signed short *)
void vec_vsx_st (vector signed short, int, short *) void vec_xst (vector signed short, signed long, signed short *)
void vec_vsx_st (vector unsigned short, int, vector unsigned short *) void vec_xst (vector unsigned short, signed long, const vector unsigned short *)
void vec_vsx_st (vector unsigned short, int, unsigned short *) void vec_xst (vector unsigned short, signed long, unsigned short *)
void vec_vsx_st (vector bool short, int, vector bool short *)  
void vec_vsx_st (vector bool short, int, unsigned short *)  
void vec_vsx_st (vector pixel, int, vector pixel *)  
void vec_vsx_st (vector pixel, int, unsigned short *)  
void vec_vsx_st (vector pixel, int, short *)  
void vec_vsx_st (vector bool short, int, short *)  
void vec_vsx_st (vector signed char, int, vector signed char *) void vec_xst (vector signed char, signed long, const vector signed char *)
void vec_vsx_st (vector signed char, int, signed char *) void vec_xst (vector signed char, signed long, signed char *)
void vec_vsx_st (vector unsigned char, int, vector unsigned char *) void vec_xst (vector unsigned char, signed long, const vector unsigned char *)
void vec_vsx_st (vector unsigned char, int, unsigned char *) void vec_xst (vector unsigned char, signed long, unsigned char *)
void vec_vsx_st (vector bool char, int, vector bool char *)  
void vec_vsx_st (vector bool char, int, unsigned char *)  
void vec_vsx_st (vector bool char, int, signed char *)  
Table 3. Vector built-in function mappings: vec_xxsldi and vec_sldw

Supported GCC vector built-in function:

vec_xxsldi

Equivalent IBM XL C/C++ for Linux function:

vec_sldw

vector double vec_xxsldi (vector double, vector double, int) vector double vec_sldw (vector double, vector double, signed int)
vector float vec_xxsldi (vector float, vector float, int)  
vector long long vec_xxsldi (vector long long, vector long long, int) vector signed long long vec_sldw (vector signed long long, vector signed long long, signed int)
vector unsigned long long vec_xxsldi (vector unsigned long long, vector unsigned long long, int) vector unsigned long long vec_sldw (vector unsigned long long, vector unsigned long long, signed int)
vector int vec_xxsldi (vector int, vector int, int) vector signed int vec_sldw (vector signed int, vector signed int, signed int)
vector unsigned int vec_xxsldi (vector unsigned int, vector unsigned int, int) vector unsigned int vec_sldw (vector unsigned int, vector unsigned int, signed int)
vector short vec_xxsldi (vector short, vector short, int) vector signed short vec_sldw (vector signed short, vector signed short, signed int)
vector unsigned short vec_xxsldi (vector unsigned short, vector unsigned short, int) vector unsigned short vec_sldw (vector unsigned short, vector unsigned short, signed int)
vector signed char vec_xxsldi (vector signed char, vector signed char, int) vector signed char vec_sldw (vector signed char, vector signed char, signed int)
vector unsigned char vec_xxsldi (vector unsigned char, vector unsigned char, int) vector unsigned char vec_sldw (vector unsigned char, vector unsigned char, signed int)
Table 4. Vector built-in function mappings: vec_dstt and vec_dstt

Supported GCC vector built-in function:

vec_dstt

Equivalent IBM XL C/C++ for Linux function:

vec_dstt

void vec_dstt (const unsigned long *, signed int, signed int)  
void vec_dstt (const signed long *, signed int, signed int)  

The vec_permi built-in function in the following table maps to the vec_xxpermdi function only when -qaltivec=be is set.

Table 5. Vector built-in function mappings: vec_xxpermdi and vec_permi

Supported GCC vector built-in function:

vec_xxpermdi

Equivalent IBM XL C/C++ for Linux function:

vec_permi

vector double vec_xxpermdi (vector double, vector double, int) vector double vec_permi(vector double, vector double, signed int)
vector long long vec_xxpermdi (vector long long, vector long long, int) vector signed long long vec_permi(vector signed long long, vector signed long long, signed int)
vector unsigned long long vec_xxpermdi (vector unsigned long long, vector unsigned long long, int) vector unsigned long long vec_permi(vector unsigned long long, vector unsigned long long, signed int)
int vec_xxpermdi (vector int, vector int, int) vector signed long long vec_permi(vector signed long long, vector signed long long, signed int)
unsigned int vec_xxpermdi (vector unsigned int, vector unsigned int, int) vector unsigned long long vec_permi(vector unsigned long long, vector unsigned long long, signed int)
vector short vec_xxpermdi (vector short, vector short, int) vector signed long long vec_permi(vector signed long long, vector signed long long, signed int)
vector unsigned short vec_xxpermdi (vector unsigned short, vector unsigned short, int) vector unsigned long long vec_permi(vector unsigned long long, vector unsigned long long, signed int)
vector signed char vec_xxpermdi (vector signed char, vector signed char, int) vector signed long long vec_permi(vector signed long long, vector signed long long, signed int)
vector unsigned char vec_xxpermdi (vector unsigned char, vector unsigned char, int) vector unsigned long long vec_permi(vector unsigned long long, vector unsigned long long, signed int)


Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us