我是向量的新手,我一直在阅读gcc 文档,试图了解它。
是否可以在运行时动态分配向量的大小?似乎您必须在 typedef 中执行此操作,例如:
typedef double v4sf __attribute__((vector_size (16)));
我想将向量的值设置为双精度数组。我试过这样:
v4sf curr_vect = double_array;
其中 double_array 显然是一个双精度数组。但这无法编译。有可能做这些事情中的任何一个吗?
如果您的平台是 POSIX 兼容的,您可以使用以下posix_memalign()
函数实现对齐的动态内存分配:
double *p;
if (posix_memalign((void **)&p, 16, sizeof(*p) * 16) != 0) {
perror("posix_memalign");
abort();
}
p[0] = 3.1415927;
// ...
free(p);