------- Comment #5 from spop at gcc dot gnu dot org  2010-03-28 16:35 -------
When defining the missing function like this:

static inline int mid_pred(int a, int b, int c)
{
    int t= (a-b)&((a-b)>>31);
    a-=t;
    b+=t;
    b-= (b-c)&((b-c)>>31);
    b+= (a-b)&((a-b)>>31);

    return b;
}

The vectorization reports: "not vectorized: unsupported use in stmt."

When this function is defined like this:
static inline int mid_pred(int a, int b, int c)
{
  if(a>b){
    if(c>b){
      if(c>a) b=a;
      else    b=c;
    }
  }else{
    if(b>c){
      if(c>a) b=c;
      else    b=a;
    }
  }
  return b;
}

the vectorizer stops with: "not vectorized: control flow in loop."


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43436

Reply via email to