1 /* { dg-do assemble } */ 2 /* { dg-skip-if "ptxas times out" { nvptx-*-* } { "-O1" } { "" } } */ 3 foo()4foo () 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