Ему не нравится формат внешнего цикла, который мешает ему понять внутренний цикл. Я могу заставить его векторизовать, если просто сложить его в один цикл:
#include <stdlib.h>
#include <math.h>
int main(int argc, char ** argv) {
const float * __restrict__ input = malloc(20000*sizeof(float));
float * __restrict__ output = malloc(20000*sizeof(float));
for(unsigned int i=0; i<=10100; i++) {
output[i] = input[i] * 0.1f;
}
}
(обратите внимание, что я не особо задумывался о том, как правильно перевести предел pos + rest в одно условие цикла, это может быть неправильно)
Возможно, вы сможете воспользоваться этим, поместив упрощенный внутренний цикл в функцию, которую вы вызываете с помощью указателей и счетчика. Даже если он снова вставлен, он может работать нормально. Это предполагает, что вы удалили части вашего цикла while()
, которые я только что упростили, но вам нужно сохранить.