1/* PR target/10114 */ 2/* Originator: James Troup <james@nocrew.org> */ 3/* { dg-do compile { target sparc-*-linux* } } */ 4/* { dg-options "-g -O1" } */ 5 6extern __inline double sqrt (double __x) 7{ 8 register double __r; 9 __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x)); 10 return __r; 11} 12 13static double our_skew, max_update_skew; 14 15static double Sqr(double x) 16{ 17 return x*x; 18} 19 20void REF_SetReference(double skew) 21{ 22 double previous_skew, new_skew; 23 double old_weight, new_weight, sum_weight; 24 double delta_freq1, delta_freq2; 25 double skew1, skew2; 26 27 previous_skew = our_skew; 28 skew1 = sqrt((Sqr(delta_freq1) * old_weight + Sqr(delta_freq2) * new_weight) / sum_weight); 29 skew2 = (previous_skew * old_weight + new_skew * new_weight) / sum_weight; 30 our_skew = skew1 + skew2; 31} 32