2018-05-15 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / graphite / id-pr45231.c
blobd976e3207f652b3939e3c127d4bbf45a2ec3de3f
1 void
2 f (int n, int ppt, int xrot)
4 int tileWidth;
5 int nlwSrc;
6 int srcx;
7 int v3, v4;
8 register unsigned long ca1, cx1, ca2, cx2;
9 unsigned long *pSrcLine;
10 register unsigned long *pDst;
11 register unsigned long *pSrc;
12 register unsigned long b, tmp;
13 unsigned long tileEndMask;
14 int v1, v2;
15 int tileEndPart;
16 int needFirst;
17 tileEndPart = 0;
18 v1 = tileEndPart << 5;
19 v2 = 32 - v1;
20 while (n--)
22 if ((srcx = (ppt - xrot) % tileWidth) < 0)
23 if (needFirst)
24 if (nlwSrc == 1)
26 tmp = b;
27 if (tileEndPart)
28 b = (*pSrc & tileEndMask) | (*pSrcLine >> v1);
30 if (tileEndPart)
31 b = (tmp << v1) | (b >> v2);
32 if (v4 != 32)
33 *pDst = (*pDst & ((tmp << v3) | (b >> v4) & ca1 ^ cx1)
34 ^ (((tmp << v3) | (b >> v4)) & ca2 ^ cx2));
35 *pDst = *pDst & tmp;