1 /* { dg-do assemble } */
2 /* { dg-skip-if "ptxas times out" { nvptx-*-* } { "-O1" } { "" } } */
3 
foo()4 foo ()
5 {
6   int r0[8186 ];
7   int r1[2 ];
8   int r2[2 ];
9   int bitm0[2 ];
10   int bitm1[2 ];
11   int bitm2[2 ];
12 
13   int i,j,k,m,n,m_max;
14   int f;
15   double fm,ft;
16 
17   while (1) {
18 
19     if (m%4 == 2)
20       ++m;
21 
22     if (m_max != 0 && m > m_max)
23       break;
24 
25     fm=m;
26 
27     r0[k=1]=0;
28     bitm0[0] = 0;
29 
30       while ( n%f == 0 ) {
31 	while ( (ft != 0) && (ft < fm )) {
32 	  bitm1[i] = 0;
33 	  r1[i]=0;
34           }
35 
36 	while ( r0[i] != 0 && r1[i] != 0 ) {
37 	  if ( r0[i] < r1[i] ) {
38 	    bitm2[k] = bitm0[i];
39 	    r2[k++]=0;
40 	  }
41 	  else if ( r0[i] > r1[j] ) {
42 	    bitm2[k] = bitm1[j];
43 	    r2[k++]=r1[j++];
44 	  }
45 	  else {
46 	    bitm1[k] = bitm0[i];
47 	    r2[k++]=r0[i++];
48 	  }
49 	}
50       }
51   }
52 }
53