c++中使用AltiVec SIMD向量类型编译错误



代码如下:

int add = foo;
vector signed int v_add;
v_add[0] = add;

错误是:error: invalid types 'vector int[int]' for array subscript

当我尝试add = v_add[0];

时问题仍然存在请解释这个问题的原因。我使用的是gnu版本3.3.2

适合我:

$ cat vec.cpp
#include <altivec.h>
void foo () {
int add = 1;
vector signed int v_add;
v_add[0] = add;
}
$ g++ -c vec.cpp
$ g++ --version
g++ (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)

您不能将AltiVec类型(如vector signed int)视为数组。例如,使用vec_ld内在将值从数组加载到AltiVec向量。

最新更新