Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/vect/pr64829.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do compile } */ typedef unsigned char Uint8; typedef int Sint32; typedef unsigned int Uint32; typedef union RMColorDataRef { Uint8* data8; } RMColorDataRef; typedef struct RMColorData { Uint32 dataCount; RMColorDataRef dataRef; } RMColorData; typedef struct RMColorTable { Uint8 dataCompsOut; RMColorDataRef dataRef; } RMColorTable; int fail ( const RMColorData * pInColor, RMColorData * pOutColor, const RMColorTable * pColorTable ) { Uint32 comp; Uint8 nCompOut; Sint32 result; Uint32 interpFrac1, interpFrac2, interpFrac3; Sint32 val0, val1, val2, val3; Uint8 * pOut; const Uint8 * pClutData; const Uint8 * pCornerPoint0; Uint8 lastOut[((8) > (4) ? (8) : (4))]; pOut = pOutColor->dataRef.data8; pClutData = pColorTable->dataRef.data8; nCompOut = pColorTable->dataCompsOut; pCornerPoint0 = pClutData; for (comp = 0; comp < nCompOut; comp++) { val0 = *pCornerPoint0++; result = val0 << 4; result += (val1 - val0) * interpFrac1; result += (val2 - val1) * interpFrac2; result += (val3 - val2) * interpFrac3; *pOut++ = lastOut[comp] = (Uint8)(result >> 4); } return (0); }