1 /* { dg-options "-O2 -floop-block -ffast-math" } */
2 
3 typedef unsigned char   UChar;
4 typedef int             Int32;
5 typedef unsigned int    UInt32;
6 void VPrintf0(const char *);
7 void AssertH (int, int);
8 
fallbackSort(UInt32 * fmap,UInt32 * eclass,Int32 nblock,Int32 verb)9 void fallbackSort ( UInt32* fmap,
10                     UInt32* eclass,
11                     Int32   nblock,
12                     Int32   verb )
13 {
14    Int32 ftab[257];
15    Int32 ftabCopy[256];
16    Int32 H, i, j, k, l, r, cc, cc1;
17    Int32 nNotDone;
18    Int32 nBhtab;
19    UChar* eclass8 = (UChar*)eclass;
20 
21    if (verb >= 4)
22       VPrintf0 ( "        bucket sorting ...\n" );
23    for (i = 0; i < 257;    i++) ftab[i] = 0;
24    for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
25    for (i = 0; i < 256;    i++) ftabCopy[i] = ftab[i];
26    for (i = 1; i < 257;    i++) ftab[i] += ftab[i-1];
27 
28    for (i = 0; i < nblock; i++) {
29       j = eclass8[i] + ftab [i];
30    }
31    AssertH ( j < 256, 1005 );
32 }
33