受支持的 GCC 向量内置函数

以下 GCC 向量内置函数在 IBM® XL C/C++ for AIX® 16.1的基于 Clang 的前端中也受支持。

  • vec_vsx_ld
  • vec_vsx_st
  • vec_xxsldi
  • vec_xxpermdi

下表描述了如何映射 GCC 和 IBM XL C/C++ for AIX 16.1 中的向量内置函数。

表 1. 向量内置函数映射:vec_vsx_ld 和 vec_xl

支持的 GCC 向量内置函数:

vec_vsx_ld

等效的 IBM XL C/C++ for AIX 函数:

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 *)
表 2。 向量内置函数映射:vec_vsx_st 和 vec_xst

支持的 GCC 向量内置函数:

vec_vsx_st

等效的 IBM XL C/C++ for AIX 函数:

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 *)  
表 3。 向量内置函数映射:vec_xxsldi 和 vec_sldw

支持的 GCC 向量内置函数:

vec_xxsldi

等效的 IBM XL C/C++ for AIX 函数:

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)

下表中的 vec_permi 内置函数映射到 vec_xxpermdi 函数。

表 4。 向量内置函数映射:vec_xxpermdi 和 vec_permi

支持的 GCC 向量内置函数:

vec_xxpermdi

等效的 IBM XL C/C++ for AIX 函数:

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)

相关信息