1 /* { dg-do compile } */ 2 /* { dg-options "-ffast-math -O3 -fdump-tree-vrp1-details" } */ 3 4 int I = 50, J = 50; 5 int S, L; 6 const int *pL; 7 const int *pS; 8 9 void bar (float, float); 10 foo(int K)11void foo (int K) 12 { 13 int k, i, j; 14 static float LD, SD; 15 for (k = 0 ; k < K; k++) 16 { 17 for( i = 0 ; i < ( I - 1 ) ; i++ ) 18 { 19 if( ( L < pL[i+1] ) && ( L >= pL[i] ) ) 20 break ; 21 } 22 23 if( i == ( I - 1 ) ) 24 L = pL[i] ; 25 LD = (float)( L - pL[i] ) / 26 (float)( pL[i + 1] - pL[i] ) ; 27 28 for( j = 0 ; j < ( J-1 ) ; j++ ) 29 { 30 if( ( S < pS[j+1] ) && ( S >= pS[j] ) ) 31 break ; 32 } 33 34 if( j == ( J - 1 ) ) 35 S = pS[j] ; 36 SD = (float)( S - pS[j] ) / 37 (float)( pS[j + 1] - pS[j] ) ; 38 39 bar (LD, SD); 40 } 41 } 42 /* { dg-final { scan-tree-dump-times "Threaded jump " 2 "vrp1" } } */ 43