modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/920611-2.c (about)

     1  typedef unsigned char uchar;
     2  typedef unsigned short ushort;
     3  typedef unsigned int uint;
     4  typedef unsigned long ulong;
     5  
     6  static unsigned long S[1][1]={0x00820200};
     7  
     8  static int body(out0,out1,ks,Eswap0,Eswap1)
     9  ulong *out0,*out1;
    10  int *ks;
    11  ulong Eswap0,Eswap1;
    12  {
    13    register unsigned long l,r,t,u,v;
    14    register unsigned long *s;
    15    register int i,j;
    16    register unsigned long E0,E1;
    17  
    18    l=0;
    19    r=0;
    20  
    21    s=(ulong *)ks;
    22    E0=Eswap0;
    23    E1=Eswap1;
    24  
    25    for (i=0; i<(16 *2); i+=4)
    26      {
    27        v=(r^(r>>16));
    28        u=(v&E0);
    29        v=(v&E1);
    30        u=(u^(u<<16))^r^s[  i  ];
    31        t=(v^(v<<16))^r^s[  i+1];
    32        t=(t>>4)|(t<<28);
    33        l^=S[1][(t)&0x3f]| S[3][(t>> 8)&0x3f]| S[5][(t>>16)&0x3f]| S[7][(t>>24)&0x3f]| S[0][(u)&0x3f]| S[2][(u>> 8)&0x3f]| S[4][(u>>16)&0x3f]| S[6][(u>>24)&0x3f];
    34        v=(l^(l>>16));
    35        u=(v&E0);
    36        v=(v&E1);
    37        u=(u^(u<<16))^l^s[  i+2  ];
    38        t=(v^(v<<16))^l^s[  i+2+1];
    39        t=(t>>4)|(t<<28);
    40        r^=	S[1][(t    )&0x3f];
    41      }
    42    t=l;
    43    l=r;
    44    r=t;
    45  
    46    t=r;
    47    r=(l>>1)|(l<<31);
    48    l=(t>>1)|(t<<31);
    49  
    50    *out0=l;
    51    *out1=r;
    52    return(0);
    53  }