modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c (about)

     1  /* From PR 18977.  */
     2  void foo(float * x);
     3  
     4  int main()
     5  {
     6    float x[4];
     7    foo (x);
     8    return 0;
     9  }
    10  
    11  void foo (float *x)
    12  {
    13      int i,j,k;
    14      float temp;
    15      static float t16[16]={1.,2.,3.,4.,5.,6.,7.,8.,9.,
    16  			  10.,11.,12.,13.,14.,15.,16.};
    17      static float tmp[4]={0.,0.,0.,0.};
    18  
    19      for (i=0; i<4; i++) {
    20  	k = 3 - i;
    21  	temp = t16[5*k];
    22  	for(j=k+1; j<4; j++) {
    23  	    tmp[k] = t16[k+  j*4] * temp;
    24  	}
    25      }
    26      x[0] = tmp[0];
    27      x[1] = tmp[1];
    28      x[2] = tmp[2];
    29      x[3] = tmp[3];
    30  }