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