Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/pr47555.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* { dg-do compile } */ | |
2 /* { dg-options "-O2" } */ | |
3 | |
4 #define FILL_BACK *ptrRGB++=0; *ptrRGB++=0; *ptrRGB++=0; | |
5 | |
6 | |
7 void uncompact(unsigned char* ptrRGB, const unsigned int* ptrSrc, const unsigned char* ptrRGBcompact, int line, int nbPixLeft) | |
8 { | |
9 | |
10 #define BIT_2_RGB32 \ | |
11 if ((v & 0x00000001)){ nbPixLeft--; *ptrRGB++ = *ptrRGBcompact++; *ptrRGB++ = *ptrRGBcompact++; *ptrRGB++ = *ptrRGBcompact++; } \ | |
12 else{ FILL_BACK } \ | |
13 v >>= 1; | |
14 #define BIT_2_RGB16 \ | |
15 if ((v16 & 0x0001)){ nbPixLeft--; *ptrRGB++ = *ptrRGBcompact++; *ptrRGB++ = *ptrRGBcompact++; *ptrRGB++ = *ptrRGBcompact++; } \ | |
16 else{ FILL_BACK } \ | |
17 v16 >>= 1; | |
18 | |
19 int x; | |
20 unsigned int v, *ptrSrc32bits=(unsigned int*)ptrSrc; | |
21 unsigned short v16,*ptrSrc16bits; | |
22 | |
23 for(x=0; x<line; x++) { | |
24 v = *ptrSrc32bits++; | |
25 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 | |
26 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 | |
27 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 | |
28 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 BIT_2_RGB32 | |
29 } | |
30 | |
31 ptrSrc16bits=(unsigned short *)ptrSrc32bits; | |
32 v16 = *ptrSrc16bits++; | |
33 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 | |
34 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 BIT_2_RGB16 | |
35 | |
36 } |