我是 vector 新手,我一直在阅读 gcc documentation试图解决这个问题。
是否可以在运行时动态分配 vector 的大小?看来您必须在 typedef 中执行此操作,例如:
typedef double v4sf __attribute__((vector_size (16)));
我想将 vector 的值设置为 double 组。我试过这样:
v4sf curr_vect = double_array;
其中 double_array 显然是一个 double 组。但这无法编译。可以做这些事情吗?
最佳答案
如果您的平台符合 POSIX 标准,则可以使用 posix_memalign()
function 实现对齐的动态内存分配。 :
double *p;
if (posix_memalign((void **)&p, 16, sizeof(*p) * 16) != 0) {
perror("posix_memalign");
abort();
}
p[0] = 3.1415927;
// ...
free(p);
关于c - 将 SIMD Vector 动态分配为 double 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662492/