Hi, All

Sorry for my previous post. It was into wrong place.

There is minimal reproducer for cpu2006/h264ref is attached
use
gcc -O2 -c ./image.c

Compiler from trunk produces:
image.c: In function 'UnifiedOneForthPix':
image.c:35: internal compiler error: in set_value_range, at tree-vrp.c:267

-Vladimir


On 3/4/07, Grigory Zagorodnev <[EMAIL PROTECTED]> wrote:
Grigory Zagorodnev wrote:
> Trunk GCC shows massive (2 compile-time and 6 run-time) failures on SPEC
> CPU2000 and CPU2006 at i386 and x86_64 on -O2 optimization level.
> Regression introduced somewhere between revision 122487 and 122478.
>
>     http://gcc.gnu.org/viewcvs?view=rev&revision=122487
Almost all regressions are due to r122487
cpu2006: 403.gcc 416.gamess 434.zeusmp 464.h264ref 465.tonto
cpu2000: 178.galgel 186.crafty


>     http://gcc.gnu.org/viewcvs?view=rev&revision=122484
cpu2006/447.dealII is due to revision 122484.

I'll bring more information and try to get minimal reproducers at Monday.

- Grigory

typedef unsigned char byte;    //!< byte type definition

#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))

typedef long long int64;

#define imgpel unsigned short
#define pel_t imgpel


#define IMG_PAD_SIZE    4   //!< Number of pixels padded around the reference 
frame (>=4)
#define MAX_LIST_SIZE 33
#define imgpel unsigned short

int    **img4Y_tmp;          //!< for quarter pel interpolation

typedef struct storable_picture
{
  int         size_x, size_y;
  imgpel **   imgY;          //!< Y picture component
} StorablePicture;


const int ONE_FOURTH_TAP[3][2] =
{
  {20,20},
  {-5,-4},
  { 1, 0},
};

void UnifiedOneForthPix (StorablePicture *s)
{
  int i, j, jj,is;
  imgpel  **imgY = s->imgY;
  
  for (i = -IMG_PAD_SIZE; i < s->size_x + IMG_PAD_SIZE; i++)
  {
      is =
        (ONE_FOURTH_TAP[0][0] *
        (imgY[jj][max (0, min (s->size_x - 1, i))] +
         imgY[jj][max (0, min (s->size_x - 1, i + 1))]) +
        ONE_FOURTH_TAP[1][0] *
        (imgY[jj][max (0, min (s->size_x - 1, i - 1))] +
         imgY[jj][max (0, min (s->size_x - 1, i + 2))]) +
        ONE_FOURTH_TAP[2][0] *
        (imgY[jj][max (0, min (s->size_x - 1, i - 2))] +
         imgY[jj][max (0, min (s->size_x - 1, i + 3))]));
      img4Y_tmp[j + IMG_PAD_SIZE][(i + IMG_PAD_SIZE) * 2 + 1] = is * 32;  // 
1/2 pix pos
  }
    
}

Reply via email to