i386-bitmask1.c   [plain text]


/* APPLE LOCAL file radar 4645709 */
/* { dg-do compile { target "i?86-*-*" } } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target ilp32 } */
/* LLVM LOCAL */
/* { dg-final { scan-assembler "and.*(0xffffff00|4294967040)" } } */
unsigned char lut[256];

/* LLVM LOCAL - make pointers arguments */
void foo( int count, unsigned int *srcptr, unsigned int *dstptr )
{
  int j;

  /* LLVM LOCAL - make pointers arguments */
  for (j = 0; j < count; j++) {
    unsigned int tmp = *srcptr;
    unsigned int alpha = (tmp&255);
    tmp &= 0xffffff00;
    alpha =lut[alpha];
    tmp |= alpha<<0;
    *dstptr = tmp;
  }
}
/* APPLE LOCAL file radar 4645709 */