Vectorization with gaps

Introduction

Допустим, у нас есть некая структура **s**. В функции **foo** происходит операция, которую необходимо векторизовать.

#define N 4 struct s { int a; int b; int c; int d; }; struct s ss[N]; int i=0; void foo() { while(i<N) { ss[i].a = 2; ss[i].b = 3; ss[i].d = 4; i=i+1; }

На текущий момент голова autovect-braunch выдает следующий результат:

foo:
lis 7,i@ha
lwz 0,i@l(7)
cmpwi 7,0,3
bgtlr- 7
lis 9,ss@ha
slwi 0,0,4
la 9,ss@l(9)
li 8,2
add 11,9,0
li 10,3
addi 9,9,64
li 0,4